summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-01-18 03:01:29 +0000
committerNorbert Preining <norbert@preining.info>2024-01-18 03:01:29 +0000
commitc4dbe7c982d00abf62e9a8927ecdef11521773a8 (patch)
tree58b814095058ab06b7b49e3ef819293f1e0f9922
parent4fd81a66c82a2ba8787c6ca78bfcc14820e4017c (diff)
CTAN sync 202401180301
-rw-r--r--FILES.byname459
-rw-r--r--FILES.byname.gzbin2592248 -> 2592169 bytes
-rw-r--r--FILES.last07days458
-rw-r--r--biblio/bibtex/utils/bibcop/bibcop.12
-rw-r--r--biblio/bibtex/utils/bibcop/bibcop.dtx28
-rw-r--r--biblio/bibtex/utils/bibcop/bibcop.pdfbin348056 -> 347804 bytes
-rwxr-xr-xbiblio/bibtex/utils/bibcop/bibcop.pl8
-rw-r--r--biblio/ctan-bibdata/ctan.bib49
-rw-r--r--info/kaytannollista-latexia/kaytannollista-latexia.pdfbin911212 -> 922644 bytes
-rw-r--r--info/kaytannollista-latexia/kaytannollista-latexia.tex4
-rw-r--r--info/kaytannollista-latexia/luku-asetukset.tex414
-rw-r--r--info/kaytannollista-latexia/luku-erikoiset.tex2
-rw-r--r--info/kaytannollista-latexia/luku-merkintakieli.tex2
-rw-r--r--info/kaytannollista-latexia/luku-rakenne.tex38
-rw-r--r--info/kaytannollista-latexia/luku-valmistautuminen.tex51
-rw-r--r--info/kaytannollista-latexia/tavutusvihjeet.tex3
-rw-r--r--info/kaytannollista-latexia/versio.tex2
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx28
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin601383 -> 599045 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex18
-rw-r--r--macros/latex/contrib/pagelayout/README.md51
-rw-r--r--macros/latex/contrib/pagelayout/doc/banner.tex2
-rw-r--r--macros/latex/contrib/pagelayout/doc/example-book.tex2
-rw-r--r--macros/latex/contrib/pagelayout/doc/example-borders-and-shadows.tex2
-rw-r--r--macros/latex/contrib/pagelayout/doc/example-graphic.tex2
-rw-r--r--macros/latex/contrib/pagelayout/doc/example-grid.tex2
-rw-r--r--macros/latex/contrib/pagelayout/doc/example-template.tex2
-rw-r--r--macros/latex/contrib/pagelayout/doc/example-text.tex2
-rw-r--r--macros/latex/contrib/pagelayout/doc/pagelayout-manual-layout-guides.tex2
-rw-r--r--macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdfbin75095 -> 75292 bytes
-rw-r--r--macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex176
-rw-r--r--macros/latex/contrib/pagelayout/doc/quickstart-1.svg2
-rw-r--r--macros/latex/contrib/pagelayout/doc/quickstart-2.svg2
-rw-r--r--macros/latex/contrib/pagelayout/doc/quickstart-3.svg2
-rw-r--r--macros/latex/contrib/pagelayout/doc/quickstart.pdfbin121788 -> 103111 bytes
-rw-r--r--macros/latex/contrib/pagelayout/doc/quickstart.tex43
-rwxr-xr-xmacros/latex/contrib/pagelayout/scripts/pagelayoutapi12
-rwxr-xr-xmacros/latex/contrib/pagelayout/scripts/textestvis4
-rw-r--r--macros/latex/contrib/pagelayout/tex/pagelayout.cls372
-rw-r--r--macros/latex/contrib/preview/preview.dtx6
-rw-r--r--macros/latex/contrib/preview/preview.pdfbin343676 -> 343466 bytes
-rw-r--r--macros/latex/contrib/pythonimmediate/README2
-rw-r--r--macros/latex/contrib/pythonimmediate/pythonimmediate.pdfbin431593 -> 437287 bytes
-rw-r--r--macros/latex/contrib/pythonimmediate/pythonimmediate.sty18
-rw-r--r--macros/latex/contrib/pythonimmediate/pythonimmediate.tex51
-rw-r--r--macros/latex/contrib/pythonimmediate/pythonimmediate_helper.lua131
-rw-r--r--macros/latex/contrib/runcode/README2
-rw-r--r--macros/latex/contrib/runcode/runcode.pdfbin251374 -> 251370 bytes
-rw-r--r--macros/latex/contrib/runcode/runcode.sty47
-rw-r--r--macros/latex/contrib/runcode/runcode.tex21
-rw-r--r--macros/latex/contrib/unicode-math-input/README2
-rwxr-xr-x[-rw-r--r--]macros/latex/contrib/unicode-math-input/unicode-math-input-script.py311
-rw-r--r--macros/latex/contrib/unicode-math-input/unicode-math-input-table.tex96
-rw-r--r--macros/latex/contrib/unicode-math-input/unicode-math-input.pdfbin98884 -> 107101 bytes
-rw-r--r--macros/latex/contrib/unicode-math-input/unicode-math-input.sty63
-rw-r--r--macros/latex/contrib/unicode-math-input/unicode-math-input.tex115
-rw-r--r--support/TeX4ht/source/ChangeLog9
-rw-r--r--support/TeX4ht/source/tex4ht-4ht.tex15
-rw-r--r--support/latexindent/LatexIndent/Replacement.pm2
-rw-r--r--support/latexindent/LatexIndent/Version.pm4
-rw-r--r--support/latexindent/README2
-rw-r--r--support/latexindent/bin/linux/latexindentbin6173556 -> 6173561 bytes
-rw-r--r--support/latexindent/bin/macos/latexindentbin6402792 -> 6402796 bytes
-rw-r--r--support/latexindent/defaultSettings.yaml2
-rw-r--r--support/latexindent/documentation/latexindent-yaml-schema.json2
-rw-r--r--support/latexindent/documentation/latexindent.pdfbin1280662 -> 1280496 bytes
-rwxr-xr-xsupport/latexindent/latexindent.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/TeXLive/TLWinGoo.pm36
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/installer/config.guess11
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb348
-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.asc16
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2520276 -> 2521520 bytes
-rw-r--r--timestamp2
75 files changed, 2188 insertions, 1378 deletions
diff --git a/FILES.byname b/FILES.byname
index f5282122d7..5fb2028a5c 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -1530,16 +1530,16 @@
1997/02/27 | 18375 | biblio/bibtex/utils/bibclean/bibclean-2.11.3.tar-lst
2006/06/02 | 55589 | biblio/bibtex/utils/bibclean/bibclean.pdf
2006/06/02 | 26456 | biblio/bibtex/utils/bibclean/README
-2024/01/16 | 958 | biblio/bibtex/utils/bibcop/bibcop.1
-2024/01/16 | 16344 | biblio/bibtex/utils/bibcop/bibcop.dtx
-2024/01/16 | 2628 | biblio/bibtex/utils/bibcop/bibcop.ins
-2024/01/16 | 5100 | biblio/bibtex/utils/bibcop/bibcop-logo.pdf
-2024/01/16 | 348056 | biblio/bibtex/utils/bibcop/bibcop.pdf
-2024/01/16 | 26644 | biblio/bibtex/utils/bibcop/bibcop.pl
-2024/01/16 | 211 | biblio/bibtex/utils/bibcop/DEPENDS.txt
-2024/01/16 | 1083 | biblio/bibtex/utils/bibcop/LICENSE.txt
-2024/01/16 | 2917 | biblio/bibtex/utils/bibcop/README.md
-2024/01/16 | 367397 | biblio/bibtex/utils/bibcop.zip
+2024/01/17 | 958 | biblio/bibtex/utils/bibcop/bibcop.1
+2024/01/17 | 16186 | biblio/bibtex/utils/bibcop/bibcop.dtx
+2024/01/17 | 2628 | biblio/bibtex/utils/bibcop/bibcop.ins
+2024/01/17 | 5100 | biblio/bibtex/utils/bibcop/bibcop-logo.pdf
+2024/01/17 | 347804 | biblio/bibtex/utils/bibcop/bibcop.pdf
+2024/01/17 | 26686 | biblio/bibtex/utils/bibcop/bibcop.pl
+2024/01/17 | 211 | biblio/bibtex/utils/bibcop/DEPENDS.txt
+2024/01/17 | 1083 | biblio/bibtex/utils/bibcop/LICENSE.txt
+2024/01/17 | 2917 | biblio/bibtex/utils/bibcop/README.md
+2024/01/17 | 367094 | biblio/bibtex/utils/bibcop.zip
2019/03/30 | 43446 | biblio/bibtex/utils/bibexport/bibexport.dtx
2019/03/30 | 2002 | biblio/bibtex/utils/bibexport/bibexport.ins
2019/03/30 | 256849 | biblio/bibtex/utils/bibexport/bibexport.pdf
@@ -2077,12 +2077,12 @@
2023/10/05 | 1710 | biblio/citation-style-language/README.md
2023/10/05 | 12878 | biblio/citation-style-language/vancouver.csl
2023/10/05 | 4531754 | biblio/citation-style-language.zip
-2024/01/16 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/01/17 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2024/01/16 | 2839351 | biblio/ctan-bibdata/ctan.bib
-2024/01/16 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/01/17 | 2839741 | biblio/ctan-bibdata/ctan.bib
+2024/01/17 | 3708800 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2024/01/16 | 4115526 | biblio/ctan-bibdata.zip
+2024/01/17 | 4115596 | biblio/ctan-bibdata.zip
2023/02/23 | 3126 | biblio/pbibtex/pbibtex-base/cpp.awk
2023/02/23 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh
2023/02/23 | 22362 | biblio/pbibtex/pbibtex-base/jabbrv.bst
@@ -5444,7 +5444,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2024/01/16 | 81817 | FILES.last07days
+2024/01/17 | 89293 | 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
@@ -195730,20 +195730,20 @@
2019/01/28 | 1187 | info/joy-of-tex/README
2019/01/29 | 3973964 | info/joy-of-tex.zip
1995/01/19 | 36098 | info/jrtex12a
-2024/01/01 | 911212 | info/kaytannollista-latexia/kaytannollista-latexia.pdf
-2024/01/01 | 14365 | info/kaytannollista-latexia/kaytannollista-latexia.tex
-2024/01/01 | 3039 | info/kaytannollista-latexia/kirjallisuutta.bib
-2024/01/01 | 130477 | info/kaytannollista-latexia/luku-asetukset.tex
-2024/01/01 | 21322 | info/kaytannollista-latexia/luku-erikoiset.tex
-2024/01/01 | 2633 | info/kaytannollista-latexia/luku-esipuhe.tex
-2024/01/01 | 88544 | info/kaytannollista-latexia/luku-merkintakieli.tex
-2024/01/01 | 12366 | info/kaytannollista-latexia/luku-muuta.tex
-2024/01/01 | 321049 | info/kaytannollista-latexia/luku-rakenne.tex
-2024/01/01 | 20785 | info/kaytannollista-latexia/luku-valmistautuminen.tex
-2024/01/01 | 5851 | info/kaytannollista-latexia/README.md
-2024/01/01 | 12648 | info/kaytannollista-latexia/tavutusvihjeet.tex
-2024/01/01 | 27 | info/kaytannollista-latexia/versio.tex
-2024/01/01 | 1064123 | info/kaytannollista-latexia.zip
+2024/01/17 | 922644 | info/kaytannollista-latexia/kaytannollista-latexia.pdf
+2024/01/17 | 14425 | info/kaytannollista-latexia/kaytannollista-latexia.tex
+2024/01/17 | 3039 | info/kaytannollista-latexia/kirjallisuutta.bib
+2024/01/17 | 135554 | info/kaytannollista-latexia/luku-asetukset.tex
+2024/01/17 | 21323 | info/kaytannollista-latexia/luku-erikoiset.tex
+2024/01/17 | 2633 | info/kaytannollista-latexia/luku-esipuhe.tex
+2024/01/17 | 88547 | info/kaytannollista-latexia/luku-merkintakieli.tex
+2024/01/17 | 12366 | info/kaytannollista-latexia/luku-muuta.tex
+2024/01/17 | 321037 | info/kaytannollista-latexia/luku-rakenne.tex
+2024/01/17 | 20691 | info/kaytannollista-latexia/luku-valmistautuminen.tex
+2024/01/17 | 5851 | info/kaytannollista-latexia/README.md
+2024/01/17 | 12686 | info/kaytannollista-latexia/tavutusvihjeet.tex
+2024/01/17 | 29 | info/kaytannollista-latexia/versio.tex
+2024/01/17 | 1076305 | info/kaytannollista-latexia.zip
2017/08/18 | 333896 | info/knuth/cwebman.pdf
2023/06/15 | 620037 | info/knuth-hint/bibtex/bibtex-changes.hnt
2023/06/15 | 745152 | info/knuth-hint/bibtex/bibtex.hnt
@@ -199038,7 +199038,7 @@
2022/12/16 | 34891 | install/macros/latex/contrib/ocgx2.tds.zip
2012/12/08 | 1025300 | install/macros/latex/contrib/ocgx.tds.zip
2023/04/18 | 543445 | install/macros/latex/contrib/pagecolor.tds.zip
-2023/12/21 | 4719139 | install/macros/latex/contrib/pagelayout.tds.zip
+2024/01/17 | 4935296 | install/macros/latex/contrib/pagelayout.tds.zip
2009/09/03 | 151471 | install/macros/latex/contrib/pagenote.tds.zip
2015/12/21 | 991192 | install/macros/latex/contrib/pageslts.tds.zip
2023/04/12 | 444471 | install/macros/latex/contrib/papermas.tds.zip
@@ -224501,12 +224501,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
-2024/01/16 | 76095 | macros/latex/contrib/easybook/easybook.dtx
+2024/01/17 | 75632 | macros/latex/contrib/easybook/easybook.dtx
2024/01/04 | 2081 | macros/latex/contrib/easybook/easybook.ins
-2024/01/16 | 601383 | macros/latex/contrib/easybook/easybook.pdf
-2024/01/16 | 88258 | macros/latex/contrib/easybook/easybook.tex
+2024/01/17 | 599045 | macros/latex/contrib/easybook/easybook.pdf
+2024/01/17 | 88205 | macros/latex/contrib/easybook/easybook.tex
2024/01/03 | 801 | macros/latex/contrib/easybook/README.md
-2024/01/16 | 644406 | macros/latex/contrib/easybook.zip
+2024/01/17 | 641945 | 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
@@ -237094,45 +237094,45 @@
2022/09/22 | 337475 | macros/latex/contrib/pagegrid/pagegrid.pdf
2022/09/22 | 252 | macros/latex/contrib/pagegrid/README.md
2022/09/22 | 333189 | macros/latex/contrib/pagegrid.zip
-2023/12/21 | 1028 | macros/latex/contrib/pagelayout/doc/1x1.pdf
-2023/12/21 | 1064 | macros/latex/contrib/pagelayout/doc/2x1.pdf
-2023/12/21 | 1067 | macros/latex/contrib/pagelayout/doc/3x2.pdf
-2023/12/21 | 8993 | macros/latex/contrib/pagelayout/doc/banner.pdf
-2023/12/21 | 17433 | macros/latex/contrib/pagelayout/doc/banner.svg
-2023/12/21 | 1191 | macros/latex/contrib/pagelayout/doc/banner.tex
-2023/12/21 | 137910 | macros/latex/contrib/pagelayout/doc/example-book.pdf
-2023/12/21 | 1985 | macros/latex/contrib/pagelayout/doc/example-book.tex
-2023/12/21 | 133420 | macros/latex/contrib/pagelayout/doc/example-borders-and-shadows.pdf
-2023/12/21 | 1097 | macros/latex/contrib/pagelayout/doc/example-borders-and-shadows.tex
-2023/12/21 | 37253 | macros/latex/contrib/pagelayout/doc/example-graphic.pdf
-2023/12/21 | 758 | macros/latex/contrib/pagelayout/doc/example-graphic.tex
-2023/12/21 | 12036 | macros/latex/contrib/pagelayout/doc/example-grid.pdf
-2023/12/21 | 2212 | macros/latex/contrib/pagelayout/doc/example-grid.tex
-2023/12/21 | 6305 | macros/latex/contrib/pagelayout/doc/example-template.pdf
-2023/12/21 | 955 | macros/latex/contrib/pagelayout/doc/example-template.tex
-2023/12/21 | 11123 | macros/latex/contrib/pagelayout/doc/example-text.pdf
-2023/12/21 | 1075 | macros/latex/contrib/pagelayout/doc/example-text.tex
-2023/12/21 | 1419852 | macros/latex/contrib/pagelayout/doc/kopi.jpg
-2023/12/21 | 6493 | macros/latex/contrib/pagelayout/doc/pagelayout-manual-layout-guides.pdf
-2023/12/21 | 817 | macros/latex/contrib/pagelayout/doc/pagelayout-manual-layout-guides.tex
-2023/12/21 | 75095 | macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf
-2023/12/21 | 24244 | macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex
-2023/12/21 | 14146 | macros/latex/contrib/pagelayout/doc/quickstart-1.svg
-2023/12/21 | 5436 | macros/latex/contrib/pagelayout/doc/quickstart-2.svg
-2023/12/21 | 127290 | macros/latex/contrib/pagelayout/doc/quickstart-3.svg
-2023/12/21 | 121788 | macros/latex/contrib/pagelayout/doc/quickstart.pdf
-2023/12/21 | 1277 | macros/latex/contrib/pagelayout/doc/quickstart.tex
-2023/12/21 | 19040 | macros/latex/contrib/pagelayout/LICENSE
-2023/12/21 | 3642 | macros/latex/contrib/pagelayout/README.md
-2023/12/21 | 8918 | macros/latex/contrib/pagelayout/scripts/pagelayoutapi
-2023/12/21 | 3378 | macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1
-2023/12/21 | 3114 | macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1.md
-2023/12/21 | 12199 | macros/latex/contrib/pagelayout/scripts/textestvis
-2023/12/21 | 1680 | macros/latex/contrib/pagelayout/scripts/textestvis.1
-2023/12/21 | 1419 | macros/latex/contrib/pagelayout/scripts/textestvis.1.md
-2023/12/21 | 2671192 | macros/latex/contrib/pagelayout/tests.zip
-2023/12/21 | 141454 | macros/latex/contrib/pagelayout/tex/pagelayout.cls
-2023/12/21 | 4715965 | macros/latex/contrib/pagelayout.zip
+2024/01/17 | 1028 | macros/latex/contrib/pagelayout/doc/1x1.pdf
+2024/01/17 | 1064 | macros/latex/contrib/pagelayout/doc/2x1.pdf
+2024/01/17 | 1067 | macros/latex/contrib/pagelayout/doc/3x2.pdf
+2024/01/17 | 8993 | macros/latex/contrib/pagelayout/doc/banner.pdf
+2024/01/17 | 17433 | macros/latex/contrib/pagelayout/doc/banner.svg
+2024/01/17 | 1191 | macros/latex/contrib/pagelayout/doc/banner.tex
+2024/01/17 | 137910 | macros/latex/contrib/pagelayout/doc/example-book.pdf
+2024/01/17 | 1985 | macros/latex/contrib/pagelayout/doc/example-book.tex
+2024/01/17 | 133420 | macros/latex/contrib/pagelayout/doc/example-borders-and-shadows.pdf
+2024/01/17 | 1097 | macros/latex/contrib/pagelayout/doc/example-borders-and-shadows.tex
+2024/01/17 | 37253 | macros/latex/contrib/pagelayout/doc/example-graphic.pdf
+2024/01/17 | 758 | macros/latex/contrib/pagelayout/doc/example-graphic.tex
+2024/01/17 | 12036 | macros/latex/contrib/pagelayout/doc/example-grid.pdf
+2024/01/17 | 2212 | macros/latex/contrib/pagelayout/doc/example-grid.tex
+2024/01/17 | 6305 | macros/latex/contrib/pagelayout/doc/example-template.pdf
+2024/01/17 | 955 | macros/latex/contrib/pagelayout/doc/example-template.tex
+2024/01/17 | 11123 | macros/latex/contrib/pagelayout/doc/example-text.pdf
+2024/01/17 | 1075 | macros/latex/contrib/pagelayout/doc/example-text.tex
+2024/01/17 | 1419852 | macros/latex/contrib/pagelayout/doc/kopi.jpg
+2024/01/17 | 6493 | macros/latex/contrib/pagelayout/doc/pagelayout-manual-layout-guides.pdf
+2024/01/17 | 817 | macros/latex/contrib/pagelayout/doc/pagelayout-manual-layout-guides.tex
+2024/01/17 | 75292 | macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf
+2024/01/17 | 24795 | macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex
+2024/01/17 | 31780 | macros/latex/contrib/pagelayout/doc/quickstart-1.svg
+2024/01/17 | 5771 | macros/latex/contrib/pagelayout/doc/quickstart-2.svg
+2024/01/17 | 99929 | macros/latex/contrib/pagelayout/doc/quickstart-3.svg
+2024/01/17 | 103111 | macros/latex/contrib/pagelayout/doc/quickstart.pdf
+2024/01/17 | 1870 | macros/latex/contrib/pagelayout/doc/quickstart.tex
+2024/01/17 | 19040 | macros/latex/contrib/pagelayout/LICENSE
+2024/01/17 | 4031 | macros/latex/contrib/pagelayout/README.md
+2024/01/17 | 8993 | macros/latex/contrib/pagelayout/scripts/pagelayoutapi
+2024/01/17 | 3378 | macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1
+2024/01/17 | 3114 | macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1.md
+2024/01/17 | 12199 | macros/latex/contrib/pagelayout/scripts/textestvis
+2024/01/17 | 1680 | macros/latex/contrib/pagelayout/scripts/textestvis.1
+2024/01/17 | 1419 | macros/latex/contrib/pagelayout/scripts/textestvis.1.md
+2024/01/17 | 2916987 | macros/latex/contrib/pagelayout/tests.zip
+2024/01/17 | 153857 | macros/latex/contrib/pagelayout/tex/pagelayout.cls
+2024/01/17 | 4932119 | macros/latex/contrib/pagelayout.zip
1998/09/23 | 10073 | macros/latex/contrib/pageno/pageno.dtx
1998/09/23 | 1573 | macros/latex/contrib/pageno/pageno.ins
2012/05/29 | 84419 | macros/latex/contrib/pageno/pageno.pdf
@@ -238982,11 +238982,11 @@
2023/04/18 | 14600 | macros/latex/contrib/prettytok/prettytok.tex
2023/04/18 | 863 | macros/latex/contrib/prettytok/README
2023/04/18 | 497691 | macros/latex/contrib/prettytok.zip
-2023/04/23 | 80018 | macros/latex/contrib/preview/preview.dtx
-2023/04/23 | 1594 | macros/latex/contrib/preview/preview.ins
-2023/04/23 | 343676 | macros/latex/contrib/preview/preview.pdf
-2023/04/23 | 2576 | macros/latex/contrib/preview/README
-2023/04/23 | 359978 | macros/latex/contrib/preview.zip
+2024/01/17 | 80018 | macros/latex/contrib/preview/preview.dtx
+2024/01/17 | 1594 | macros/latex/contrib/preview/preview.ins
+2024/01/17 | 343466 | macros/latex/contrib/preview/preview.pdf
+2024/01/17 | 2576 | macros/latex/contrib/preview/README
+2024/01/17 | 359769 | macros/latex/contrib/preview.zip
2019/06/19 | 346581 | macros/latex/contrib/prftree/prftreedoc.pdf
2019/06/19 | 94089 | macros/latex/contrib/prftree/prftreedoc.tex
2019/06/19 | 61107 | macros/latex/contrib/prftree/prftree.sty
@@ -239912,13 +239912,13 @@
2017/02/09 | 4900 | macros/latex/contrib/pythonhighlight/pythonhighlight.sty
2017/02/09 | 662 | macros/latex/contrib/pythonhighlight/README.md
2017/02/09 | 3487 | macros/latex/contrib/pythonhighlight.zip
-2023/03/07 | 35 | macros/latex/contrib/pythonimmediate/DEPENDS.txt
-2023/03/07 | 803 | macros/latex/contrib/pythonimmediate/pythonimmediate_helper.lua
-2023/03/07 | 431593 | macros/latex/contrib/pythonimmediate/pythonimmediate.pdf
-2023/03/07 | 7771 | macros/latex/contrib/pythonimmediate/pythonimmediate.sty
-2023/03/07 | 19803 | macros/latex/contrib/pythonimmediate/pythonimmediate.tex
-2023/03/07 | 737 | macros/latex/contrib/pythonimmediate/README
-2023/03/07 | 440347 | macros/latex/contrib/pythonimmediate.zip
+2024/01/17 | 35 | macros/latex/contrib/pythonimmediate/DEPENDS.txt
+2024/01/17 | 3490 | macros/latex/contrib/pythonimmediate/pythonimmediate_helper.lua
+2024/01/17 | 437287 | macros/latex/contrib/pythonimmediate/pythonimmediate.pdf
+2024/01/17 | 8045 | macros/latex/contrib/pythonimmediate/pythonimmediate.sty
+2024/01/17 | 20653 | macros/latex/contrib/pythonimmediate/pythonimmediate.tex
+2024/01/17 | 737 | macros/latex/contrib/pythonimmediate/README
+2024/01/17 | 447179 | macros/latex/contrib/pythonimmediate.zip
2021/08/03 | 3375 | macros/latex/contrib/python/python.sty
2012/06/11 | 934 | macros/latex/contrib/python/README
2021/06/07 | 70760 | macros/latex/contrib/pythontex/depythontex2.py
@@ -240954,21 +240954,21 @@
2019/04/18 | 4724 | macros/latex/contrib/rulerbox/rulerbox.sty
2019/04/18 | 5847 | macros/latex/contrib/rulerbox/rulerbox.tex
2019/04/18 | 60473 | macros/latex/contrib/rulerbox.zip
-2023/09/08 | 60 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln2.tex
-2023/09/08 | 25 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln4.tex
-2023/09/08 | 25 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln5.tex
-2023/09/08 | 4 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln6.tex
-2023/09/08 | 80 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln7.tex
-2023/09/08 | 80 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln8.tex
-2023/09/08 | 12 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln9.tex
-2023/09/08 | 554 | macros/latex/contrib/runcode/generated/testWithrunR.tex
-2023/09/08 | 1449 | macros/latex/contrib/runcode/README
-2023/09/08 | 251374 | macros/latex/contrib/runcode/runcode.pdf
-2023/09/08 | 19096 | macros/latex/contrib/runcode/runcode.sty
-2023/09/08 | 16824 | macros/latex/contrib/runcode/runcode.tex
-2023/09/08 | 161688 | macros/latex/contrib/runcode/runcode_troubleshoot.pdf
-2023/09/08 | 18978 | macros/latex/contrib/runcode/runcode_troubleshoot.tex
-2023/09/09 | 421028 | macros/latex/contrib/runcode.zip
+2024/01/17 | 60 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln2.tex
+2024/01/17 | 25 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln4.tex
+2024/01/17 | 25 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln5.tex
+2024/01/17 | 4 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln6.tex
+2024/01/17 | 80 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln7.tex
+2024/01/17 | 80 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln8.tex
+2024/01/17 | 12 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln9.tex
+2024/01/17 | 554 | macros/latex/contrib/runcode/generated/testWithrunR.tex
+2024/01/17 | 1449 | macros/latex/contrib/runcode/README
+2024/01/17 | 251370 | macros/latex/contrib/runcode/runcode.pdf
+2024/01/17 | 19644 | macros/latex/contrib/runcode/runcode.sty
+2024/01/17 | 17022 | macros/latex/contrib/runcode/runcode.tex
+2024/01/17 | 161688 | macros/latex/contrib/runcode/runcode_troubleshoot.pdf
+2024/01/17 | 18978 | macros/latex/contrib/runcode/runcode_troubleshoot.tex
+2024/01/17 | 421177 | macros/latex/contrib/runcode.zip
2005/12/01 | 13008 | macros/latex/contrib/r_und_s/eng_rs.sty
2005/12/01 | 11585 | macros/latex/contrib/r_und_s/eng_rs.tex
2005/12/01 | 14228 | macros/latex/contrib/r_und_s/fr_rs.sty
@@ -247345,14 +247345,14 @@
2023/05/10 | 2397 | macros/latex/contrib/unicodefonttable/unicodefonttable.ins
2023/05/10 | 656010 | macros/latex/contrib/unicodefonttable/unicodefonttable-samples.pdf
2023/05/10 | 2317523 | macros/latex/contrib/unicodefonttable.zip
-2023/05/12 | 21 | macros/latex/contrib/unicode-math-input/DEPENDS.txt
-2023/05/12 | 832 | macros/latex/contrib/unicode-math-input/README
-2023/05/12 | 98884 | macros/latex/contrib/unicode-math-input/unicode-math-input.pdf
-2023/05/12 | 16312 | macros/latex/contrib/unicode-math-input/unicode-math-input-script.py
-2023/05/12 | 27845 | macros/latex/contrib/unicode-math-input/unicode-math-input.sty
-2023/05/12 | 101318 | macros/latex/contrib/unicode-math-input/unicode-math-input-table.tex
-2023/05/12 | 17011 | macros/latex/contrib/unicode-math-input/unicode-math-input.tex
-2023/05/12 | 129681 | macros/latex/contrib/unicode-math-input.zip
+2024/01/17 | 21 | macros/latex/contrib/unicode-math-input/DEPENDS.txt
+2024/01/17 | 832 | macros/latex/contrib/unicode-math-input/README
+2024/01/17 | 107101 | macros/latex/contrib/unicode-math-input/unicode-math-input.pdf
+2024/01/17 | 19889 | macros/latex/contrib/unicode-math-input/unicode-math-input-script.py
+2024/01/17 | 28945 | macros/latex/contrib/unicode-math-input/unicode-math-input.sty
+2024/01/17 | 102640 | macros/latex/contrib/unicode-math-input/unicode-math-input-table.tex
+2024/01/17 | 21025 | macros/latex/contrib/unicode-math-input/unicode-math-input.tex
+2024/01/17 | 141085 | macros/latex/contrib/unicode-math-input.zip
2021/10/04 | 494976 | macros/latex/contrib/unifith/examples/Dottorato.pdf
2021/10/04 | 8618 | macros/latex/contrib/unifith/examples/Dottorato.tex
2021/10/04 | 497301 | macros/latex/contrib/unifith/examples/Laurea.pdf
@@ -289296,61 +289296,61 @@
2018/04/15 | 1313 | support/latex-git-log/po/de.po
2020/02/26 | 3353 | support/latex-git-log/README.md
2020/02/27 | 87742 | support/latex-git-log.zip
-2024/01/01 | 6173556 | support/latexindent/bin/linux/latexindent
-2024/01/01 | 6402792 | support/latexindent/bin/macos/latexindent
-2024/01/01 | 9939470 | support/latexindent/bin/windows/latexindent.exe
-2024/01/01 | 22214 | support/latexindent/defaultSettings.yaml
-2024/01/01 | 6664 | support/latexindent/documentation/contributors.bib
-2024/01/01 | 7161 | support/latexindent/documentation/figure-schematic.png
-2024/01/01 | 4402 | support/latexindent/documentation/latex-indent.bib
-2024/01/01 | 1280662 | support/latexindent/documentation/latexindent.pdf
-2024/01/01 | 443043 | support/latexindent/documentation/latexindent.tex
-2024/01/01 | 61245 | support/latexindent/documentation/latexindent-yaml-schema.json
-2024/01/01 | 44096 | support/latexindent/documentation/logo.png
-2024/01/01 | 68177 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
-2024/01/01 | 24449 | support/latexindent/LatexIndent/Arguments.pm
-2024/01/01 | 6277 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
-2024/01/01 | 4860 | support/latexindent/LatexIndent/BlankLines.pm
-2024/01/01 | 12653 | support/latexindent/LatexIndent/Braces.pm
-2024/01/01 | 5432 | support/latexindent/LatexIndent/Check.pm
-2024/01/01 | 10648 | support/latexindent/LatexIndent/Command.pm
-2024/01/01 | 25334 | support/latexindent/LatexIndent/Document.pm
-2024/01/01 | 1500 | support/latexindent/LatexIndent/DoubleBackSlash.pm
-2024/01/01 | 6391 | support/latexindent/LatexIndent/Else.pm
-2024/01/01 | 8346 | support/latexindent/LatexIndent/Environment.pm
-2024/01/01 | 11509 | support/latexindent/LatexIndent/FileContents.pm
-2024/01/01 | 8819 | support/latexindent/LatexIndent/FileExtension.pm
-2024/01/01 | 54602 | support/latexindent/LatexIndent/GetYamlSettings.pm
-2024/01/01 | 11206 | support/latexindent/LatexIndent/Heading.pm
-2024/01/01 | 13470 | support/latexindent/LatexIndent/HiddenChildren.pm
-2024/01/01 | 3517 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
-2024/01/01 | 8893 | support/latexindent/LatexIndent/IfElseFi.pm
-2024/01/01 | 20870 | support/latexindent/LatexIndent/Indent.pm
-2024/01/01 | 6890 | support/latexindent/LatexIndent/Item.pm
-2024/01/01 | 5478 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
-2024/01/01 | 9859 | support/latexindent/LatexIndent/Lines.pm
-2024/01/01 | 13435 | support/latexindent/LatexIndent/LogFile.pm
-2024/01/01 | 2320 | support/latexindent/LatexIndent/Logger.pm
-2024/01/01 | 7379 | support/latexindent/LatexIndent/MandatoryArgument.pm
-2024/01/01 | 18591 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
-2024/01/01 | 1558 | support/latexindent/latexindent-module-installer.pl
-2024/01/01 | 4388 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
-2024/01/01 | 6620 | support/latexindent/LatexIndent/OptionalArgument.pm
-2024/01/01 | 3415 | support/latexindent/latexindent.pl
-2024/01/01 | 2733 | support/latexindent/LatexIndent/Preamble.pm
-2024/01/01 | 3509 | support/latexindent/LatexIndent/Replacement.pm
-2024/01/01 | 4404 | support/latexindent/LatexIndent/RoundBrackets.pm
-2024/01/01 | 22321 | support/latexindent/LatexIndent/Sentence.pm
-2024/01/01 | 13935 | support/latexindent/LatexIndent/Special.pm
-2024/01/01 | 2712 | support/latexindent/LatexIndent/Switches.pm
-2024/01/01 | 3353 | support/latexindent/LatexIndent/Tokens.pm
-2024/01/01 | 6953 | support/latexindent/LatexIndent/TrailingComments.pm
-2024/01/01 | 5857 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
-2024/01/01 | 27422 | support/latexindent/LatexIndent/Verbatim.pm
-2024/01/01 | 838 | support/latexindent/LatexIndent/Version.pm
-2024/01/01 | 35225 | support/latexindent/LatexIndent/Wrap.pm
-2024/01/01 | 2008 | support/latexindent/README
-2024/01/01 | 12425816 | support/latexindent.zip
+2024/01/17 | 6173561 | support/latexindent/bin/linux/latexindent
+2024/01/17 | 6402796 | support/latexindent/bin/macos/latexindent
+2024/01/17 | 9939474 | support/latexindent/bin/windows/latexindent.exe
+2024/01/17 | 22214 | support/latexindent/defaultSettings.yaml
+2024/01/17 | 6664 | support/latexindent/documentation/contributors.bib
+2024/01/17 | 7161 | support/latexindent/documentation/figure-schematic.png
+2024/01/17 | 4402 | support/latexindent/documentation/latex-indent.bib
+2024/01/17 | 1280496 | support/latexindent/documentation/latexindent.pdf
+2024/01/17 | 443043 | support/latexindent/documentation/latexindent.tex
+2024/01/17 | 61245 | support/latexindent/documentation/latexindent-yaml-schema.json
+2024/01/17 | 44096 | support/latexindent/documentation/logo.png
+2024/01/17 | 68177 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
+2024/01/17 | 24449 | support/latexindent/LatexIndent/Arguments.pm
+2024/01/17 | 6277 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
+2024/01/17 | 4860 | support/latexindent/LatexIndent/BlankLines.pm
+2024/01/17 | 12653 | support/latexindent/LatexIndent/Braces.pm
+2024/01/17 | 5432 | support/latexindent/LatexIndent/Check.pm
+2024/01/17 | 10648 | support/latexindent/LatexIndent/Command.pm
+2024/01/17 | 25334 | support/latexindent/LatexIndent/Document.pm
+2024/01/17 | 1500 | support/latexindent/LatexIndent/DoubleBackSlash.pm
+2024/01/17 | 6391 | support/latexindent/LatexIndent/Else.pm
+2024/01/17 | 8346 | support/latexindent/LatexIndent/Environment.pm
+2024/01/17 | 11509 | support/latexindent/LatexIndent/FileContents.pm
+2024/01/17 | 8819 | support/latexindent/LatexIndent/FileExtension.pm
+2024/01/17 | 54602 | support/latexindent/LatexIndent/GetYamlSettings.pm
+2024/01/17 | 11206 | support/latexindent/LatexIndent/Heading.pm
+2024/01/17 | 13470 | support/latexindent/LatexIndent/HiddenChildren.pm
+2024/01/17 | 3517 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
+2024/01/17 | 8893 | support/latexindent/LatexIndent/IfElseFi.pm
+2024/01/17 | 20870 | support/latexindent/LatexIndent/Indent.pm
+2024/01/17 | 6890 | support/latexindent/LatexIndent/Item.pm
+2024/01/17 | 5478 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
+2024/01/17 | 9859 | support/latexindent/LatexIndent/Lines.pm
+2024/01/17 | 13435 | support/latexindent/LatexIndent/LogFile.pm
+2024/01/17 | 2320 | support/latexindent/LatexIndent/Logger.pm
+2024/01/17 | 7379 | support/latexindent/LatexIndent/MandatoryArgument.pm
+2024/01/17 | 18591 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
+2024/01/17 | 1558 | support/latexindent/latexindent-module-installer.pl
+2024/01/17 | 4388 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
+2024/01/17 | 6620 | support/latexindent/LatexIndent/OptionalArgument.pm
+2024/01/17 | 3415 | support/latexindent/latexindent.pl
+2024/01/17 | 2733 | support/latexindent/LatexIndent/Preamble.pm
+2024/01/17 | 3515 | support/latexindent/LatexIndent/Replacement.pm
+2024/01/17 | 4404 | support/latexindent/LatexIndent/RoundBrackets.pm
+2024/01/17 | 22321 | support/latexindent/LatexIndent/Sentence.pm
+2024/01/17 | 13935 | support/latexindent/LatexIndent/Special.pm
+2024/01/17 | 2712 | support/latexindent/LatexIndent/Switches.pm
+2024/01/17 | 3353 | support/latexindent/LatexIndent/Tokens.pm
+2024/01/17 | 6953 | support/latexindent/LatexIndent/TrailingComments.pm
+2024/01/17 | 5857 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
+2024/01/17 | 27422 | support/latexindent/LatexIndent/Verbatim.pm
+2024/01/17 | 838 | support/latexindent/LatexIndent/Version.pm
+2024/01/17 | 35225 | support/latexindent/LatexIndent/Wrap.pm
+2024/01/17 | 2008 | support/latexindent/README
+2024/01/17 | 12426251 | support/latexindent.zip
2021/10/26 | 16439 | support/latex-make/figlatex.dtx
2021/10/26 | 238535 | support/latex-make/figlatex.pdf
2001/06/07 | 302 | support/latexmake/latexmake.diz
@@ -292256,7 +292256,7 @@
2021/05/03 | 629 | support/TeX4ht/doc/README
2020/08/24 | 358454 | support/TeX4ht/doc/TeX4ht-doc.tex
2021/05/11 | 262 | support/TeX4ht/README
-2024/01/15 | 242798 | support/TeX4ht/source/ChangeLog
+2024/01/16 | 243108 | support/TeX4ht/source/ChangeLog
2021/05/03 | 1375 | support/TeX4ht/source/checklog.lua
2021/05/03 | 1189 | support/TeX4ht/source/common-code.tex
2021/05/03 | 2727 | support/TeX4ht/source/common-info.tex
@@ -292268,7 +292268,7 @@
2021/05/03 | 1121 | support/TeX4ht/source/README
2021/05/03 | 1744 | support/TeX4ht/source/t1fontmake.lua
2021/05/03 | 297 | support/TeX4ht/source/t1fontsample.tex
-2024/01/15 | 1174354 | support/TeX4ht/source/tex4ht-4ht.tex
+2024/01/16 | 1175107 | support/TeX4ht/source/tex4ht-4ht.tex
2021/05/03 | 7127 | support/TeX4ht/source/tex4ht-auto-script.tex
2021/05/16 | 1539 | support/TeX4ht/source/tex4ht-bibtex2.tex
2023/10/16 | 21307 | support/TeX4ht/source/tex4ht-cond4ht.tex
@@ -296264,6 +296264,9 @@
2022/12/04 | 467744 | systems/texlive/tlnet/archive/amiri.r65191.tar.xz
2020/11/08 | 169360 | systems/texlive/tlnet/archive/amiweb2c-guide.doc.r56878.tar.xz
2020/11/08 | 536 | systems/texlive/tlnet/archive/amiweb2c-guide.r56878.tar.xz
+2024/01/17 | 1544912 | systems/texlive/tlnet/archive/amnestyreport.doc.r69439.tar.xz
+2024/01/17 | 5240 | systems/texlive/tlnet/archive/amnestyreport.r69439.tar.xz
+2024/01/17 | 11396 | systems/texlive/tlnet/archive/amnestyreport.source.r69439.tar.xz
2022/09/13 | 209324 | systems/texlive/tlnet/archive/amsaddr.doc.r64357.tar.xz
2022/09/13 | 1932 | systems/texlive/tlnet/archive/amsaddr.r64357.tar.xz
2022/09/13 | 4056 | systems/texlive/tlnet/archive/amsaddr.source.r64357.tar.xz
@@ -297099,13 +297102,13 @@
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.amd64-freebsd.r65257.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.amd64-netbsd.r65257.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.armhf-linux.r65257.tar.xz
-2024/01/13 | 359716 | systems/texlive/tlnet/archive/bibcop.doc.r69395.tar.xz
+2024/01/17 | 359716 | systems/texlive/tlnet/archive/bibcop.doc.r69454.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.i386-freebsd.r65257.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.i386-linux.r65257.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.i386-netbsd.r65257.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.i386-solaris.r65257.tar.xz
-2024/01/13 | 8168 | systems/texlive/tlnet/archive/bibcop.r69395.tar.xz
-2024/01/13 | 6244 | systems/texlive/tlnet/archive/bibcop.source.r69395.tar.xz
+2024/01/17 | 8180 | systems/texlive/tlnet/archive/bibcop.r69454.tar.xz
+2024/01/17 | 6240 | systems/texlive/tlnet/archive/bibcop.source.r69454.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.universal-darwin.r65257.tar.xz
2023/02/20 | 2304 | systems/texlive/tlnet/archive/bibcop.windows.r65891.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.x86_64-cygwin.r65257.tar.xz
@@ -297482,9 +297485,9 @@
2021/05/18 | 23164 | systems/texlive/tlnet/archive/bnumexpr.source.r59244.tar.xz
2023/11/10 | 470968 | systems/texlive/tlnet/archive/bodegraph.doc.r68785.tar.xz
2023/11/10 | 16268 | systems/texlive/tlnet/archive/bodegraph.r68785.tar.xz
-2024/01/13 | 738136 | systems/texlive/tlnet/archive/bodeplot.doc.r69397.tar.xz
-2024/01/13 | 5788 | systems/texlive/tlnet/archive/bodeplot.r69397.tar.xz
-2024/01/13 | 17376 | systems/texlive/tlnet/archive/bodeplot.source.r69397.tar.xz
+2024/01/17 | 554784 | systems/texlive/tlnet/archive/bodeplot.doc.r69442.tar.xz
+2024/01/17 | 5792 | systems/texlive/tlnet/archive/bodeplot.r69442.tar.xz
+2024/01/17 | 17324 | systems/texlive/tlnet/archive/bodeplot.source.r69442.tar.xz
2022/04/08 | 424416 | systems/texlive/tlnet/archive/bohr.doc.r62977.tar.xz
2022/04/08 | 3652 | systems/texlive/tlnet/archive/bohr.r62977.tar.xz
2019/02/28 | 939068 | systems/texlive/tlnet/archive/boisik.doc.r15878.tar.xz
@@ -298325,7 +298328,7 @@
2020/03/04 | 408 | systems/texlive/tlnet/archive/collection-langpolish.r54074.tar.xz
2023/05/16 | 400 | systems/texlive/tlnet/archive/collection-langportuguese.r67125.tar.xz
2023/06/09 | 396 | systems/texlive/tlnet/archive/collection-langspanish.r67307.tar.xz
-2024/01/12 | 7068 | systems/texlive/tlnet/archive/collection-latexextra.r69389.tar.xz
+2024/01/17 | 7072 | systems/texlive/tlnet/archive/collection-latexextra.r69452.tar.xz
2023/12/14 | 704 | systems/texlive/tlnet/archive/collection-latex.r69131.tar.xz
2023/12/14 | 736 | systems/texlive/tlnet/archive/collection-latexrecommended.r69131.tar.xz
2024/01/13 | 1020 | systems/texlive/tlnet/archive/collection-luatex.r69404.tar.xz
@@ -298335,10 +298338,10 @@
2024/01/14 | 1668 | systems/texlive/tlnet/archive/collection-pictures.r69409.tar.xz
2023/10/28 | 1004 | systems/texlive/tlnet/archive/collection-plaingeneric.r68675.tar.xz
2022/12/27 | 816 | systems/texlive/tlnet/archive/collection-pstricks.r65367.tar.xz
-2023/12/05 | 1728 | systems/texlive/tlnet/archive/collection-publishers.r69033.tar.xz
+2024/01/17 | 1736 | systems/texlive/tlnet/archive/collection-publishers.r69439.tar.xz
2020/03/04 | 340 | systems/texlive/tlnet/archive/collection-texworks.r54074.tar.xz
2023/02/20 | 388 | systems/texlive/tlnet/archive/collection-wintools.r65952.tar.xz
-2022/11/08 | 660 | systems/texlive/tlnet/archive/collection-xetex.r64951.tar.xz
+2024/01/17 | 652 | systems/texlive/tlnet/archive/collection-xetex.r69452.tar.xz
2019/02/28 | 272712 | systems/texlive/tlnet/archive/collref.doc.r46358.tar.xz
2019/02/28 | 1696 | systems/texlive/tlnet/archive/collref.r46358.tar.xz
2019/02/28 | 7172 | systems/texlive/tlnet/archive/collref.source.r46358.tar.xz
@@ -299684,9 +299687,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
-2024/01/14 | 622156 | systems/texlive/tlnet/archive/easybook.doc.r69411.tar.xz
-2024/01/14 | 16444 | systems/texlive/tlnet/archive/easybook.r69411.tar.xz
-2024/01/14 | 16356 | systems/texlive/tlnet/archive/easybook.source.r69411.tar.xz
+2024/01/17 | 625352 | systems/texlive/tlnet/archive/easybook.doc.r69457.tar.xz
+2024/01/17 | 16612 | systems/texlive/tlnet/archive/easybook.r69457.tar.xz
+2024/01/17 | 16480 | systems/texlive/tlnet/archive/easybook.source.r69457.tar.xz
2019/02/28 | 4540 | systems/texlive/tlnet/archive/easy.doc.r19440.tar.xz
2023/10/12 | 344 | systems/texlive/tlnet/archive/easydtx.aarch64-linux.r68514.tar.xz
2023/10/12 | 344 | systems/texlive/tlnet/archive/easydtx.amd64-freebsd.r68514.tar.xz
@@ -302558,7 +302561,7 @@
2019/02/28 | 384 | systems/texlive/tlnet/archive/latexdiff.x86_64-solaris.r18442.tar.xz
2021/01/04 | 186924 | systems/texlive/tlnet/archive/latex-doc-ptr.doc.r57311.tar.xz
2021/01/04 | 520 | systems/texlive/tlnet/archive/latex-doc-ptr.r57311.tar.xz
-2023/11/02 | 34912628 | systems/texlive/tlnet/archive/latex.doc.r68720.tar.xz
+2024/01/17 | 34918312 | systems/texlive/tlnet/archive/latex.doc.r69443.tar.xz
2019/02/28 | 8008 | systems/texlive/tlnet/archive/latexfileinfo-pkgs.doc.r26760.tar.xz
2019/02/28 | 856 | systems/texlive/tlnet/archive/latexfileinfo-pkgs.r26760.tar.xz
2019/02/28 | 8120 | systems/texlive/tlnet/archive/latexfileinfo-pkgs.source.r26760.tar.xz
@@ -302693,10 +302696,10 @@
2019/02/28 | 348 | systems/texlive/tlnet/archive/latex-papersize.x86_64-linuxmusl.r46840.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latex-papersize.x86_64-linux.r42296.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/latex-papersize.x86_64-solaris.r42296.tar.xz
-2023/11/02 | 238136 | systems/texlive/tlnet/archive/latex.r68720.tar.xz
+2024/01/17 | 238228 | systems/texlive/tlnet/archive/latex.r69443.tar.xz
2019/02/28 | 5020492 | systems/texlive/tlnet/archive/latex-refsheet.doc.r45076.tar.xz
2019/02/28 | 480 | systems/texlive/tlnet/archive/latex-refsheet.r45076.tar.xz
-2023/11/02 | 750128 | systems/texlive/tlnet/archive/latex.source.r68720.tar.xz
+2024/01/17 | 750220 | systems/texlive/tlnet/archive/latex.source.r69443.tar.xz
2023/11/03 | 5316020 | systems/texlive/tlnet/archive/latex-tools-dev.doc.r68730.tar.xz
2023/11/03 | 43360 | systems/texlive/tlnet/archive/latex-tools-dev.r68730.tar.xz
2023/11/03 | 229376 | systems/texlive/tlnet/archive/latex-tools-dev.source.r68730.tar.xz
@@ -302829,8 +302832,8 @@
2023/09/22 | 1303788 | systems/texlive/tlnet/archive/libertinus-otf.doc.r68333.tar.xz
2023/09/22 | 4252 | systems/texlive/tlnet/archive/libertinus-otf.r68333.tar.xz
2022/01/24 | 972 | systems/texlive/tlnet/archive/libertinus.r61719.tar.xz
-2023/12/09 | 1533708 | systems/texlive/tlnet/archive/libertinust1math.doc.r69062.tar.xz
-2023/12/09 | 1248760 | systems/texlive/tlnet/archive/libertinust1math.r69062.tar.xz
+2024/01/17 | 1533744 | systems/texlive/tlnet/archive/libertinust1math.doc.r69440.tar.xz
+2024/01/17 | 1248764 | systems/texlive/tlnet/archive/libertinust1math.r69440.tar.xz
2023/06/24 | 1447396 | systems/texlive/tlnet/archive/libertinus-type1.doc.r67450.tar.xz
2023/06/24 | 8564832 | systems/texlive/tlnet/archive/libertinus-type1.r67450.tar.xz
2022/11/14 | 159184 | systems/texlive/tlnet/archive/libgreek.doc.r65004.tar.xz
@@ -303743,13 +303746,13 @@
2023/10/12 | 396 | systems/texlive/tlnet/archive/memoize.amd64-freebsd.r68515.tar.xz
2023/10/12 | 392 | systems/texlive/tlnet/archive/memoize.amd64-netbsd.r68515.tar.xz
2023/10/12 | 396 | systems/texlive/tlnet/archive/memoize.armhf-linux.r68515.tar.xz
-2024/01/04 | 2501412 | systems/texlive/tlnet/archive/memoize.doc.r69285.tar.xz
+2024/01/17 | 2501444 | systems/texlive/tlnet/archive/memoize.doc.r69456.tar.xz
2023/10/12 | 396 | systems/texlive/tlnet/archive/memoize.i386-freebsd.r68515.tar.xz
2023/10/12 | 396 | systems/texlive/tlnet/archive/memoize.i386-linux.r68515.tar.xz
2023/10/12 | 396 | systems/texlive/tlnet/archive/memoize.i386-netbsd.r68515.tar.xz
2023/10/12 | 392 | systems/texlive/tlnet/archive/memoize.i386-solaris.r68515.tar.xz
-2024/01/04 | 27692 | systems/texlive/tlnet/archive/memoize.r69285.tar.xz
-2024/01/04 | 38860 | systems/texlive/tlnet/archive/memoize.source.r69285.tar.xz
+2024/01/17 | 27704 | systems/texlive/tlnet/archive/memoize.r69456.tar.xz
+2024/01/17 | 38880 | systems/texlive/tlnet/archive/memoize.source.r69456.tar.xz
2023/10/12 | 396 | systems/texlive/tlnet/archive/memoize.universal-darwin.r68515.tar.xz
2023/10/12 | 2404 | systems/texlive/tlnet/archive/memoize.windows.r68515.tar.xz
2023/10/12 | 400 | systems/texlive/tlnet/archive/memoize.x86_64-cygwin.r68515.tar.xz
@@ -304505,8 +304508,8 @@
2024/01/12 | 6054248 | systems/texlive/tlnet/archive/newtx.r69381.tar.xz
2023/05/09 | 263224 | systems/texlive/tlnet/archive/newtxsf.doc.r67051.tar.xz
2023/05/09 | 105976 | systems/texlive/tlnet/archive/newtxsf.r67051.tar.xz
-2020/03/24 | 171356 | systems/texlive/tlnet/archive/newtxtt.doc.r54512.tar.xz
-2020/03/24 | 116976 | systems/texlive/tlnet/archive/newtxtt.r54512.tar.xz
+2024/01/17 | 194632 | systems/texlive/tlnet/archive/newtxtt.doc.r69451.tar.xz
+2024/01/17 | 117944 | systems/texlive/tlnet/archive/newtxtt.r69451.tar.xz
2019/02/28 | 389624 | systems/texlive/tlnet/archive/newunicodechar.doc.r47382.tar.xz
2019/02/28 | 2116 | systems/texlive/tlnet/archive/newunicodechar.r47382.tar.xz
2019/02/28 | 6964 | systems/texlive/tlnet/archive/newunicodechar.source.r47382.tar.xz
@@ -305477,9 +305480,9 @@
2020/07/28 | 2536 | systems/texlive/tlnet/archive/pinoutikz.r55966.tar.xz
2019/02/28 | 110192 | systems/texlive/tlnet/archive/pitex.doc.r24731.tar.xz
2019/02/28 | 22664 | systems/texlive/tlnet/archive/pitex.r24731.tar.xz
-2024/01/07 | 813280 | systems/texlive/tlnet/archive/piton.doc.r69320.tar.xz
-2024/01/07 | 16704 | systems/texlive/tlnet/archive/piton.r69320.tar.xz
-2024/01/07 | 48396 | systems/texlive/tlnet/archive/piton.source.r69320.tar.xz
+2024/01/17 | 830348 | systems/texlive/tlnet/archive/piton.doc.r69437.tar.xz
+2024/01/17 | 17356 | systems/texlive/tlnet/archive/piton.r69437.tar.xz
+2024/01/17 | 49484 | systems/texlive/tlnet/archive/piton.source.r69437.tar.xz
2019/02/28 | 317704 | systems/texlive/tlnet/archive/pittetd.doc.r15878.tar.xz
2019/02/28 | 8884 | systems/texlive/tlnet/archive/pittetd.r15878.tar.xz
2019/02/28 | 38588 | systems/texlive/tlnet/archive/pittetd.source.r15878.tar.xz
@@ -305699,9 +305702,9 @@
2019/02/28 | 317360 | systems/texlive/tlnet/archive/ppr-prv.doc.r15878.tar.xz
2019/02/28 | 5596 | systems/texlive/tlnet/archive/ppr-prv.r15878.tar.xz
2019/02/28 | 9460 | systems/texlive/tlnet/archive/ppr-prv.source.r15878.tar.xz
-2023/11/10 | 789572 | systems/texlive/tlnet/archive/ppt-slides.doc.r68764.tar.xz
-2023/11/10 | 4204 | systems/texlive/tlnet/archive/ppt-slides.r68764.tar.xz
-2023/11/10 | 6516 | systems/texlive/tlnet/archive/ppt-slides.source.r68764.tar.xz
+2024/01/17 | 791348 | systems/texlive/tlnet/archive/ppt-slides.doc.r69458.tar.xz
+2024/01/17 | 4112 | systems/texlive/tlnet/archive/ppt-slides.r69458.tar.xz
+2024/01/17 | 6680 | systems/texlive/tlnet/archive/ppt-slides.source.r69458.tar.xz
2022/01/24 | 386136 | systems/texlive/tlnet/archive/pracjourn.doc.r61719.tar.xz
2022/01/24 | 4628 | systems/texlive/tlnet/archive/pracjourn.r61719.tar.xz
2022/01/24 | 15248 | systems/texlive/tlnet/archive/pracjourn.source.r61719.tar.xz
@@ -306547,8 +306550,8 @@
2019/02/28 | 57844 | systems/texlive/tlnet/archive/robustcommand.doc.r15878.tar.xz
2019/02/28 | 1176 | systems/texlive/tlnet/archive/robustcommand.r15878.tar.xz
2019/02/28 | 2852 | systems/texlive/tlnet/archive/robustcommand.source.r15878.tar.xz
-2023/11/15 | 691812 | systems/texlive/tlnet/archive/robust-externalize.doc.r68842.tar.xz
-2023/11/15 | 27184 | systems/texlive/tlnet/archive/robust-externalize.r68842.tar.xz
+2024/01/17 | 1342484 | systems/texlive/tlnet/archive/robust-externalize.doc.r69459.tar.xz
+2024/01/17 | 35040 | systems/texlive/tlnet/archive/robust-externalize.r69459.tar.xz
2019/02/28 | 420516 | systems/texlive/tlnet/archive/robustindex.doc.r49877.tar.xz
2019/02/28 | 5032 | systems/texlive/tlnet/archive/robustindex.r49877.tar.xz
2019/02/28 | 19996 | systems/texlive/tlnet/archive/roex.r45818.tar.xz
@@ -307689,13 +307692,13 @@
2023/08/16 | 108860 | systems/texlive/tlnet/archive/tex4ht.amd64-freebsd.r67940.tar.xz
2023/08/16 | 87320 | systems/texlive/tlnet/archive/tex4ht.amd64-netbsd.r67940.tar.xz
2023/08/16 | 69948 | systems/texlive/tlnet/archive/tex4ht.armhf-linux.r67940.tar.xz
-2024/01/14 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r69412.tar.xz
+2024/01/17 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r69463.tar.xz
2023/08/16 | 93764 | systems/texlive/tlnet/archive/tex4ht.i386-freebsd.r67940.tar.xz
2023/08/16 | 91236 | systems/texlive/tlnet/archive/tex4ht.i386-linux.r67940.tar.xz
2023/08/16 | 76184 | systems/texlive/tlnet/archive/tex4ht.i386-netbsd.r67940.tar.xz
2023/08/16 | 83936 | systems/texlive/tlnet/archive/tex4ht.i386-solaris.r67940.tar.xz
-2024/01/14 | 1116136 | systems/texlive/tlnet/archive/tex4ht.r69412.tar.xz
-2024/01/14 | 1484084 | systems/texlive/tlnet/archive/tex4ht.source.r69412.tar.xz
+2024/01/17 | 1116308 | systems/texlive/tlnet/archive/tex4ht.r69463.tar.xz
+2024/01/17 | 1479264 | systems/texlive/tlnet/archive/tex4ht.source.r69463.tar.xz
2023/08/16 | 184636 | systems/texlive/tlnet/archive/tex4ht.universal-darwin.r67940.tar.xz
2023/10/23 | 62056 | systems/texlive/tlnet/archive/tex4ht.windows.r68621.tar.xz
2023/08/16 | 57992 | systems/texlive/tlnet/archive/tex4ht.x86_64-cygwin.r67940.tar.xz
@@ -307973,7 +307976,7 @@
2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz
-2024/01/15 | 431400 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69415.tar.xz
+2024/01/17 | 431496 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69447.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
@@ -307995,7 +307998,7 @@
2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz
-2024/01/15 | 114276 | systems/texlive/tlnet/archive/texlive-scripts.r69415.tar.xz
+2024/01/17 | 114280 | systems/texlive/tlnet/archive/texlive-scripts.r69447.tar.xz
2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz
2023/05/14 | 60312 | systems/texlive/tlnet/archive/texlive-scripts.windows.r67095.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz
@@ -308049,12 +308052,12 @@
2021/12/17 | 340 | systems/texlive/tlnet/archive/texlogsieve.amd64-freebsd.r61328.tar.xz
2021/12/17 | 340 | systems/texlive/tlnet/archive/texlogsieve.amd64-netbsd.r61328.tar.xz
2021/12/17 | 336 | systems/texlive/tlnet/archive/texlogsieve.armhf-linux.r61328.tar.xz
-2023/12/09 | 114904 | systems/texlive/tlnet/archive/texlogsieve.doc.r69072.tar.xz
+2024/01/17 | 115048 | systems/texlive/tlnet/archive/texlogsieve.doc.r69436.tar.xz
2021/12/17 | 340 | systems/texlive/tlnet/archive/texlogsieve.i386-freebsd.r61328.tar.xz
2021/12/17 | 340 | systems/texlive/tlnet/archive/texlogsieve.i386-linux.r61328.tar.xz
2021/12/17 | 336 | systems/texlive/tlnet/archive/texlogsieve.i386-netbsd.r61328.tar.xz
2021/12/17 | 336 | systems/texlive/tlnet/archive/texlogsieve.i386-solaris.r61328.tar.xz
-2023/12/09 | 46836 | systems/texlive/tlnet/archive/texlogsieve.r69072.tar.xz
+2024/01/17 | 46980 | systems/texlive/tlnet/archive/texlogsieve.r69436.tar.xz
2021/12/17 | 340 | systems/texlive/tlnet/archive/texlogsieve.universal-darwin.r61328.tar.xz
2023/02/20 | 2308 | systems/texlive/tlnet/archive/texlogsieve.windows.r65891.tar.xz
2021/12/17 | 340 | systems/texlive/tlnet/archive/texlogsieve.x86_64-cygwin.r61328.tar.xz
@@ -308501,18 +308504,18 @@
2019/02/28 | 175188 | systems/texlive/tlnet/archive/titling.doc.r15878.tar.xz
2019/02/28 | 2524 | systems/texlive/tlnet/archive/titling.r15878.tar.xz
2019/02/28 | 14800 | systems/texlive/tlnet/archive/titling.source.r15878.tar.xz
-2023/02/24 | 373140 | systems/texlive/tlnet/archive/tkz-base.doc.r66115.tar.xz
-2023/02/24 | 16308 | systems/texlive/tlnet/archive/tkz-base.r66115.tar.xz
+2024/01/17 | 368052 | systems/texlive/tlnet/archive/tkz-base.doc.r69460.tar.xz
+2024/01/17 | 16296 | systems/texlive/tlnet/archive/tkz-base.r69460.tar.xz
2021/01/22 | 924656 | systems/texlive/tlnet/archive/tkz-berge.doc.r57485.tar.xz
2021/01/22 | 8444 | systems/texlive/tlnet/archive/tkz-berge.r57485.tar.xz
2023/11/10 | 194800 | systems/texlive/tlnet/archive/tkz-bernoulli.doc.r68780.tar.xz
2023/11/10 | 2588 | systems/texlive/tlnet/archive/tkz-bernoulli.r68780.tar.xz
2023/10/27 | 34436 | systems/texlive/tlnet/archive/tkz-doc.doc.r68665.tar.xz
2023/10/27 | 6744 | systems/texlive/tlnet/archive/tkz-doc.r68665.tar.xz
-2023/12/25 | 684280 | systems/texlive/tlnet/archive/tkz-elements.doc.r69213.tar.xz
-2023/12/25 | 16596 | systems/texlive/tlnet/archive/tkz-elements.r69213.tar.xz
-2023/11/08 | 1175256 | systems/texlive/tlnet/archive/tkz-euclide.doc.r68747.tar.xz
-2023/11/08 | 41924 | systems/texlive/tlnet/archive/tkz-euclide.r68747.tar.xz
+2024/01/17 | 747488 | systems/texlive/tlnet/archive/tkz-elements.doc.r69461.tar.xz
+2024/01/17 | 17216 | systems/texlive/tlnet/archive/tkz-elements.r69461.tar.xz
+2024/01/17 | 1172932 | systems/texlive/tlnet/archive/tkz-euclide.doc.r69462.tar.xz
+2024/01/17 | 41944 | systems/texlive/tlnet/archive/tkz-euclide.r69462.tar.xz
2022/07/16 | 96832 | systems/texlive/tlnet/archive/tkzexample.doc.r63908.tar.xz
2022/07/16 | 3872 | systems/texlive/tlnet/archive/tkzexample.r63908.tar.xz
2022/02/09 | 749696 | systems/texlive/tlnet/archive/tkz-fct.doc.r61949.tar.xz
@@ -309885,8 +309888,8 @@
2019/02/28 | 1384 | systems/texlive/tlnet/archive/zwgetfdate.r15878.tar.xz
2022/04/19 | 646716 | systems/texlive/tlnet/archive/zwpagelayout.doc.r63074.tar.xz
2022/04/19 | 8880 | systems/texlive/tlnet/archive/zwpagelayout.r63074.tar.xz
-2021/10/24 | 631596 | systems/texlive/tlnet/archive/zx-calculus.doc.r60838.tar.xz
-2021/10/24 | 19132 | systems/texlive/tlnet/archive/zx-calculus.r60838.tar.xz
+2024/01/17 | 1158936 | systems/texlive/tlnet/archive/zx-calculus.doc.r69455.tar.xz
+2024/01/17 | 38400 | systems/texlive/tlnet/archive/zx-calculus.r69455.tar.xz
2019/02/28 | 1708 | systems/texlive/tlnet/archive/zxjafbfont.doc.r28539.tar.xz
2019/02/28 | 1052 | systems/texlive/tlnet/archive/zxjafbfont.r28539.tar.xz
2022/03/21 | 171908 | systems/texlive/tlnet/archive/zxjafont.doc.r62864.tar.xz
@@ -309896,16 +309899,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2024/01/07 | 125782 | systems/texlive/tlnet/install-tl
-2024/01/15 | 5747621 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2024/01/15 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2024/01/15 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/01/17 | 5745739 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/01/17 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/01/17 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/05/13 | 5083 | systems/texlive/tlnet/install-tl-windows.bat
-2024/01/15 | 21032224 | systems/texlive/tlnet/install-tl-windows.exe
-2024/01/15 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2024/01/15 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/01/15 | 26032969 | systems/texlive/tlnet/install-tl.zip
-2024/01/15 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2024/01/15 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/01/17 | 21029762 | systems/texlive/tlnet/install-tl-windows.exe
+2024/01/17 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/01/17 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/01/17 | 26032746 | systems/texlive/tlnet/install-tl.zip
+2024/01/17 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/01/17 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2023/03/19 | 1229 | systems/texlive/tlnet/README.md
2023/03/19 | 0 | systems/texlive/tlnet/TEXLIVE_2023
2024/01/02 | 9011 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -309913,9 +309916,9 @@
2016/04/12 | 0 | systems/texlive/tlnet/tlpkg/gpg/secring.gpg
2022/09/11 | 2395 | systems/texlive/tlnet/tlpkg/gpg/tl-key-extension.txt
2024/01/02 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
-2023/09/20 | 50622 | systems/texlive/tlnet/tlpkg/installer/config.guess
+2024/01/16 | 50726 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2024/01/14 | 7407 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2024/01/16 | 7407 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/12/13 | 226639 | 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
@@ -309957,17 +309960,17 @@
2023/02/21 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2024/01/07 | 5844 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2023/04/08 | 28167 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2024/01/15 | 18800987 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2024/01/15 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/01/17 | 18803079 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/01/17 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2023/10/16 | 87924 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2024/01/15 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2024/01/15 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/01/15 | 2520276 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/01/17 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/01/17 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/01/17 | 2521520 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/02/20 | 58928 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2023/06/11 | 42749 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2023/02/21 | 16138 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
2024/01/07 | 158142 | systems/texlive/tlnet/tlpkg/TeXLive/TLUtils.pm
-2023/02/21 | 38011 | systems/texlive/tlnet/tlpkg/TeXLive/TLWinGoo.pm
+2024/01/15 | 37373 | systems/texlive/tlnet/tlpkg/TeXLive/TLWinGoo.pm
2021/05/20 | 6032 | systems/texlive/tlnet/tlpkg/TeXLive/trans.pl
2023/02/20 | 76288 | systems/texlive/tlnet/tlpkg/tlperl/bin/libgcc_s_seh-1.dll
2023/02/20 | 1424384 | systems/texlive/tlnet/tlpkg/tlperl/bin/libstdc++-6.dll
@@ -321035,7 +321038,7 @@
2014/07/05 | 611 | systems/win32/yandy/README
2014/07/05 | 1004628 | systems/win32/yandy/yandy-src.tar.xz
2014/07/05 | 1012416 | systems/win32/yandy.zip
-2024/01/17 | 186 | timestamp
+2024/01/18 | 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 99ba079dbf..38009afe6f 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index ce184f4f5e..1a7c323122 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,4 +1,227 @@
-2024/01/16 | 958 | biblio/bibtex/utils/bibcop/bibcop.1
+2024/01/17 | 99929 | macros/latex/contrib/pagelayout/doc/quickstart-3.svg
+2024/01/17 | 9939474 | support/latexindent/bin/windows/latexindent.exe
+2024/01/17 | 9859 | support/latexindent/LatexIndent/Lines.pm
+2024/01/17 | 958 | biblio/bibtex/utils/bibcop/bibcop.1
+2024/01/17 | 955 | macros/latex/contrib/pagelayout/doc/example-template.tex
+2024/01/17 | 922644 | info/kaytannollista-latexia/kaytannollista-latexia.pdf
+2024/01/17 | 8993 | macros/latex/contrib/pagelayout/scripts/pagelayoutapi
+2024/01/17 | 8993 | macros/latex/contrib/pagelayout/doc/banner.pdf
+2024/01/17 | 8893 | support/latexindent/LatexIndent/IfElseFi.pm
+2024/01/17 | 88547 | info/kaytannollista-latexia/luku-merkintakieli.tex
+2024/01/17 | 88205 | macros/latex/contrib/easybook/easybook.tex
+2024/01/17 | 8819 | support/latexindent/LatexIndent/FileExtension.pm
+2024/01/17 | 838 | support/latexindent/LatexIndent/Version.pm
+2024/01/17 | 8346 | support/latexindent/LatexIndent/Environment.pm
+2024/01/17 | 832 | macros/latex/contrib/unicode-math-input/README
+2024/01/17 | 830348 | systems/texlive/tlnet/archive/piton.doc.r69437.tar.xz
+2024/01/17 | 8180 | systems/texlive/tlnet/archive/bibcop.r69454.tar.xz
+2024/01/17 | 817 | macros/latex/contrib/pagelayout/doc/pagelayout-manual-layout-guides.tex
+2024/01/17 | 80 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln8.tex
+2024/01/17 | 80 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln7.tex
+2024/01/17 | 8045 | macros/latex/contrib/pythonimmediate/pythonimmediate.sty
+2024/01/17 | 80018 | macros/latex/contrib/preview/preview.dtx
+2024/01/17 | 791348 | systems/texlive/tlnet/archive/ppt-slides.doc.r69458.tar.xz
+2024/01/17 | 758 | macros/latex/contrib/pagelayout/doc/example-graphic.tex
+2024/01/17 | 75632 | macros/latex/contrib/easybook/easybook.dtx
+2024/01/17 | 75292 | macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf
+2024/01/17 | 750220 | systems/texlive/tlnet/archive/latex.source.r69443.tar.xz
+2024/01/17 | 747488 | systems/texlive/tlnet/archive/tkz-elements.doc.r69461.tar.xz
+2024/01/17 | 737 | macros/latex/contrib/pythonimmediate/README
+2024/01/17 | 7379 | support/latexindent/LatexIndent/MandatoryArgument.pm
+2024/01/17 | 7161 | support/latexindent/documentation/figure-schematic.png
+2024/01/17 | 7072 | systems/texlive/tlnet/archive/collection-latexextra.r69452.tar.xz
+2024/01/17 | 6953 | support/latexindent/LatexIndent/TrailingComments.pm
+2024/01/17 | 6890 | support/latexindent/LatexIndent/Item.pm
+2024/01/17 | 68177 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
+2024/01/17 | 6680 | systems/texlive/tlnet/archive/ppt-slides.source.r69458.tar.xz
+2024/01/17 | 6664 | support/latexindent/documentation/contributors.bib
+2024/01/17 | 6620 | support/latexindent/LatexIndent/OptionalArgument.pm
+2024/01/17 | 652 | systems/texlive/tlnet/archive/collection-xetex.r69452.tar.xz
+2024/01/17 | 6493 | macros/latex/contrib/pagelayout/doc/pagelayout-manual-layout-guides.pdf
+2024/01/17 | 641945 | macros/latex/contrib/easybook.zip
+2024/01/17 | 6402796 | support/latexindent/bin/macos/latexindent
+2024/01/17 | 6391 | support/latexindent/LatexIndent/Else.pm
+2024/01/17 | 6305 | macros/latex/contrib/pagelayout/doc/example-template.pdf
+2024/01/17 | 6277 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
+2024/01/17 | 625352 | systems/texlive/tlnet/archive/easybook.doc.r69457.tar.xz
+2024/01/17 | 6240 | systems/texlive/tlnet/archive/bibcop.source.r69454.tar.xz
+2024/01/17 | 6173561 | support/latexindent/bin/linux/latexindent
+2024/01/17 | 61245 | support/latexindent/documentation/latexindent-yaml-schema.json
+2024/01/17 | 60 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln2.tex
+2024/01/17 | 599045 | macros/latex/contrib/easybook/easybook.pdf
+2024/01/17 | 5857 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
+2024/01/17 | 5851 | info/kaytannollista-latexia/README.md
+2024/01/17 | 5792 | systems/texlive/tlnet/archive/bodeplot.r69442.tar.xz
+2024/01/17 | 5771 | macros/latex/contrib/pagelayout/doc/quickstart-2.svg
+2024/01/17 | 5745739 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/01/17 | 554 | macros/latex/contrib/runcode/generated/testWithrunR.tex
+2024/01/17 | 554784 | systems/texlive/tlnet/archive/bodeplot.doc.r69442.tar.xz
+2024/01/17 | 5478 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
+2024/01/17 | 54602 | support/latexindent/LatexIndent/GetYamlSettings.pm
+2024/01/17 | 5432 | support/latexindent/LatexIndent/Check.pm
+2024/01/17 | 5240 | systems/texlive/tlnet/archive/amnestyreport.r69439.tar.xz
+2024/01/17 | 5100 | biblio/bibtex/utils/bibcop/bibcop-logo.pdf
+2024/01/17 | 4 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln6.tex
+2024/01/17 | 49484 | systems/texlive/tlnet/archive/piton.source.r69437.tar.xz
+2024/01/17 | 4935296 | install/macros/latex/contrib/pagelayout.tds.zip
+2024/01/17 | 4932119 | macros/latex/contrib/pagelayout.zip
+2024/01/17 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/01/17 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/01/17 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/01/17 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/01/17 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/01/17 | 4860 | support/latexindent/LatexIndent/BlankLines.pm
+2024/01/17 | 46980 | systems/texlive/tlnet/archive/texlogsieve.r69436.tar.xz
+2024/01/17 | 447179 | macros/latex/contrib/pythonimmediate.zip
+2024/01/17 | 443043 | support/latexindent/documentation/latexindent.tex
+2024/01/17 | 44096 | support/latexindent/documentation/logo.png
+2024/01/17 | 4404 | support/latexindent/LatexIndent/RoundBrackets.pm
+2024/01/17 | 4402 | support/latexindent/documentation/latex-indent.bib
+2024/01/17 | 4388 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
+2024/01/17 | 437287 | macros/latex/contrib/pythonimmediate/pythonimmediate.pdf
+2024/01/17 | 431496 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69447.tar.xz
+2024/01/17 | 421177 | macros/latex/contrib/runcode.zip
+2024/01/17 | 41944 | systems/texlive/tlnet/archive/tkz-euclide.r69462.tar.xz
+2024/01/17 | 4115596 | biblio/ctan-bibdata.zip
+2024/01/17 | 4112 | systems/texlive/tlnet/archive/ppt-slides.r69458.tar.xz
+2024/01/17 | 4031 | macros/latex/contrib/pagelayout/README.md
+2024/01/17 | 38880 | systems/texlive/tlnet/archive/memoize.source.r69456.tar.xz
+2024/01/17 | 38400 | systems/texlive/tlnet/archive/zx-calculus.r69455.tar.xz
+2024/01/17 | 37253 | macros/latex/contrib/pagelayout/doc/example-graphic.pdf
+2024/01/17 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/01/17 | 368052 | systems/texlive/tlnet/archive/tkz-base.doc.r69460.tar.xz
+2024/01/17 | 367094 | biblio/bibtex/utils/bibcop.zip
+2024/01/17 | 35 | macros/latex/contrib/pythonimmediate/DEPENDS.txt
+2024/01/17 | 359769 | macros/latex/contrib/preview.zip
+2024/01/17 | 359716 | systems/texlive/tlnet/archive/bibcop.doc.r69454.tar.xz
+2024/01/17 | 35225 | support/latexindent/LatexIndent/Wrap.pm
+2024/01/17 | 3517 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
+2024/01/17 | 3515 | support/latexindent/LatexIndent/Replacement.pm
+2024/01/17 | 35040 | systems/texlive/tlnet/archive/robust-externalize.r69459.tar.xz
+2024/01/17 | 34918312 | systems/texlive/tlnet/archive/latex.doc.r69443.tar.xz
+2024/01/17 | 3490 | macros/latex/contrib/pythonimmediate/pythonimmediate_helper.lua
+2024/01/17 | 347804 | biblio/bibtex/utils/bibcop/bibcop.pdf
+2024/01/17 | 343466 | macros/latex/contrib/preview/preview.pdf
+2024/01/17 | 3415 | support/latexindent/latexindent.pl
+2024/01/17 | 3378 | macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1
+2024/01/17 | 3353 | support/latexindent/LatexIndent/Tokens.pm
+2024/01/17 | 321037 | info/kaytannollista-latexia/luku-rakenne.tex
+2024/01/17 | 31780 | macros/latex/contrib/pagelayout/doc/quickstart-1.svg
+2024/01/17 | 3114 | macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1.md
+2024/01/17 | 3039 | info/kaytannollista-latexia/kirjallisuutta.bib
+2024/01/17 | 29 | info/kaytannollista-latexia/versio.tex
+2024/01/17 | 2917 | biblio/bibtex/utils/bibcop/README.md
+2024/01/17 | 2916987 | macros/latex/contrib/pagelayout/tests.zip
+2024/01/17 | 28945 | macros/latex/contrib/unicode-math-input/unicode-math-input.sty
+2024/01/17 | 2839741 | biblio/ctan-bibdata/ctan.bib
+2024/01/17 | 27704 | systems/texlive/tlnet/archive/memoize.r69456.tar.xz
+2024/01/17 | 27422 | support/latexindent/LatexIndent/Verbatim.pm
+2024/01/17 | 2733 | support/latexindent/LatexIndent/Preamble.pm
+2024/01/17 | 2712 | support/latexindent/LatexIndent/Switches.pm
+2024/01/17 | 26686 | biblio/bibtex/utils/bibcop/bibcop.pl
+2024/01/17 | 2633 | info/kaytannollista-latexia/luku-esipuhe.tex
+2024/01/17 | 2628 | biblio/bibtex/utils/bibcop/bibcop.ins
+2024/01/17 | 26032746 | systems/texlive/tlnet/install-tl.zip
+2024/01/17 | 25 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln5.tex
+2024/01/17 | 25 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln4.tex
+2024/01/17 | 2576 | macros/latex/contrib/preview/README
+2024/01/17 | 25334 | support/latexindent/LatexIndent/Document.pm
+2024/01/17 | 2521520 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/01/17 | 251370 | macros/latex/contrib/runcode/runcode.pdf
+2024/01/17 | 2501444 | systems/texlive/tlnet/archive/memoize.doc.r69456.tar.xz
+2024/01/17 | 24795 | macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex
+2024/01/17 | 24449 | support/latexindent/LatexIndent/Arguments.pm
+2024/01/17 | 238228 | systems/texlive/tlnet/archive/latex.r69443.tar.xz
+2024/01/17 | 2320 | support/latexindent/LatexIndent/Logger.pm
+2024/01/17 | 22321 | support/latexindent/LatexIndent/Sentence.pm
+2024/01/17 | 22214 | support/latexindent/defaultSettings.yaml
+2024/01/17 | 2212 | macros/latex/contrib/pagelayout/doc/example-grid.tex
+2024/01/17 | 21 | macros/latex/contrib/unicode-math-input/DEPENDS.txt
+2024/01/17 | 21323 | info/kaytannollista-latexia/luku-erikoiset.tex
+2024/01/17 | 211 | biblio/bibtex/utils/bibcop/DEPENDS.txt
+2024/01/17 | 21029762 | systems/texlive/tlnet/install-tl-windows.exe
+2024/01/17 | 21025 | macros/latex/contrib/unicode-math-input/unicode-math-input.tex
+2024/01/17 | 20870 | support/latexindent/LatexIndent/Indent.pm
+2024/01/17 | 20691 | info/kaytannollista-latexia/luku-valmistautuminen.tex
+2024/01/17 | 20653 | macros/latex/contrib/pythonimmediate/pythonimmediate.tex
+2024/01/17 | 2008 | support/latexindent/README
+2024/01/17 | 19889 | macros/latex/contrib/unicode-math-input/unicode-math-input-script.py
+2024/01/17 | 1985 | macros/latex/contrib/pagelayout/doc/example-book.tex
+2024/01/17 | 19644 | macros/latex/contrib/runcode/runcode.sty
+2024/01/17 | 194632 | systems/texlive/tlnet/archive/newtxtt.doc.r69451.tar.xz
+2024/01/17 | 19040 | macros/latex/contrib/pagelayout/LICENSE
+2024/01/17 | 18978 | macros/latex/contrib/runcode/runcode_troubleshoot.tex
+2024/01/17 | 18803079 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/01/17 | 1870 | macros/latex/contrib/pagelayout/doc/quickstart.tex
+2024/01/17 | 18591 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
+2024/01/17 | 17433 | macros/latex/contrib/pagelayout/doc/banner.svg
+2024/01/17 | 1736 | systems/texlive/tlnet/archive/collection-publishers.r69439.tar.xz
+2024/01/17 | 17356 | systems/texlive/tlnet/archive/piton.r69437.tar.xz
+2024/01/17 | 17324 | systems/texlive/tlnet/archive/bodeplot.source.r69442.tar.xz
+2024/01/17 | 17216 | systems/texlive/tlnet/archive/tkz-elements.r69461.tar.xz
+2024/01/17 | 17022 | macros/latex/contrib/runcode/runcode.tex
+2024/01/17 | 1680 | macros/latex/contrib/pagelayout/scripts/textestvis.1
+2024/01/17 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/01/17 | 16612 | systems/texlive/tlnet/archive/easybook.r69457.tar.xz
+2024/01/17 | 16480 | systems/texlive/tlnet/archive/easybook.source.r69457.tar.xz
+2024/01/17 | 16296 | systems/texlive/tlnet/archive/tkz-base.r69460.tar.xz
+2024/01/17 | 16186 | biblio/bibtex/utils/bibcop/bibcop.dtx
+2024/01/17 | 161688 | macros/latex/contrib/runcode/runcode_troubleshoot.pdf
+2024/01/17 | 1594 | macros/latex/contrib/preview/preview.ins
+2024/01/17 | 1558 | support/latexindent/latexindent-module-installer.pl
+2024/01/17 | 1544912 | systems/texlive/tlnet/archive/amnestyreport.doc.r69439.tar.xz
+2024/01/17 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/01/17 | 153857 | macros/latex/contrib/pagelayout/tex/pagelayout.cls
+2024/01/17 | 1533744 | systems/texlive/tlnet/archive/libertinust1math.doc.r69440.tar.xz
+2024/01/17 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/01/17 | 1500 | support/latexindent/LatexIndent/DoubleBackSlash.pm
+2024/01/17 | 1479264 | systems/texlive/tlnet/archive/tex4ht.source.r69463.tar.xz
+2024/01/17 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/01/17 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/01/17 | 1449 | macros/latex/contrib/runcode/README
+2024/01/17 | 14425 | info/kaytannollista-latexia/kaytannollista-latexia.tex
+2024/01/17 | 1419 | macros/latex/contrib/pagelayout/scripts/textestvis.1.md
+2024/01/17 | 1419852 | macros/latex/contrib/pagelayout/doc/kopi.jpg
+2024/01/17 | 141085 | macros/latex/contrib/unicode-math-input.zip
+2024/01/17 | 13935 | support/latexindent/LatexIndent/Special.pm
+2024/01/17 | 137910 | macros/latex/contrib/pagelayout/doc/example-book.pdf
+2024/01/17 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r69463.tar.xz
+2024/01/17 | 135554 | info/kaytannollista-latexia/luku-asetukset.tex
+2024/01/17 | 13470 | support/latexindent/LatexIndent/HiddenChildren.pm
+2024/01/17 | 13435 | support/latexindent/LatexIndent/LogFile.pm
+2024/01/17 | 1342484 | systems/texlive/tlnet/archive/robust-externalize.doc.r69459.tar.xz
+2024/01/17 | 133420 | macros/latex/contrib/pagelayout/doc/example-borders-and-shadows.pdf
+2024/01/17 | 12 | macros/latex/contrib/runcode/generated/runcode_troubleshoot_inln9.tex
+2024/01/17 | 1280496 | support/latexindent/documentation/latexindent.pdf
+2024/01/17 | 12686 | info/kaytannollista-latexia/tavutusvihjeet.tex
+2024/01/17 | 12653 | support/latexindent/LatexIndent/Braces.pm
+2024/01/17 | 1248764 | systems/texlive/tlnet/archive/libertinust1math.r69440.tar.xz
+2024/01/17 | 12426251 | support/latexindent.zip
+2024/01/17 | 12366 | info/kaytannollista-latexia/luku-muuta.tex
+2024/01/17 | 12199 | macros/latex/contrib/pagelayout/scripts/textestvis
+2024/01/17 | 12036 | macros/latex/contrib/pagelayout/doc/example-grid.pdf
+2024/01/17 | 1191 | macros/latex/contrib/pagelayout/doc/banner.tex
+2024/01/17 | 117944 | systems/texlive/tlnet/archive/newtxtt.r69451.tar.xz
+2024/01/17 | 1172932 | systems/texlive/tlnet/archive/tkz-euclide.doc.r69462.tar.xz
+2024/01/17 | 1158936 | systems/texlive/tlnet/archive/zx-calculus.doc.r69455.tar.xz
+2024/01/17 | 11509 | support/latexindent/LatexIndent/FileContents.pm
+2024/01/17 | 115048 | systems/texlive/tlnet/archive/texlogsieve.doc.r69436.tar.xz
+2024/01/17 | 114280 | systems/texlive/tlnet/archive/texlive-scripts.r69447.tar.xz
+2024/01/17 | 11396 | systems/texlive/tlnet/archive/amnestyreport.source.r69439.tar.xz
+2024/01/17 | 11206 | support/latexindent/LatexIndent/Heading.pm
+2024/01/17 | 1116308 | systems/texlive/tlnet/archive/tex4ht.r69463.tar.xz
+2024/01/17 | 11123 | macros/latex/contrib/pagelayout/doc/example-text.pdf
+2024/01/17 | 1097 | macros/latex/contrib/pagelayout/doc/example-borders-and-shadows.tex
+2024/01/17 | 1083 | biblio/bibtex/utils/bibcop/LICENSE.txt
+2024/01/17 | 1076305 | info/kaytannollista-latexia.zip
+2024/01/17 | 1075 | macros/latex/contrib/pagelayout/doc/example-text.tex
+2024/01/17 | 107101 | macros/latex/contrib/unicode-math-input/unicode-math-input.pdf
+2024/01/17 | 1067 | macros/latex/contrib/pagelayout/doc/3x2.pdf
+2024/01/17 | 1064 | macros/latex/contrib/pagelayout/doc/2x1.pdf
+2024/01/17 | 10648 | support/latexindent/LatexIndent/Command.pm
+2024/01/17 | 103111 | macros/latex/contrib/pagelayout/doc/quickstart.pdf
+2024/01/17 | 1028 | macros/latex/contrib/pagelayout/doc/1x1.pdf
+2024/01/17 | 102640 | macros/latex/contrib/unicode-math-input/unicode-math-input-table.tex
2024/01/16 | 94352 | macros/latex/contrib/ppt-slides/socrates.jpg
2024/01/16 | 935899 | macros/latex/contrib/ppt-slides/ppt-slides.pdf
2024/01/16 | 9130 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_triangles.lua
@@ -6,13 +229,12 @@
2024/01/16 | 9000 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-math.tex
2024/01/16 | 8993 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-circles.tex
2024/01/16 | 8983 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles.tex
-2024/01/16 | 88258 | macros/latex/contrib/easybook/easybook.tex
2024/01/16 | 8453 | macros/generic/memoize/doc/memoize-code.sty
2024/01/16 | 8280 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circle.lua
2024/01/16 | 808825 | macros/latex/contrib/tkz/tkz-elements.zip
2024/01/16 | 7860 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_point.lua
2024/01/16 | 7780 | macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-utilities.tex
-2024/01/16 | 76095 | macros/latex/contrib/easybook/easybook.dtx
+2024/01/16 | 7407 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2024/01/16 | 7236 | macros/latex/contrib/tkz/tkz-elements/README.md
2024/01/16 | 7078 | macros/generic/memoize/INSTALL.md
2024/01/16 | 6837 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points.tex
@@ -26,13 +248,11 @@
2024/01/16 | 6521 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points.tex
2024/01/16 | 6482 | macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-arith.tex
2024/01/16 | 6464 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_intersections.lua
-2024/01/16 | 644406 | macros/latex/contrib/easybook.zip
2024/01/16 | 642250 | macros/latex/contrib/tkz/tkz-elements/doc/tkz-elements.pdf
2024/01/16 | 6364 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-points.tex
2024/01/16 | 6344 | macros/generic/memoize/memoize-clean.py
2024/01/16 | 626771 | macros/generic/memoize/doc/memoize-code.pdf
2024/01/16 | 618605 | macros/latex/contrib/regulatory.zip
-2024/01/16 | 601383 | macros/latex/contrib/easybook/easybook.pdf
2024/01/16 | 5854 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-circles.tex
2024/01/16 | 5841 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-utilities.tex
2024/01/16 | 552 | graphics/pgf/contrib/zx-calculus/README.md
@@ -43,7 +263,7 @@
2024/01/16 | 52584 | macros/latex/contrib/regulatory/doc/example2-en.pdf
2024/01/16 | 5248 | macros/generic/memoize/memoize-clean.pl
2024/01/16 | 5166 | macros/generic/memoize/doc/memoize-doc-common.sty
-2024/01/16 | 5100 | biblio/bibtex/utils/bibcop/bibcop-logo.pdf
+2024/01/16 | 50726 | systems/texlive/tlnet/tlpkg/installer/config.guess
2024/01/16 | 5036 | macros/generic/memoize/doc/memoize-extract.1.md
2024/01/16 | 4906 | macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-marks.tex
2024/01/16 | 4685 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_circles.lua
@@ -57,21 +277,17 @@
2024/01/16 | 437438 | macros/latex/contrib/tkz/tkz-base.zip
2024/01/16 | 4368 | macros/latex/contrib/tkz/tkz-base/latex/tkz-lib-marks.tex
2024/01/16 | 4178 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_rectangle.lua
-2024/01/16 | 4115526 | biblio/ctan-bibdata.zip
2024/01/16 | 4085 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-polygons.tex
2024/01/16 | 3989 | macros/latex/contrib/ppt-slides/ppt-templates/ppt-9x6.tex
2024/01/16 | 3975 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-compass.tex
2024/01/16 | 3948 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-polygons.tex
2024/01/16 | 3903 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_ellipse.lua
2024/01/16 | 3884 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-angles.tex
-2024/01/16 | 3708800 | biblio/ctan-bibdata/ctan.pdf
-2024/01/16 | 367397 | biblio/bibtex/utils/bibcop.zip
2024/01/16 | 3582 | macros/latex/contrib/tkz/tkz-base/latex/tkz-base.sty
2024/01/16 | 356502 | macros/latex/contrib/tkz/tkz-base/doc/tkz-base.pdf
2024/01/16 | 3497 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-base.tex
2024/01/16 | 3496 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-base.tex
2024/01/16 | 3484 | macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-misc.tex
-2024/01/16 | 348056 | biblio/bibtex/utils/bibcop/bibcop.pdf
2024/01/16 | 3476 | macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-base.tex
2024/01/16 | 3473 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-grids.tex
2024/01/16 | 3468 | macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-grids.tex
@@ -84,10 +300,8 @@
2024/01/16 | 2987 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-text.tex
2024/01/16 | 2980 | macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-text.tex
2024/01/16 | 2951 | macros/latex/contrib/tkz/tkz-base/README.md
-2024/01/16 | 2917 | biblio/bibtex/utils/bibcop/README.md
2024/01/16 | 28466 | macros/generic/memoize/memoize-extract.pl
2024/01/16 | 2843707 | install/macros/generic/memoize.tds.zip
-2024/01/16 | 2839351 | biblio/ctan-bibdata/ctan.bib
2024/01/16 | 2794 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_maths.lua
2024/01/16 | 2792473 | macros/generic/memoize.zip
2024/01/16 | 2749 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-modules.tex
@@ -95,9 +309,7 @@
2024/01/16 | 2726 | macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-rep.tex
2024/01/16 | 2705 | macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-print.tex
2024/01/16 | 269282 | macros/latex/contrib/robust-externalize/robust-externalize.tex
-2024/01/16 | 26644 | biblio/bibtex/utils/bibcop/bibcop.pl
2024/01/16 | 2640 | macros/latex/contrib/ppt-slides/ppt-slides.ins
-2024/01/16 | 2628 | biblio/bibtex/utils/bibcop/bibcop.ins
2024/01/16 | 25767 | macros/latex/contrib/regulatory/doc/example1-en.pdf
2024/01/16 | 25612 | macros/latex/contrib/regulatory/doc/example1-nl.pdf
2024/01/16 | 2529 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_points.lua
@@ -105,6 +317,7 @@
2024/01/16 | 25253 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-spc.tex
2024/01/16 | 251893 | graphics/pgf/contrib/zx-calculus/zx-calculus.tex
2024/01/16 | 2487 | macros/generic/memoize/doc/memoize-code.tex
+2024/01/16 | 243108 | support/TeX4ht/source/ChangeLog
2024/01/16 | 23932 | macros/latex/contrib/tkz/tkz-base/doc/latex/TKZdoc-base-point.tex
2024/01/16 | 23353 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-spc.tex
2024/01/16 | 2328 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_regular.lua
@@ -118,7 +331,6 @@
2024/01/16 | 21718 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-angles.tex
2024/01/16 | 21574 | macros/generic/memoize/doc/memoize-doc.sty
2024/01/16 | 2138 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_quadrilateral.lua
-2024/01/16 | 211 | biblio/bibtex/utils/bibcop/DEPENDS.txt
2024/01/16 | 20921 | macros/latex/contrib/ppt-slides/ppt-slides.dtx
2024/01/16 | 2058 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_parallelogram.lua
2024/01/16 | 2005 | macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-shape.tex
@@ -137,8 +349,6 @@
2024/01/16 | 17804 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-triangles.tex
2024/01/16 | 1735 | macros/generic/memoize/memoize.ins
2024/01/16 | 1701 | macros/latex/contrib/regulatory/doc/regulatory-nl.tex
-2024/01/16 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
-2024/01/16 | 16344 | biblio/bibtex/utils/bibcop/bibcop.dtx
2024/01/16 | 1630 | macros/generic/memoize/doc/memoize-clean.1.md
2024/01/16 | 1596591 | macros/latex/contrib/robust-externalize/robust-externalize.pdf
2024/01/16 | 1584 | macros/latex/contrib/ppt-slides/README.md
@@ -167,6 +377,7 @@
2024/01/16 | 1207093 | graphics/pgf/contrib/zx-calculus.zip
2024/01/16 | 1206 | macros/latex/contrib/regulatory/doc/example1-nl.tex
2024/01/16 | 1205 | macros/latex/contrib/regulatory/doc/example1-en.tex
+2024/01/16 | 1175107 | support/TeX4ht/source/tex4ht-4ht.tex
2024/01/16 | 11651 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangle.lua
2024/01/16 | 1142885 | graphics/pgf/contrib/zx-calculus/zx-calculus.pdf
2024/01/16 | 11280 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
@@ -176,7 +387,6 @@
2024/01/16 | 11099 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-math.tex
2024/01/16 | 10 | macros/generic/memoize/doc/memoize-doc.mst
2024/01/16 | 1083 | macros/latex/contrib/ppt-slides/LICENSE.txt
-2024/01/16 | 1083 | biblio/bibtex/utils/bibcop/LICENSE.txt
2024/01/16 | 10839 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-with.tex
2024/01/16 | 10740 | macros/latex/contrib/regulatory/tex/fc-dutch.def
2024/01/16 | 10652 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-with.tex
@@ -258,7 +468,6 @@
2024/01/15 | 58547 | macros/latex/base/ltfssaxes.dtx
2024/01/15 | 5825 | macros/latex/base/ltnews10.tex
2024/01/15 | 5775 | macros/latex/base/ltnews16.tex
-2024/01/15 | 5747621 | systems/texlive/tlnet/install-tl-unx.tar.gz
2024/01/15 | 5737 | fonts/libertinust1math/README
2024/01/15 | 5732 | macros/latex/base/ltnews08.tex
2024/01/15 | 5714 | macros/latex/base/inputenc.ins
@@ -303,12 +512,7 @@
2024/01/15 | 498750 | macros/latex/base/ltcmdhooks-doc.pdf
2024/01/15 | 4945 | macros/latex/base/lthyphen.dtx
2024/01/15 | 49020 | macros/latex/base/ltboxes.dtx
-2024/01/15 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2024/01/15 | 489925 | macros/latex/base/clsguide.pdf
-2024/01/15 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/01/15 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2024/01/15 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/01/15 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2024/01/15 | 488968 | macros/latex/base/ltsockets-doc.pdf
2024/01/15 | 47896 | macros/latex/base/lttab.dtx
2024/01/15 | 477695 | macros/latex/base/usrguide.pdf
@@ -326,7 +530,6 @@
2024/01/15 | 4324 | macros/latex/base/cmfonts.ins
2024/01/15 | 43212 | macros/latex/base/tlc3.err
2024/01/15 | 431636 | systems/texlive/tlnet/archive/armtex.doc.r69418.tar.xz
-2024/01/15 | 431400 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69415.tar.xz
2024/01/15 | 43094308 | macros/latex/base.zip
2024/01/15 | 4298 | macros/latex/base/ltalloc.dtx
2024/01/15 | 4273 | macros/latex/base/docstrip.ins
@@ -349,6 +552,7 @@
2024/01/15 | 376933 | macros/latex/base/ltnews28.pdf
2024/01/15 | 37673 | macros/latex/base/ltsockets.dtx
2024/01/15 | 375493 | macros/latex/base/slides.pdf
+2024/01/15 | 37373 | systems/texlive/tlnet/tlpkg/TeXLive/TLWinGoo.pm
2024/01/15 | 3725 | macros/latex/base/ltlogos.dtx
2024/01/15 | 36154 | macros/latex/base/ltlists.dtx
2024/01/15 | 35984 | macros/latex/base/ltdirchk.dtx
@@ -402,12 +606,10 @@
2024/01/15 | 269064 | systems/texlive/tlnet/archive/docsurvey.doc.r69417.tar.xz
2024/01/15 | 265497 | macros/latex/base/ltnews24.pdf
2024/01/15 | 264168 | macros/latex/base/cfgguide.pdf
-2024/01/15 | 26032969 | systems/texlive/tlnet/install-tl.zip
2024/01/15 | 257825 | macros/latex/base/modguide.pdf
2024/01/15 | 257359 | macros/latex/base/cyrguide.pdf
2024/01/15 | 2560 | systems/texlive/tlnet/archive/iexec.r69420.tar.xz
2024/01/15 | 252497 | macros/latex/base/lb2.pdf
-2024/01/15 | 2520276 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2024/01/15 | 251750 | macros/luatex/latex/piton/piton.dtx
2024/01/15 | 251283 | macros/latex/base/ltnews27.pdf
2024/01/15 | 24585 | macros/latex/contrib/medmath/medmath.pdf
@@ -416,7 +618,6 @@
2024/01/15 | 243 | macros/latex/base/ltproperties-doc.tex
2024/01/15 | 24385 | support/texlogsieve/texlogsieve.tex
2024/01/15 | 24286 | macros/latex/base/ltcounts.dtx
-2024/01/15 | 242798 | support/TeX4ht/source/ChangeLog
2024/01/15 | 242471 | macros/latex/base/doc.dtx
2024/01/15 | 241 | macros/latex/base/ltfilehook-doc.tex
2024/01/15 | 240 | macros/latex/base/ltsockets-doc.tex
@@ -443,7 +644,6 @@
2024/01/15 | 21488 | macros/latex/base/ltnews.cls
2024/01/15 | 21229 | macros/latex/base/lgc2.err
2024/01/15 | 211171 | macros/latex/base/nfssfont.pdf
-2024/01/15 | 21032224 | systems/texlive/tlnet/install-tl-windows.exe
2024/01/15 | 210170 | support/texlogsieve/texlogsieve
2024/01/15 | 20876 | systems/texlive/tlnet/archive/profmaquette.r69420.tar.xz
2024/01/15 | 205100 | macros/latex/base/ltnews25.pdf
@@ -457,7 +657,6 @@
2024/01/15 | 19040 | macros/latex/base/lppl.txt
2024/01/15 | 190015 | macros/latex/base/syntonly.pdf
2024/01/15 | 18944 | macros/latex/base/ltnews29.tex
-2024/01/15 | 18800987 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2024/01/15 | 18753 | macros/latex/base/ifthen.dtx
2024/01/15 | 18399 | macros/latex/base/nfssfont.dtx
2024/01/15 | 183132 | macros/latex/base/ltcmd.dtx
@@ -527,11 +726,9 @@
2024/01/15 | 1548 | fonts/newtxtt/tfm/newtxbttsla.tfm
2024/01/15 | 1548 | fonts/newtxtt/tfm/newtxbttslaq.tfm
2024/01/15 | 15431 | macros/latex/base/source2e.tex
-2024/01/15 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
2024/01/15 | 1537 | macros/latex/contrib/amnestyreport/Makefile
2024/01/15 | 15346 | macros/latex/base/ltvers.dtx
2024/01/15 | 153073 | macros/latex/contrib/amnestyreport/amnestyreport.pdf
-2024/01/15 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2024/01/15 | 152551 | macros/latex/base/ltnews04.pdf
2024/01/15 | 151773 | macros/latex/base/ltnews02.pdf
2024/01/15 | 151324 | macros/latex/base/ltnews03.pdf
@@ -539,9 +736,7 @@
2024/01/15 | 1488 | fonts/newtxtt/tfm/tcxttzsl.tfm
2024/01/15 | 148294 | macros/latex/base/ltoutenc.dtx
2024/01/15 | 146199 | macros/latex/base/webcomp.pdf
-2024/01/15 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
2024/01/15 | 145334 | macros/latex/base/ltclass.dtx
-2024/01/15 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2024/01/15 | 14421 | macros/latex/base/lppl-1-2.txt
2024/01/15 | 14341 | macros/latex/base/lppl-1-1.txt
2024/01/15 | 142867 | macros/latex/base/ltnews06.pdf
@@ -645,9 +840,7 @@
2024/01/15 | 12334 | macros/latex/base/ltnews24.tex
2024/01/15 | 12246 | macros/latex/base/tulm.fdd
2024/01/15 | 1200 | fonts/newtxtt/tfm/txttz.tfm
-2024/01/15 | 1174354 | support/TeX4ht/source/tex4ht-4ht.tex
2024/01/15 | 11463 | macros/latex/base/manifest.txt
-2024/01/15 | 114276 | systems/texlive/tlnet/archive/texlive-scripts.r69415.tar.xz
2024/01/15 | 112208 | macros/latex/base/ltnews11.pdf
2024/01/15 | 108248 | macros/latex/base/fntguide.tex
2024/01/15 | 107 | macros/latex/base/ltproperties-code.tex
@@ -670,9 +863,7 @@
2024/01/14 | 93200 | info/docsurvey/docsurvey.tex
2024/01/14 | 883835 | graphics/pgf/contrib/bodeplot/bodeplot-doc.pdf
2024/01/14 | 817 | info/docsurvey/README.txt
-2024/01/14 | 7407 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2024/01/14 | 7248 | systems/texlive/tlnet/archive/docshots.source.r69410.tar.xz
-2024/01/14 | 622156 | systems/texlive/tlnet/archive/easybook.doc.r69411.tar.xz
2024/01/14 | 56640 | macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.tex
2024/01/14 | 487 | macros/latex/contrib/amnestyreport/README
2024/01/14 | 431196 | systems/texlive/tlnet/archive/tikzquads.doc.r69409.tar.xz
@@ -690,16 +881,11 @@
2024/01/14 | 243 | macros/latex/contrib/iexec/DEPENDS.txt
2024/01/14 | 18083 | macros/latex/contrib/iexec/iexec.dtx
2024/01/14 | 1668 | systems/texlive/tlnet/archive/collection-pictures.r69409.tar.xz
-2024/01/14 | 16444 | systems/texlive/tlnet/archive/easybook.r69411.tar.xz
-2024/01/14 | 16356 | systems/texlive/tlnet/archive/easybook.source.r69411.tar.xz
-2024/01/14 | 1484084 | systems/texlive/tlnet/archive/tex4ht.source.r69412.tar.xz
2024/01/14 | 1476 | macros/latex/contrib/iexec/README.md
2024/01/14 | 1471923 | language/armenian/armtex.zip
2024/01/14 | 1416 | graphics/pgf/contrib/bodeplot/bodeplot.ins
-2024/01/14 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r69412.tar.xz
2024/01/14 | 126 | macros/latex/contrib/medmath/README
2024/01/14 | 122500 | macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
-2024/01/14 | 1116136 | systems/texlive/tlnet/archive/tex4ht.r69412.tar.xz
2024/01/14 | 1083 | macros/latex/contrib/iexec/LICENSE.txt
2024/01/14 | 1038 | macros/latex/contrib/amnestyreport/amnestytemplate.tex
2024/01/14 | 102948 | graphics/pgf/contrib/bodeplot/bodeplot.dtx
@@ -714,15 +900,11 @@
2024/01/13 | 90430 | language/armenian/armtex/fonts/source/arssb10.mf
2024/01/13 | 8668 | systems/texlive/tlnet/archive/metalogox.source.r69401.tar.xz
2024/01/13 | 8248 | systems/texlive/tlnet/archive/braids.r69398.tar.xz
-2024/01/13 | 8168 | systems/texlive/tlnet/archive/bibcop.r69395.tar.xz
2024/01/13 | 783420 | systems/texlive/tlnet/archive/braids.doc.r69398.tar.xz
2024/01/13 | 7629 | language/armenian/armtex/examples/plain/plraf-u8.tex
2024/01/13 | 7535 | language/armenian/armtex/examples/latex/raffi-u8.tex
-2024/01/13 | 738136 | systems/texlive/tlnet/archive/bodeplot.doc.r69397.tar.xz
2024/01/13 | 71332 | graphics/pgf/contrib/tikzquads/latex/tikzquads.sty
2024/01/13 | 7108 | systems/texlive/tlnet/archive/keyfloat.r69399.tar.xz
-2024/01/13 | 6244 | systems/texlive/tlnet/archive/bibcop.source.r69395.tar.xz
-2024/01/13 | 5788 | systems/texlive/tlnet/archive/bodeplot.r69397.tar.xz
2024/01/13 | 5340 | systems/texlive/tlnet/archive/lua-placeholders.r69404.tar.xz
2024/01/13 | 5137 | language/armenian/armtex/examples/plain/plraf.tex
2024/01/13 | 5031 | language/armenian/armtex/examples/latex/raffi.tex
@@ -744,7 +926,6 @@
2024/01/13 | 38481 | language/armenian/armtex/fonts/type1/arssbs10.pfb
2024/01/13 | 3817 | language/armenian/armtex/examples/latex/alphabet.tex
2024/01/13 | 380132 | systems/texlive/tlnet/archive/metalogox.doc.r69401.tar.xz
-2024/01/13 | 359716 | systems/texlive/tlnet/archive/bibcop.doc.r69395.tar.xz
2024/01/13 | 35113 | language/armenian/armtex/fonts/type1/arssr10.pfb
2024/01/13 | 34896 | language/armenian/armtex/fonts/type1/arssb10.pfb
2024/01/13 | 34675 | language/armenian/armtex/tex/latex/armtex.sty
@@ -779,7 +960,6 @@
2024/01/13 | 19695 | language/armenian/armtex/tex/plain/arm.tex
2024/01/13 | 1899 | language/armenian/armtex/fonts/source/ps2mfbas.mf
2024/01/13 | 18600 | language/armenian/armtex/tex/plain/armkb-u8.tex
-2024/01/13 | 17376 | systems/texlive/tlnet/archive/bodeplot.source.r69397.tar.xz
2024/01/13 | 1688 | language/armenian/armtex/fonts/tfm/arssbs10.tfm
2024/01/13 | 1688 | language/armenian/armtex/fonts/tfm/arssb10.tfm
2024/01/13 | 1684 | language/armenian/armtex/fonts/tfm/arsssl10.tfm
@@ -830,7 +1010,6 @@
2024/01/12 | 859091 | graphics/pgf/contrib/braids.zip
2024/01/12 | 8048 | systems/texlive/tlnet/archive/fontsetup.r69390.tar.xz
2024/01/12 | 7268 | macros/luatex/latex/lua-placeholders/scripts/lua-placeholders.lua
-2024/01/12 | 7068 | systems/texlive/tlnet/archive/collection-latexextra.r69389.tar.xz
2024/01/12 | 6863 | macros/luatex/latex/lua-placeholders/scripts/lua-placeholders-types.lua
2024/01/12 | 67505 | macros/luatex/latex/lua-placeholders/doc/lua-placeholders-example/example.pdf
2024/01/12 | 6657 | macros/luatex/latex/lua-placeholders/doc/lua-placeholders-example/example.tex
@@ -1028,22 +1207,17 @@
2024/01/11 | 322088 | macros/latex/contrib/tikzquests.zip
2024/01/11 | 316868 | systems/texlive/tlnet/archive/texshade.source.r69371.tar.xz
2024/01/11 | 313084 | systems/texlive/tlnet/archive/physics2.doc.r69369.tar.xz
-2024/01/11 | 3043 | macros/latex/contrib/superiors/doc/footsnippet2.tex
2024/01/11 | 29988 | fonts/newtx/tex/newtxtext.sty
2024/01/11 | 29836 | macros/latex/contrib/lwarp/lwarpmk.lua
2024/01/11 | 2947 | macros/latex/contrib/lwarp/lwarp_tutorial.txt
-2024/01/11 | 2926 | macros/latex/contrib/superiors/doc/footsnippet3.tex
2024/01/11 | 2914650 | macros/latex/contrib/lwarp/lwarp.dtx
-2024/01/11 | 2882 | macros/latex/contrib/superiors/doc/footsnippet4.tex
2024/01/11 | 277782 | macros/latex/contrib/superiors/doc/superiors-doc.pdf
2024/01/11 | 27640 | systems/texlive/tlnet/archive/changebar.source.r69367.tar.xz
-2024/01/11 | 26459 | macros/latex/contrib/superiors/doc/footsnippet2-crop.pdf
2024/01/11 | 263 | macros/latex/contrib/ffcode/DEPENDS.txt
2024/01/11 | 263204 | dviware/dvisvgm/tests/Makefile.in
2024/01/11 | 2628 | macros/latex/contrib/ffcode/ffcode.ins
2024/01/11 | 2628 | macros/latex/contrib/eolang/eolang.ins
2024/01/11 | 25465973 | fonts/newcomputermodern.zip
-2024/01/11 | 25447 | macros/latex/contrib/superiors/doc/footsnippet1-crop.pdf
2024/01/11 | 24828 | macros/latex/contrib/tikzquests/doc/tikzquests.tex
2024/01/11 | 24766 | dviware/dvisvgm/libs/woff2/Makefile.in
2024/01/11 | 24703 | macros/unicodetex/latex/fontsetup/doc/fontsetup-doc.tex
@@ -1072,7 +1246,6 @@
2024/01/11 | 1940589 | macros/latex/contrib/eolang/eolang.pdf
2024/01/11 | 1940069 | macros/latex/contrib/eolang.zip
2024/01/11 | 18926 | dviware/dvisvgm/src/dvisvgm.cpp
-2024/01/11 | 18804 | macros/latex/contrib/superiors/doc/superiors-doc.tex
2024/01/11 | 1869 | macros/latex/contrib/tikzquests/README.md
2024/01/11 | 1834952 | macros/latex/contrib/proflycee.zip
2024/01/11 | 1705 | macros/latex/contrib/pgfkeysearch/README.md
@@ -1103,176 +1276,3 @@
2024/01/11 | 10241 | dviware/dvisvgm/src/options.xml
2024/01/11 | 100840 | systems/texlive/tlnet/archive/pyluatex.doc.r69372.tar.xz
2024/01/11 | 1003064 | systems/texlive/tlnet/archive/texshade.doc.r69371.tar.xz
-2024/01/10 | 981 | macros/latex/contrib/tcolorbox/tcbxparse.code.tex
-2024/01/10 | 949 | macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
-2024/01/10 | 9373 | macros/latex/contrib/tcolorbox/tcbraster.code.tex
-2024/01/10 | 9105 | macros/latex/contrib/tcolorbox/tcbexternal.code.tex
-2024/01/10 | 90339 | macros/latex/contrib/physics2/physics2.pdf
-2024/01/10 | 8855 | macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex
-2024/01/10 | 88234484 | systems/texlive/tlnet/archive/junicode.r69355.tar.xz
-2024/01/10 | 84115 | macros/latex/contrib/tcolorbox/tcbskins.code.tex
-2024/01/10 | 8356 | macros/latex/contrib/tcolorbox/tcolorbox-example.tex
-2024/01/10 | 83317 | macros/luatex/latex/pyluatex/pyluatex.pdf
-2024/01/10 | 82676 | macros/latex/contrib/physics2/physics2-legacy.pdf
-2024/01/10 | 821957 | macros/latex/contrib/texshade/texshade.pdf
-2024/01/10 | 7977 | macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex
-2024/01/10 | 76829 | macros/latex/contrib/tcolorbox/goldshade.png
-2024/01/10 | 752036 | systems/texlive/tlnet/archive/l3build.doc.r69360.tar.xz
-2024/01/10 | 717 | macros/luatex/latex/pyluatex/example/readme-example.tex
-2024/01/10 | 71598 | macros/latex/contrib/tcolorbox/CHANGES.md
-2024/01/10 | 71150 | fonts/newpx/doc/newpxdoc.tex
-2024/01/10 | 6844 | macros/luatex/latex/pyluatex/pyluatex.lua
-2024/01/10 | 684388 | fonts/newcomputermodern/otf/NewCMMono10-BoldOblique.otf
-2024/01/10 | 684099 | fonts/newtx/doc/newtxdoc.pdf
-2024/01/10 | 6684 | macros/latex/contrib/tcolorbox/tcolorbox.doc.s_snippet.sty
-2024/01/10 | 6445 | macros/latex/contrib/tcolorbox/tcolorbox.doc.bib
-2024/01/10 | 6424 | macros/latex/contrib/tcolorbox/tcolorbox.doc.beamer.tex
-2024/01/10 | 64096 | macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
-2024/01/10 | 6386 | macros/latex/contrib/tcolorbox/tcolorbox.doc.recording.tex
-2024/01/10 | 6343417 | install/macros/latex/contrib/tcolorbox.tds.zip
-2024/01/10 | 6343155 | macros/latex/contrib/tcolorbox.zip
-2024/01/10 | 629124 | fonts/newcomputermodern/otf/NewCM08-BookItalic.otf
-2024/01/10 | 628 | macros/luatex/latex/pyluatex/example/readme-custom-env.tex
-2024/01/10 | 62882 | macros/latex/contrib/tcolorbox/blueshade.png
-2024/01/10 | 612060 | fonts/newcomputermodern/otf/NewCM08-Book.otf
-2024/01/10 | 60533 | macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
-2024/01/10 | 602032 | fonts/newcomputermodern/otf/NewCM10-Book.otf
-2024/01/10 | 5990 | macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
-2024/01/10 | 57964 | macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex
-2024/01/10 | 573968 | fonts/newcomputermodern/otf/NewCM10-Regular.otf
-2024/01/10 | 5636 | macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
-2024/01/10 | 560420 | fonts/newcomputermodern/otf/NewCM08-Italic.otf
-2024/01/10 | 5577 | macros/latex/contrib/tcolorbox/tcolorbox.doc.quickref.tex
-2024/01/10 | 557288 | fonts/newcomputermodern/otf/NewCM10-BookItalic.otf
-2024/01/10 | 5459 | macros/latex/contrib/tcolorbox/tcolorbox.doc.abstract.tex
-2024/01/10 | 538726 | support/latexmk.zip
-2024/01/10 | 533672 | fonts/newcomputermodern/otf/NewCM08-Regular.otf
-2024/01/10 | 52303 | fonts/newcomputermodern/doc/newcm-doc.tex
-2024/01/10 | 5168 | systems/texlive/tlnet/archive/ukbill.r69362.tar.xz
-2024/01/10 | 513497 | support/latexmk/latexmk.pl
-2024/01/10 | 512 | fonts/newcomputermodern/tex/newcomputermodern.sty
-2024/01/10 | 5121 | macros/latex/contrib/texshade/README
-2024/01/10 | 5112 | macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex
-2024/01/10 | 5111 | macros/luatex/latex/pyluatex/pyluatex-interpreter.py
-2024/01/10 | 508780 | fonts/newcomputermodern/otf/NewCMMono10-BookItalic.otf
-2024/01/10 | 505472 | fonts/newcomputermodern/otf/NewCM10-Bold.otf
-2024/01/10 | 5048 | macros/latex/contrib/tcolorbox/README.md
-2024/01/10 | 5031 | macros/latex/contrib/tcolorbox/tcolorbox.doc.verbatim.tex
-2024/01/10 | 50052 | macros/latex/contrib/physics2/physics2-code.dtx
-2024/01/10 | 4859487 | macros/latex/contrib/tcolorbox/tcolorbox.pdf
-2024/01/10 | 471548 | fonts/newcomputermodern/otf/NewCM10-Italic.otf
-2024/01/10 | 456512 | fonts/newcomputermodern/otf/NewCM10-BoldItalic.otf
-2024/01/10 | 447103 | macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
-2024/01/10 | 44098 | macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
-2024/01/10 | 438624 | fonts/newcomputermodern/otf/NewCMMono10-Book.otf
-2024/01/10 | 438130 | macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
-2024/01/10 | 4328 | macros/luatex/latex/pyluatex/example/data-visualization.tex
-2024/01/10 | 42887 | support/latexmk/CHANGES
-2024/01/10 | 426049 | fonts/newpx/doc/newpxdoc.pdf
-2024/01/10 | 4237 | macros/latex/contrib/physics2/physics2.ins
-2024/01/10 | 417680 | fonts/newcomputermodern/otf/NewCMMono10-Italic.otf
-2024/01/10 | 41486 | macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
-2024/01/10 | 409160 | systems/texlive/tlnet/archive/thematicpuzzle.doc.r69356.tar.xz
-2024/01/10 | 405848 | fonts/newcomputermodern/otf/NewCMSans08-BookOblique.otf
-2024/01/10 | 40185 | macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex
-2024/01/10 | 398328 | fonts/newcomputermodern/otf/NewCMSans08-Book.otf
-2024/01/10 | 392136 | fonts/newcomputermodern/otf/NewCMSans10-Book.otf
-2024/01/10 | 39167 | macros/luatex/latex/pyluatex/example/population.csv
-2024/01/10 | 388644 | fonts/newcomputermodern/otf/NewCMSans08-Regular.otf
-2024/01/10 | 382928 | systems/texlive/tlnet/archive/lni.doc.r69361.tar.xz
-2024/01/10 | 373808 | fonts/newcomputermodern/otf/NewCMSans08-Oblique.otf
-2024/01/10 | 37188 | systems/texlive/tlnet/archive/mptopdf.r69363.tar.xz
-2024/01/10 | 36704 | systems/texlive/tlnet/archive/l3build.r69360.tar.xz
-2024/01/10 | 365848 | fonts/newcomputermodern/otf/NewCMSans10-Regular.otf
-2024/01/10 | 363240 | fonts/newcomputermodern/otf/NewCMSans10-BookOblique.otf
-2024/01/10 | 35224 | macros/latex/contrib/tcolorbox/lichtspiel.jpg
-2024/01/10 | 3486 | macros/latex/contrib/tcolorbox/tcolorbox.tex
-2024/01/10 | 348336 | fonts/newcomputermodern/otf/NewCMMono10-Regular.otf
-2024/01/10 | 34667 | macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
-2024/01/10 | 343616 | fonts/newcomputermodern/otf/NewCMSans10-Bold.otf
-2024/01/10 | 3414 | macros/latex/contrib/tcolorbox/tcblistings.code.tex
-2024/01/10 | 3403 | macros/latex/contrib/tcolorbox/tcbminted.code.tex
-2024/01/10 | 3315 | macros/luatex/latex/pyluatex/example/beamer.tex
-2024/01/10 | 329706 | macros/latex/contrib/physics2.zip
-2024/01/10 | 32786 | macros/latex/contrib/tcolorbox/tcolorbox.doc.raster.tex
-2024/01/10 | 322756 | fonts/newcomputermodern/otf/NewCMSans10-BoldOblique.otf
-2024/01/10 | 31929 | macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
-2024/01/10 | 31768 | systems/texlive/tlnet/archive/l3build.source.r69360.tar.xz
-2024/01/10 | 311644 | fonts/newcomputermodern/otf/NewCMMono10-Bold.otf
-2024/01/10 | 3108 | macros/luatex/latex/pyluatex/pyluatex.sty
-2024/01/10 | 3080 | systems/texlive/tlnet/archive/href-ul.source.r69359.tar.xz
-2024/01/10 | 3012 | macros/latex/contrib/superiors/doc/footsnippet1.tex
-2024/01/10 | 298936 | fonts/newcomputermodern/otf/NewCMSans10-Oblique.otf
-2024/01/10 | 29872 | macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex
-2024/01/10 | 2954 | macros/latex/contrib/physics2/phy2docdef.tex
-2024/01/10 | 29389 | macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex
-2024/01/10 | 285100 | systems/texlive/tlnet/archive/href-ul.doc.r69359.tar.xz
-2024/01/10 | 28432 | macros/latex/contrib/tcolorbox/tcolorbox.doc.vignette.tex
-2024/01/10 | 274323 | macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
-2024/01/10 | 264865 | fonts/newcomputermodern/doc/newcm-doc.pdf
-2024/01/10 | 25657 | macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex
-2024/01/10 | 25640 | systems/texlive/tlnet/archive/lni.source.r69361.tar.xz
-2024/01/10 | 25559 | macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex
-2024/01/10 | 25424 | fonts/newpx/README
-2024/01/10 | 25380 | fonts/newpx/tex/newpxtext.sty
-2024/01/10 | 2525 | support/latexmk/README
-2024/01/10 | 2524 | systems/texlive/tlnet/archive/thematicpuzzle.r69356.tar.xz
-2024/01/10 | 24663 | macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
-2024/01/10 | 242842 | support/latexmk/latexmk.txt
-2024/01/10 | 2400 | macros/luatex/latex/pyluatex/example/typesetting-listings.tex
-2024/01/10 | 2349 | macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
-2024/01/10 | 23286 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex
-2024/01/10 | 2310 | macros/luatex/latex/pyluatex/example/repl.tex
-2024/01/10 | 230284 | support/latexmk/latexmk.pdf
-2024/01/10 | 22785 | macros/latex/contrib/physics2/physics2.tex
-2024/01/10 | 22407 | macros/latex/contrib/tcolorbox/Basilica_5.png
-2024/01/10 | 21886 | macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
-2024/01/10 | 21663 | macros/latex/contrib/tcolorbox/crinklepaper.png
-2024/01/10 | 2144 | macros/luatex/latex/piton/piton.ins
-2024/01/10 | 2105 | macros/luatex/latex/pyluatex/example/typesetting-minted.tex
-2024/01/10 | 21021 | macros/latex/contrib/physics2/physics2-legacy.tex
-2024/01/10 | 202888 | systems/texlive/tlnet/archive/ukbill.doc.r69362.tar.xz
-2024/01/10 | 20273 | macros/latex/contrib/tcolorbox/tcolorbox.doc.magazine.tex
-2024/01/10 | 1996068 | systems/texlive/tlnet/archive/junicode.doc.r69355.tar.xz
-2024/01/10 | 195651 | support/latexmk/latexmk.1
-2024/01/10 | 1849 | macros/luatex/latex/pyluatex/example/matplotlib-pgf.tex
-2024/01/10 | 183540 | macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
-2024/01/10 | 18293 | macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex
-2024/01/10 | 18025 | CTAN.sites
-2024/01/10 | 17976 | support/latexmk/INSTALL
-2024/01/10 | 1722 | macros/latex/contrib/superiors/README
-2024/01/10 | 17164 | macros/latex/contrib/tcolorbox/tcbfitting.code.tex
-2024/01/10 | 16147 | macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
-2024/01/10 | 1551 | macros/luatex/latex/pyluatex/README.md
-2024/01/10 | 1540 | systems/texlive/tlnet/archive/href-ul.r69359.tar.xz
-2024/01/10 | 1527 | macros/luatex/latex/pyluatex/example/matplotlib-external.tex
-2024/01/10 | 15166 | macros/latex/contrib/tcolorbox/pink_marble.png
-2024/01/10 | 1495481 | macros/latex/contrib/texshade/texshade.dtx
-2024/01/10 | 148 | macros/latex/contrib/tcolorbox/tcolorbox.doc.references.tex
-2024/01/10 | 14517 | fonts/newcomputermodern/README
-2024/01/10 | 1429 | macros/luatex/latex/pyluatex/example/sessions.tex
-2024/01/10 | 14291 | macros/luatex/latex/pyluatex/pyluatex.tex
-2024/01/10 | 1414 | macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
-2024/01/10 | 13992868 | fonts/newcomputermodern/source.txz
-2024/01/10 | 137750 | macros/latex/contrib/physics2/physics2-code.pdf
-2024/01/10 | 13620 | systems/texlive/tlnet/archive/mptopdf.doc.r69363.tar.xz
-2024/01/10 | 13405 | macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex
-2024/01/10 | 13399 | support/TeX4ht/source/tex4ht-options.tex
-2024/01/10 | 131652 | fonts/newtx/doc/newtxdoc.tex
-2024/01/10 | 12784 | systems/texlive/tlnet/archive/lni.r69361.tar.xz
-2024/01/10 | 12747 | macros/latex/contrib/tcolorbox/tcbvignette.code.tex
-2024/01/10 | 12634 | macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
-2024/01/10 | 1250048 | fonts/newcomputermodern/otf/NewCMMath-Book.otf
-2024/01/10 | 12459 | macros/latex/contrib/tcolorbox/tcbposter.code.tex
-2024/01/10 | 11830 | macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
-2024/01/10 | 1180639 | macros/latex/contrib/texshade.zip
-2024/01/10 | 116834 | macros/luatex/latex/pyluatex.zip
-2024/01/10 | 113061 | macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
-2024/01/10 | 112 | macros/latex/contrib/tcolorbox/tcolorbox.doc.index.tex
-2024/01/10 | 1123460 | fonts/newcomputermodern/otf/NewCMMath-Regular.otf
-2024/01/10 | 1106 | macros/latex/contrib/tcolorbox/tcolorbox.doc.picturecredits.tex
-2024/01/10 | 1049 | macros/luatex/latex/pyluatex/example/typesetting-example.tex
-2024/01/10 | 10373 | macros/latex/contrib/tcolorbox/tcbhooks.code.tex
-2024/01/10 | 103614 | macros/latex/contrib/tcolorbox/tcolorbox.sty
-2024/01/10 | 1022 | macros/latex/contrib/physics2/README.md
-2024/01/10 | 10040 | macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
diff --git a/biblio/bibtex/utils/bibcop/bibcop.1 b/biblio/bibtex/utils/bibcop/bibcop.1
index b4752f9544..725f82cfce 100644
--- a/biblio/bibtex/utils/bibcop/bibcop.1
+++ b/biblio/bibtex/utils/bibcop/bibcop.1
@@ -1,4 +1,4 @@
-.TH bibcop 1 "2024-01-16"
+.TH bibcop 1 "2024-01-17"
.SH NAME
bibcop \- Style Checker and Fixer of BibTeX Files (.bib)
.SH SYNOPSIS
diff --git a/biblio/bibtex/utils/bibcop/bibcop.dtx b/biblio/bibtex/utils/bibcop/bibcop.dtx
index b4bc9b9cf9..00a162fb81 100644
--- a/biblio/bibtex/utils/bibcop/bibcop.dtx
+++ b/biblio/bibtex/utils/bibcop/bibcop.dtx
@@ -50,7 +50,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{bibcop}
%<*package>
-[2024-01-16 0.0.18 Style Checker of Bibliography Files]
+[2024-01-17 0.0.19 Style Checker of Bibliography Files]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -460,25 +460,19 @@ booktitle = {{Proceedings of the International
\RequirePackage{shellesc}
\makeatletter
\newcommand\bibcop@exec[1]{
- \ifnum\ShellEscapeStatus=1
- \iexec{\bibcop@script\space
- \ifdefined\bibcop@verbose--verbose\fi\space
- \ifdefined\bibcop@notags--no:tags\fi\space
- \ifdefined\bibcop@noinproc--no:org\fi\space
- \ifdefined\bibcop@noinproc--no:inproc\fi\space
- \ifdefined\bibcop@nodoi--no:doi\fi\space
- \ifdefined\bibcop@nocaps--no:caps\fi\space
- \ifdefined\bibcop@nowraps--no:wraps\fi\space
- --latex '#1'}%
- \message{bibcop: style checking finished for #1^^J}%
- \else%
- \message{bibcop: since -shell-escape is not set, no
- style checking performed for #1^^J}%
- \fi%
+ \iexec[maybe]{\bibcop@script\space
+ \ifdefined\bibcop@verbose--verbose\fi\space
+ \ifdefined\bibcop@notags--no:tags\fi\space
+ \ifdefined\bibcop@noinproc--no:org\fi\space
+ \ifdefined\bibcop@noinproc--no:inproc\fi\space
+ \ifdefined\bibcop@nodoi--no:doi\fi\space
+ \ifdefined\bibcop@nocaps--no:caps\fi\space
+ \ifdefined\bibcop@nowraps--no:wraps\fi\space
+ --latex '#1'}%
+ \message{bibcop: style checking finished for #1^^J}%
}
\makeatother
-
% \begin{macro}{\bibliography}
% Then, we re-define the |\bibliography| command:
% \begin{macrocode}
diff --git a/biblio/bibtex/utils/bibcop/bibcop.pdf b/biblio/bibtex/utils/bibcop/bibcop.pdf
index bf900181a5..7181610159 100644
--- a/biblio/bibtex/utils/bibcop/bibcop.pdf
+++ b/biblio/bibtex/utils/bibcop/bibcop.pdf
Binary files differ
diff --git a/biblio/bibtex/utils/bibcop/bibcop.pl b/biblio/bibtex/utils/bibcop/bibcop.pl
index f1e5121ffc..89d101eccf 100755
--- a/biblio/bibtex/utils/bibcop/bibcop.pl
+++ b/biblio/bibtex/utils/bibcop/bibcop.pl
@@ -21,7 +21,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
-# 2024-01-16 0.0.18
+# 2024-01-17 0.0.19
package bibcop;
use warnings;
@@ -893,7 +893,9 @@ sub fail {
}
}
-if (not basename($0) eq 'bibcop.pl') {
+my $script = basename($0);
+$script =~ s/\.pl$//g;
+if (not $script eq 'bibcop') {
goto END;
}
@@ -917,7 +919,7 @@ if (@ARGV+0 eq 0 or exists $args{'--help'} or exists $args{'-?'}) {
" --latex Report errors in LaTeX format using \\PackageWarningNoLine command\n\n" .
"If any issues, report to GitHub: https://github.com/yegor256/bibcop");
} elsif (exists $args{'--version'} or exists $args{'-v'}) {
- info('0.0.18 2024-01-16');
+ info('0.0.19 2024-01-17');
} else {
my ($file) = grep { not($_ =~ /^-.*$/) } @ARGV;
if (not $file) {
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index 95cf96b878..7213582c2d 100644
--- a/biblio/ctan-bibdata/ctan.bib
+++ b/biblio/ctan-bibdata/ctan.bib
@@ -1,7 +1,7 @@
%% bib file of all CTAN packages
%% (C) Herbert Voß
%%
-%% created at 16-01-2024, 02:00:03
+%% created at 17-01-2024, 02:00:04
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -6877,8 +6877,8 @@
title = {The \texttt{bibcop} package},
subtitle = {Style checker for .bib files},
author = {Yegor Bugayenko},
- date = {2024-01-12},
- version = {0.0.17},
+ date = {2024-01-16},
+ version = {0.0.18},
license = {mit},
mirror = {https://mirror.ctan.org/biblio/bibtex/utils/bibcop},
url = {https://ctan.org/pkg/bibcop},
@@ -20696,8 +20696,8 @@
title = {The \texttt{easybook} package},
subtitle = {Easily typesetting Chinese theses or books},
author = {Qu Yi},
- date = {2024-01-14},
- version = {2024H},
+ date = {2024-01-16},
+ version = {2024I},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/easybook},
url = {https://ctan.org/pkg/easybook},
@@ -44746,8 +44746,8 @@
title = {The \texttt{Memoize} package},
subtitle = {Externalization of graphics and memoization of compilation results in general},
author = {Sašo Živanović},
- date = {2024-01-02},
- version = {1.1.0},
+ date = {2024-01-16},
+ version = {1.1.1},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/generic/memoize},
url = {https://ctan.org/pkg/memoize},
@@ -55021,8 +55021,8 @@
title = {The \texttt{ppt-slides} package},
subtitle = {Good-looking slide decks à la PowerPoint (PPT)},
author = {Yegor Bugayenko},
- date = {2023-11-08},
- version = {0.3.0},
+ date = {2024-01-16},
+ version = {0.3.1},
license = {mit},
mirror = {https://mirror.ctan.org/macros/latex/contrib/ppt-slides},
url = {https://ctan.org/pkg/ppt-slides},
@@ -59352,6 +59352,17 @@
url = {https://ctan.org/pkg/regstats},
}
+@manual{ctan-regulatory,
+ title = {The \texttt{regulatory} package},
+ subtitle = {Flexible drafting of legal documents, especially in Dutch},
+ author = {Erik Nijenhuis},
+ date = {2024-01-16},
+ version = {},
+ license = {lppl1.3c},
+ mirror = {https://mirror.ctan.org/macros/latex/contrib/regulatory},
+ url = {https://ctan.org/pkg/regulatory},
+}
+
@manual{ctan-reledmac,
title = {The \texttt{reledmac} package},
subtitle = {Typeset scholarly editions},
@@ -59976,8 +59987,8 @@
title = {The \texttt{robust-externalize} package},
subtitle = {Cache anything (TikZ, python, ...) in a robust, efficient and pure way},
author = {Léo Colisson},
- date = {2023-11-14},
- version = {2.2},
+ date = {2024-01-16},
+ version = {2.5},
license = {mit},
mirror = {https://mirror.ctan.org/macros/latex/contrib/robust-externalize},
url = {https://ctan.org/pkg/robust-externalize},
@@ -71350,8 +71361,8 @@
title = {The \texttt{tkz-base} package},
subtitle = {Tools for drawing with a cartesian coordinate system},
author = {Alain Matthes},
- date = {2023-02-15},
- version = {4.2c},
+ date = {2024-01-16},
+ version = {4.21c},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/tkz/tkz-base},
url = {https://ctan.org/pkg/tkz-base},
@@ -71397,8 +71408,8 @@
title = {The \texttt{tkz-elements} package},
subtitle = {A Lua library for drawing Euclidean geometry with TikZ or tkz-euclide},
author = {Alain Matthes},
- date = {2023-12-24},
- version = {1.72c},
+ date = {2024-01-16},
+ version = {1.82c},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/tkz/tkz-elements},
url = {https://ctan.org/pkg/tkz-elements},
@@ -71408,8 +71419,8 @@
title = {The \texttt{tkz-euclide} package},
subtitle = {Tools for drawing Euclidean geometry},
author = {Alain Matthes},
- date = {2023-11-06},
- version = {5.04c},
+ date = {2024-01-16},
+ version = {5.05c},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/tkz/tkz-euclide},
url = {https://ctan.org/pkg/tkz-euclide},
@@ -79586,8 +79597,8 @@
title = {The \texttt{zx-calculus} package},
subtitle = {A library to typeset ZX Calculus diagrams},
author = {Léo Colisson},
- date = {2021-10-22},
- version = {},
+ date = {2024-01-16},
+ version = {2.0},
license = {mit},
mirror = {https://mirror.ctan.org/graphics/pgf/contrib/zx-calculus},
url = {https://ctan.org/pkg/zx-calculus},
diff --git a/info/kaytannollista-latexia/kaytannollista-latexia.pdf b/info/kaytannollista-latexia/kaytannollista-latexia.pdf
index 9cac30e789..a8cacb8784 100644
--- a/info/kaytannollista-latexia/kaytannollista-latexia.pdf
+++ b/info/kaytannollista-latexia/kaytannollista-latexia.pdf
Binary files differ
diff --git a/info/kaytannollista-latexia/kaytannollista-latexia.tex b/info/kaytannollista-latexia/kaytannollista-latexia.tex
index d1b0c921a9..f9bc3d6b65 100644
--- a/info/kaytannollista-latexia/kaytannollista-latexia.tex
+++ b/info/kaytannollista-latexia/kaytannollista-latexia.tex
@@ -10,7 +10,7 @@
\usepackage[math-style=ISO]{unicode-math}
\usepackage[finnish, showseconds=false]{datetime2}
\usepackage{ragged2e}
-\usepackage[hang,bottom,norule]{footmisc}
+\usepackage[hang,bottom]{footmisc}
\usepackage[clearempty]{titlesec}
\usepackage{titletoc}
\usepackage{graphicx}
@@ -78,6 +78,8 @@ datezeros=false]{biblatex}
\usepackage[oldstyle,semibold,ScaleSF=MatchLowercase,StretchTT=.8]
{libertinus-otf}
+\newfontface{\swashfontti}{TeX Gyre Chorus}[Scale=MatchLowercase]
+
\renewcommand{\scriptsize}{\fontsize{7bp}{7bp}\selectfont}
\renewcommand{\footnotesize}{\fontsize{8bp}{9bp}\selectfont}
\renewcommand{\small}{\fontsize{9bp}{10bp}\selectfont}
diff --git a/info/kaytannollista-latexia/luku-asetukset.tex b/info/kaytannollista-latexia/luku-asetukset.tex
index c9e074aaf9..ea230a80cc 100644
--- a/info/kaytannollista-latexia/luku-asetukset.tex
+++ b/info/kaytannollista-latexia/luku-asetukset.tex
@@ -1062,8 +1062,8 @@ asetusten näkökulmasta.
\hfill
{\ttfamily\addfontfeatures{FakeStretch=1, Scale=4.5}Amf}
}{
- \caption{Vasemmalla pääteviivallinen, keskellä pääteviivaton ja
- oikealla tasalevyinen pääteviivallinen kirjainperhe}
+ \caption{Vasemmalla pääteviivallinen (antiikva), keskellä
+ pääteviivaton (groteski) ja oikealla tasalevyinen kirjainperhe}
\label{kuva/kirjainperhetyypit}
}
@@ -1104,11 +1104,45 @@ seuraavan esimerkin mukaisesti:
\setmonofont{TeX Gyre Cursor}[Scale=MatchLowercase]
\end{koodilohkosis}
+\leijutlk{
+ \begin{tabular}{ll}
+ \toprule
+ \ots{Kirjainperhe} & \ots{Tyyli} \\
+ \midrule
+ Garamond Libre & antiikva, renessanssi, ranskalainen \\
+ TeX Gyre Pagella & antiikva, renessanssi, ranskalainen \\
+ TeX Gyre Termes & antiikva, renessanssi, alankomainen \\
+ Libertinus Serif & antiikva, barokki, siirtymäkausi \\
+ Latin Modern Roman & antiikva, uusantiikva \\
+ TeX Gyre Schola & antiikva, vahvapäätteinen \\
+ TeX Gyre Bonum & antiikva, vahvapäätteinen \\
+ DejaVu Serif & antiikva, vahvapäätteinen \\
+ TeX Gyre Chorus & kalligrafinen \\
+ \midrule
+ Libertinus Sans & groteski, humanistinen, kaksivahvuinen \\
+ TeX Gyre Heros & groteski, uusgroteski \\
+ DejaVu Sans & groteski, uusgroteski \\
+ TeX Gyre Adventor & groteski, geometrinen \\
+ \midrule
+ Libertinus Mono & tasalevyinen \\
+ TeX Gyre Cursor & tasalevyinen \\
+ DejaVu Sans Mono & tasalevyinen \\
+ \bottomrule
+ \end{tabular}
+}{
+ \caption{Vapaita fontteja ja kirjainperheitä, jotka toimitetaan Tex
+ Live \=/jakelun tai käyttöjärjestelmän mukana. Tyylit viittaavat
+ kirjainmuotoon tai historialliseen kirjaintyyliin}
+ \label{tlk/vapaita-fontteja}
+}
+
\noindent
Edellisessä esimerkissä \englanti{TeX Gyre Termes, Heros} ja
-\englanti{Cursor} ovat kirjainperheiden nimiä. Fonttitiedostojen
-tulee olla asennettuna käyttöjärjestelmän normaalien käytäntöjen
-mukaisesti tai Latex\-/jakelun käytäntöjen mukaisesti.
+\englanti{Cursor} ovat kirjainperheiden nimiä. Fonttitiedostojen tulee
+olla asennettuna käyttöjärjestelmän normaalien käytäntöjen mukaisesti
+tai Latex\-/jakelun käytäntöjen mukaisesti. Taulukkoon
+\ref{tlk/vapaita-fontteja} on koottu erityylisiä, vapaasti käytettävissä
+olevia kirjainperheitä.
Kirjainperheiden käyttöönoton yhteydessä voi määritellä lukuisia
asetuksia kuten ligatuureja, gemenanumeroita, optisia kokoja ja muita
@@ -1140,7 +1174,7 @@ lihavoinnin. On kuitenkin mahdollista määritellä kirjainperheeseen
kuuluvia leikkausten nimiä tai fonttitiedostoja erikseen. Tällainen on
tarpeen esimerkiksi silloin, kun kirjainperhe sisältää useita eri
vahvuuksia ja halutaan itse määritellä, mikä niistä tulee
-perusvahvuudeksi ja mikä lihavoiduksi.
+perusvahvuudeksi ja mikä lihavaksi.
Esimerkki \ref{esim/fontit-leik-omin} selventää, kuinka kirjainperheen
eri leikkausten nimet tai fonttitiedostot määritellään. Kullekin
@@ -1148,7 +1182,8 @@ leikkaukselle voi määrittää myös omat asetuksensa \koodi{Fea\-tures}\-/
sanaan päättyvällä valitsimella. Samaa asiaa havainnollistetaan myös
konkreettisemmin esimerkissä \ref{esim/fontit-leik-omin-käyt}.
Leikkauksen nimessä voi käyttää tähteä (\koodi{*}), joka korvautuu
-kirjainperheen nimellä (\englanti{Macklin Text}).
+kirjainperheen nimellä (\englanti{Macklin Text}). Fonttien nimeämisestä
+on lisätietoa luvussa \ref{luku/luatex-xetex-fonttitekn}.
\begin{esimerkki*}
\komentoi{setmainfont}
@@ -1160,7 +1195,9 @@ kirjainperheen nimellä (\englanti{Macklin Text}).
BoldItalicFont={…}, BoldItalicFeatures={…},
SlantedFont={…}, SlantedFeatures={…},
BoldSlantedFont={…}, BoldSlantedFeatures={…},
- SmallCapsFont={…}, SmallCapsFeatures={…}]
+ SmallCapsFont={…}, SmallCapsFeatures={…},
+ SwashFont={…}, SwashFeatures={…},
+ BoldSwashFont={…}, BoldSwashFeatures={…}]
\end{koodilohko}
\caption{Kirjainperheeseen sisältyvien leikkausten nimien ja
kirjainleikkauskohtaisten ominaisuuksien määrittely}
@@ -1335,76 +1372,113 @@ rivikorkeus on parasta asettaa \komento{fontsize}\-/komennolla.
Latexissa on joukko korkean tason fonttikomentoja, jotka on tarkoitettu
käytettäväksi sen jälkeen, kun matalan tason asetukset on kerran
-määritetty. Taulukossa \ref{tlk/fonttimallikomennot} on komennot
-kirjainperheen ja kirjainleikkauksen valintaan. Joka rivillä ensin
-mainittu komento (esim. \komento{rmfamily}) vaikuttaa tekstiin, joka
-tulee komennon jälkeen. Vaikutusalue rajoittuu nykyisen ympäristön (luku
-\ref{luku/ympäristöt}) sisään tai aaltosulkeilla (luku
-\ref{luku/aaltosulkeet}) rajatun alueen sisään. Rivillä toisena olevalle
-komennolle (esim. \komentox{textrm}) annetaan yksi argumentti, ja
-komennon vaikutus koskee vain argumenttina olevaa tekstiä.
+määritetty. Taulukoissa \ref{tlk/komennot-kirjainperhe} ja
+\ref{tlk/komennot-kirjainleikk} ovat komennot kirjainperheen ja
+kirjainleikkauksen valintaan. Joka rivillä ensin mainittu komento (esim.
+\komento{rmfamily}) vaikuttaa tekstiin, joka tulee komennon jälkeen.
+Vaikutusalue rajoittuu nykyisen ympäristön (luku \ref{luku/ympäristöt})
+sisään tai aaltosulkeilla (luku \ref{luku/aaltosulkeet}) rajatun alueen
+sisään. Rivillä toisena olevalle komennolle (esim. \komentox{textrm})
+annetaan yksi argumentti, ja komennon vaikutus koskee vain argumenttina
+olevaa tekstiä.
\leijutlk{
\providecommand{\rivi}{}
- \renewcommand{\rivi}[4]{%
- \komento{#1} & \komento{#2}\komentoarg{\dots} & #3 & #4 \\}
- \begin{tabular}{llll}
+ \renewcommand{\rivi}[3]{%
+ \komento{#1} & \komento{#2}\komentoarg{\dots} & #3 \\}
+ \begin{tabular}{lll}
\toprule
- \multicolumn{2}{l}{\ots{Komento}}
- & \multicolumn{2}{l}{\ots{Merkitys}} \\
+ \multicolumn{2}{l}{\ots{Komento}} & \ots{Merkitys} \\
\midrule
- \rivi {rmfamily} {textrm} {\rmfamily perhe}
- {perus, yl. antiikva, serif, roman}
- \rivi {sffamily} {textsf} {\sffamily perhe}
- {groteski, sans serif, gothic}
- \rivi {ttfamily} {texttt} {\ttfamily perhe}
- {tasalevyinen, typewriter}
+ \rivi {rmfamily} {textrm}
+ {\textrm{perus, yleensä antiikva, serif, roman}}
+ \rivi {sffamily} {textsf}
+ {\textsf{groteski, sans serif, gothic}}
+ \rivi {ttfamily} {texttt}
+ {\texttt{tasalevyinen, typewriter}}
+
+ \bottomrule
+ \end{tabular}
+}{
+ \caption{Komennot kirjainperheen valintaan. Perustila on
+ \komento{rmfamily}}
+ \label{tlk/komennot-kirjainperhe}
+}
+
+\leijutlk{
+ \providecommand{\rivi}{}
+ \renewcommand{\rivi}[3]{%
+ \komento{#1} & \komento{#2}\komentoarg{\dots} & #3 \\}
+ \begin{tabular}{llll}
+ \toprule
+ \multicolumn{2}{l}{\ots{Komento}} & \ots{Merkitys} \\
\midrule
- \rivi {mdseries} {textmd} {\mdseries leikkaus}
- {tavallinen vahvuus, medium}
- \rivi {bfseries} {textbf} {\bfseries leikkaus}
- {lihavoitu, bold}
+ \rivi {mdseries} {textmd}
+ {\textmd{tavallinen vahvuus, medium}}
+ \rivi {bfseries} {textbf}
+ {\textbf{lihavoitu, bold}}
\midrule
- \rivi {upshape} {textup} {\upshape leikkaus}
- {pystyasento, tavallinen}
- \rivi {itshape} {textit} {\itshape leikkaus}
- {kursiivi, italic}
- \rivi {slshape} {textsl} {\slshape leikkaus}
- {kalteva, slanted, oblique}
- \rivi {scshape} {textsc} {\scshape leikkaus}
- {pienversaali, kapiteeli, small caps}
+ \rivi {upshape} {textup}
+ {\textup{pystyasento, tavallinen}}
+ \rivi {itshape} {textit}
+ {\textit{kursiivi, italic}}
+ \rivi {slshape} {textsl}
+ {\textsl{kalteva, slanted, oblique}}
+ \rivi {swshape} {textsw}
+ {{\swashfontti Koristeellinen, swash}}
+ \rivi {scshape} {textsc}
+ {\textsc{pienversaali, kapiteeli, small caps}}
+
\bottomrule
\end{tabular}
}{
- \caption{Komennot kirjainperheen ja kirjainleikkauksen valintaan.
- Perustila on \komento{rmfamily}, \komento{mdseries} ja
- \komento{upshape}}
- \label{tlk/fonttimallikomennot}
+ \caption{Komennot kirjainleikkauksen valintaan saman kirjainperheen
+ sisällä. Perustila on \komento{mdseries} ja \komento{upshape}}
+ \label{tlk/komennot-kirjainleikk}
}
-Taulukossa on ensimmäisillä riveillä kirjainperhekomennot (3\,kpl),
-jotka vaihtavat koko perheen kaikkine leikkauksineen. Niiden jälkeen
-tulevat kirjainleikkauskomennot, jotka valitsevat toisen leikkauksen
-samasta perheestä. Kirjainleikkauksen asetukset jaetaan kahteen ryhmään:
-\englantik{series} 'sarja' ja \englantik{shape} 'muoto'. Kummastakin
-ryhmästä on valittuna aina yksi ominaisuus, eli samanaikaisesti voi olla
-voimassa esimerkiksi \komento{bfseries} (\textbf{lihavoitu}) ja
-\komento{itshape} (\textit{kursiivi}), ja tuloksena on \textbf{\itshape
- lihavoitua kursiivia}.
+Taulukossa \ref{tlk/komennot-kirjainperhe} ovat kirjainperhekomennot,
+jotka vaihtavat koko perheen kaikkine leikkauksineen. Taulukon
+\ref{tlk/komennot-kirjainleikk} komennot puolestaan valitsevat toisen
+leikkauksen samasta perheestä. Kirjainleikkauksen asetukset jaetaan
+kahteen ryhmään: \englantik{series} 'sarja' ja \englantik{shape}
+'muoto'. Kummastakin ryhmästä on valittuna aina yksi ominaisuus, eli
+samanaikaisesti voi olla voimassa esimerkiksi \komento{bfseries}
+(\textbf{lihavoitu}) ja \komento{itshape} (\textit{kursiivi}), ja
+tuloksena on \textbf{\itshape lihavoitua kursiivia}.
Useimmissa fonteissa kursiivileikkaus (\komento{itshape}) ja kalteva
leikkaus (\komento{slshape}) tuottavat saman lopputuloksen, mutta
käsitteellisesti ne ovat eri asia. Kursiivi on aina muodoltaan erilainen
leikkaus, joka hieman mukailee käsialakirjoitusta, joskaan kirjaimia ei
ole sidottu toisiinsa. Sen sijaan kalteva leikkaus on tavallisen eli
-pystyasentoisen leikkauksen kallistettu versio. Kallistus voi olla
-kirjainmuotoilijan piirtämä leikkaus, tai kallistus on voitu toteuttaa
-mekaanisesti. Kallistuksen voi tehdä myös Latexissa (luku
-\ref{luku/fontit-venytys}).
+pystyasentoisen leikkauksen kallistettu versio.
+
+Jos kallistus on kirjainmuotoilijan piirtämä, kursiivista poikkeava
+leikkaus eli ihan oma fonttitiedostonsa, kallistettu leikkaus täytynee
+erikseen määrittää osaksi kirjainperhettä \koodi{Slanted\-Font}\-/
+asetuksella (esimerkki \ref{esim/fontit-leik-omin}). Kallistuksen voi
+tehdä myös keinotekoisesti Latexissa. Katso lisätietoa luvusta
+\ref{luku/fontit-venytys}.
+
+Jotkut \englanti{Open Type} \=/fontit sisältävät erillisen
+koristeellisen tyylin (\komento{swshape}), joka voi sisältyä esimerkiksi
+kursiivileikkaukseen mutta joka täytyy silti kytkeä erikseen päälle.
+Sellaisen saa määritettyä osaksi kirjainperhettä käyttämällä valitsimia
+\koodi{Swash\-Font} ja \koodi{Swash\-Fea\-tures} (esimerkki
+\ref{esim/fontit-leik-omin}) seuraavalla tavalla:
+\komentoi{setmainfont}
+\begin{koodilohkosis}
+\setmainfont{Garamond Premier Pro}[
+ SwashFont={GaramondPremrPro-It}, % kursiivileikkaus
+ SwashFeatures={Style=Swash}] % koristeellinen swash-tyyli
+\end{koodilohkosis}
+
+\noindent
Komennot fontin koon valintaan ovat taulukossa
\ref{tlk/fonttikokokomennot}. Taulukko kertoo myös, mitä fontin
pistekokoa (pt) mikäkin komento tarkoittaa oletuksena. Oletus riippuu
@@ -1445,6 +1519,7 @@ fonttikokovalitsimista \koodi{10pt}, \koodi{11pt} ja \koodi{12pt}.
\ymparistoi{upshape}
\ymparistoi{itshape}
\ymparistoi{slshape}
+\ymparistoi{swshape}
\ymparistoi{scshape}
\ymparistoi{tiny}
\ymparistoi{scriptsize}
@@ -1649,7 +1724,7 @@ samoja mutta ilman skaalausta.
Uusien skaalaamattomien kirjainperheiden komentojen nimiksi on valittu
\komentox{sf\-fam\-i\-ly\-abs} ja \komentox{tt\-fam\-i\-ly\-abs} (vrt.
\komento{sffamily} ja \komento{ttfamily}, taulukko
-\ref{tlk/fonttimallikomennot}), ja näillä komennoilla kirjainperheet
+\ref{tlk/komennot-kirjainperhe}), ja näillä komennoilla kirjainperheet
kytketään päälle. Jos esimerkiksi jonkin julkaisun vaatimuksiin kuuluu,
että otsikossa täytyy olla 20 pisteen lihavoitu TeX Gyre Heros
\=/kirjainleikkaus, voi esimerkissä \ref{esim/fontti-absoluuttinen}
@@ -1694,6 +1769,61 @@ myös teknisesti eheä eli toimii Latexin sisäisen logiikan näkökulmasta
oikein. Haittana voi pitää sitä, että kaikki koot täytyy määritellä
erikseen.
+\subsection{Lualatex, Xelatex ja fonttitekniikka}
+\label{luku/luatex-xetex-fonttitekn}
+
+Kääntäjät Lualatex ja Xelatex (Luatex ja Xetex) käsittelevät fontteja
+sisäisesti eri tavalla. Ne esimerkiksi hyväksyvät kirjainperheiden tai
+\=/leikkausten nimet hieman toisistaan poikkeavalla tavalla, ja
+kääntäjää vaihtaessa saattaa joskus huomata, ettei jotakin
+kirjainperhettä tai yksittäistä leikkausta enää löydykään.
+
+Ongelma korjaantuu nimeämällä kirjainperheen tai \=/leikkauksen eri
+tavalla. Yleispätevää ohjetta nimeämiseen on vaikeaa antaa, mutta jos
+tulee ongelmia, kannatta fonttitiedostoista tutkia kirjainperheelle tai
+\=/leikkaukselle annettuja nimiä. Se onnistuu käyttöjärjestelmän
+komentotulkissa \koodi{otfinfo}\-/ komennolla, joka tulostaa jotakin
+esimerkin \ref{esim/otfinfo-fonttinimiä} kaltaista. Kokeilemalla
+tulosteessa olevia nimiä saa kyllä fontit toimimaan.
+
+\begin{esimerkki*}
+\begin{koodilohko}
+Family: Garamond Premr Pro
+Subfamily: Regular
+Full name: GaramondPremrPro
+PostScript name: GaramondPremrPro
+Preferred family: Garamond Premier Pro
+Mac font menu name: Garamond Premr Pro
+\end{koodilohko}
+ \caption{\koodi{otfinfo}\-/ komennon tuloste kertoo fontista muun
+ muassa kirjainperheen ja \=/leikkauksen nimiä}
+ \label{esim/otfinfo-fonttinimiä}
+\end{esimerkki*}
+
+\begin{koodilohkosis}
+otfinfo -i GaramondPremrPro.otf
+\end{koodilohkosis}
+
+\noindent
+Lualatex (Luatex) käyttää ulkoisia tekniikoita fonttien latomiseen eli
+''renderöimiseen'', ja näitä tekniikoita voi vaihtaa fontin
+määrittelemisen yhteydessä. Eri vaihtoehtojen kokeilu voi olla tarpeen,
+jos oletusasetuksilla ei synny toivottua jälkeä. Asetuksia muutetaan
+käyttämällä valitsinta \koodi{Renderer} seuraavan esimerkin tavoin:
+
+\komentoi{setmainfont}
+\begin{koodilohkosis}
+\setmainfont{…}[Renderer=Node]
+\end{koodilohkosis}
+
+\noindent
+Tavallisimpia \koodi{Renderer}\-/ valitsimen arvoja ovat
+\koodi{\mbox{Node}}, \koodi{Harf\-Buzz} ja \koodi{Open\-Type}.
+Lisätietoa voi lukea \paketti{fontspec}\-/ paketin ohjekirjan luvusta,
+joka käsittelee Luatexin erityispiirteitä. Myös Xelatexissa (Xetex) on
+fontteihin liittyviä ominaisuuksia, joita ei muissa kääntäjissä ole.
+Niistäkin kerrotaan \paketti{fontspec}\-/ paketin ohjekirjassa.
+
\subsection{Fonttien oletusasetuksia}
\label{luku/fontit-oletusasetukset}
@@ -1784,8 +1914,8 @@ Komennon valinnaisella argumentilla voi rajata, mitä kirjainperheitä
oletusasetukset koskevat. Valinnaiseen argumenttiin kirjoitetaan yksi
tai useampia pilkulla erotettuja komentoja, joilla kirjainperheet
kytketään päälle: \komento{rmfamily}, \komento{sffamily},
-\komento{ttfamily} (taulukko \ref{tlk/fonttimallikomennot},
-s.~\pageref{tlk/fonttimallikomennot}) tai komennolla
+\komento{ttfamily} (taulukko \ref{tlk/komennot-kirjainperhe},
+s.~\pageref{tlk/komennot-kirjainperhe}) tai komennolla
\komento{newfontfamily} määritelty fonttikomento (luku
\ref{luku/fontin-valinta}).
@@ -1979,6 +2109,13 @@ kirjainperheeseen kuuluvaan pienversaaliin, käytetään valitsinta
\setmainfont{…}[SmallCapsFeatures={LetterSpace=6}]
\end{koodilohkosis}
+\noindent
+\koodi{Letter\-Space}\-/ ominaisuus ei ole aina toiminut kunnolla
+kaikilla Lualatexin fontinladontatekniikoilla. Jos merkkien välistys
+toimii epätasaisesti, kannattaa kokeilla vaihtaa tekniikkaa
+\koodi{Renderer}\-/ valitsimella. Lisätietoa on luvussa
+\ref{luku/luatex-xetex-fonttitekn}.
+
\subsection{Keinotekoinen venytys, lihavointi ja kallistus}
\label{luku/fontit-venytys}
@@ -2003,8 +2140,8 @@ Kirjainleikkauksen leventäminen tekee tekstistä samalla lihavampaa,
koska kirjainten viivat tulevat vahvemmiksi leveyssuunnassa.
Korkeussuunnassa vahvuus säilyy ennallaan, joten kirjainten
viivakontrasti muuttuu. Kirjainleikkauksen kutistaminen vaikuttaa
-lihavuuteen päinvastaisesti. Tällainen mekaaninen fontin
-''korjaileminen'' ei välttämättä tuota typografisesti kovin hyvää jälkeä
+lihavuuteen päinvastaisesti. Tällainen keinotekoinen fontin
+korjaileminen ei välttämättä tuota typografisesti kovin hyvää jälkeä
mutta voi sopia lievästi käytettynä esimerkiksi otsikoihin. Tämän oppaan
tasalevyistä kirjainperhettä on hieman kutistettu, koska alkuperäinen on
kohtuuttoman leveä ({\ttfamily\addfontfeatures{FakeStretch=1}
@@ -2026,20 +2163,21 @@ pysty {\addfontfeatures{FakeSlant=.2} kalteva}
\end{tulossis}
\noindent
-Mekaanisen lihavoinnin tai kallistuksen saa osaksi kirjainperhettä, kun
-asettaa kirjainperheen määrittelyn yhteydessä halutun kirjainleikkauksen
-valitsimella \koodi{Bold\-Font} tai \koodi{Slanted\-Font} ja määrittää
-niille erityisiä ominaisuuksia valitsimella \koodi{Bold\-Fea\-tures} tai
-\koodi{Slanted\-Fea\-tures}. Seuraava esimerkki asettaa dokumentin
-perusfontille kaltevan leikkauksen. Tämän jälkeen komento
-\komento{slshape} valitsee \textsl{kaltevan} leikkauksen, joka on siis
-eri asia kuin \textit{kursiivi} (\komento{itshape}).
+Keinotekoisen lihavoinnin tai kallistuksen saa osaksi kirjainperhettä,
+kun asettaa kirjainperheen määrittelyn yhteydessä halutun
+kirjainleikkauksen valitsimella \koodi{Bold\-Font} tai
+\koodi{Slanted\-Font} ja määrittää niille erityisiä ominaisuuksia
+valitsimella \koodi{Bold\-Fea\-tures} tai \koodi{Slanted\-Fea\-tures}.
+Seuraava esimerkki asettaa dokumentin perusfontille kaltevan
+leikkauksen. Tämän jälkeen komennot \komento{slshape} ja
+\komento{textsl} valitsevat \textsl{kaltevan} leikkauksen, joka on siis
+eri asia kuin \textit{kursiivi} (\komento{itshape}, \komento{textit}).
\komentoi{setmainfont}
\begin{koodilohkosis}
-\setmainfont{…}[
- SlantedFont={…}, % tähän pystyasentoinen leikkaus
- SlantedFeatures={FakeSlant=.2}]
+\setmainfont{TeX Gyre Termes}[ % kirjainperhe
+ SlantedFont={TeX Gyre Termes Regular}, % pystyasentoinen leikkaus
+ SlantedFeatures={FakeSlant=.2}] % keinotekoinen kallistus
\end{koodilohkosis}
\subsection{Keinotekoinen pienversaali}
@@ -2077,7 +2215,9 @@ joka täytyy ladata muiden matematiikkaan tai fontteihin liittyvien
pakettien jälkeen. Paketti tuo komennon \komento{setmathfont}, joka on
matematiikkatilan vastine luvussa \ref{luku/fontin-valinta} esitellyille
fontinmäärittelykomennoille \komento{setmainfont}, \komento{setsansfont}
-ja \komento{setmonofont}.
+ja \komento{setmonofont}. Lähes aina on järkevää käyttää
+matematiikkatilan fontille asetusta \koodi{Scale=\katk MatchLowercase}.
+Se asettaa fontin samankokoiseksi kuin vastaava peruskirjainperhe.
\pakettii{fontspec}
\pakettii{unicode-math}
@@ -2086,8 +2226,8 @@ ja \komento{setmonofont}.
\begin{koodilohkosis}
\usepackage{fontspec}
\usepackage{unicode-math}
-\setmainfont{TeX Gyre Pagella} % tekstitilan perusfontti
-\setmathfont{TeX Gyre Pagella Math} % matematiikkatilan fontti
+\setmainfont{TeX Gyre Pagella} % tekstitilan perusfontti
+\setmathfont{TeX Gyre Pagella Math}[Scale=MatchLowercase]
\end{koodilohkosis}
\leijutlk{
@@ -2137,43 +2277,37 @@ voi tutkia esimerkiksi käyttöjärjestelmän komentotulkissa
otfinfo -s texgyrepagella-math.otf
\end{koodilohkosis}
-\noindent
-Tex Live \=/jakelun mukana tulee muutama \englanti{Open Type}
-\=/kirjainperhe, joihin kuuluvat myös matematiikan symbolit. Niitä ovat
-ainakin Libertinus, eri TeX Gyre \=/perheet sekä \englanti{Latin Modern
- Roman}, jonka kanssa sopii matematiikkafontti \englanti{Latin Modern
- Math}. Libertinus\-/ perheen voi ottaa käyttöön hyvin
-yksinkertaisesti: ladataan vain paketti \paketti{libertinus}, joka
-määrittää kerralla antiikvan, groteskin, tasalevyisen ja
-matematiikkafontin. Toisaalta Libertinus\-/ perhettä voi käyttää myös
-tavallisten fontinmäärityskomentojen avulla.
-
-\begin{esimerkki*}
- \komentoi{setmathfont}
-
-\begin{koodilohko}
-\setmathfont{Libertinus Math Regular}
-\setmathfont{TeX Gyre Bonum Math}
-\setmathfont{TeX Gyre Dejavu Math}
-\setmathfont{TeX Gyre Pagella Math}
-\setmathfont{TeX Gyre Schola Math}
-\setmathfont{TeX Gyre Termes Math}
-\setmathfont{Latin Modern Math}
-\end{koodilohko}
-
- \caption{Matematiikan symboleja sisältäviä vapaita fontteja. Komento
- \komento{setmathfont} sisältyy pakettiin \paketti{unicode-math}}
- \label{esim/matematiikka-fontteja}
-\end{esimerkki*}
+\leijutlk{
+ \providecommand{\rivi}{}
+ \renewcommand{\rivi}[2]{#1 & $\longleftrightarrow$ & #2 \\}
-Esimerkissä \ref{esim/matematiikka-fontteja} on komentoja joidenkin
-matematiikkafonttien lataamiseen. Lähes aina on järkevää käyttää
-asetusta \koodi{Scale=\katk MatchLowercase}, joka asettaa fontin
-samankokoiseksi kuin vastaava peruskirjainperhe.
+ \begin{tabular}{r@{\enspace}c@{\enspace}l}
+ \toprule
+ \ots{Leipäteksti} && \ots{Matematiikkatila} \\
+ \midrule
+ \rivi{Libertinus Serif}{Libertinus Math}
+ \rivi{TeX Gyre Bonum}{TeX Gyre Bonum Math}
+ \rivi{TeX Gyre Pagella}{TeX Gyre Pagella Math}
+ \rivi{TeX Gyre Schola}{TeX Gyre Schola Math}
+ \rivi{TeX Gyre Termes}{TeX Gyre Termes Math}
+ \rivi{DejaVu Serif}{TeX Gyre Dejavu Math}
+ \rivi{Garamond Libre}{Garamond Math}
+ \rivi{Latin Modern Roman}{Latin Modern Math}
+ \bottomrule
+ \end{tabular}
+}{
+ \caption{Ulkoasultaan yhteensopivia leipätekstin ja matematiikkatilan
+ fontteja}
+ \label{tlk/matematiikka-fontteja}
+}
-\begin{koodilohkosis}
-\setmathfont{TeX Gyre Pagella Math}[Scale=MatchLowercase]
-\end{koodilohkosis}
+\noindent
+Taulukkoon \ref{tlk/matematiikka-fontteja} on koottu \englanti{Open
+ Type} \=/fontteja, joissa on yhteensopiva leipätekstin ja
+matematiikkatilan kirjainperhe. Teknisesti kaikkia voi käyttää kaikkien
+kanssa, mutta on tietenkin toivottavaa, että kirjainleikkaukset sopivat
+ulkoasultaan yhteen. Kaikki fontit ovat vapaita ja toimitetaan Tex Live
+\=/jakelun tai käyttöjärjestelmän mukana.
\section{Kieli}
\label{luku/kieliasetukset}
@@ -2301,10 +2435,8 @@ kohdekielelle ja \=/kirjainperheelle on määritelty sopiva fonttikomento.
\subsection{Babel}
\label{luku/babel}
-Vanha kunnon \pakettictan{babel}\yipilkku\footnote{Katso myös
- \paketti{babel}\-/ paketin mukana toimitettavat kielikohtaiset
- dokumentit, esimerkiksi tiedosto \koodi{finnish.pdf}.} toimii useiden
-eri Latex\-/ kääntäjien kanssa. Ennen dokumentit kirjoitettiin
+Vanha kunnon \pakettictan{babel}\yipilkku\avctan{babel-finnish} toimii
+useiden eri Latex\-/ kääntäjien kanssa. Ennen dokumentit kirjoitettiin
rajallisilla merkistöillä (kuten \textsc{iso-8859\=/1}), jotka
sisältävät vain reilut kaksisataa ihmiskielten kirjoitusmerkkiä.
\paketti{babel} kuitenkin toimii myös Lualatex\-/\ ja Xelatex\-/
@@ -2491,6 +2623,7 @@ tavutusvihjeen siten, että se sallii sanan tavutuksen muistakin kohdista
kuin tavutusvihjeen kohdalta.
\subsection{Tavutus sanan reunasta}
+\label{luku/tavutus-reunasta}
Asetukset \komento{lefthyphenmin}\komentojatko{=N} ja
\komento{righthyphenmin}\komentojatko{=N} vaikuttavat tavutukseen sanan
@@ -2677,14 +2810,12 @@ kohdista. Lisätietoa suomen tavutuksen erityispiirteistä on luvussa
\subsection{Babel ja tavutus}
\label{luku/tavutus-babel}
-Kielipaketti \pakettictan{babel}\yipilkku\footnote{Katso myös
- \paketti{babel}\-/ paketin mukana toimitettavat kielikohtaiset
- dokumentit, esimerkiksi tiedosto \koodi{finnish.pdf}.} (myös luku
-\ref{luku/babel}) lisää automaattisesti moniin kieliin -- myös suomen
-kieleen -- muutaman erikoismerkin, joilla voi vaikuttaa tavutukseen.
-Erikoismerkit saa pois päältä käyttämällä paketin lataamisen yhteydessä
-valitsinta \koodi{shorthands=\katk off}. Seuraavassa on selitetty suomen
-kielen erikoismerkkejä.
+Kielipaketti \pakettictan{babel}\yipilkku\avctan{babel-finnish} (myös
+luku \ref{luku/babel}) lisää automaattisesti moniin kieliin -- myös
+suomen kieleen -- muutaman erikoismerkin, joilla voi vaikuttaa
+tavutukseen. Erikoismerkit saa pois päältä käyttämällä paketin
+lataamisen yhteydessä valitsinta \koodi{shorthands=\katk off}.
+Seuraavassa on selitetty suomen kielen erikoismerkkejä.
\begin{maaritelma}{\koodi{#1}}
\item [\komento{-}] Tämä on Texin normaali tavutusvihje (luku
@@ -2772,7 +2903,7 @@ seuraavasti:
\pakettii{babel}
\komentoi{babelprovide}
\begin{koodilohkosis}
-\babelprovide[transforms = prehyphen.nobreak]{finnish}
+\babelprovide[transforms=prehyphen.nobreak]{finnish}
\end{koodilohkosis}
\noindent
@@ -2797,20 +2928,14 @@ esimerkissä asetetaan tavutusvihjeitä vain suomen kielen sanoille:
\noindent
Vaihtoehtoisen suomen kielen tavutussäännöstön voi kytkeä päälle
-lataamalla paketin \pakettictan{hyphsubst} ja kertomalla sen
-asetuksissa, että tavutuksen kieli \koodi{finnish} korvataan kielellä
-\koodi{school\-finnish}. Paketti \paketti{hyphsubst} täytyy ladata
-\paketti{babel}\-/ paketin jälkeen, seuraavan esimerkin mukaisesti. Tämä
-tavutusvaihtoehto sallii tavutuksen kaikista mahdollisista kohdista.
-Lisätietoa suomen tavutuksen erityispiirteistä on luvussa
-\ref{luku/suomi-tavutus}.
+komennolla \komento{babelprovide}, seuraavan esimerkin mukaisesti. Tämä
+vaihtoehto sallii sanan katkaisemisen kaikista mahdollisista suomen
+kielen tavutuskohdista. Lisätietoa suomen tavutuksen erityispiirteistä
+on luvussa \ref{luku/suomi-tavutus}.
-\komentoi{usepackage}
-\pakettii{babel}
-\pakettii{hyphsubst}
+\komentoi{babelprovide}
\begin{koodilohkosis}
-\usepackage[main=finnish]{babel}
-\usepackage[finnish=schoolfinnish]{hyphsubst}
+\babelprovide[hyphenrules=schoolfinnish]{finnish}
\end{koodilohkosis}
\subsection{Viivojen erikoispaketti extdash}
@@ -3000,19 +3125,22 @@ toimi muiden kääntäjien kanssa.
Suomen kielelle on olemassa Latexissa kaksi erilaista tavutussäännöstöä.
Oletuksena toimivat säännöt kuvaavat tavallisimmat tavujen rakenteet
-mutta pyrkivät huomioimaan myös typografisia suosituksia. Sanaa ei
-esimerkiksi katkaista vokaalien välistä, koska se ei ole suositeltavaa.
-Myös jotkin yleiset vierasperäisten sanojen konsonanttiyhdistelmät
-pidetään yhdessä, vaikka ne suomen tavurakenteen mukaan kuuluisivat
-joskus eri tavuihin.
+mutta pyrkivät huomioimaan myös typografisia suosituksia. Esimerkiksi
+sanaa ei välttämättä katkaista vokaalien välistä, koska se ei ole
+suositeltavaa. Myös jotkin yleiset vierasperäisten sanojen
+konsonanttiyhdistelmät pidetään yhdessä, vaikka ne suomen tavurakenteen
+mukaan kuuluisivat joskus eri tavuihin.
Toinen, vaihtoehtoinen tavutussäännöstö kuvaa pelkästään suomen tavujen
rakenteen, eli se tavuttaa sanat kaikista mahdollisista kohdista eikä
huomioi typografisia suosituksia mitenkään.%
\footnote{Lisätietoa:
- \url{https://github.com/hyphenation/basic-finnish}} Tämä
-vaihtoehtoinen tavutustapa täytyy kytkeä erikseen päälle kielipaketin
-asetuksista tai lisäkomennoilla. Katso kielipakettikohtaiset ohjeet
+ \url{https://github.com/hyphenation/basic-finnish}} Asetus sanan
+reunasta tavuttamisesta on kuitenkin voimassa (luku
+\ref{luku/tavutus-reunasta}). Tämä vaihtoehtoinen tavutustapa täytyy
+kytkeä erikseen päälle kielipaketin asetuksista. Sen nimi on Latexissa
+\emph{\englanti{school}}, koska se on ''peruskoulutavuttamista'' eikä
+typografian mukaista tavuttamista. Katso kielipakettikohtaiset ohjeet
luvuista \ref{luku/tavutus-polyglossia} ja \ref{luku/tavutus-babel}.
Texin kirjainyhdistelmiin perustuvat tavutussäännöt eivät yksinään ole
diff --git a/info/kaytannollista-latexia/luku-erikoiset.tex b/info/kaytannollista-latexia/luku-erikoiset.tex
index 7c5e77f4e4..c87d9c4150 100644
--- a/info/kaytannollista-latexia/luku-erikoiset.tex
+++ b/info/kaytannollista-latexia/luku-erikoiset.tex
@@ -390,7 +390,7 @@ aloitusdian (\komento{maketitle}) otsikon kirjainperheen ja
\rivi{title}{aloitusdian otsikko (\komento{maketitle})}
\rivi{frametitle}{diojen otsikot}
\rivi{framesubtitle}{diojen alaotsikot}
- \rivi{blocktitle}{\ymparisto{block}\-/ ympäristön otsikot}
+ \rivi{block title}{\ymparisto{block}\-/ ympäristön otsikot}
\rivi{normal text}{normaali teksti diojen sisällä}
\rivi{footnote}{alaviitteet}
\rivi{item}{luetelmien luetelmamerkit}
diff --git a/info/kaytannollista-latexia/luku-merkintakieli.tex b/info/kaytannollista-latexia/luku-merkintakieli.tex
index b1170a4560..4c18794a42 100644
--- a/info/kaytannollista-latexia/luku-merkintakieli.tex
+++ b/info/kaytannollista-latexia/luku-merkintakieli.tex
@@ -858,7 +858,7 @@ lopulta yksi \koodi{]}-merkki.
Komennon yhteydessä sanavälejä käsitellään hieman poikkeuksellisesti.
Esimerkiksi komennon nimen perässä olevat sanavälit syödään pois, jos
komennolle ei anneta yhtään argumenttia. Seuraavassa esimerkissä sana
-''Latex'' ladotaan ehjänä, jos vain \komentox{komento} itsessään ei
+\emph{Latex} ladotaan ehjänä, jos vain \komentox{komento} itsessään ei
kirjoita mitään eikä vaikuta tekstin latomiseen.
\begin{koodilohkosis}
diff --git a/info/kaytannollista-latexia/luku-rakenne.tex b/info/kaytannollista-latexia/luku-rakenne.tex
index 788980dc50..32b6bd7253 100644
--- a/info/kaytannollista-latexia/luku-rakenne.tex
+++ b/info/kaytannollista-latexia/luku-rakenne.tex
@@ -850,7 +850,7 @@ tavalla:
\noindent
Edellä oleva esimerkki tekee kolmerivisen upotetun A\-/anfangin, jonka
-perässä oleva sanan osa ''nfangi'' ladotaan pienversaalilla.
+perässä oleva sanan osa \emph{nfangi} ladotaan pienversaalilla.
Valitsimella \koodi{lover\-size} kasvatetaan hieman anfangikirjaimen
kokoa, ja \koodi{lhang}\-/ valitsimella siirretään kirjainta hieman
vasemmalle marginaalin puolelle. Valitsin \koodi{findent} määrittää
@@ -2158,7 +2158,7 @@ yhteydessä ladotaan suomen kieliasetuksilla ilmaus ''\chaptername~1'',
Jos omassa dokumentissa haluaa kutsua teoksen osia tai päälukuja
joksikin muuksi, voi määritellä edellä mainitut komennot uudelleen.
Seuraavassa esimerkissä voisi olla jokin romaani, jossa teoksen osat
-ovat ''kausia'' ja pääluvut ovat ''päiviä''.
+ovat \emph{kausia} ja pääluvut ovat \emph{päiviä}.
\komentoi{addto}
\komentoi{captionsfinnish}
@@ -4297,10 +4297,10 @@ se on lähdetiedostossa. Se on kuitenkin vain ehdotus eikä useinkaan
toteudu: Latex lisää automaattisesti aina \koodi{h}\=/ valitsimen perään
\koodi{t}:n eli sivun yläosaan sijoittamisen. Latex käyttää sitä, jos se
saa sillä tavoin omasta mielestään paremman lopputuloksen. Lataamalla
-paketin \pakettictan{floatrow} voi käyttää myös myös valitsinta
-\koodi{H}. Se tarkoittaa ehdotonta vaatimusta, että juuri tähän kohtaan
-leijuva osa pitää sijoittaa. Tätä valitsinta ei voi yhdistää muiden
-valitsimien kanssa.
+paketin \paketti{floatrow} voi käyttää myös myös valitsinta \koodi{H}.
+Se tarkoittaa ehdotonta vaatimusta, että juuri tähän kohtaan leijuva osa
+pitää sijoittaa. Tätä valitsinta ei voi yhdistää muiden valitsimien
+kanssa.
Valitsinta \koodi{!} käytetään yhdessä edellä mainittujen valitsimien
\koodi{tbp} kanssa. Se poistaa tietyt sijoitteluun vaikuttavat säännöt
@@ -4414,7 +4414,7 @@ tällainen raja automaattisesti \komento{section}\-/ otsikoille.
Leijuvan osan sisäisen asettelun, ulkoasun ja muun typografian
hallintaan ja muokkaamiseen tarvitaan yleensä paketteja
-\pakettictan{floatrow} ja \pakettictan{caption}. Jälkimmäisen avulla
+\paketti{floatrow} ja \pakettictan{caption}. Jälkimmäisen avulla
muokataan kuvatekstin fonttia ja rivitystä, ja sitä käsitellään
myöhemmin tässä alaluvussa.
@@ -4574,7 +4574,7 @@ osan asetukset voisivat näyttää vaikka seuraavanlaiselta:
\end{koodilohkosis}
\noindent
-Kuvatekstien fonttia ja rivittämistä hallitaan \pakettictan{caption}\-/
+Kuvatekstien fonttia ja rivittämistä hallitaan \paketti{caption}\-/
paketin avulla. Tärkein komento on \komento{captionsetup}, joka yleensä
sijoitetaan dokumentin esittelyosaan tai muuten alkuun, koska silloin se
vaikuttaa koko dokumentissa. Komennon voi sijoittaa myös yksittäisen
@@ -4861,13 +4861,13 @@ lähdedokumentissa esimerkiksi seuraavasti:
\komentoi{ref}
\komentoi{pageref}
\begin{koodilohkosis}
-Katso taulukko \ref{tlk/fonttimallikomennot} sivulla
-\pageref{tlk/fonttimallikomennot}.
+Katso taulukko \ref{tlk/komennot-kirjainperhe} sivulla
+\pageref{tlk/komennot-kirjainperhe}.
\end{koodilohkosis}
\begin{tulossis}
- Katso taulukko \ref{tlk/fonttimallikomennot} sivulla
- \pageref{tlk/fonttimallikomennot}.
+ Katso taulukko \ref{tlk/komennot-kirjainperhe} sivulla
+ \pageref{tlk/komennot-kirjainperhe}.
\end{tulossis}
\noindent
@@ -6275,7 +6275,7 @@ seuraavalla komennolla:
\end{tulossis}
\noindent
-\pakettictan{biblatex}\-/ paketti sisältää valtavan paljon asetuksia ja
+\paketti{biblatex}\-/ paketti sisältää valtavan paljon asetuksia ja
mahdollisuuksia lähdeluettelon ja \=/viitteiden ulkoasun säätämiseen.
Esimerkiksi komennolla \komento{DeclareBibliographyDriver} voi ottaa
täysin haltuun, miten tietty teostyyppi ladotaan lähdeluetteloon.
@@ -6418,10 +6418,10 @@ Ohjelmalle on olemassa pari vaihtoehtoa, ja sen voi valita valitsimella
lataamisen yhteydessä. Katso luku \ref{luku/asiasanat-asetukset}.} ja
\koodi{xindy}, joka käytännössä suorittaa \koodi{texindy}\-/ nimisen
ohjelman. Näillä ohjelmilla on omat ohjekirjansa, joita pääsee lukemaan
-\textsc{gnu}/\katk Linux\-/ järjestelmissä \koodi{man}\-/ komennolla.
-Jos käyttää vaihtoehtoa \koodi{program=\katk xindy}, täytyy Latexin
-kääntäjälle (\koodi{lualatex} tai \koodi{xelatex}) antaa
-komentorivivalitsin \koodi{\=/shell-escape}, joka kytkee päälle erään
+Linux\-/ järjestelmissä \koodi{man}\-/ komennolla. Jos käyttää
+vaihtoehtoa \koodi{program=\katk xindy}, täytyy Latexin kääntäjälle
+(\koodi{lualatex} tai \koodi{xelatex}) antaa komentorivivalitsin
+\koodi{\=/shell-escape}, joka kytkee päälle erään
lisäominaisuuden.\footnote{Lisätietoa \koodi{tex}\-/ komennon
ohjekirjasta, komennolla \koodi{man tex}.}
@@ -6497,7 +6497,7 @@ Edellä mainittua aakkostustoimintoa tarvitaan myös silloin, kun
hakemiston sanojen latomisessa käytetään Latex\-/ komentoja eli asiasana
ei ole pelkkää tekstiä. Seuraavassa esimerkissä asiahakemistoon lisätään
Latex\-/ komento \komento{textbullet}. Se aakkostetaan sanan
-''\englanti{textbullet}'' mukaan mutta hakemistoon se ladotaan
+\emph{\englanti{textbullet}} mukaan mutta hakemistoon se ladotaan
tasalevyisellä fontilla (\komento{texttt}) ja alkuun lisätään kenoviiva
(\komento{textbackslash}).
@@ -6518,7 +6518,7 @@ Asiasanat voi järjestää hakemistoon hierarkkisesti eli aihepiirien
mukaisesti. Se toteutetaan \komento{index}\-/ komennon argumentissa
\koodi{!}\=/ merkin avulla, jolla erotetaan ylemmäntasoiset käsitteet
alemmantasoisista. Seuraava esimerkki lisää asiahakemistoon sanan
-''fontit'' ja sen alle kaksi asiasanaa sivunumeroineen:
+\emph{fontit} ja sen alle kaksi asiasanaa sivunumeroineen:
\komentoi{index}
\begin{koodilohkosis}
diff --git a/info/kaytannollista-latexia/luku-valmistautuminen.tex b/info/kaytannollista-latexia/luku-valmistautuminen.tex
index af59275e1d..cc508893c0 100644
--- a/info/kaytannollista-latexia/luku-valmistautuminen.tex
+++ b/info/kaytannollista-latexia/luku-valmistautuminen.tex
@@ -81,30 +81,30 @@ nykyaikaisia \englanti{True Type}- ja \englanti{Open Type} \=/fontteja,
mitä alkuperäinen Latex ja Tex eivät osaa.
Lualatexilla ja Xelatexilla ei ole ohjelmien käyttäjän kannalta
-suurtakaan eroa -- ei välttämättä mitään näkyvää eroa. Miksi sitten on
-olemassa kaksi, ulkoisesti lähes samanlaista kääntäjää? Xelatex tehtiin
-ensin. Tarkoituksena oli saada Unicode\-/ merkistön tuki ja fonttiasiat
-ajan tasalle. Myöhemmin jotkut ajattelivat, että Lua\-/ ohjelmointikieli
-täytyy saada mukaan: ominaisuudella on merkitystä joillekuille
-laajennuspakettien tekijöille. Lua\-/ kielen sisällyttäminen oikeastaan
-pakotti kirjoittamaan koko kääntäjän koodin uusiksi, ja syntyi Lualatex.
-Toteutuksissa on muitakin sisäisiä eroja. Xelatex oli pitkään suositumpi
-ja paremmin tuettu eri laajennuspaketeissa, mutta erot ovat sittemmin
-tasoittuneet.
+suurtakaan eroa -- ei välttämättä mitään näkyvää eroa. Xelatex tehtiin
+ensin, ja tarkoituksena oli saada Unicode\-/ merkistön tuki ja
+fonttiasiat ajan tasalle. Myöhemmin jotkut ajattelivat, että Lua\-/
+ohjelmointikieli täytyy saada mukaan, koska ominaisuudesta on hyötyä
+joillekuille laajennuspakettien tekijöille. Lua\-/ kielen
+sisällyttäminen oikeastaan pakotti kirjoittamaan koko kääntäjän koodin
+uusiksi, ja syntyi Lualatex.
+
+Kääntäjien toteutuksissa on muitakin sisäisiä eroja, esimerkiksi
+fonttien käsittelyssä. Xelatex oli pitkään suositumpi ja paremmin tuettu
+eri laajennuspaketeissa, mutta erot ovat sittemmin tasoittuneet. Lua\-/
+ohjelmointikieli on alkanut vaikuttaa Lualatexin eduksi. On joitakin
+laajennuspaketteja tai niiden yksittäisiä ominaisuuksia, jotka vaativat
+toimiakseen Lualatexin. Sen tulevaisuus vaikuttaa valoisammalta.
Latexin käytön alkutaipaleella voi vaikka arpoa kolikon avulla, kumpaa
kääntäjää käyttää, sillä niiden erot eivät ihan helposti tule esiin.
-Jotkin harvat laajennuspaketit eivät toimi Lualatexissa, kun taas toiset
-eivät toimi Xelatexissa. Joskus saattaa jopa tulla vastaan yksittäinen,
-kehityksestä ehkä jälkeen jäänyt paketti, joka ei toimi kummassakaan
-vaan ainoastaan perinteisillä kääntäjillä (\koodi{latex},
-\koodi{pdflatex}). Tässäkin oppaassa mainitaan siellä täällä
-ominaisuuksia, jotka toimivat vain toisella kääntäjällä: toiset
-Lualatexilla, toiset Xelatexilla.
+Kääntäjän vaihtaminen on joka tapauksessa helppoa. Tässä oppaassa
+mainitaan siellä täällä pari ominaisuutta, jotka toimivat vain toisella
+kääntäjällä: toiset Lualatexilla, toiset Xelatexilla.
\subsection{Latex yläkäsitteenä}
-Jotta kaikki olisi mahdollisimman sekavaa, ''Latex'' toimii myös
+Jotta kaikki olisi mahdollisimman sekavaa, \emph{Latex} toimii myös
yleisnimityksenä tälle kaikelle. Se esiintyy ilmauksissa kuten
''Toteutin dokumentin Latexilla'' tai ''Tämä artikkeli on tehty
Latexilla''. Ilmaukset sitten tarkoittavat suunnilleen seuraavanlaista:
@@ -225,10 +225,10 @@ latexmk -xelatex teksti.tex
\noindent
Työskentelyä erityisen paljon helpottava valitsin on \koodi{\=/pvc}. Kun
tuo valitsin on mukana komennossa, Latexmk jää tarkkailemaan annettua
-Latex\-/ tiedostoa, ja kun se huomaa tiedoston muuttuneen, se kääntää
-tiedoston automaattisesti uudelleen. Kirjoittajan ei siis tarvitse muuta
-kuin tallentaa tiedosto tekstieditorista, ja tarkkailutilassa oleva
-Latexmk kääntää sen aina itsestään.
+Latex\-/ lähdetiedostoa, ja kun se huomaa tiedoston muuttuneen, se
+kääntää tiedoston automaattisesti uudelleen. Kirjoittajan ei siis
+tarvitse muuta kuin tallentaa tiedosto tekstieditorista, ja
+tarkkailutilassa oleva Latexmk kääntää sen aina itsestään.
Muitakin hyödyllisiä toimintoja on mukana. Seuraavista esimerkeistä
ensimmäinen komento poistaa kääntämisen aikana luodut
@@ -308,10 +308,9 @@ haluaa tutustua esimerkissä \ref{esim/ensimmäinen} mainittavaan
\label{luku/lähdetiedosto}
Latexin lähdetiedostot eli lähdedokumentit ovat tekstitiedostoja eli
-puhdasta tekstiä. Esimerkki \ref{esim/ensimmäinen} näyttää, mitä
-tiedosto voisi sisältää. Siinä on tyypillisen dokumentin
-vähimmäissisältö, jota voi käyttää harjoitteluun sekä myöhemminkin
-pohjana omille töille.
+puhdasta tekstiä. Esimerkissä \ref{esim/ensimmäinen} on tyypillisen
+dokumentin vähimmäissisältö, jota voi käyttää harjoitteluun sekä
+myöhemminkin pohjana omille töille.
Tallenna esimerkin sisältö tekstieditorin avulla tiedostoon vaikkapa
nimellä \koodi{teksti.\katk tex}. Käännä eli lado se pdf\-/ tiedostoksi
diff --git a/info/kaytannollista-latexia/tavutusvihjeet.tex b/info/kaytannollista-latexia/tavutusvihjeet.tex
index a243d83792..2bd84bde03 100644
--- a/info/kaytannollista-latexia/tavutusvihjeet.tex
+++ b/info/kaytannollista-latexia/tavutusvihjeet.tex
@@ -537,6 +537,7 @@ real-scripts
ref-name
ref-step-counter
reg-tot-counter
+Ren-der-er
re-new-com-mand
re-new-en-vi-ron-ment
re-size-box
@@ -624,6 +625,7 @@ sub-section-mark
sub-sub-sec-tion
suo-jaus-omi-nai-suus
suur-aak-kos-ten
+sw-shape
sym-bo-li-esi-tys
säh-kö-pos-ti-osoi-te
säh-kö-pos-ti-osoit-tei-den
@@ -780,6 +782,7 @@ vaih-to-eh-dot
vaih-to-eh-to
vaih-to-eh-toi-ses-ti
vaih-to-eh-to-ja
+vaih-to-eh-to-jen
vaih-to-eh-to-na
vai-ku-tus-alue
vai-ku-tus-alueena
diff --git a/info/kaytannollista-latexia/versio.tex b/info/kaytannollista-latexia/versio.tex
index 16d00c6929..95b35ef616 100644
--- a/info/kaytannollista-latexia/versio.tex
+++ b/info/kaytannollista-latexia/versio.tex
@@ -1 +1 @@
-\newcommand{\versio}{2024}
+\newcommand{\versio}{2024.1}
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 94cecae2dc..47c8f1d4f2 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}{2024/01/16}{2024I}
+\ProvidesExplClass{easybook}{2024/01/18}{2024J}
{Easily typesetting Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -302,7 +302,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2024/01/16}{2024I}
+\ProvidesExplPackage{easybase}{2024/01/18}{2024J}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -1371,7 +1371,6 @@
{ \tl_clear:N \eb@bitoc@title }
{ \tl_set:Nn \eb@bitoc@title {#2} }
}
-\prop_new:N \l__eb_toc_float_label_prop
\cs_new_protected:Npn \eb_toc_start_multi_column_ext:n #1
{
\int_compare:nNnTF { \l__eb_toc_columns_int } > { 1 }
@@ -1424,34 +1423,21 @@
#1 .meta:nn = { ctex/#1 } {##1},
#1/between .tl_set:c = l__eb_toc_#1_between_hook_tl,
#1/tocline .cs_set:cp = { eb@tocline@#1 } ##1##2,
- #1/tocline .initial:n = \listnumberline{#1}##2
+ #1/tocline .initial:n = \listnumberline{##1}##2
}
- \prop_put_from_keyval:Nn \l__eb_toc_float_label_prop
- { #1 = \use:c { eb@tocline@#1 } }
}
\DeclareFloatList{table}{lot}
\DeclareFloatList{figure}{lof}
\DeclareFloatList{lstlisting}{lol}
\cs_gset:Npn \caption@@@addcontentsline #1#2#3#4
{
- \exp_args:Nnnx
\addcontentsline{#1}{#2}
{
- \prop_if_in:NnTF \l__eb_toc_float_label_prop {#2}
- { \prop_item:Nn \l__eb_toc_float_label_prop {#2} }
- { \protect\numberline }
- {#3}{#4}
+ \cs_if_exist_use:cTF { eb@tocline@#2 }
+ { {#2}{#4} }
+ { \protect\numberline{#3}{#4} }
}
}
-\ctex_patch_cmd:Nnn \lst@MakeCaption
- {
- \addcontentsline{lol}{lstlisting}
- {\protect\numberline{\thelstlisting}\lst@@caption}
- }
- {
- \addcontentsline{lol}{lstlisting}
- {\eb@tocline@lstlisting{\thelstlisting}{\lst@@caption}}
- }
\ctex_define:n
{
bicontentsname .tl_set:N = \bicontentsname,
@@ -2348,7 +2334,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/01/16}{2024I}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/01/18}{2024J}
{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 a0fea3d113..f6999524ac 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 d0df41762e..80069337fe 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -23,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v2024I,
- date = 2024/01/16,
+ version = v2024J,
+ date = 2024/01/18,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
@@ -813,7 +813,7 @@
\keyval{tocbelow}{距离命令}\dtag
在目录条目下方执行的代码,可以插入垂直距离等命令。
\keyval{tocline}{条目定义}\dtag[\textcolor{red}{\ding{73}}]
- 这个选项在章节标题基础上扩展了浮动环境的题注标题在目录文件中的定义。由于设计的原因,章节标题选项中参数 \code{\#1} 代表标题编号 \cs*{the}\meta{计数器} 对应的计数器名称,而题注标题选项中参数 \code{\#1} 代表标题编号 \cs*{the}\meta{计数器} 的值,章节和题注标题中参数 \code{\#2} 均代表相应标题内容。
+ 这个选项在章节标题基础上扩展了浮动环境的题注标题在目录文件中的定义。章节和题注标题选项中参数 \code{\#1} 代表标题编号 \cs*{the}\meta{计数器} 对应的计数器名称,参数 \code{\#2} 则代表相应标题内容。
\begin{ctexexam}
\ctexset
{
@@ -854,13 +854,13 @@
\SetTocStyle{chapter}{fancy}{tocformat = \color{red}\zihao{3}}
\UseTocStyle{chapter}{fancy}{toc}
\end{ctexexam}
- \command{listnumberline}[\marg{条目名}]
- 在图表等浮动环境的题注目录中插入条目标签,默认标签的名字可以由格式命令 \cs{labelformat} 设置。注意其中 \meta{条目名} 需要用对应名称\textbf{显式指定}。
+ \command{listnumberline}[\marg{计数器名}]
+ 在图表等浮动环境的题注目录中插入条目标签,默认标签的名字可以由格式命令 \cs{labelformat} 设置。其中 \meta{计数器名} 一般与 \meta{条目名} 相同,可以用参数 \code{\#1} 指定或用对应计数器名称显式指定。
\begin{ctexexam}
\ctexset
{
- figure/tocline = \listnumberline{figure}#2,
- lstlisting/tocline = \protect\numberline{代码#1\hspace{1em}}#2
+ lstlisting/tocline = \listnumberline{#1}#2,
+ figure/tocline = \protect\numberline{图\thefigure\hspace{1em}}#2
}
\end{ctexexam}
\command{contentsmargin}[\marg{右边距}]
@@ -1350,9 +1350,9 @@
\shortversion{v = 1.638,date = 2022/03/04,changes = 增加目录条目样式选项注册命令 \cs{RegisterTocName}。}
\shortversion{v = 1.644,date = 2022/03/10,changes = 增加浮动环境目录声明命令 \cs{DeclareFloatList} 配合 \pkg*{caption} 宏包。}
\shortversion{v = 1.682,date = 2022/05/01,changes = 将迷你页判断命令 \cs{notminipage} 改为被保护命令兼容 \pkg*{circledtext} 宏包。}
- \begin{version}[v = 2024I,date = 2024/01/16,simple]
+ \begin{version}[v = 2024J,date = 2024/01/18,simple]
\item 核对依赖宏包的更新改动,优化使用手册的内容细节。
- \item 修复图表题注目录中条目标签编号的计数器值显示错误问题。
+ \item 修复图表等浮动环境题注目录中条目标签编号的计数器值显示错误问题。
\item 新增目录风格定义命令 \cs{SetTocStyle} 和使用命令 \cs{UseTocStyle}。
\end{version}
\end{changelog}
diff --git a/macros/latex/contrib/pagelayout/README.md b/macros/latex/contrib/pagelayout/README.md
index 1947399306..4d62838bf4 100644
--- a/macros/latex/contrib/pagelayout/README.md
+++ b/macros/latex/contrib/pagelayout/README.md
@@ -1,6 +1,6 @@
![The pagelayout LaTeX class](doc/banner.svg)
-The pagelayout class enables you to layout pages declaratively using simple macros for pages, covers, grids, templates, text, and graphics to create graphic rich, perfectly typeset, and print ready PDFs.
+The pagelayout class enables you to design pages declaratively using simple macros for pages, covers, grids, templates, text, and graphics to create graphic rich, perfectly typeset, and print ready PDFs.
The integration of [Inkscape](https://inkscape.org) allows your to create box shadows. Text shadows and SVG filters are ideas for future releases.
@@ -10,23 +10,27 @@ The pagelayout class also integrates the [TikZ](https://www.ctan.org/pkg/pgf) an
## Quick Start
-### Generic Templates
+### Pages
-Generic templates are the easiest way to put content on a page. The template name describes the layout. You can arrange [l]andscape, [p]ortrait, [s]quare, [w]ide, [g]olden ratio, g[o]lden upright ratio or [f]lexible placeholders in rows [-]. A valid template name for example is `sg-ff`. Notice you cannot combine flexible with fixed aspect ratio placeholders within a row.
+Create a page with the `\page` command. A grid with rows and cells helps you to arrange content. Use the `\setgrid` command to define your grid. The following example shows a grid with one row containing two cells.
```latex
-\template{ff}{
- \text{
- This text fills the first placeholder.
+\page{
+ \setgrid{
+ {{}{}}
+ }
+ \text[breakable]{
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat.
}
+ \usetext
}
```
-![Generic template](doc/quickstart-1.svg)
+![A page with a two column layout](doc/quickstart-1.svg)
-### Custom Templates
+### Templates
-You can use the grid to layout content on a page. The grid has rows with cells. You can set width relations between cells and height relations between rows. You can give cells a explicit aspect ratio by adding a `!`.
+You can set width relations between grid cells and height relations between grid rows. You can give cells a explicit aspect ratio by adding a `!`. With the `\newtemplate` command you can create reusable layouts.
```latex
\newtemplate{my template}{
@@ -34,31 +38,36 @@ You can use the grid to layout content on a page. The grid has rows with cells.
{[2]{3!}{2!}}
}
\placeholder{0 0 1 1}
+ \placeholder{0 1 1 2}
}
\template{my template}{}
```
-![Custom template](doc/quickstart-2.svg)
+![A template with two placeholders](doc/quickstart-2.svg)
-You can set margin and gutter for a single grid, on document level, or on page level.
+You can set margin and gutter at grid, page, or document level.
### Graphics
You can scale and position a graphic. And you can add borders and box shadows to graphics and text frames.
```latex
-\newborder{my border}{width=2mm, color=white, radius=5mm}
-\newshadow{my shadow}{size=8}
+\newborder{my border}{
+ width = 1mm,
+ color = white,
+ radius = 5mm
+}
+\newshadow{my shadow}{size = 7}
-\template[margin=7mm]{s}{
+\template{my template}{
\graphic[
- scale=1.1,
- hpos=0.2,
- unsharp=3x1,
- shadow=my shadow,
- border=my border,
- border radius=0mm
+ scale = 1.1,
+ vpos = 0.3,
+ unsharp = 3x1,
+ shadow = my shadow,
+ border = my border,
+ border radius = 0mm
]{kopi}
}
```
@@ -73,7 +82,7 @@ For a complete reference, read the [manual](doc/pagelayout-manual.pdf).
In general, you should use the package manager shipped with your TeX distribution to install the pagelayout package.
-To install manually, copy the contents of [pagelayout.tds.zip](https://github.com/friedemannbartels/latex-pagelayout/releases/download/v1.0.5/pagelayout.tds.zip) to your local TeX directory tree and run the command `texhash`.
+To install manually, copy the contents of [pagelayout.tds.zip](https://github.com/friedemannbartels/latex-pagelayout/releases/download/1.1.0/pagelayout-1.1.0.tds.zip) to your local TeX directory tree and run the command `texhash`.
To enable image optimization, shadow creation, and preflight, perform these installation steps:
diff --git a/macros/latex/contrib/pagelayout/doc/banner.tex b/macros/latex/contrib/pagelayout/doc/banner.tex
index 4f4dece806..bb0736c96a 100644
--- a/macros/latex/contrib/pagelayout/doc/banner.tex
+++ b/macros/latex/contrib/pagelayout/doc/banner.tex
@@ -1,5 +1,5 @@
%%
-%% Copyright (c) 2022-2023 by Friedemann Bartels
+%% Copyright (c) 2022-2024 by Friedemann Bartels
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
diff --git a/macros/latex/contrib/pagelayout/doc/example-book.tex b/macros/latex/contrib/pagelayout/doc/example-book.tex
index 04e9dd4db6..49b0605cda 100644
--- a/macros/latex/contrib/pagelayout/doc/example-book.tex
+++ b/macros/latex/contrib/pagelayout/doc/example-book.tex
@@ -1,5 +1,5 @@
%%
-%% Copyright (c) 2022-2023 by Friedemann Bartels
+%% Copyright (c) 2022-2024 by Friedemann Bartels
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
diff --git a/macros/latex/contrib/pagelayout/doc/example-borders-and-shadows.tex b/macros/latex/contrib/pagelayout/doc/example-borders-and-shadows.tex
index 33c0b14e65..4f248cc9c2 100644
--- a/macros/latex/contrib/pagelayout/doc/example-borders-and-shadows.tex
+++ b/macros/latex/contrib/pagelayout/doc/example-borders-and-shadows.tex
@@ -1,5 +1,5 @@
%%
-%% Copyright (c) 2022-2023 by Friedemann Bartels
+%% Copyright (c) 2022-2024 by Friedemann Bartels
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
diff --git a/macros/latex/contrib/pagelayout/doc/example-graphic.tex b/macros/latex/contrib/pagelayout/doc/example-graphic.tex
index 5eb085bef7..86ad3be5f4 100644
--- a/macros/latex/contrib/pagelayout/doc/example-graphic.tex
+++ b/macros/latex/contrib/pagelayout/doc/example-graphic.tex
@@ -1,5 +1,5 @@
%%
-%% Copyright (c) 2022-2023 by Friedemann Bartels
+%% Copyright (c) 2022-2024 by Friedemann Bartels
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
diff --git a/macros/latex/contrib/pagelayout/doc/example-grid.tex b/macros/latex/contrib/pagelayout/doc/example-grid.tex
index 6bc3573867..d31b2c1864 100644
--- a/macros/latex/contrib/pagelayout/doc/example-grid.tex
+++ b/macros/latex/contrib/pagelayout/doc/example-grid.tex
@@ -1,5 +1,5 @@
%%
-%% Copyright (c) 2022-2023 by Friedemann Bartels
+%% Copyright (c) 2022-2024 by Friedemann Bartels
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
diff --git a/macros/latex/contrib/pagelayout/doc/example-template.tex b/macros/latex/contrib/pagelayout/doc/example-template.tex
index b10e8a7486..b6dbbf50b9 100644
--- a/macros/latex/contrib/pagelayout/doc/example-template.tex
+++ b/macros/latex/contrib/pagelayout/doc/example-template.tex
@@ -1,5 +1,5 @@
%%
-%% Copyright (c) 2022-2023 by Friedemann Bartels
+%% Copyright (c) 2022-2024 by Friedemann Bartels
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
diff --git a/macros/latex/contrib/pagelayout/doc/example-text.tex b/macros/latex/contrib/pagelayout/doc/example-text.tex
index 82376d1abc..d1979be95f 100644
--- a/macros/latex/contrib/pagelayout/doc/example-text.tex
+++ b/macros/latex/contrib/pagelayout/doc/example-text.tex
@@ -1,5 +1,5 @@
%%
-%% Copyright (c) 2022-2023 by Friedemann Bartels
+%% Copyright (c) 2022-2024 by Friedemann Bartels
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
diff --git a/macros/latex/contrib/pagelayout/doc/pagelayout-manual-layout-guides.tex b/macros/latex/contrib/pagelayout/doc/pagelayout-manual-layout-guides.tex
index def8cdfda0..75ea0002ac 100644
--- a/macros/latex/contrib/pagelayout/doc/pagelayout-manual-layout-guides.tex
+++ b/macros/latex/contrib/pagelayout/doc/pagelayout-manual-layout-guides.tex
@@ -1,5 +1,5 @@
%%
-%% Copyright (c) 2022-2023 by Friedemann Bartels
+%% Copyright (c) 2022-2024 by Friedemann Bartels
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
diff --git a/macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf b/macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf
index a09ac3d752..6913eb17ce 100644
--- a/macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf
+++ b/macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex b/macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex
index 15e57bcafc..460f1170d0 100644
--- a/macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex
+++ b/macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex
@@ -1,9 +1,9 @@
%%
-%% Copyright (c) 2022-2023 by Friedemann Bartels
+%% Copyright (c) 2022-2024 by Friedemann Bartels
%%
%% 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 1.3c of this license or (at your argument) any later
%% version. The latest version of this license is in:
%%
%% http://www.latex-project.org/lppl.txt
@@ -18,7 +18,7 @@
\usepackage{tikz}
\OnlyDescription
\hypersetup{pdfborder={0 0 0}}
-\def\pagelayoutversion{1.0.5}
+\def\pagelayoutversion{1.1.0}
\begin{document}
@@ -43,15 +43,15 @@ In 2020, I started to develop my own solution.
What started with some SVG templates and shell scripts ended up in the pagelayout class, a declarative desktop publishing approach.
\par
With the pagelayout class you can create single- and double-sided documents, create pages with margins, safety margins, and bleed, use templates, align text and graphics in a grid, wrap text across multiple pages and use before pages.
-Generic templates, automatic grid layout and a simple and consistent user interface make it easier than ever to create graphics-rich documents with \LaTeX.
+Automatic grid layout and a simple and consistent user interface make it easier than ever to create graphics-rich documents with \LaTeX.
Under the hood the TikZ and tcolorbox packages, ImageMagick and Inkscape are used.
\section{Document}\label{sec:document}
-The document options described in the following can be either set as a document option (|\documentclass[twoside]{pagelayout}|) or with a macro (|\twoside|) in the preamble.
+The document arguments described in the following can be either set as a document argument (|\documentclass[twoside]{pagelayout}|) or with a command (|\twoside|) in the preamble.
\DescribeMacro {\documentclass}
-Use the class with the |\documentclass|\oarg{options}|{pagelayout}| macro.
+Use the class with the |\documentclass|\oarg{arguments}|{pagelayout}| command.
A single sided document is the default.
\begin{figure}[h!]
\begin{tikzpicture}
@@ -65,7 +65,7 @@ A single sided document is the default.
\end{figure}
\DescribeMacro {\twoside}
-Using the document option |twoside| results in a document with left and right pages.
+Using the document argument |twoside| results in a document with left and right pages.
When you create a two-sided document, your document always has an even number of pages.
If you create a document with an odd number of pages, an additional page is automatically inserted.
Two-sided documents start with a right page by default.
@@ -83,7 +83,7 @@ Two-sided documents start with a right page by default.
\end{figure}
\DescribeMacro {\beginleft}
-Use the option |beginleft| to begin with a left page.
+Use the argument |beginleft| to begin with a left page.
\begin{figure}[h!]
\begin{tikzpicture}
\draw[black, thin] (0,0) rectangle (1,1);
@@ -99,7 +99,7 @@ Use the option |beginleft| to begin with a left page.
By default, each page is placed on one paper.
\DescribeMacro {\fanfold}
-With the |fanfold| option you can change this behavior so that a left and a right page are placed on one paper.
+With the |fanfold| argument you can change this behavior so that a left and a right page are placed on one paper.
In this case, the first page is a left one by default.
\begin{figure}[h!]
\begin{tikzpicture}
@@ -113,7 +113,7 @@ In this case, the first page is a left one by default.
\end{figure}
\DescribeMacro {\cover}
-The |cover| option is similar to the |fanfold| option, but only applied to cover pages.
+The |cover| argument is similar to the |fanfold| argument, but only applied to cover pages.
Read more about cover pages in section~\ref{sec:pages}.
\begin{figure}[h!]
\begin{tikzpicture}
@@ -126,7 +126,7 @@ Read more about cover pages in section~\ref{sec:pages}.
\end{figure}
\DescribeMacro {\beginright}
-If you want your fanfold document to start with a right hand page, you can use the option |beginright|.
+If you want your fanfold document to start with a right hand page, you can use the argument |beginright|.
\begin{figure}[h!]
\begin{tikzpicture}
\draw[black, thin] (0,0) rectangle (1,1);
@@ -147,7 +147,7 @@ If you want your fanfold document to start with a right hand page, you can use t
\subsection{Lengths}\label{subsec:size}
-The document lengths described below can be set either as a document option (|\documentclass[page width=21cm]{pagelayout}|) or by assigning the dimension directly (|\pagewidth=21cm|) in the preamble or in the document.
+The document lengths described below can be set either as a document argument (|\documentclass[page width=21cm]{pagelayout}|) or by assigning the dimension directly (|\pagewidth=21cm|) in the preamble or in the document.
\DescribeMacro {\pagewidth}
\DescribeMacro {\pageheight}
@@ -163,7 +163,7 @@ The paper size results from the page size and the bleed.
\DescribeMacro {\safetymargin}
The |safety margin| is the only length that has no influence on the final result.
-Its only purpose is to control the safe zone during editing.
+Its only purpose is to control the safe zone when editing.
It is |0mm| by default and can be configured for each edge by defining |top safety margin|, |inner safety margin|, |bottom safety margin| and |outer safety margin|.
\DescribeMacro {\margin}
@@ -178,7 +178,7 @@ You can create documents with cover pages.
Read more about creating cover pages in section~\ref{sec:pages}.
You can set the lengths |coverwidth| and |coverheight|.
By default, the cover pages are the same size as the inside pages.
-If you want to create a cover with a spine, use the |fanfold| or |cover| option described in section~\ref{sec:document}.
+If you want to create a cover with a spine, use the |fanfold| or |cover| argument described in section~\ref{sec:document}.
In this case the length |spinewidth| takes effect.
The default spine width is |3mm|.
\par
@@ -188,26 +188,26 @@ For example, define |cover inner bleed| or |cover safety margin|.
\subsection{Page Graphics and Colors}\label{subsec:colors}
-You can define a page graphic and a page color with the options |page graphic| and |page color|.
-Set the option |color| to define the text color.
-These options can be defined for the document or for each page (see section~\ref{sec:pages}).
+You can define a page graphic and a page color with the arguments |page graphic| and |page color|.
+Set the argument |color| to define the text color.
+These arguments can be defined for the document or for each page (see section~\ref{sec:pages}).
\par
-Read how to set the scale and crop of a page graphic with the |\newgraphic| macro in section~\ref{sec:content}.
+Read how to set the scale and crop of a page graphic with the |\newgraphic| command in section~\ref{sec:content}.
\subsection{Layout Guides}
-The layout guides described in the following can be either set as a document option (|\documentclass[grid]{pagelayout}|) or using a macro (|\grid|) in the preamble or the document.
+The layout guides described in the following can be either set as a document argument (|\documentclass[grid]{pagelayout}|) or using a command (|\grid|) in the preamble or the document.
Layout guides can be switched on (|\safezone|) or off (|\nosafezone|).
\DescribeMacro {\grid}
-The |grid| option visualizes the margin and the grid gutters with green lines.
+The |grid| argument visualizes the margin and the grid gutters with green lines.
Read more about the grid in section~\ref{sec:grid}.
\DescribeMacro {\safezone}
The |safezone| layout guide shows a red border for the bleed and a thin pink line to indicate the safety margin.
\DescribeMacro {\cuttingmarks}
As an alternative to |safezone|, you can also use |cutting marks| to display cutting marks.
\DescribeMacro {\graphpaper}
-Show a graph paper with the |graph paper| option.
+Show a graph paper with the |graph paper| argument.
\begin{figure}[h]
\begin{tikzpicture}
@@ -228,59 +228,59 @@ Show a graph paper with the |graph paper| option.
\end{figure}
\DescribeMacro {\placeholders}
-The |placeholders| option shows template placeholders.
+The |placeholders| argument shows template placeholders.
Read more about templates in section~\ref{sec:templates}.
\DescribeMacro {\fillpages}
-If you create a document with a cover and a first right hand page, use the |fill pages| option during editing to add blank pages to get a better impression of the final result.
+If you create a document with a cover and a first right hand page, use the |fill pages| argument during editing to add blank pages to get a better impression of the final result.
\subsection{Draft Mode}\label{subsec:draftmode}
-The |draft| option is a shortcut to enable the options |placeholders|, |cutting marks| and |fill pages|.
+The |draft| argument is a shortcut to enable the arguments |placeholders|, |cutting marks| and |fill pages|.
It also speeds up rebuilding the PDF when changing the document.
\section{Pages}\label{sec:pages}
\DescribeMacro {\page}
-Create a page with the macro |\page|\oarg{options}\marg{content}.
-You can overwrite the document options |margin|, |top margin|, |bottom margin|, |inner margin|, |outer margin|, |gutter|, |page color|, |page graphic| and |color| for each page.
+Create a page with the command |\page|\oarg{arguments}\marg{content}.
+You can overwrite the document arguments |margin|, |top margin|, |bottom margin|, |inner margin|, |outer margin|, |gutter|, |page color|, |page graphic| and |color| for each page.
-Use the option |double| to create a double page.
+Use the argument |double| to create a double page.
When creating a double page after a left page, a right page is automatically inserted before the double page.
-The option |double| is only recognized for double sided documents.
+The argument |double| is only recognized for double sided documents.
\par
-Use the options |front cover| or |back cover| to create a front or back cover.
+Use the arguments |front cover| or |back cover| to create a front or back cover.
If you have a back cover and a front cover, the back cover page must be defined first.
-If no option is active, the front cover is placed as the first page and the back cover as the last page of the document.
+If no argument is active, the front cover is placed as the first page and the back cover as the last page of the document.
In this case, the only difference from normal pages is that the cover pages are not counted in the page numbering.
\par
-If the option |fanfold| or |cover| is selected, the back and front covers are laid out on one paper so that the cover is suitable for a book with a hard or soft cover (see section~\ref{sec:document}).
+If the argument |fanfold| or |cover| is selected, the back and front covers are laid out on one paper so that the cover is suitable for a book with a hard or soft cover (see section~\ref{sec:document}).
Space is reserved between the back and front covers for the spine.
-Set the |spine width| document option as described in section~\ref{subsec:size}.
+Set the |spine width| document argument as described in section~\ref{subsec:size}.
\par
-With the options |hpos| and |vpos| you can set the default grid alignment for a page.
+With the arguments |hpos| and |vpos| you can set the default grid alignment for a page.
Read more about the grid in the next section.
-\DescribeMacro {\setpagecolor}Alternativly to the option you can use the macro |\setpagecolor|\marg{color} to set the page color for all following pages.
+\DescribeMacro {\setpagecolor}Alternativly to the argument you can use the command |\setpagecolor|\marg{color} to set the page color for all following pages.
-\DescribeMacro {\setpagegraphic}With the macro |\setpagegraphic|\oarg{options}\marg{name} you can define a page graphic for all following pages.
-The name references a graphic version created with the |\newgraphic| macro (see section~\ref{sec:content}).
-If no graphic version with the given name exists, the macro uses the name as the file name.
-You can change the clipping by defining relative decimal values for the options |scale| (>1), |hpos| and |vpos| (0-1).
+\DescribeMacro {\setpagegraphic}With the command |\setpagegraphic|\oarg{arguments}\marg{name} you can define a page graphic for all following pages.
+The name references a graphic version created with the |\newgraphic| command (see section~\ref{sec:content}).
+If no graphic version with the given name exists, the command uses the name as the file name.
+You can change the clipping by defining relative decimal values for the arguments |scale| (>1), |hpos| and |vpos| (0-1).
-\DescribeMacro {\newbeforepage}With the macro |\newbeforepage|\marg{name}\marg{content} you can create a reusable page layer, that can be set before pages.
+\DescribeMacro {\newbeforepage}With the command |\newbeforepage|\marg{name}\marg{content} you can create a reusable page layer, that can be set before pages.
\DescribeMacro {\setbeforepage}
-Use the macro |\setbeforepage|\marg{name} to define a before page for all following pages or use the page option |before page| to specify a before page for a individual page.
+Use the command |\setbeforepage|\marg{name} to define a before page for all following pages or use the page argument |before page| to specify a before page for a individual page.
\DescribeMacro {\ifleftpage}
\DescribeMacro {\ifrightpage}
Use the condition |\ifleftpage|\marg{content} and |\ifrightpage|\marg{content} to check for the current page alignment.
\DescribeMacro {\leftpage}
-Within a page scope you can use the |\leftpage|\marg{content} macro to place content only on a left page.
-In comparison to the |\ifleftpage|\marg{content} condition, the macro sets a grid for a single page.
+Within a page scope you can use the |\leftpage|\marg{content} command to place content only on a left page.
+In comparison to the |\ifleftpage|\marg{content} condition, the command sets a grid for a single page.
That way you can combine single with double page layouts.
\DescribeMacro {\rightpage}
-Accordingly you can use the |\rightpage|\marg{content} macro.
+Accordingly you can use the |\rightpage|\marg{content} command.
\section{Grid}\label{sec:grid}
@@ -290,7 +290,7 @@ All definitions are relative.
The size and position results from these relations and the configured dimensions page width, page height, margin and gutter.
\DescribeMacro{\setgrid}
-Create a grid with the macro |\setgrid|\oarg{options}\marg{config}.
+Create a grid with the command |\setgrid|\oarg{arguments}\marg{config}.
The grid configuration is a nested list of rows and cells.
A cell is defined by a number that describes the width ratio to the other cells in the row.
The default grid describes a row with one cell:
@@ -335,30 +335,30 @@ The cells in the second row share the available width in the ratio one to two:
If the height of fixed and forced rows exceeds the available height, the grid shrinks to fit the available space.
The defined aspect ratios of the cells are preserved and the grid is centered horizontally.
-In this case you can define the |hpos| option to align the grid horizontally.
+In this case you can define the |hpos| argument to align the grid horizontally.
A value of |0| aligns the grid to the left, a value of |1| aligns the grid to the right.
The default is a value of |0.5|.
If the height of fixed and forced rows is less than the available height, all flexible rows share the excess height.
If there are no flexible rows, the grid is centered vertically.
-In this case you can define the |vpos| option to align the grid vertically.
+In this case you can define the |vpos| argument to align the grid vertically.
A value of |0| aligns the grid to the top, a value of |1| aligns the grid to the bottom.
The default is a value of |0.5|.
-As for a document or a page you can set |margin| and |gutter| options for a specific grid.
-With the options |width|, |height|, |x| and |y| you can override the intrinsic grid size and position.
+As for a document or a page you can set |margin| and |gutter| arguments for a specific grid.
+With the arguments |width|, |height|, |x| and |y| you can override the intrinsic grid size and position.
When overriding the grid size and position, you can calculate with the intrinsic values, for example |x=\x-1cm|.
\subsection{Placing Content}
The grid aligns content (see section~\ref{sec:content}) automatically in the given grid cells.
-To set the position of a content box manually use the macro |\place|\marg{fromrow fromcell torow tocell}.
+To set the position of a content box manually use the command |\place|\marg{fromrow fromcell torow tocell}.
\DescribeMacro{\place}
-To place content in the first row and first cell use the macro |\place{0 0 1 1}| before the content.
+To place content in the first row and first cell use the command |\place{0 0 1 1}| before the content.
The definded place applies only for the following content box.
The next boxes are then again placed with auto layout.
\par
-The macro accepts decimals.
+The command accepts decimals.
That allows you to place content everywhere within the grid.
The |gutter| is taken into account when calculating the positions.
@@ -367,80 +367,84 @@ The |gutter| is taken into account when calculating the positions.
\subsection{Text}
\DescribeMacro{\text}
-With the macro |\text|\oarg{options}\marg{text} you can place text.
-Align the text vertically with the |center| and |bottom| options.
+With the command |\text|\oarg{arguments}\marg{text} you can place text.
+Align the text vertically with the |center| and |bottom| arguments.
\par
-The |\text| macro uses the package tcolorbox and accepts tcolorbox options, for example to set text, frame or background color and transparency.
+The |\text| command uses the package tcolorbox and accepts tcolorbox arguments, for example to set text, frame or background color and transparency.
The tcolorbox behaves slightly diffenrent then the standalone version: spacings, rules and background are removed by default.
-You can change the behaviour with the tcolorbox macro |\tcbset|\marg{options}.
-Also the |arc| options behaves different: if you set the |arc| to |0pt| the |outer arc| is also set to |0pt|.
+You can change the behaviour with the tcolorbox command |\tcbset|\marg{arguments}.
+Also the |arc| arguments behaves different: if you set the |arc| to |0pt| the |outer arc| is also set to |0pt|.
\par
-Add the option |breakable| to break text over multiple boxes and pages.
+Add the argument |breakable| to break text over multiple boxes and pages.
\DescribeMacro{\usetext}
-Use the macro |\usetext|\oarg{name} to place the following text boxes in the grid.
-If you want to use multiple breakable text boxes you can initialize the text with the |name| option and define a name that you then can pass to the |\usetext| option.
+Use the command |\usetext|\oarg{name} to place the following text boxes in the grid.
+If you want to use multiple breakable text boxes you can initialize the text with the |name| argument and define a name that you then can pass to the |\usetext| argument.
+Breakable text boxes may have different heights and positions.
+To align the baselines use the |baselinesnap| argument and set the baseline dimension, for example |baselinesnap=\baselineskip|.
\par
-The |\text| macro accepts the options |shadow|, |shadow size|, |shadow color|, |shadow opacity|, |shadow xshift|, |shadow yshift|, |border|, |border width|,\break |border color| and |border radius|.
+The |\text| command accepts the arguments |shadow|, |shadow size|, |shadow color|, |shadow opacity|, |shadow xshift|, |shadow yshift|, |border|, |border width|,\break |border color| and |border radius|.
Read more about shadows and borders in section~\ref{subsec:borders}.
\subsection{Graphics}
\DescribeMacro{\newgraphic}
-Create a reusable graphic version with the |\newgraphic|\marg{name}\marg{options} macro.
-Define the options |scale| (>1), |hpos| and |vpos| (0-1) to set the clipping of the graphic.
-With the option |file| you can link a file.
+Create a reusable graphic version with the |\newgraphic|\marg{name}\marg{arguments} command.
+Define the arguments |scale| (>1), |hpos| and |vpos| (0-1) to set the clipping of the graphic.
+With the argument |file| you can link a file.
If no file is defined, the name is used as the file name.
\DescribeMacro{\graphic}
-The |\graphic|\oarg{options}\marg{name} macro places a graphic.
-The name references a graphic version created with the |\newgraphic| macro.
-If no graphic version with the given name exists, the macro uses the name as the file name.
+The command |\graphic|\oarg{arguments}\marg{name} places a graphic.
+The name references a graphic version created with the command |\newgraphic|.
+If no graphic version with the given name exists, the command uses the name as the file name.
The graphic is scaled to fit in the content box.
If the aspect ratio of the graphic differs from that of the defined content box, the graphic is cropped.
-You can change the cropping by defining relative decimal values for the options |scale| (>1), |hpos| and |vpos| (0-1).
-Same as the |\text| macro, the |\graphic| macro accepts the |border| and |shadow| options described in section~\ref{subsec:borders}.
+You can change the cropping by defining relative decimal values for the arguments |scale| (>1), |hpos| and |vpos| (0-1).
+With the |orientation| argument you can set the Exif orientation flag (1-8).
+To flip a graphic horizontally or vertically use the arguments |hflip| or |vflip|.
+Same as the |\text| command, the |\graphic| command accepts the |border| and |shadow| arguments described in section~\ref{subsec:borders}.
\DescribeMacro{\graphicspath}
-You can use the macro |\graphicspath|\marg{dir-list} of the graphics package to specify a list of directories in which to search for graphic files.
+You can use the command |\graphicspath|\marg{dir-list} of the graphics package to specify a list of directories in which to search for graphic files.
\subsection{Other}
\DescribeMacro{\xput}
-The macro |\xput|\marg{code} is an easy way to place arbitrary content in the grid.
+The command |\xput|\marg{code} is an easy way to place arbitrary content in the grid.
Within the code block the dimensions |\width| and |\height| represent the size of the content area and can be used to create graphics, that fit and adapt to the available size.
\par
\DescribeMacro{\tikzgraphic}
-The macro |\tikzgraphic|\marg{tikz code} works like the |\xput| macro, but wraps your input in a |tikzpicture|.
+The command |\tikzgraphic|\marg{tikz code} works like the |\xput| command, but wraps your input in a |tikzpicture|.
\subsection{Shadows and Borders}\label{subsec:borders}
Text and graphic content can be placed with a border or a shadow.
-You can define a border or shadow for a specific content box by using the options |border width|, |border color|, |border radius| to add a border or |shadow size|, |shadow color|, |shadow opacity|, |shadow xshift|, |shadow yshift| to add a shadow.
+You can define a border or shadow for a specific content box by using the arguments |border width|, |border color|, |border radius| to add a border or |shadow size|, |shadow color|, |shadow opacity|, |shadow xshift|, |shadow yshift| to add a shadow.
\par
\DescribeMacro{\newborder}
\DescribeMacro{\newshadow}
-Define a reusable border or shadow with the |\newborder|\marg{name}\marg{options} or |\newshadow|\marg{name}\marg{options} macros.
-Apply the border or shadow to |\text| or |\graphic| with the option |border| or |shadow|.
+Define a reusable border or shadow with the |\newborder|\marg{name}\marg{arguments} or |\newshadow|\marg{name}\marg{arguments} commands.
+Apply the border or shadow to |\text| or |\graphic| with the argument |border| or |shadow|.
\par
\DescribeMacro{\setborder}
\DescribeMacro{\setshadow}
-To set a border or shadow within a page or document scope, use the macros |\setborder|\oarg{options}\marg{name} or |\setshadow|\oarg{options}\marg{name}.
+To set a border or shadow within a page or document scope, use the commands |\setborder|\oarg{arguments}\marg{name} or |\setshadow|\oarg{arguments}\marg{name}.
\section{Templates}\label{sec:templates}
\DescribeMacro{\newtemplate}
-With the macro |\newtemplate|\marg{name}\marg{layout} you can create a reusable layout.
+With the command |\newtemplate|\marg{name}\marg{layout} you can create a reusable layout.
Creating a template works the same way as creating a page.
In addition to graphics and text you can define placeholders.
\DescribeMacro{\placeholder}
-Use the macro |\placeholder|\marg{fromrow fromcell torow tocell} to define a content area that can later be filled with a text or a graphic.
+Use the command |\placeholder|\marg{fromrow fromcell torow tocell} to define a content area that can later be filled with a text or a graphic.
\DescribeMacro{\template}
-To use a template use the macro |\template|\oarg{options}\marg{name}\marg{content}.
-The available options are the same as for pages.
+Use a template with the command |\template|\oarg{arguments}\marg{name}\marg{content}.
+The available arguments are the same as for pages.
-The macro |\template| comes with an easy way to generate templates by using a name pattern.
+The command |\template| comes with an easy way to generate templates by using a name pattern.
For example the template name \textit{sp} creates a template with a square and a portrait format placeholder.
In this case the letter |s| specifies a square (1:1) and the letter |p| a portrait (2:3) format placeholder.
Use the letter |l| to define a landscape ratio (3:2), |g| for golden ratio (5:3), |o| for golden upright ratio (3:5), |w| for wide ratio (2:1) or |f| for a flexible ratio.
@@ -450,23 +454,23 @@ Within a row you can mix the fixed placeholders (|s|, |p|, |l|, |g|, |o|, |w|) o
\section{Image Optimization}\label{sec:optimization}
\DescribeMacro{\optimize}
-With the macro |\optimize|\oarg{options} you can enable image optimization.
+With the command |\optimize|\oarg{arguments} you can enable image optimization.
When enabled, JPG and PNG images are croped, resized and cached.
This results in fast rebuilds when changing the document.
-You can set the options |density|, |quality|, |unsharp| and |downsample threshold|.
-The |density| option takes a number of the pixels per inch (default |300|), the |quality| option takes numbers between 1 and 100, the |unsharp| option an ImageMagick unsharp configuration (default |2x1|) and the |downsample threshold| a decimal value greater or equal 1 (default |1.2|).
-The |unsharp| option can also be applied for individual graphics.
+You can set the arguments |density|, |quality|, |unsharp| and |downsample threshold|.
+The |density| argument takes a number of the pixels per inch (default |300|), the |quality| argument takes numbers between 1 and 100, the |unsharp| argument an ImageMagick unsharp configuration (default |2x1|) and the |downsample threshold| a decimal value greater or equal 1 (default |1.2|).
+The |unsharp| argument can also be applied for individual graphics.
\par
If you use image optimization and change the original graphics files, you must delete the cached versions so that the cache will update.
\DescribeMacro{\import}
-The |\import| macro helps you to streamline this process.
+The |\import| command helps you to streamline this process.
When enabled, you need an import directory in which to place the modified files.
When the document is created, the files are moved to your image directory and the corresponding cached versions are automatically regenerated.
The import directory is either the directory \emph{import} in your working directory.
Or you can set a system wide import directory by defining the shell variable |PAGELAYOUT_IMPORT_DIRECTORY|.
\par
\DescribeMacro{\preflight}
-Use the |\preflight| macro to proof the image resolution.
+Use the |\preflight| command to proof the image resolution.
If images have a final resolution less then 300 ppi you get a warning, if less then 200 ppi you get an error.
With preflight enabled the maximum possible resolution is shown next to each graphic.
diff --git a/macros/latex/contrib/pagelayout/doc/quickstart-1.svg b/macros/latex/contrib/pagelayout/doc/quickstart-1.svg
index 5d184af7e0..e5f5312e10 100644
--- a/macros/latex/contrib/pagelayout/doc/quickstart-1.svg
+++ b/macros/latex/contrib/pagelayout/doc/quickstart-1.svg
@@ -1 +1 @@
-<svg width="320" height="239" viewBox="0 0 167.24 124.72" version="1.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><defs><symbol overflow="visible" id="b"><path style="stroke:none" d="M.14-4.563h3.485v.532H2.187V0h-.609v-4.031H.141Zm0 0"/></symbol><symbol overflow="visible" id="c"><path style="stroke:none" d="M3.203-2.125V0h-.562v-2.125c0-.3-.059-.523-.172-.672-.106-.144-.274-.219-.5-.219-.262 0-.465.094-.61.282-.136.187-.203.453-.203.796V0H.594v-4.75h.562v1.844a1.03 1.03 0 0 1 .407-.438c.164-.101.367-.156.609-.156.344 0 .598.117.765.344.176.23.266.574.266 1.031Zm0 0"/></symbol><symbol overflow="visible" id="d"><path style="stroke:none" d="M.969-3.406h1.437v2.969h1.11V0H.719v-.438h1.125v-2.53H.969Zm.875-1.328h.562v.703h-.562Zm0 0"/></symbol><symbol overflow="visible" id="e"><path style="stroke:none" d="M2.969-3.297v.547a1.853 1.853 0 0 0-.485-.203 1.731 1.731 0 0 0-.5-.078c-.25 0-.437.043-.562.125a.427.427 0 0 0-.188.375c0 .156.047.273.141.344.094.074.32.148.688.218l.234.047c.281.055.488.156.625.313.144.156.219.367.219.625 0 .336-.121.601-.36.796-.242.188-.574.282-1 .282-.168 0-.343-.024-.531-.063a3.437 3.437 0 0 1-.594-.156v-.578c.207.105.406.187.594.25.188.055.367.078.547.078.25 0 .441-.05.578-.156a.505.505 0 0 0 .203-.422c0-.258-.25-.442-.75-.547h-.031l-.203-.047c-.324-.062-.563-.164-.719-.312-.148-.157-.219-.36-.219-.61 0-.332.11-.586.328-.765.227-.176.547-.266.954-.266.187 0 .363.016.53.047.165.031.333.086.5.156Zm0 0"/></symbol><symbol overflow="visible" id="f"><path style="stroke:none" d="M1.875-4.39v.968h1.281v.438H1.875v1.859c0 .25.047.43.14.531.094.094.258.14.5.14h.641V0H2.47c-.43 0-.73-.082-.906-.25-.168-.164-.25-.457-.25-.875v-1.86H.405v-.437h.906v-.969Zm0 0"/></symbol><symbol overflow="visible" id="g"><path style="stroke:none" d="M3.422-1.984v.265H.984v.016c-.011.469.079.808.266 1.016.195.199.473.296.828.296.176 0 .363-.023.563-.078.195-.062.406-.148.625-.265v.562a3.72 3.72 0 0 1-.625.188c-.2.05-.391.078-.579.078-.53 0-.949-.157-1.25-.469C.52-.695.376-1.141.376-1.703c0-.55.145-.988.438-1.313.289-.32.68-.484 1.171-.484.438 0 .782.152 1.032.453.25.293.382.649.406 1.063Zm-.563-.172a1.14 1.14 0 0 0-.265-.61c-.149-.175-.356-.265-.625-.265a.879.879 0 0 0-.672.281.943.943 0 0 0-.297.594Zm0 0"/></symbol><symbol overflow="visible" id="h"><path style="stroke:none" d="m3.406-3.422-1.219 1.64L3.532 0h-.656l-1-1.375L.875 0h-.64l1.343-1.781-1.234-1.64h.625l.906 1.233.906-1.234Zm0 0"/></symbol><symbol overflow="visible" id="i"><path style="stroke:none" d="M3.25-4.75v.469h-.64c-.212 0-.356.043-.438.125-.074.086-.11.23-.11.437v.297H3.25v.438H2.062V0H1.5v-2.984H.594v-.438H1.5v-.234c0-.375.082-.649.25-.828.176-.176.445-.266.813-.266Zm0 0"/></symbol><symbol overflow="visible" id="j"><path style="stroke:none" d="M2.188-1.234c0 .25.046.445.14.578.094.125.235.187.422.187h.656V0h-.719c-.335 0-.593-.102-.78-.313-.188-.218-.282-.523-.282-.921v-3.094h-.89v-.438h1.453Zm0 0"/></symbol><symbol overflow="visible" id="k"><path style="stroke:none" d="M3.531-2.719a1.364 1.364 0 0 0-.375-.203 1.361 1.361 0 0 0-.406-.062c-.355 0-.625.109-.813.328-.18.219-.265.539-.265.953V0h-.563v-3.422h.563v.672c.094-.238.234-.422.422-.547.195-.133.43-.203.703-.203.133 0 .258.023.375.063.125.03.242.085.36.156Zm0 0"/></symbol><symbol overflow="visible" id="l"><path style="stroke:none" d="M1.14-.438v1.735H.579v-4.719h.563v.438a.961.961 0 0 1 .375-.375c.156-.094.336-.141.546-.141.407 0 .723.164.954.484.238.313.359.758.359 1.329 0 .554-.121.992-.36 1.312-.23.313-.546.469-.953.469-.21 0-.39-.043-.546-.125a.996.996 0 0 1-.375-.406Zm1.657-1.265c0-.438-.074-.766-.219-.984a.67.67 0 0 0-.61-.344.7.7 0 0 0-.624.344c-.137.218-.203.546-.203.984 0 .43.066.758.203.984a.702.702 0 0 0 .625.328c.27 0 .472-.109.61-.328.144-.219.218-.547.218-.984Zm0 0"/></symbol><symbol overflow="visible" id="m"><path style="stroke:none" d="M2.14-1.719h-.187c-.324 0-.57.059-.734.172-.168.117-.25.29-.25.516 0 .21.062.37.187.484.125.117.297.172.516.172.312 0 .555-.11.734-.328.176-.219.266-.516.266-.89v-.126Zm1.094-.234V0h-.562v-.5c-.125.2-.281.352-.469.453-.18.094-.398.14-.656.14-.344 0-.621-.097-.828-.296C.508-.398.406-.664.406-1c0-.375.125-.66.375-.86.258-.195.633-.296 1.125-.296h.766v-.094c0-.27-.074-.469-.219-.594-.137-.125-.351-.187-.64-.187-.2 0-.399.031-.594.094a2.867 2.867 0 0 0-.563.234v-.563a6.11 6.11 0 0 1 .594-.171c.188-.04.375-.063.563-.063.28 0 .519.043.718.125.196.086.36.21.485.375a.92.92 0 0 1 .171.375c.032.148.047.371.047.672Zm0 0"/></symbol><symbol overflow="visible" id="n"><path style="stroke:none" d="M3.234-.172a1.732 1.732 0 0 1-.468.188c-.157.05-.32.078-.485.078-.531 0-.949-.157-1.25-.469-.293-.32-.437-.766-.437-1.328 0-.563.144-1 .437-1.313.301-.32.719-.484 1.25-.484.164 0 .328.023.485.063.156.042.312.109.468.203v.578a1.665 1.665 0 0 0-.453-.281 1.268 1.268 0 0 0-.5-.094c-.355 0-.625.117-.812.344-.188.23-.282.558-.282.984 0 .418.094.742.282.969.195.23.468.343.812.343.196 0 .375-.023.531-.078.157-.062.297-.156.422-.281Zm0 0"/></symbol><symbol overflow="visible" id="o"><path style="stroke:none" d="M.313-2.203h3.234v.515H.312Zm0 0"/></symbol><symbol overflow="visible" id="p"><path style="stroke:none" d="M1.875-3.031a.716.716 0 0 0-.64.344c-.15.218-.22.546-.22.984 0 .43.07.758.22.984.144.219.359.328.64.328.29 0 .508-.109.656-.328.145-.226.219-.554.219-.984 0-.438-.074-.766-.219-.984a.738.738 0 0 0-.656-.344Zm0-.469c.477 0 .844.156 1.094.469.25.304.375.746.375 1.328 0 .586-.125 1.031-.375 1.344-.25.304-.617.453-1.094.453-.469 0-.828-.149-1.078-.453-.25-.313-.375-.758-.375-1.344 0-.582.125-1.024.375-1.328.25-.313.61-.469 1.078-.469Zm0 0"/></symbol><symbol overflow="visible" id="q"><path style="stroke:none" d="M2.625-2.984V-4.75h.563V0h-.563v-.438a.996.996 0 0 1-.375.407c-.156.082-.34.125-.547.125-.406 0-.73-.16-.969-.485C.492-.71.375-1.156.375-1.719c0-.55.117-.984.36-1.297a1.15 1.15 0 0 1 .968-.484 1.046 1.046 0 0 1 .922.516ZM.969-1.704c0 .438.066.766.203.985.133.219.336.328.61.328.269 0 .476-.109.624-.328.145-.226.219-.554.219-.984 0-.438-.074-.766-.219-.984a.708.708 0 0 0-.625-.344.662.662 0 0 0-.61.344c-.136.218-.202.546-.202.984Zm0 0"/></symbol><symbol overflow="visible" id="r"><path style="stroke:none" d="M1.188-1.234h1.078V0H1.187Zm0 0"/></symbol><symbol overflow="visible" id="s"><path style="stroke:none" d="M5.984-3.578h8.672V0H1.578v-3.469l2.219-2.344C6.41-8.601 8-10.316 8.562-10.953c.688-.79 1.18-1.492 1.485-2.11.3-.613.453-1.218.453-1.812 0-.914-.277-1.625-.828-2.125-.555-.5-1.34-.75-2.36-.75-.73 0-1.546.148-2.453.438-.906.28-1.851.699-2.828 1.25v-3.797a20.224 20.224 0 0 1 2.875-.813 13.977 13.977 0 0 1 2.719-.281c2.176 0 3.883.512 5.125 1.531 1.25 1.012 1.875 2.39 1.875 4.14 0 .813-.137 1.575-.406 2.282-.274.71-.735 1.496-1.39 2.36-.493.624-1.829 2.03-4.017 4.218a517.956 517.956 0 0 0-2.828 2.844Zm0 0"/></symbol><clipPath id="a"><path d="M0 0h167.238v124.719H0Zm0 0"/></clipPath><clipPath id="t"><path d="M5 121h1v3.719H5Zm0 0"/></clipPath><clipPath id="u"><path d="M164 118h3.238v2H164Zm0 0"/></clipPath><clipPath id="v"><path d="M161 121h1v3.719h-1Zm0 0"/></clipPath><clipPath id="w"><path d="M164 5h3.238v1H164Zm0 0"/></clipPath></defs><g clip-path="url(#a)"><path style="fill:none;stroke-width:.14172;stroke-linecap:square;stroke-linejoin:miter;stroke:#a6a6a6;stroke-opacity:.2;stroke-miterlimit:10" d="M0 .001h175.75M0 2.833h175.75M0 5.67h175.75M0 8.505h175.75M0 11.337h175.75M0 14.173h175.75M0 17.01h175.75M0 19.841h175.75M0 22.677h175.75M0 25.513h175.75M0 28.345h175.75M0 31.181h175.75M0 34.017h175.75M0 36.849h175.75M0 39.685h175.75M0 42.52h175.75M0 45.353h175.75M0 48.189h175.75M0 51.025h175.75M0 53.857h175.75M0 56.693h175.75M0 59.529h175.75M0 62.36h175.75M0 65.197h175.75M0 68.033h175.75M0 70.869h175.75M0 73.7h175.75M0 76.537h175.75M0 79.371h175.75M0 82.204h175.75M0 85.04h175.75M0 87.876h175.75M0 90.708h175.75M0 93.544h175.75M0 96.38h175.75M0 99.212h175.75M0 102.048h175.75M0 104.884h175.75M0 107.716h175.75M0 110.552h175.75M0 113.388h175.75M0 116.22h175.75M0 119.056h175.75M0 121.892h175.75M0 124.724h175.75M0 127.56h175.75M0 130.396h175.75M0 133.228h175.75M0 0v133.23M2.836.002v133.23M5.668.002v133.23M8.504.002v133.23M11.34.002v133.23M14.172.002v133.23M17.008.002v133.23M19.844.002v133.23M22.676.002v133.23M25.512.002v133.23M28.348.002v133.23M31.18.002v133.23M34.016.002v133.23M36.852.002v133.23M39.684.002v133.23M42.52.002v133.23M45.356.002v133.23M48.188.002v133.23M51.024.002v133.23M53.859.002v133.23M56.691.002v133.23M59.527.002v133.23M62.363.002v133.23M65.195.002v133.23M68.031.002v133.23M70.867.002v133.23M73.703.002v133.23M76.535.002v133.23M79.371.002v133.23M82.207.002v133.23M85.04.002v133.23M87.875.002v133.23M90.711.002v133.23M93.543.002v133.23M96.38.002v133.23M99.215.002v133.23M102.047.002v133.23M104.883.002v133.23M107.719.002v133.23M110.55.002v133.23M113.387.002v133.23M116.223.002v133.23M119.055.002v133.23M121.89.002v133.23M124.727.002v133.23M127.559.002v133.23M130.395.002v133.23M133.23.002v133.23M136.063.002v133.23M138.899.002v133.23M141.734.002v133.23M144.566.002v133.23M147.403.002v133.23M150.238.002v133.23M153.07.002v133.23M155.906.002v133.23M158.742.002v133.23M161.574.002v133.23M164.41.002v133.23M167.246.002v133.23M170.078.002v133.23M172.914.002v133.23M175.75.002v133.23M0 .001h175.75M0 14.173h175.75M0 28.345h175.75M0 42.521h175.75M0 56.693h175.75M0 70.869h175.75M0 85.04h175.75M0 99.212h175.75M0 113.388h175.75M0 127.56h175.75M0 0v133.23M14.172.002v133.23M28.348.002v133.23M42.52.002v133.23M56.695.002v133.23M70.867.002v133.23M85.04.002v133.23M99.215.002v133.23M113.387.002v133.23M127.559.002v133.23M141.734.002v133.23M155.906.002v133.23M170.082.002v133.23" transform="matrix(1 0 0 -1 -8.504 133.224)"/></g><use xlink:href="#b" x="19.654" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#c" x="23.431" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#d" x="27.208" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#e" x="30.984" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#f" x="38.644" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#g" x="42.421" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#h" x="46.198" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#f" x="49.981" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#i" x="57.635" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#d" x="61.412" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#j" x="65.195" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#j" x="68.971" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#e" x="72.748" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#f" x="19.842" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#c" x="23.619" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#g" x="27.396" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#i" x="34.018" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#d" x="37.794" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#k" x="41.571" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#e" x="45.348" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#f" x="49.131" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#l" x="55.747" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#j" x="59.524" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#m" x="63.3" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#n" x="67.083" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#g" x="70.86" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#o" x="74.637" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#c" x="19.842" y="41.761" style="fill:#000;fill-opacity:1"/><use xlink:href="#p" x="23.619" y="41.761" style="fill:#000;fill-opacity:1"/><use xlink:href="#j" x="27.396" y="41.761" style="fill:#000;fill-opacity:1"/><use xlink:href="#q" x="31.172" y="41.761" style="fill:#000;fill-opacity:1"/><use xlink:href="#g" x="34.956" y="41.761" style="fill:#000;fill-opacity:1"/><use xlink:href="#k" x="38.732" y="41.761" style="fill:#000;fill-opacity:1"/><use xlink:href="#r" x="42.509" y="41.761" style="fill:#000;fill-opacity:1"/><path style="fill-rule:nonzero;fill:#b3e6fa;fill-opacity:.3;stroke-width:.28346;stroke-linecap:butt;stroke-linejoin:miter;stroke:#66cef5;stroke-opacity:.3;stroke-miterlimit:10" d="M.002 0v85.042h56.691V0Zm0 0" transform="matrix(1 0 0 -1 90.709 104.878)"/><use xlink:href="#s" x="110.523" y="72.877" style="fill:#66cef5;fill-opacity:.3"/><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M-2.836 5.67h5.672" transform="matrix(1 0 0 -1 0 124.72)"/><g clip-path="url(#t)"><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M5.668-2.835v5.668" transform="matrix(1 0 0 -1 0 124.72)"/></g><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M-2.836 119.056h5.672M5.668 127.56v-5.668" transform="matrix(1 0 0 -1 0 124.72)"/><g clip-path="url(#u)"><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M170.082 5.67h-5.672" transform="matrix(1 0 0 -1 0 124.72)"/></g><g clip-path="url(#v)"><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M161.578-2.835v5.668" transform="matrix(1 0 0 -1 0 124.72)"/></g><g clip-path="url(#w)"><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M170.082 119.056h-5.672" transform="matrix(1 0 0 -1 0 124.72)"/></g><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M161.578 127.56v-5.668" transform="matrix(1 0 0 -1 0 124.72)"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="320" height="239" viewBox="0 0 167.24 124.72"><defs><path id="b" d="M.422-2.89h.39v2.562h1.391V0H.422Zm0 0"/><path id="c" d="M1.188-1.922a.45.45 0 0 0-.407.219q-.14.204-.14.625 0 .409.14.625a.46.46 0 0 0 .407.203q.281.001.421-.203.141-.217.141-.625 0-.42-.14-.625a.47.47 0 0 0-.423-.219m0-.297c.3 0 .53.102.687.297q.248.282.25.844-.002.55-.25.844-.235.298-.687.297-.44 0-.688-.297-.234-.294-.234-.844 0-.562.234-.844c.164-.195.395-.297.688-.297m0 0"/><path id="d" d="M2.234-1.719A.6.6 0 0 0 2-1.844a.6.6 0 0 0-.25-.047q-.345.001-.516.22c-.117.136-.171.335-.171.593V0h-.36v-2.172h.36v.422a.7.7 0 0 1 .265-.344.78.78 0 0 1 .438-.125q.139.001.25.031a.9.9 0 0 1 .218.094Zm0 0"/><path id="e" d="M2.172-1.266v.172H.625v.016q-.017.44.172.64.188.189.516.188.17 0 .359-.047.186-.06.406-.172v.36a3 3 0 0 1-.406.125 1.5 1.5 0 0 1-.36.047Q.81.063.517-.234.234-.545.234-1.078q0-.529.282-.828.28-.312.75-.313.406 0 .64.281c.164.188.254.415.266.672m-.36-.109a.62.62 0 0 0-.156-.375.5.5 0 0 0-.406-.172.6.6 0 0 0-.437.172.62.62 0 0 0-.172.39Zm0 0"/><path id="f" d="M1.313-1.953a.45.45 0 0 1 .156-.203.5.5 0 0 1 .25-.063q.263.002.375.203c.07.137.11.391.11.766V0h-.329v-1.234q-.002-.468-.062-.578a.18.18 0 0 0-.172-.11q-.16.001-.22.125-.062.111-.062.563V0h-.312v-1.234c0-.313-.024-.504-.063-.578-.03-.07-.101-.11-.203-.11a.21.21 0 0 0-.203.125q-.047.111-.047.563V0H.22v-2.172H.53v.188a.5.5 0 0 1 .156-.172.473.473 0 0 1 .469 0q.094.064.157.203m0 0"/><path id="g" d="M.61-2.156h.921v1.875h.703V0H.47v-.281h.703v-1.61H.609ZM1.171-3h.36v.438h-.36Zm0 0"/><path id="h" d="M.734-.266V.828H.375v-3h.36v.281a.55.55 0 0 1 .218-.234.7.7 0 0 1 .36-.094q.386.001.609.313.218.3.219.828-.001.533-.22.844a.72.72 0 0 1-.608.297.8.8 0 0 1-.36-.079.6.6 0 0 1-.219-.25m1.032-.812q-.001-.42-.125-.625a.43.43 0 0 0-.391-.219.44.44 0 0 0-.39.219c-.087.137-.126.344-.126.625Q.733-.67.86-.453a.45.45 0 0 0 .391.203q.263.001.39-.203.125-.217.126-.625m0 0"/><path id="i" d="M1.89-2.094v.344a2 2 0 0 0-.312-.125 1.1 1.1 0 0 0-.312-.047q-.252 0-.375.078a.27.27 0 0 0-.11.235q-.001.141.078.218c.063.055.211.102.454.141l.14.031a.7.7 0 0 1 .406.203c.094.094.141.227.141.391q0 .314-.234.5-.236.188-.641.188-.158 0-.328-.047a3 3 0 0 1-.39-.094v-.375a1.6 1.6 0 0 0 .734.203.6.6 0 0 0 .359-.094.3.3 0 0 0 .14-.265c0-.164-.163-.282-.484-.344h-.015l-.125-.031Q.7-1.046.563-1.187a.53.53 0 0 1-.141-.391q-.001-.31.203-.469.217-.17.61-.172a1.8 1.8 0 0 1 .656.125m0 0"/><path id="j" d="M.375-.828v-1.344h.36v1.344q0 .299.093.437.105.141.328.141.247.002.375-.172.14-.187.14-.516v-1.234h.36V0h-.36v-.328a.73.73 0 0 1-.265.297.7.7 0 0 1-.375.094c-.218 0-.386-.07-.5-.22Q.374-.371.375-.827m0 0"/><path id="k" d="M1.656-1.89v-1.126h.36V0h-.36v-.266a.63.63 0 0 1-.234.25.7.7 0 0 1-.344.079.75.75 0 0 1-.625-.297q-.22-.31-.219-.86c0-.351.07-.629.22-.828a.76.76 0 0 1 .624-.297q.201 0 .344.094.152.083.234.234M.61-1.079q-.001.409.125.625a.46.46 0 0 0 .407.203q.246.001.375-.203.14-.217.14-.625 0-.42-.14-.625a.41.41 0 0 0-.375-.219.45.45 0 0 0-.407.219c-.086.137-.125.344-.125.625m0 0"/><path id="l" d="M1.39-.781q-.002.235.079.36.091.126.265.124h.422V0h-.453a.64.64 0 0 1-.5-.203q-.174-.201-.172-.578V-2.75H.47v-.281h.922Zm0 0"/><path id="m" d="M1.188-2.781v.61H2v.28h-.812v1.172q0 .251.093.344c.063.063.164.094.313.094H2V0h-.437q-.41.001-.579-.156Q.827-.326.828-.72V-1.89H.25v-.28h.578v-.61Zm0 0"/><path id="n" d="M1.36-1.094h-.126c-.199 0-.355.04-.468.11q-.158.11-.157.328 0 .205.11.312a.55.55 0 0 0 .344.094q.293.001.453-.203.17-.199.172-.563v-.078Zm.687-.14V0h-.36v-.328a.7.7 0 0 1-.28.297.9.9 0 0 1-.423.094C.766.063.586 0 .454-.125a.64.64 0 0 1-.204-.5Q.249-1 .5-1.187q.248-.188.719-.188h.468v-.047q0-.263-.125-.375-.128-.124-.421-.125a1.2 1.2 0 0 0-.36.063 1.5 1.5 0 0 0-.36.14v-.36q.188-.058.376-.093.186-.047.344-.047.28.002.468.078a.85.85 0 0 1 .313.235c.039.062.07.148.094.25q.03.14.03.422m0 0"/><path id="o" d="M.86-.703h.609v.516L1.03.656h-.39l.218-.843Zm0 0"/><path id="p" d="M2.063-.11c-.106.055-.211.094-.313.126a1 1 0 0 1-.297.047Q.95.063.656-.234q-.28-.311-.281-.844 0-.545.281-.844c.196-.195.461-.297.797-.297q.155 0 .297.047.154.035.313.11v.374a.8.8 0 0 0-.297-.171.8.8 0 0 0-.313-.063q-.344 0-.531.219-.174.221-.172.625-.002.393.172.61c.125.148.3.218.531.218q.187 0 .328-.047a.8.8 0 0 0 .282-.187Zm0 0"/><path id="q" d="M2.031-1.344V0h-.36v-1.344q-.001-.293-.109-.422-.094-.14-.312-.14a.48.48 0 0 0-.39.172c-.087.117-.126.28-.126.5V0H.375v-2.172h.36v.328a.65.65 0 0 1 .25-.281.8.8 0 0 1 .39-.094q.328 0 .484.219.172.222.172.656m0 0"/><path id="r" d="M.203-1.406H2.25v.328H.203Zm0 0"/><path id="s" d="M1.656-1.11q-.001-.387-.125-.593a.41.41 0 0 0-.375-.219.45.45 0 0 0-.406.219q-.14.206-.14.594 0 .409.14.625a.46.46 0 0 0 .406.203q.247 0 .375-.203.124-.217.125-.625m.36.97q0 .481-.235.734-.22.264-.672.265Q.968.86.797.83A4 4 0 0 1 .484.75V.39C.61.454.723.493.828.517a1 1 0 0 0 .281.046q.294-.002.422-.156.124-.158.125-.5v-.25a.6.6 0 0 1-.234.282.7.7 0 0 1-.344.078.75.75 0 0 1-.625-.297Q.233-.593.234-1.11c0-.332.07-.598.22-.797a.74.74 0 0 1 .624-.313.7.7 0 0 1 .344.078c.101.055.18.141.234.266v-.281h.36Zm0 0"/><path id="t" d="M.75-.781h.688V0H.75Zm0 0"/><path id="u" d="M.281-1.11v-1.78h.39v1.953q0 .22.016.312A.26.26 0 0 0 .735-.5q.06.129.172.188a.8.8 0 0 0 .282.046.7.7 0 0 0 .28-.046.4.4 0 0 0 .188-.188.4.4 0 0 0 .047-.125c.008-.062.016-.16.016-.297V-2.89h.39v1.782q-.002.438-.062.625a.8.8 0 0 1-.188.312.9.9 0 0 1-.296.172q-.159.062-.375.063C1.05.063.926.039.813 0A.9.9 0 0 1 .53-.172a.7.7 0 0 1-.203-.312Q.281-.671.281-1.11m0 0"/><path id="v" d="M.188-2.172h.375l.625 1.828.64-1.828h.375L1.422 0H.969Zm0 0"/><path id="w" d="M1.781-1.078q0-.42-.14-.625a.43.43 0 0 0-.391-.219.44.44 0 0 0-.39.219c-.087.137-.126.344-.126.625Q.733-.67.86-.453a.45.45 0 0 0 .391.203q.263.001.39-.203.141-.217.141-.625M.734-1.891a.55.55 0 0 1 .22-.234.7.7 0 0 1 .359-.094c.257 0 .46.102.609.297q.234.3.234.828 0 .55-.234.86a.72.72 0 0 1-.61.297.8.8 0 0 1-.359-.079.6.6 0 0 1-.219-.25V0H.375v-3.016h.36Zm0 0"/><path id="x" d="M2.063-3.016v.297h-.407q-.189.002-.265.078-.08.083-.079.282v.187h.75v.281h-.75V0H.954v-1.89H.375v-.282h.578v-.156q-.001-.34.156-.516.171-.17.516-.172Zm0 0"/><path id="y" d="M2.078-.11a.8.8 0 0 1-.312.126 1.2 1.2 0 0 1-.328.047q-.55 0-.86-.391-.313-.405-.312-1.11c0-.476.101-.847.312-1.109q.31-.405.86-.406.17 0 .328.047.17.047.312.125v.39q-.142-.107-.312-.171a1 1 0 0 0-.328-.063.66.66 0 0 0-.579.297q-.187.3-.187.89 0 .599.187.891c.133.188.329.281.579.281a.9.9 0 0 0 .328-.062q.17-.06.312-.172Zm0 0"/><path id="z" d="M.031-2.89h.547L1.703-.517V-2.89h.422V0h-.547L.453-2.375V0H.031Zm0 0"/><path id="A" d="M1.656-.703q-.08.235-.218.61-.189.497-.266.609A.6.6 0 0 1 .953.75a.6.6 0 0 1-.312.078H.359V.531h.204a.34.34 0 0 0 .25-.094q.093-.093.234-.468l-.844-2.14h.375l.64 1.702.641-1.703h.375Zm0 0"/><path id="B" d="M.844-.328q.499 0 .687-.234.201-.248.203-.875-.002-.639-.203-.891-.188-.248-.687-.25H.656v2.25Zm.015-2.563c.438 0 .758.121.97.36q.31.345.312 1.094Q2.14-.7 1.828-.344 1.514.001.86 0H.266v-2.89Zm0 0"/><path id="C" d="M2.031-1.344V0h-.36v-1.344q-.001-.293-.109-.422-.094-.14-.312-.14a.48.48 0 0 0-.39.172c-.087.117-.126.28-.126.5V0H.375v-3.016h.36v1.172a.65.65 0 0 1 .25-.281.8.8 0 0 1 .39-.094q.328 0 .484.219.172.222.172.656m0 0"/><path id="D" d="M.64-1.078q-.001.423.126.64a.45.45 0 0 0 .39.204q.263 0 .39-.203.142-.219.141-.641 0-.405-.14-.61a.43.43 0 0 0-.39-.218.44.44 0 0 0-.391.218c-.086.137-.125.34-.125.61m1.047.812a.7.7 0 0 1-.25.25.7.7 0 0 1-.328.079.75.75 0 0 1-.625-.297C.336-.43.266-.707.266-1.062c0-.364.07-.645.218-.844a.74.74 0 0 1 .625-.313q.188 0 .329.094a.65.65 0 0 1 .25.234v-.265h.359V.828h-.36Zm0 0"/><path id="E" d="M.766-2.578v1.094h.468q.265 0 .407-.141c.101-.094.156-.227.156-.406a.51.51 0 0 0-.156-.39.53.53 0 0 0-.407-.157Zm-.391-.313h.86q.481.001.734.22c.164.148.25.358.25.64q-.002.439-.25.656-.253.22-.735.219H.766V0H.375Zm0 0"/><path id="F" d="M.063-2.89h.53l.5 1.468.5-1.469h.532V0h-.36v-2.547L1.25-1.03H.953L.438-2.547V0H.063Zm0 0"/><clipPath id="a"><path d="M0 0h167.238v124.719H0Zm0 0"/></clipPath><clipPath id="G"><path d="M5 121h1v3.719H5Zm0 0"/></clipPath><clipPath id="H"><path d="M164 118h3.238v2H164Zm0 0"/></clipPath><clipPath id="I"><path d="M161 121h1v3.719h-1Zm0 0"/></clipPath><clipPath id="J"><path d="M164 5h3.238v1H164Zm0 0"/></clipPath></defs><g clip-path="url(#a)"><path fill="#FFF" d="M0 121.887V2.828A2.836 2.836 0 0 1 2.836-.008H164.41a2.836 2.836 0 0 1 2.836 2.836v119.059a2.835 2.835 0 0 1-2.836 2.832H2.836A2.835 2.835 0 0 1 0 121.887m0 0"/><path fill="none" stroke="#A6A6A6" stroke-linecap="square" stroke-miterlimit="10" stroke-opacity=".2" stroke-width=".142" d="M-8.504 133.223h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75M-8.504 82.2h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.835h175.75M-8.504 51.02h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75M-8.504 39.68h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75M-8.504 28.34h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75M-8.504 8.5h175.75M-8.504 5.664h175.75M-8.504 2.828h175.75M-8.504-.004h175.75M-8.504 133.223V-.007m2.836 133.23V-.007m2.832 133.23V-.007M0 133.222V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.835 133.23V-.007m2.833 133.23V-.007m2.835 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.835 133.23V-.007m2.833 133.23V-.007m2.835 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007M-8.504 133.223h175.75M-8.504 119.05h175.75m-175.75-14.172h175.75M-8.504 90.703h175.75M-8.504 76.531h175.75M-8.504 62.355h175.75M-8.504 48.184h175.75M-8.504 34.012h175.75M-8.504 19.836h175.75M-8.504 5.664h175.75M-8.504 133.223V-.007m14.172 133.23V-.007m14.176 133.23V-.007m14.172 133.23V-.007m14.175 133.23V-.007m14.172 133.23V-.007m14.172 133.23V-.007m14.176 133.23V-.007m14.172 133.23V-.007m14.172 133.23V-.007m14.175 133.23V-.007m14.172 133.23V-.007m14.176 133.23V-.007"/></g><use xlink:href="#b" x="19.842" y="22.878"/><use xlink:href="#c" x="22.24" y="22.878"/><use xlink:href="#d" x="24.638" y="22.878"/><use xlink:href="#e" x="27.036" y="22.878"/><use xlink:href="#f" x="29.438" y="22.878"/><use xlink:href="#g" x="36.338" y="22.878"/><use xlink:href="#h" x="38.736" y="22.878"/><use xlink:href="#i" x="41.138" y="22.878"/><use xlink:href="#j" x="43.536" y="22.878"/><use xlink:href="#f" x="45.934" y="22.878"/><use xlink:href="#k" x="52.834" y="22.878"/><use xlink:href="#c" x="55.236" y="22.878"/><use xlink:href="#l" x="57.634" y="22.878"/><use xlink:href="#c" x="60.032" y="22.878"/><use xlink:href="#d" x="62.43" y="22.878"/><use xlink:href="#i" x="69.335" y="22.878"/><use xlink:href="#g" x="71.733" y="22.878"/><use xlink:href="#m" x="74.131" y="22.878"/><use xlink:href="#n" x="19.842" y="27.66"/><use xlink:href="#f" x="22.24" y="27.66"/><use xlink:href="#e" x="24.638" y="27.66"/><use xlink:href="#m" x="27.036" y="27.66"/><use xlink:href="#o" x="29.438" y="27.66"/><use xlink:href="#p" x="34.409" y="27.66"/><use xlink:href="#c" x="36.807" y="27.66"/><use xlink:href="#q" x="39.205" y="27.66"/><use xlink:href="#i" x="41.607" y="27.66"/><use xlink:href="#e" x="44.005" y="27.66"/><use xlink:href="#p" x="46.403" y="27.66"/><use xlink:href="#m" x="48.801" y="27.66"/><use xlink:href="#e" x="51.203" y="27.66"/><use xlink:href="#m" x="53.601" y="27.66"/><use xlink:href="#j" x="55.999" y="27.66"/><use xlink:href="#e" x="58.397" y="27.66"/><use xlink:href="#d" x="60.799" y="27.66"/><use xlink:href="#n" x="65.734" y="27.66"/><use xlink:href="#k" x="68.132" y="27.66"/><use xlink:href="#g" x="70.534" y="27.66"/><use xlink:href="#h" x="72.932" y="27.66"/><use xlink:href="#r" x="75.33" y="27.66"/><use xlink:href="#g" x="19.842" y="32.442"/><use xlink:href="#i" x="22.24" y="32.442"/><use xlink:href="#p" x="24.638" y="32.442"/><use xlink:href="#g" x="27.036" y="32.442"/><use xlink:href="#q" x="29.438" y="32.442"/><use xlink:href="#s" x="31.836" y="32.442"/><use xlink:href="#e" x="38.935" y="32.442"/><use xlink:href="#l" x="41.333" y="32.442"/><use xlink:href="#g" x="43.735" y="32.442"/><use xlink:href="#m" x="46.133" y="32.442"/><use xlink:href="#t" x="48.531" y="32.442"/><use xlink:href="#u" x="61.033" y="32.442"/><use xlink:href="#m" x="63.435" y="32.442"/><use xlink:href="#h" x="70.534" y="32.442"/><use xlink:href="#j" x="72.932" y="32.442"/><use xlink:href="#r" x="75.33" y="32.442"/><use xlink:href="#d" x="19.842" y="37.224"/><use xlink:href="#j" x="22.24" y="37.224"/><use xlink:href="#i" x="24.638" y="37.224"/><use xlink:href="#e" x="29.533" y="37.224"/><use xlink:href="#l" x="31.931" y="37.224"/><use xlink:href="#g" x="34.329" y="37.224"/><use xlink:href="#m" x="36.731" y="37.224"/><use xlink:href="#o" x="39.129" y="37.224"/><use xlink:href="#v" x="44.048" y="37.224"/><use xlink:href="#e" x="46.446" y="37.224"/><use xlink:href="#i" x="48.844" y="37.224"/><use xlink:href="#m" x="51.242" y="37.224"/><use xlink:href="#g" x="53.644" y="37.224"/><use xlink:href="#w" x="56.042" y="37.224"/><use xlink:href="#j" x="58.44" y="37.224"/><use xlink:href="#l" x="60.838" y="37.224"/><use xlink:href="#j" x="63.24" y="37.224"/><use xlink:href="#f" x="65.638" y="37.224"/><use xlink:href="#j" x="70.534" y="37.224"/><use xlink:href="#m" x="72.932" y="37.224"/><use xlink:href="#o" x="75.33" y="37.224"/><use xlink:href="#h" x="19.842" y="42.006"/><use xlink:href="#l" x="22.24" y="42.006"/><use xlink:href="#n" x="24.638" y="42.006"/><use xlink:href="#p" x="27.036" y="42.006"/><use xlink:href="#e" x="29.438" y="42.006"/><use xlink:href="#d" x="31.836" y="42.006"/><use xlink:href="#n" x="34.234" y="42.006"/><use xlink:href="#m" x="36.632" y="42.006"/><use xlink:href="#n" x="42.103" y="42.006"/><use xlink:href="#p" x="44.501" y="42.006"/><use xlink:href="#o" x="46.903" y="42.006"/><use xlink:href="#n" x="52.541" y="42.006"/><use xlink:href="#k" x="54.939" y="42.006"/><use xlink:href="#g" x="57.337" y="42.006"/><use xlink:href="#h" x="59.739" y="42.006"/><use xlink:href="#g" x="62.137" y="42.006"/><use xlink:href="#i" x="64.535" y="42.006"/><use xlink:href="#p" x="66.933" y="42.006"/><use xlink:href="#g" x="69.335" y="42.006"/><use xlink:href="#q" x="71.733" y="42.006"/><use xlink:href="#s" x="74.131" y="42.006"/><use xlink:href="#v" x="19.723" y="46.788"/><use xlink:href="#g" x="22.121" y="46.788"/><use xlink:href="#m" x="24.519" y="46.788"/><use xlink:href="#n" x="26.917" y="46.788"/><use xlink:href="#e" x="29.319" y="46.788"/><use xlink:href="#o" x="31.717" y="46.788"/><use xlink:href="#x" x="36.795" y="46.788"/><use xlink:href="#e" x="39.193" y="46.788"/><use xlink:href="#l" x="41.591" y="46.788"/><use xlink:href="#g" x="43.993" y="46.788"/><use xlink:href="#i" x="46.391" y="46.788"/><use xlink:href="#t" x="48.789" y="46.788"/><use xlink:href="#y" x="55.058" y="46.788"/><use xlink:href="#j" x="57.456" y="46.788"/><use xlink:href="#d" x="59.858" y="46.788"/><use xlink:href="#n" x="62.256" y="46.788"/><use xlink:href="#w" x="64.654" y="46.788"/><use xlink:href="#g" x="67.052" y="46.788"/><use xlink:href="#m" x="69.454" y="46.788"/><use xlink:href="#j" x="71.852" y="46.788"/><use xlink:href="#d" x="74.25" y="46.788"/><use xlink:href="#k" x="19.842" y="51.57"/><use xlink:href="#g" x="22.24" y="51.57"/><use xlink:href="#p" x="24.638" y="51.57"/><use xlink:href="#m" x="27.036" y="51.57"/><use xlink:href="#j" x="29.438" y="51.57"/><use xlink:href="#f" x="31.836" y="51.57"/><use xlink:href="#s" x="39.427" y="51.57"/><use xlink:href="#d" x="41.829" y="51.57"/><use xlink:href="#n" x="44.227" y="51.57"/><use xlink:href="#v" x="46.625" y="51.57"/><use xlink:href="#g" x="49.023" y="51.57"/><use xlink:href="#k" x="51.425" y="51.57"/><use xlink:href="#n" x="53.823" y="51.57"/><use xlink:href="#f" x="61.414" y="51.57"/><use xlink:href="#n" x="63.812" y="51.57"/><use xlink:href="#j" x="66.214" y="51.57"/><use xlink:href="#d" x="68.612" y="51.57"/><use xlink:href="#g" x="71.01" y="51.57"/><use xlink:href="#i" x="73.408" y="51.57"/><use xlink:href="#t" x="75.81" y="51.57"/><use xlink:href="#z" x="19.842" y="56.352"/><use xlink:href="#n" x="22.24" y="56.352"/><use xlink:href="#f" x="24.638" y="56.352"/><use xlink:href="#n" x="31.749" y="56.352"/><use xlink:href="#d" x="34.147" y="56.352"/><use xlink:href="#p" x="36.545" y="56.352"/><use xlink:href="#j" x="38.943" y="56.352"/><use xlink:href="#l" x="46.053" y="56.352"/><use xlink:href="#g" x="48.451" y="56.352"/><use xlink:href="#w" x="50.853" y="56.352"/><use xlink:href="#e" x="53.251" y="56.352"/><use xlink:href="#d" x="55.649" y="56.352"/><use xlink:href="#c" x="58.047" y="56.352"/><use xlink:href="#o" x="60.449" y="56.352"/><use xlink:href="#q" x="68.136" y="56.352"/><use xlink:href="#c" x="70.534" y="56.352"/><use xlink:href="#q" x="72.932" y="56.352"/><use xlink:href="#r" x="75.33" y="56.352"/><use xlink:href="#j" x="19.842" y="61.134"/><use xlink:href="#f" x="22.24" y="61.134"/><use xlink:href="#f" x="24.638" y="61.134"/><use xlink:href="#A" x="27.036" y="61.134"/><use xlink:href="#e" x="32.563" y="61.134"/><use xlink:href="#s" x="34.961" y="61.134"/><use xlink:href="#e" x="37.359" y="61.134"/><use xlink:href="#m" x="39.757" y="61.134"/><use xlink:href="#o" x="42.158" y="61.134"/><use xlink:href="#p" x="47.86" y="61.134"/><use xlink:href="#c" x="50.262" y="61.134"/><use xlink:href="#q" x="52.66" y="61.134"/><use xlink:href="#i" x="55.058" y="61.134"/><use xlink:href="#e" x="57.456" y="61.134"/><use xlink:href="#p" x="59.858" y="61.134"/><use xlink:href="#m" x="62.256" y="61.134"/><use xlink:href="#e" x="64.654" y="61.134"/><use xlink:href="#m" x="67.052" y="61.134"/><use xlink:href="#j" x="69.454" y="61.134"/><use xlink:href="#e" x="71.852" y="61.134"/><use xlink:href="#d" x="74.25" y="61.134"/><use xlink:href="#g" x="19.842" y="65.916"/><use xlink:href="#k" x="22.24" y="65.916"/><use xlink:href="#o" x="24.638" y="65.916"/><use xlink:href="#v" x="30.577" y="65.916"/><use xlink:href="#j" x="32.975" y="65.916"/><use xlink:href="#l" x="35.373" y="65.916"/><use xlink:href="#h" x="37.771" y="65.916"/><use xlink:href="#j" x="40.173" y="65.916"/><use xlink:href="#m" x="42.571" y="65.916"/><use xlink:href="#n" x="44.969" y="65.916"/><use xlink:href="#m" x="47.367" y="65.916"/><use xlink:href="#e" x="49.769" y="65.916"/><use xlink:href="#n" x="55.479" y="65.916"/><use xlink:href="#o" x="57.877" y="65.916"/><use xlink:href="#f" x="63.812" y="65.916"/><use xlink:href="#n" x="66.214" y="65.916"/><use xlink:href="#s" x="68.612" y="65.916"/><use xlink:href="#q" x="71.01" y="65.916"/><use xlink:href="#n" x="73.408" y="65.916"/><use xlink:href="#t" x="75.81" y="65.916"/><use xlink:href="#B" x="19.842" y="70.698"/><use xlink:href="#c" x="22.24" y="70.698"/><use xlink:href="#q" x="24.638" y="70.698"/><use xlink:href="#e" x="27.036" y="70.698"/><use xlink:href="#p" x="29.438" y="70.698"/><use xlink:href="#v" x="38.589" y="70.698"/><use xlink:href="#e" x="40.987" y="70.698"/><use xlink:href="#C" x="43.389" y="70.698"/><use xlink:href="#g" x="45.787" y="70.698"/><use xlink:href="#p" x="48.185" y="70.698"/><use xlink:href="#j" x="50.583" y="70.698"/><use xlink:href="#l" x="52.985" y="70.698"/><use xlink:href="#n" x="55.383" y="70.698"/><use xlink:href="#n" x="64.535" y="70.698"/><use xlink:href="#j" x="66.933" y="70.698"/><use xlink:href="#s" x="69.335" y="70.698"/><use xlink:href="#j" x="71.733" y="70.698"/><use xlink:href="#e" x="74.131" y="70.698"/><use xlink:href="#e" x="19.842" y="75.48"/><use xlink:href="#j" x="22.24" y="75.48"/><use xlink:href="#q" x="31.113" y="75.48"/><use xlink:href="#e" x="33.515" y="75.48"/><use xlink:href="#D" x="35.913" y="75.48"/><use xlink:href="#j" x="38.311" y="75.48"/><use xlink:href="#e" x="40.709" y="75.48"/><use xlink:href="#t" x="43.111" y="75.48"/><use xlink:href="#E" x="60.94" y="75.481"/><use xlink:href="#e" x="63.338" y="75.481"/><use xlink:href="#l" x="65.736" y="75.481"/><use xlink:href="#l" x="68.134" y="75.481"/><use xlink:href="#e" x="70.536" y="75.481"/><use xlink:href="#q" x="72.934" y="75.481"/><use xlink:href="#r" x="75.332" y="75.481"/><use xlink:href="#m" x="19.842" y="80.263"/><use xlink:href="#e" x="22.24" y="80.263"/><use xlink:href="#i" x="24.638" y="80.263"/><use xlink:href="#D" x="27.036" y="80.263"/><use xlink:href="#j" x="29.438" y="80.263"/><use xlink:href="#e" x="31.836" y="80.263"/><use xlink:href="#C" x="39.788" y="80.263"/><use xlink:href="#n" x="42.186" y="80.263"/><use xlink:href="#w" x="44.588" y="80.263"/><use xlink:href="#g" x="46.986" y="80.263"/><use xlink:href="#m" x="49.384" y="80.263"/><use xlink:href="#n" x="51.782" y="80.263"/><use xlink:href="#q" x="54.184" y="80.263"/><use xlink:href="#m" x="56.582" y="80.263"/><use xlink:href="#f" x="64.535" y="80.263"/><use xlink:href="#c" x="66.933" y="80.263"/><use xlink:href="#d" x="69.335" y="80.263"/><use xlink:href="#w" x="71.733" y="80.263"/><use xlink:href="#g" x="74.131" y="80.263"/><use xlink:href="#m" x="19.842" y="85.045"/><use xlink:href="#d" x="22.24" y="85.045"/><use xlink:href="#g" x="24.638" y="85.045"/><use xlink:href="#i" x="27.036" y="85.045"/><use xlink:href="#m" x="29.438" y="85.045"/><use xlink:href="#g" x="31.836" y="85.045"/><use xlink:href="#D" x="34.234" y="85.045"/><use xlink:href="#j" x="36.632" y="85.045"/><use xlink:href="#e" x="39.034" y="85.045"/><use xlink:href="#i" x="43.135" y="85.045"/><use xlink:href="#e" x="45.533" y="85.045"/><use xlink:href="#q" x="47.935" y="85.045"/><use xlink:href="#e" x="50.333" y="85.045"/><use xlink:href="#p" x="52.731" y="85.045"/><use xlink:href="#m" x="55.129" y="85.045"/><use xlink:href="#j" x="57.531" y="85.045"/><use xlink:href="#i" x="59.929" y="85.045"/><use xlink:href="#e" x="64.03" y="85.045"/><use xlink:href="#m" x="66.428" y="85.045"/><use xlink:href="#q" x="70.534" y="85.045"/><use xlink:href="#e" x="72.932" y="85.045"/><use xlink:href="#r" x="75.33" y="85.045"/><use xlink:href="#m" x="19.842" y="89.827"/><use xlink:href="#j" x="22.24" y="89.827"/><use xlink:href="#i" x="24.638" y="89.827"/><use xlink:href="#e" x="30.74" y="89.827"/><use xlink:href="#m" x="33.138" y="89.827"/><use xlink:href="#f" x="39.24" y="89.827"/><use xlink:href="#n" x="41.638" y="89.827"/><use xlink:href="#l" x="44.04" y="89.827"/><use xlink:href="#e" x="46.438" y="89.827"/><use xlink:href="#i" x="48.836" y="89.827"/><use xlink:href="#j" x="51.234" y="89.827"/><use xlink:href="#n" x="53.636" y="89.827"/><use xlink:href="#k" x="56.034" y="89.827"/><use xlink:href="#n" x="58.432" y="89.827"/><use xlink:href="#x" x="64.535" y="89.827"/><use xlink:href="#n" x="66.933" y="89.827"/><use xlink:href="#f" x="69.335" y="89.827"/><use xlink:href="#e" x="71.733" y="89.827"/><use xlink:href="#i" x="74.131" y="89.827"/><use xlink:href="#n" x="19.842" y="94.609"/><use xlink:href="#p" x="22.24" y="94.609"/><use xlink:href="#m" x="27.421" y="94.609"/><use xlink:href="#j" x="29.819" y="94.609"/><use xlink:href="#d" x="32.217" y="94.609"/><use xlink:href="#h" x="34.615" y="94.609"/><use xlink:href="#g" x="37.017" y="94.609"/><use xlink:href="#i" x="39.415" y="94.609"/><use xlink:href="#e" x="44.596" y="94.609"/><use xlink:href="#s" x="46.994" y="94.609"/><use xlink:href="#e" x="49.392" y="94.609"/><use xlink:href="#i" x="51.794" y="94.609"/><use xlink:href="#m" x="54.192" y="94.609"/><use xlink:href="#n" x="56.59" y="94.609"/><use xlink:href="#i" x="58.988" y="94.609"/><use xlink:href="#t" x="61.39" y="94.609"/><use xlink:href="#F" x="68.132" y="94.609"/><use xlink:href="#n" x="70.534" y="94.609"/><use xlink:href="#j" x="72.932" y="94.609"/><use xlink:href="#r" x="75.33" y="94.609"/><use xlink:href="#d" x="19.842" y="99.391"/><use xlink:href="#g" x="22.24" y="99.391"/><use xlink:href="#i" x="24.638" y="99.391"/><use xlink:href="#j" x="28.93" y="99.391"/><use xlink:href="#m" x="31.328" y="99.391"/><use xlink:href="#l" x="35.62" y="99.391"/><use xlink:href="#e" x="38.022" y="99.391"/><use xlink:href="#c" x="40.42" y="99.391"/><use xlink:href="#t" x="42.818" y="99.391"/><use xlink:href="#y" x="48.249" y="99.391"/><use xlink:href="#d" x="50.647" y="99.391"/><use xlink:href="#n" x="53.045" y="99.391"/><use xlink:href="#i" x="55.447" y="99.391"/><use xlink:href="#v" x="59.739" y="99.391"/><use xlink:href="#g" x="62.137" y="99.391"/><use xlink:href="#v" x="64.535" y="99.391"/><use xlink:href="#e" x="66.933" y="99.391"/><use xlink:href="#d" x="69.335" y="99.391"/><use xlink:href="#d" x="71.733" y="99.391"/><use xlink:href="#n" x="74.131" y="99.391"/><use xlink:href="#f" x="19.842" y="104.173"/><use xlink:href="#e" x="22.24" y="104.173"/><use xlink:href="#m" x="24.638" y="104.173"/><use xlink:href="#j" x="27.036" y="104.173"/><use xlink:href="#i" x="29.438" y="104.173"/><use xlink:href="#d" x="33.511" y="104.173"/><use xlink:href="#C" x="35.909" y="104.173"/><use xlink:href="#c" x="38.311" y="104.173"/><use xlink:href="#q" x="40.709" y="104.173"/><use xlink:href="#p" x="43.107" y="104.173"/><use xlink:href="#j" x="45.505" y="104.173"/><use xlink:href="#i" x="47.907" y="104.173"/><use xlink:href="#i" x="51.981" y="104.173"/><use xlink:href="#e" x="54.379" y="104.173"/><use xlink:href="#f" x="56.781" y="104.173"/><use xlink:href="#t" x="59.179" y="104.173"/><use xlink:href="#z" x="64.535" y="104.173"/><use xlink:href="#j" x="66.933" y="104.173"/><use xlink:href="#l" x="69.335" y="104.173"/><use xlink:href="#l" x="71.733" y="104.173"/><use xlink:href="#n" x="74.131" y="104.173"/><use xlink:href="#e" x="90.709" y="22.877"/><use xlink:href="#m" x="93.107" y="22.877"/><use xlink:href="#l" x="102.258" y="22.877"/><use xlink:href="#e" x="104.656" y="22.877"/><use xlink:href="#p" x="107.058" y="22.877"/><use xlink:href="#m" x="109.456" y="22.877"/><use xlink:href="#j" x="111.854" y="22.877"/><use xlink:href="#i" x="114.252" y="22.877"/><use xlink:href="#v" x="123.408" y="22.877"/><use xlink:href="#e" x="125.806" y="22.877"/><use xlink:href="#i" x="128.204" y="22.877"/><use xlink:href="#m" x="130.602" y="22.877"/><use xlink:href="#g" x="133.004" y="22.877"/><use xlink:href="#w" x="135.402" y="22.877"/><use xlink:href="#j" x="137.8" y="22.877"/><use xlink:href="#l" x="140.198" y="22.877"/><use xlink:href="#j" x="142.6" y="22.877"/><use xlink:href="#f" x="144.998" y="22.877"/><use xlink:href="#j" x="90.709" y="27.659"/><use xlink:href="#d" x="93.107" y="27.659"/><use xlink:href="#q" x="95.505" y="27.659"/><use xlink:href="#n" x="97.903" y="27.659"/><use xlink:href="#x" x="103.096" y="27.659"/><use xlink:href="#d" x="105.494" y="27.659"/><use xlink:href="#g" x="107.896" y="27.659"/><use xlink:href="#q" x="110.294" y="27.659"/><use xlink:href="#s" x="112.692" y="27.659"/><use xlink:href="#g" x="115.094" y="27.659"/><use xlink:href="#l" x="117.492" y="27.659"/><use xlink:href="#l" x="119.89" y="27.659"/><use xlink:href="#n" x="122.288" y="27.659"/><use xlink:href="#j" x="127.481" y="27.659"/><use xlink:href="#l" x="129.883" y="27.659"/><use xlink:href="#m" x="132.281" y="27.659"/><use xlink:href="#d" x="134.679" y="27.659"/><use xlink:href="#g" x="137.077" y="27.659"/><use xlink:href="#p" x="139.479" y="27.659"/><use xlink:href="#e" x="141.877" y="27.659"/><use xlink:href="#i" x="144.275" y="27.659"/><use xlink:href="#t" x="146.673" y="27.659"/><use xlink:href="#E" x="90.709" y="32.441"/><use xlink:href="#C" x="93.107" y="32.441"/><use xlink:href="#n" x="95.505" y="32.441"/><use xlink:href="#i" x="97.903" y="32.441"/><use xlink:href="#e" x="100.301" y="32.441"/><use xlink:href="#l" x="102.703" y="32.441"/><use xlink:href="#l" x="105.101" y="32.441"/><use xlink:href="#j" x="107.499" y="32.441"/><use xlink:href="#i" x="109.897" y="32.441"/><use xlink:href="#e" x="115.201" y="32.441"/><use xlink:href="#j" x="117.599" y="32.441"/><use xlink:href="#m" x="122.903" y="32.441"/><use xlink:href="#e" x="125.301" y="32.441"/><use xlink:href="#l" x="127.699" y="32.441"/><use xlink:href="#l" x="130.097" y="32.441"/><use xlink:href="#j" x="132.499" y="32.441"/><use xlink:href="#i" x="134.897" y="32.441"/><use xlink:href="#i" x="140.198" y="32.441"/><use xlink:href="#g" x="142.6" y="32.441"/><use xlink:href="#m" x="144.998" y="32.441"/><use xlink:href="#n" x="90.709" y="37.223"/><use xlink:href="#f" x="93.107" y="37.223"/><use xlink:href="#e" x="95.505" y="37.223"/><use xlink:href="#m" x="97.903" y="37.223"/><use xlink:href="#m" x="102.004" y="37.223"/><use xlink:href="#c" x="104.406" y="37.223"/><use xlink:href="#d" x="106.804" y="37.223"/><use xlink:href="#m" x="109.202" y="37.223"/><use xlink:href="#c" x="111.604" y="37.223"/><use xlink:href="#d" x="114.002" y="37.223"/><use xlink:href="#s" x="118.103" y="37.223"/><use xlink:href="#d" x="120.501" y="37.223"/><use xlink:href="#n" x="122.903" y="37.223"/><use xlink:href="#v" x="125.301" y="37.223"/><use xlink:href="#g" x="127.699" y="37.223"/><use xlink:href="#k" x="130.097" y="37.223"/><use xlink:href="#n" x="132.499" y="37.223"/><use xlink:href="#h" x="136.601" y="37.223"/><use xlink:href="#l" x="138.999" y="37.223"/><use xlink:href="#n" x="141.397" y="37.223"/><use xlink:href="#p" x="143.799" y="37.223"/><use xlink:href="#r" x="146.197" y="37.223"/><use xlink:href="#e" x="90.709" y="42.005"/><use xlink:href="#d" x="93.107" y="42.005"/><use xlink:href="#n" x="95.505" y="42.005"/><use xlink:href="#m" x="97.903" y="42.005"/><use xlink:href="#t" x="100.301" y="42.005"/><path fill="none" stroke="#00E500" stroke-miterlimit="10" stroke-opacity=".2" stroke-width="14.173" d="M83.625 19.836v85.043"/><path fill="none" stroke="#00E500" stroke-miterlimit="10" stroke-opacity=".8" stroke-width=".567" d="M19.844 19.836v85.043h127.558V19.836Zm0 0"/><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M-2.836 119.05h5.672"/><g clip-path="url(#G)"><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M5.668 127.555v-5.668"/></g><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M-2.836 5.664h5.672M5.668-2.84v5.668"/><g clip-path="url(#H)"><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M170.082 119.05h-5.672"/></g><g clip-path="url(#I)"><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M161.578 127.555v-5.668"/></g><g clip-path="url(#J)"><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M170.082 5.664h-5.672"/></g><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M161.578-2.84v5.668"/></svg> \ No newline at end of file
diff --git a/macros/latex/contrib/pagelayout/doc/quickstart-2.svg b/macros/latex/contrib/pagelayout/doc/quickstart-2.svg
index 6f865a348a..68823636c4 100644
--- a/macros/latex/contrib/pagelayout/doc/quickstart-2.svg
+++ b/macros/latex/contrib/pagelayout/doc/quickstart-2.svg
@@ -1 +1 @@
-<svg width="320" height="239" viewBox="0 0 240 179.25" version="1.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><defs><symbol overflow="visible" id="a"><path style="stroke:none" d="M2.078-2.875h3.64v-10.688l-3.39.844v-2.937l3.406-.813h3.141v13.594h3.64V0H2.079zm0 0"/></symbol></defs><path style="fill:#fff;stroke-width:1.43381" d="M4.065.004h231.869a4.056 4.056 0 0 1 4.065 4.065v170.906a4.056 4.056 0 0 1-4.065 4.064H4.064A4.056 4.056 0 0 1 0 174.975V4.07A4.056 4.056 0 0 1 4.065.004Z"/><path style="fill:#a6a6a6;fill-opacity:.2;stroke-width:1.43381" d="M0 179.037v-.203h239.999v.203zm0-4.06v-.204h239.999v.204zm0-4.066v-.204h239.999v.204zm0-4.068v-.2h239.999v.2zm0-4.058v-.205h239.999v.204zm0-4.066v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.061v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.067v-.205h239.999v.205zm0-4.06v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.067v-.205h239.999v.205zm0-4.06V126h239.999v.205zm0-4.067v-.205h239.999v.205zm0-4.069v-.2h239.999v.2zm0-4.06v-.201h239.999v.2zm0-4.067v-.2h239.999v.2zm0-4.066v-.2h239.999v.2zm0-4.058v-.205h239.999v.205zm0-4.069v-.2h239.999v.2zm0-4.066v-.2h239.999v.2zm0-4.066v-.201h239.999v.2zm0-4.058v-.204h239.999v.204zm0-4.07v-.2h239.999v.2zm0-4.063v-.2h239.999v.2zm0-4.06v-.204h239.999v.204ZM0 69.3v-.204h239.999v.204zm0-4.067v-.203h239.999v.203zm0-4.06v-.204h239.999v.204zm0-4.067v-.203h239.999v.203zm0-4.066v-.204h239.999v.204zm0-4.06v-.204h239.999v.204zm0-4.067v-.203h239.999v.203zm0-4.066v-.204h239.999v.204zm0-4.06v-.204h239.999v.203zm0-4.066v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.06v-.205h239.999v.205zm0-4.067v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.06v-.206h239.999v.205zm0-4.067V8.13h239.999v.205zM0 4.27v-.205h239.999v.205zM0 .21V.003h239.999V.21z"/><path style="fill:#a6a6a6;fill-opacity:.2;stroke-width:1.43381" d="M0 179.035V0h.2v179.033zm4.065 0V0h.2v179.033zm4.06 0V0h.2v179.033zm4.065 0V0h.202v179.033zm4.066 0V0h.202v179.033zm4.06 0V0h.203v179.033zm4.067 0V0h.202v179.033zm4.066 0V0h.203v179.033zm4.061 0V0h.202v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.205v179.033zm4.06 0V0h.2v179.033zm4.066 0V0h.205v179.033zm4.067 0V0h.205v179.033zm4.06 0V0h.205v179.033zm4.067 0V0h.205v179.033zm4.066 0V0h.2v179.033zm4.06 0V0h.208v179.033h-.2Zm4.067 0V0h.2v179.033zm4.066 0V0h.2v179.033zm4.06 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.066 0V0h.2v179.033zm4.066 0V0h.201v179.033zm4.061 0V0h.2v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.06 0V0h.204v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.06 0V0h.201v179.033zm4.067 0V0h.203v179.033zm4.066 0V0h.2v179.033zm4.06 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.065 0V0h.202v179.033zm4.057 0V0h.205v179.033zm4.07 0V0h.202v179.033zm4.066 0V0h.202v179.033zm4.06 0V0h.203v179.033zm4.064 0V0h.205v179.033zm4.069 0V0h.205v179.033zm4.06 0V0h.201v179.033zm4.067 0V0h.205v179.033zm4.063 0V0h.205v179.033zm4.064 0V0h.205v179.033zm4.066 0V0h.205v179.033zm4.066 0V0h.201v179.033zm4.06 0V0h.202v179.033zm4.067 0V0h.205v179.033zm4.066 0V0h.201v179.033zm4.061 0V0h.2v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.06 0V0h.2v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.06 0V0h.208v179.033h-.2zm4.067 0V0h.2v179.033zm4.066 0V0h.2v179.033z"/><path style="fill:#000;stroke-width:1.43381" d="M7.94.004v4.163h.57V.004zm223.546 0v4.163h.572V.004ZM0 7.946v.57h4.164v-.568H0Zm235.833 0v.57H240v-.568h-4.167zM0 170.525v.57h4.164v-.572H0Zm235.833 0v.57H240v-.572h-4.168zm-227.896 4.35v4.164h.571v-4.164zm223.546 0v4.164h.572v-4.164h-.57z"/><path style="fill:#a6a6a6;fill-opacity:.2;stroke-width:1.43381" d="M0 170.91v-.203h239.999v.204zm0-20.318v-.205h239.999v.205zm0-20.326v-.205h239.999v.205zm0-20.323v-.2h239.999v.2zm0-20.325v-.201h239.999v.2zM0 69.3v-.204h239.999v.204zm0-20.32v-.204h239.999v.204zm0-20.325v-.205h239.999v.205zm0-20.32V8.13h239.999v.205z"/><path style="fill:#a6a6a6;fill-opacity:.2;stroke-width:1.43381" d="M8.125 179.035V0h.2v179.033zm20.324 0V0h.203v179.033zm20.32 0V0h.205v179.033zm20.32 0V0h.208v179.033h-.2Zm20.326 0V0h.2v179.033zm20.32 0V0h.204v179.033zm20.326 0V0h.2v179.033zm20.318 0V0h.203v179.033zm20.32 0V0h.201v179.033zm20.326 0V0h.201v179.033zm20.32 0V0h.201v179.033zm20.32 0V0h.208v179.033h-.2z"/><path style="fill:#b3e6fa;fill-opacity:.3;fill-rule:nonzero;stroke:#66ccf5;stroke-width:.28346;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:.3" d="M.002 0v45.355h68.031V0Zm0 0" transform="matrix(1.43382 0 0 -1.43382 28.552 122.026)"/><use xlink:href="#a" x="47.032" y="70.624" width="100%" height="100%" style="fill:#66ccf5;fill-opacity:.3" transform="translate(.102 .102) scale(1.43382)"/><path style="fill:none;stroke:#00e300;stroke-width:14.1734;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:.2" d="M94.96 85.04V39.685" transform="matrix(1.43382 0 0 -1.43382 .102 178.927)"/><path style="fill:none;stroke:#00e300;stroke-width:.56693;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:.8" d="M19.844 85.04V39.685h127.558V85.04zm0 0" transform="matrix(1.43382 0 0 -1.43382 .102 178.927)"/><path style="fill:none;stroke:#00e300;stroke-width:.56693;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:2.83466,2.83466;stroke-opacity:.8" d="M19.844 85.04v19.844h127.558V85.04M19.844 39.685V19.84h127.558v19.844" transform="matrix(1.43382 0 0 -1.43382 .102 178.927)"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="320" height="239" viewBox="0 0 167.24 124.72"><defs><clipPath id="a"><path d="M0 0h167.238v124.719H0Zm0 0"/></clipPath><clipPath id="d"><path d="M5 121h1v3.719H5Zm0 0"/></clipPath><clipPath id="e"><path d="M164 118h3.238v2H164Zm0 0"/></clipPath><clipPath id="f"><path d="M161 121h1v3.719h-1Zm0 0"/></clipPath><clipPath id="g"><path d="M164 5h3.238v1H164Zm0 0"/></clipPath><path id="b" d="M2.078-2.875h3.64v-10.687l-3.39.843v-2.937l3.406-.813h3.141v13.594h3.64V0H2.079Zm0 0"/><path id="c" d="M4.781-2.875h6.953V0H1.266v-2.781L3.03-4.656q3.14-3.341 3.813-4.11.825-.949 1.187-1.687.375-.733.375-1.453-.002-1.09-.672-1.688c-.437-.406-1.07-.61-1.89-.61-.586 0-1.242.118-1.969.345q-1.078.344-2.25 1v-3.032a16 16 0 0 1 2.297-.64 10.8 10.8 0 0 1 2.172-.235c1.75 0 3.117.407 4.11 1.22q1.5 1.218 1.5 3.327a5.1 5.1 0 0 1-.329 1.828q-.33.845-1.11 1.875-.595.75-3.218 3.375zm0 0"/></defs><g clip-path="url(#a)"><path fill="#FFF" d="M0 121.887V2.828A2.836 2.836 0 0 1 2.836-.008H164.41a2.836 2.836 0 0 1 2.836 2.836v119.059a2.835 2.835 0 0 1-2.836 2.832H2.836A2.835 2.835 0 0 1 0 121.887m0 0"/><path fill="none" stroke="#A6A6A6" stroke-linecap="square" stroke-miterlimit="10" stroke-opacity=".2" stroke-width=".142" d="M-8.504 133.223h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75M-8.504 82.2h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.835h175.75M-8.504 51.02h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75M-8.504 39.68h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75M-8.504 28.34h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75M-8.504 8.5h175.75M-8.504 5.664h175.75M-8.504 2.828h175.75M-8.504-.004h175.75M-8.504 133.223V-.007m2.836 133.23V-.007m2.832 133.23V-.007M0 133.222V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.835 133.23V-.007m2.833 133.23V-.007m2.835 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.835 133.23V-.007m2.833 133.23V-.007m2.835 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007M-8.504 133.223h175.75M-8.504 119.05h175.75m-175.75-14.172h175.75M-8.504 90.703h175.75M-8.504 76.531h175.75M-8.504 62.355h175.75M-8.504 48.184h175.75M-8.504 34.012h175.75M-8.504 19.836h175.75M-8.504 5.664h175.75M-8.504 133.223V-.007m14.172 133.23V-.007m14.176 133.23V-.007m14.172 133.23V-.007m14.175 133.23V-.007m14.172 133.23V-.007m14.172 133.23V-.007m14.176 133.23V-.007m14.172 133.23V-.007m14.172 133.23V-.007m14.175 133.23V-.007m14.172 133.23V-.007m14.176 133.23V-.007"/></g><path fill="#B3E6FA" fill-opacity=".3" stroke="#66CEF5" stroke-miterlimit="10" stroke-opacity=".3" stroke-width=".283" d="M19.844 85.035V39.68h68.031v45.355Zm0 0"/><use xlink:href="#b" x="47.032" y="70.624" fill="#66CEF5" fill-opacity=".3"/><path fill="#B3E6FA" fill-opacity=".3" stroke="#66CEF5" stroke-miterlimit="10" stroke-opacity=".3" stroke-width=".283" d="M102.047 85.035V39.68h45.355v45.355Zm0 0"/><use xlink:href="#c" x="117.898" y="70.773" fill="#66CEF5" fill-opacity=".3"/><path fill="none" stroke="#00E500" stroke-miterlimit="10" stroke-opacity=".2" stroke-width="14.173" d="M94.96 39.68v45.355"/><path fill="none" stroke="#00E500" stroke-miterlimit="10" stroke-opacity=".8" stroke-width=".567" d="M19.844 39.68v45.355h127.558V39.68Zm0 0"/><path fill="none" stroke="#00E500" stroke-dasharray="2.83466 2.83466" stroke-miterlimit="10" stroke-opacity=".8" stroke-width=".567" d="M19.844 39.68V19.836h127.558V39.68M19.844 85.035v19.844h127.558V85.035"/><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M-2.836 119.05h5.672"/><g clip-path="url(#d)"><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M5.668 127.555v-5.668"/></g><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M-2.836 5.664h5.672M5.668-2.84v5.668"/><g clip-path="url(#e)"><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M170.082 119.05h-5.672"/></g><g clip-path="url(#f)"><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M161.578 127.555v-5.668"/></g><g clip-path="url(#g)"><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M170.082 5.664h-5.672"/></g><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M161.578-2.84v5.668"/></svg> \ No newline at end of file
diff --git a/macros/latex/contrib/pagelayout/doc/quickstart-3.svg b/macros/latex/contrib/pagelayout/doc/quickstart-3.svg
index 15bf2ea4b6..ee995fbe40 100644
--- a/macros/latex/contrib/pagelayout/doc/quickstart-3.svg
+++ b/macros/latex/contrib/pagelayout/doc/quickstart-3.svg
@@ -1 +1 @@
-<svg width="320" height="239" viewBox="0 0 240 179.25" version="1.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><defs><symbol overflow="visible" id="k"><path style="stroke:none" d="M1.328-.797H3.25V0H.344v-.766l.5-.515c.57-.625.922-1.004 1.047-1.14.156-.177.265-.333.328-.47.07-.132.11-.27.11-.406a.612.612 0 0 0-.188-.469c-.125-.113-.297-.171-.516-.171-.168 0-.352.039-.547.109-.2.062-.406.152-.625.265v-.828a4.25 4.25 0 0 1 .64-.187c.208-.04.407-.063.595-.063.476 0 .851.118 1.125.344.28.219.421.527.421.922 0 .18-.03.344-.093.5a1.891 1.891 0 0 1-.297.516c-.117.136-.414.449-.89.937l-.626.625zm0 0"/></symbol><symbol overflow="visible" id="l"><path style="stroke:none" d="M.406-4.563h2.89v.641L1.75 0H.828l1.485-3.766H.405Zm0 0"/></symbol><symbol overflow="visible" id="m"><path style="stroke:none" d="M.578-.797h1V-3.75l-.937.234v-.812l.953-.234h.86v3.765h1.015V0H.579Zm0 0"/></symbol><symbol overflow="visible" id="n"><path style="stroke:none" d="M1.344-.484v1.78h-.89v-4.718h.89v.516A.994.994 0 0 1 2.25-3.5c.395 0 .695.156.906.469.219.312.328.758.328 1.328 0 .574-.109 1.016-.328 1.328-.219.313-.531.469-.937.469a.868.868 0 0 1-.485-.14 1.386 1.386 0 0 1-.39-.438zm1.25-1.235c0-.32-.059-.578-.172-.765-.106-.188-.258-.282-.453-.282-.188 0-.34.094-.453.282-.118.187-.172.445-.172.765 0 .336.054.594.172.782.113.187.265.28.453.28.195 0 .347-.093.453-.28.113-.188.172-.446.172-.782Zm0 0"/></symbol><symbol overflow="visible" id="o"><path style="stroke:none" d="M.672-3.422h1.765v2.735h1.126V0H.437v-.688h1.11v-2.046H.672zm.875-1.656h.89v1.047h-.89Zm0 0"/></symbol><clipPath id="g"><path d="M0 0h167.238v124.719H0Zm0 0"/></clipPath><clipPath id="d"><path d="M26.762 5.477h113.742v113.742H26.762Zm0 0"/></clipPath><clipPath id="c"><path d="M0 0h168v125H0z"/></clipPath><image id="b" width="952" height="952" xlink:href="data:image/png;base64,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"/><image id="e" width="952" height="952" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA7gAAAO4CAIAAAB3W80MAAAABmJLR0QA/wD/AP+gvaeTAAAKYklEQVR4nO3BgQAAAADDoPlTn+AGVQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAN4LfAAHBu5hPAAAAAElFTkSuQmCC"/><image id="j" width="614" height="614" xlink:href="data:image/jpeg;base64,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"/><mask id="i"><g filter="url(#a)"><path style="fill:#000;fill-opacity:.4;stroke:none" d="M0 0h167.24v124.72H0z"/></g></mask><mask id="f"><use xlink:href="#b" width="100%" height="100%"/></mask><filter id="a" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1"><feColorMatrix in="SourceGraphic" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/></filter><g clip-path="url(#d)" id="h"><use xlink:href="#e" mask="url(#f)" transform="translate(26.764 5.479) scale(.11947)" width="100%" height="100%"/></g></defs><path style="fill:#fff;stroke-width:1.43381" d="M4.065.004h231.869a4.056 4.056 0 0 1 4.065 4.065v170.906a4.056 4.056 0 0 1-4.065 4.064H4.064A4.056 4.056 0 0 1 0 174.975V4.07A4.056 4.056 0 0 1 4.065.004Z"/><path style="fill:#a6a6a6;fill-opacity:.2;stroke-width:1.43381" d="M0 179.037v-.203h239.999v.203zm0-4.06v-.204h239.999v.204zm0-4.066v-.204h239.999v.204zm0-4.068v-.2h239.999v.2zm0-4.058v-.205h239.999v.204zm0-4.066v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.061v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.067v-.205h239.999v.205zm0-4.06v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.067v-.205h239.999v.205zm0-4.06V126h239.999v.205zm0-4.067v-.205h239.999v.205zm0-4.069v-.2h239.999v.2zm0-4.06v-.201h239.999v.2zm0-4.067v-.2h239.999v.2zm0-4.066v-.2h239.999v.2zm0-4.058v-.205h239.999v.205zm0-4.069v-.2h239.999v.2zm0-4.066v-.2h239.999v.2zm0-4.066v-.201h239.999v.2zm0-4.058v-.204h239.999v.204zm0-4.07v-.2h239.999v.2zm0-4.063v-.2h239.999v.2zm0-4.06v-.204h239.999v.204ZM0 69.3v-.204h239.999v.204zm0-4.067v-.203h239.999v.203zm0-4.06v-.204h239.999v.204zm0-4.067v-.203h239.999v.203zm0-4.066v-.204h239.999v.204zm0-4.06v-.204h239.999v.204zm0-4.067v-.203h239.999v.203zm0-4.066v-.204h239.999v.204zm0-4.06v-.204h239.999v.203zm0-4.066v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.06v-.205h239.999v.205zm0-4.067v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.06v-.206h239.999v.205zm0-4.067V8.13h239.999v.205zM0 4.27v-.205h239.999v.205zM0 .21V.003h239.999V.21z"/><path style="fill:#a6a6a6;fill-opacity:.2;stroke-width:1.43381" d="M0 179.035V0h.2v179.033zm4.065 0V0h.2v179.033zm4.06 0V0h.2v179.033zm4.065 0V0h.202v179.033zm4.066 0V0h.202v179.033zm4.06 0V0h.203v179.033zm4.067 0V0h.202v179.033zm4.066 0V0h.203v179.033zm4.061 0V0h.202v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.205v179.033zm4.06 0V0h.2v179.033zm4.066 0V0h.205v179.033zm4.067 0V0h.205v179.033zm4.06 0V0h.205v179.033zm4.067 0V0h.205v179.033zm4.066 0V0h.2v179.033zm4.06 0V0h.208v179.033h-.2Zm4.067 0V0h.2v179.033zm4.066 0V0h.2v179.033zm4.06 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.066 0V0h.2v179.033zm4.066 0V0h.201v179.033zm4.061 0V0h.2v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.06 0V0h.204v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.06 0V0h.201v179.033zm4.067 0V0h.203v179.033zm4.066 0V0h.2v179.033zm4.06 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.065 0V0h.202v179.033zm4.057 0V0h.205v179.033zm4.07 0V0h.202v179.033zm4.066 0V0h.202v179.033zm4.06 0V0h.203v179.033zm4.064 0V0h.205v179.033zm4.069 0V0h.205v179.033zm4.06 0V0h.201v179.033zm4.067 0V0h.205v179.033zm4.063 0V0h.205v179.033zm4.064 0V0h.205v179.033zm4.066 0V0h.205v179.033zm4.066 0V0h.201v179.033zm4.06 0V0h.202v179.033zm4.067 0V0h.205v179.033zm4.066 0V0h.201v179.033zm4.061 0V0h.2v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.06 0V0h.2v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.06 0V0h.208v179.033h-.2zm4.067 0V0h.2v179.033zm4.066 0V0h.2v179.033z"/><path style="fill:#000;stroke-width:1.43381" d="M7.94.004v4.163h.57V.004zm223.546 0v4.163h.572V.004ZM0 7.946v.57h4.164v-.568H0Zm235.833 0v.57H240v-.568h-4.167zM0 170.525v.57h4.164v-.572H0Zm235.833 0v.57H240v-.572h-4.168zm-227.896 4.35v4.164h.571v-4.164zm223.546 0v4.164h.572v-4.164h-.57z"/><path style="fill:#a6a6a6;fill-opacity:.2;stroke-width:1.43381" d="M0 170.91v-.203h239.999v.204zm0-20.318v-.205h239.999v.205zm0-20.326v-.205h239.999v.205zm0-20.323v-.2h239.999v.2zm0-20.325v-.201h239.999v.2zM0 69.3v-.204h239.999v.204zm0-20.32v-.204h239.999v.204zm0-20.325v-.205h239.999v.205zm0-20.32V8.13h239.999v.205z"/><path style="fill:#a6a6a6;fill-opacity:.2;stroke-width:1.43381" d="M8.125 179.035V0h.2v179.033zm20.324 0V0h.203v179.033zm20.32 0V0h.205v179.033zm20.32 0V0h.208v179.033h-.2Zm20.326 0V0h.2v179.033zm20.32 0V0h.204v179.033zm20.326 0V0h.2v179.033zm20.318 0V0h.203v179.033zm20.32 0V0h.201v179.033zm20.326 0V0h.201v179.033zm20.32 0V0h.201v179.033zm20.32 0V0h.208v179.033h-.2z"/><g transform="translate(.102 .102) scale(1.43382)"><g clip-path="url(#g)"><use xlink:href="#h" mask="url(#i)" width="100%" height="100%"/></g><path style="color:#000;fill:#fff;stroke-miterlimit:10;-inkscape-stroke:none" d="M-5.67-5.668v85.039h85.041V-5.668Z" transform="matrix(1 0 0 -1 46.772 99.209)"/><use xlink:href="#j" transform="translate(46.772 25.509) scale(.12003)" width="100%" height="100%"/><path style="fill:#fff000;fill-opacity:.9;fill-rule:nonzero;stroke:none" d="M93.617 36.102h26.856V25.508H93.617Zm0 0"/><use xlink:href="#k" x="95.707" y="32.703" width="100%" height="100%" style="fill:#000;fill-opacity:.9"/><use xlink:href="#l" x="99.484" y="32.703" width="100%" height="100%" style="fill:#000;fill-opacity:.9"/><use xlink:href="#m" x="103.261" y="32.703" width="100%" height="100%" style="fill:#000;fill-opacity:.9"/><use xlink:href="#n" x="107.037" y="32.703" width="100%" height="100%" style="fill:#000;fill-opacity:.9"/><use xlink:href="#n" x="110.82" y="32.703" width="100%" height="100%" style="fill:#000;fill-opacity:.9"/><use xlink:href="#o" x="114.597" y="32.703" width="100%" height="100%" style="fill:#000;fill-opacity:.9"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="320" height="239" viewBox="0 0 167.24 124.72"><defs><clipPath id="h"><path d="M0 0h167.238v124.719H0Zm0 0"/></clipPath><clipPath id="e"><path d="M4.457 24.29h98.809v76.128H4.457Zm0 0"/></clipPath><clipPath id="d"><path d="M0 0h168v125H0z"/></clipPath><clipPath id="k"><path d="M20 40h67.875v45H20Zm0 0"/></clipPath><clipPath id="s"><path d="M5 121h1v3.719H5Zm0 0"/></clipPath><clipPath id="t"><path d="M164 118h3.238v2H164Zm0 0"/></clipPath><clipPath id="u"><path d="M161 121h1v3.719h-1Zm0 0"/></clipPath><clipPath id="v"><path d="M164 5h3.238v1H164Zm0 0"/></clipPath><path id="m" d="M.844-.5h1.219V0H.218v-.484L.53-.812q.544-.593.672-.735.14-.152.203-.281a.56.56 0 0 0 .078-.266.38.38 0 0 0-.125-.297.5.5 0 0 0-.328-.109q-.156.002-.343.063a2.4 2.4 0 0 0-.407.187v-.547q.219-.06.407-.11a1.7 1.7 0 0 1 .39-.046q.45 0 .719.219a.74.74 0 0 1 .266.593c0 .106-.024.211-.063.313q-.064.158-.203.328-.094.142-.563.594-.25.253-.39.406m0 0"/><path id="n" d="M.266-2.89h1.828v.406L1.109 0H.531l.938-2.39H.266Zm0 0"/><path id="o" d="M.36-.5H1v-1.875l-.594.14v-.515L1-2.89h.563V-.5h.64V0H.36Zm0 0"/><path id="p" d="M.86-.312v1.14H.296v-3h.562v.328a.7.7 0 0 1 .235-.281.6.6 0 0 1 .343-.094c.239 0 .426.102.563.297q.218.299.219.844 0 .55-.219.844-.206.298-.594.297a.55.55 0 0 1-.312-.094.9.9 0 0 1-.235-.281m.78-.782a.94.94 0 0 0-.109-.484.3.3 0 0 0-.281-.172.34.34 0 0 0-.297.172q-.094.175-.094.484 0 .33.094.5c.07.117.172.172.297.172a.3.3 0 0 0 .281-.172c.07-.113.11-.281.11-.5m0 0"/><path id="q" d="M.422-2.172h1.125v1.735h.703V0H.281v-.437h.703v-1.297H.422Zm.562-1.047h.563v.656H.984Zm0 0"/><path id="r" d="M4.781-2.875h6.953V0H1.266v-2.781L3.03-4.656q3.14-3.341 3.813-4.11.825-.949 1.187-1.687.375-.733.375-1.453-.002-1.09-.672-1.688c-.437-.406-1.07-.61-1.89-.61-.586 0-1.242.118-1.969.345q-1.078.344-2.25 1v-3.032a16 16 0 0 1 2.297-.64 10.8 10.8 0 0 1 2.172-.235c1.75 0 3.117.407 4.11 1.22q1.5 1.218 1.5 3.327a5.1 5.1 0 0 1-.329 1.828q-.33.845-1.11 1.875-.595.75-3.218 3.375zm0 0"/><image xlink:href="data:image/png;base64,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" id="b" width="827" height="637" x="0" y="0"/><image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzsAAAJ9CAIAAACdO/u9AAAABmJLR0QA/wD/AP+gvaeTAAAGEklEQVR4nO3BMQEAAADCoPVP7WULoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbiFSAAEnwUMrAAAAAElFTkSuQmCC" id="g" width="827" height="637" x="0" y="0"/><image xlink:href="data:image/jpeg;base64,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" id="l" width="567" height="378" x="0" y="0"/><filter id="a" width="1" height="1" x="0" y="0"><feColorMatrix color-interpolation-filters="sRGB" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/></filter><filter id="c" width="1" height="1" x="0" y="0"><feColorMatrix color-interpolation-filters="sRGB" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0.2126 0.7152 0.0722 0 0"/></filter><mask id="i"><g filter="url(#a)"><path fill-opacity=".4" d="M-16.724-12.472h200.688v149.664H-16.724z"/></g></mask><mask id="f"><g filter="url(#a)"><use xlink:href="#b" filter="url(#c)" transform="matrix(.11948 0 0 .11951 4.457 24.29)"/></g></mask><g clip-path="url(#d)"><g id="j" clip-path="url(#e)" mask="url(#f)"><use xlink:href="#g" transform="matrix(.11948 0 0 .11951 4.457 24.29)"/></g></g></defs><g clip-path="url(#h)"><path fill="#FFF" d="M0 121.887V2.828A2.836 2.836 0 0 1 2.836-.008H164.41a2.836 2.836 0 0 1 2.836 2.836v119.059a2.835 2.835 0 0 1-2.836 2.832H2.836A2.835 2.835 0 0 1 0 121.887m0 0"/><path fill="none" stroke="#A6A6A6" stroke-linecap="square" stroke-miterlimit="10" stroke-opacity=".2" stroke-width=".142" d="M-8.504 133.223h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75M-8.504 82.2h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.835h175.75M-8.504 51.02h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75M-8.504 39.68h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75M-8.504 28.34h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75m-175.75-2.832h175.75m-175.75-2.836h175.75m-175.75-2.836h175.75M-8.504 8.5h175.75M-8.504 5.664h175.75M-8.504 2.828h175.75M-8.504-.004h175.75M-8.504 133.223V-.007m2.836 133.23V-.007m2.832 133.23V-.007M0 133.222V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.835 133.23V-.007m2.833 133.23V-.007m2.835 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.835 133.23V-.007m2.833 133.23V-.007m2.835 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007m2.832 133.23V-.007m2.836 133.23V-.007m2.836 133.23V-.007M-8.504 133.223h175.75M-8.504 119.05h175.75m-175.75-14.172h175.75M-8.504 90.703h175.75M-8.504 76.531h175.75M-8.504 62.355h175.75M-8.504 48.184h175.75M-8.504 34.012h175.75M-8.504 19.836h175.75M-8.504 5.664h175.75M-8.504 133.223V-.007m14.172 133.23V-.007m14.176 133.23V-.007m14.172 133.23V-.007m14.175 133.23V-.007m14.172 133.23V-.007m14.172 133.23V-.007m14.176 133.23V-.007m14.172 133.23V-.007m14.172 133.23V-.007m14.175 133.23V-.007m14.172 133.23V-.007m14.176 133.23V-.007"/><g mask="url(#i)"><use xlink:href="#j"/></g></g><path fill="none" stroke="#FFF" stroke-miterlimit="10" stroke-width="2.835" d="M18.426 86.453V38.262h70.867v48.191Zm0 0"/><g clip-path="url(#k)"><use xlink:href="#l" transform="matrix(.11998 0 0 .11998 19.842 39.68)"/></g><path fill="#FFF200" fill-opacity=".9" d="M70.82 46.406h17.055V39.68H70.82Zm0 0"/><use xlink:href="#m" x="72.15" y="44.249" fill-opacity=".9"/><use xlink:href="#n" x="74.548" y="44.249" fill-opacity=".9"/><use xlink:href="#o" x="76.946" y="44.249" fill-opacity=".9"/><use xlink:href="#p" x="79.344" y="44.249" fill-opacity=".9"/><use xlink:href="#p" x="81.746" y="44.249" fill-opacity=".9"/><use xlink:href="#q" x="84.144" y="44.249" fill-opacity=".9"/><path fill="#B3E6FA" fill-opacity=".3" stroke="#66CEF5" stroke-miterlimit="10" stroke-opacity=".3" stroke-width=".283" d="M102.047 85.035V39.68h45.355v45.355Zm0 0"/><use xlink:href="#r" x="117.898" y="70.773" fill="#66CEF5" fill-opacity=".3"/><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M-2.836 119.05h5.672"/><g clip-path="url(#s)"><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M5.668 127.555v-5.668"/></g><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M-2.836 5.664h5.672M5.668-2.84v5.668"/><g clip-path="url(#t)"><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M170.082 119.05h-5.672"/></g><g clip-path="url(#u)"><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M161.578 127.555v-5.668"/></g><g clip-path="url(#v)"><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M170.082 5.664h-5.672"/></g><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".399" d="M161.578-2.84v5.668"/></svg> \ No newline at end of file
diff --git a/macros/latex/contrib/pagelayout/doc/quickstart.pdf b/macros/latex/contrib/pagelayout/doc/quickstart.pdf
index 2af22e071a..6ae93506b1 100644
--- a/macros/latex/contrib/pagelayout/doc/quickstart.pdf
+++ b/macros/latex/contrib/pagelayout/doc/quickstart.pdf
Binary files differ
diff --git a/macros/latex/contrib/pagelayout/doc/quickstart.tex b/macros/latex/contrib/pagelayout/doc/quickstart.tex
index 3a503dd28d..f5c22be13b 100644
--- a/macros/latex/contrib/pagelayout/doc/quickstart.tex
+++ b/macros/latex/contrib/pagelayout/doc/quickstart.tex
@@ -1,5 +1,5 @@
%%
-%% Copyright (c) 2022-2023 by Friedemann Bartels
+%% Copyright (c) 2022-2024 by Friedemann Bartels
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -12,7 +12,7 @@
%% LaTeX version 2008/05/04 or later.
%%
-\documentclass[draft,graphpaper,preflight,optimize={density=600}]{pagelayout}
+\documentclass[draft,grid,graphpaper,preflight,optimize={density=600}]{pagelayout}
\usepackage{microtype}
\usepackage{fontspec}
@@ -23,36 +23,49 @@
\margin=5mm
\gutter=5mm
\bleed=2mm
+\setpagecolor{white}
\begin{document}
- \fontsize{6.3pt}{8.6pt}\selectfont
+ \fontsize{4pt}{4.8pt}\selectfont
- % generic template
- \template{ff}{
- \text{
- This text fills the first placeholder.
+ % page
+ \page{
+ \setgrid{
+ {{}{}}
+ }
+ \text[breakable]{
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+ Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis.
+ Curabitur dictum gravida mauris.
+ Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.
+ Donec vehicula augue eu neque.
+ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
+ Mauris ut leo. Cras viverra metus rhoncus sem.
+ Nulla et lectus vestibulum urna fringilla ultrices.
+ Phasellus eu tellus sit amet tortor gravida placerat.
}
+ \usetext
}
- % custom template
- \grid
+ % template
\newtemplate{my template}{
\setgrid{
{[2]{3!}{2!}}
}
\placeholder{0 0 1 1}
+ \placeholder{0 1 1 2}
}
\template{my template}{}
- \nogrid
- % graphics
- \newborder{my border}{width=2mm, color=white, radius=5mm}
- \newshadow{my shadow}{size=8}
- \template[margin=7mm]{s}{
+ % graphic
+ \nogrid
+ \newborder{my border}{width = 1mm, color = white, radius = 5mm}
+ \newshadow{my shadow}{size = 7}
+ \template{my template}{
\graphic[
scale=1.05,
hpos=0,
- vpos=0,
+ vpos=0.3,
shadow=my shadow,
border=my border,
border radius=0mm
diff --git a/macros/latex/contrib/pagelayout/scripts/pagelayoutapi b/macros/latex/contrib/pagelayout/scripts/pagelayoutapi
index 7533cf722e..be034baaa7 100755
--- a/macros/latex/contrib/pagelayout/scripts/pagelayoutapi
+++ b/macros/latex/contrib/pagelayout/scripts/pagelayoutapi
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2022-2023 by Friedemann Bartels
+# Copyright (c) 2022-2024 by Friedemann Bartels
#
# This file may be distributed and/or modified under the
# conditions of the LaTeX Project Public License, either
@@ -13,7 +13,7 @@
# LaTeX version 2008/05/04 or later.
#
-version=1.0.5
+version=1.1.0
_convert() {
turbo=$1
@@ -181,7 +181,7 @@ makeshadow() {
</filter>
</defs>
<rect
- style='filter:url(#blur);opacity:$opacity;fill:$fill'
+ style='filter:url(#blur);opacity:$opacity;fill:rgb($fill)'
width='$framewidth'
height='$frameheight'
x='$frameborder'
@@ -272,7 +272,11 @@ batchoptimize() {
[ ! -d cache ] && mkdir cache
length=$(( $# / 15 ))
- cores=$( nproc )
+ if command -v nproc >/dev/null 2>&1; then
+ cores=$( nproc )
+ else
+ cores=1
+ fi
[ $cores -gt $length ] && cores=$length
while [ $length -gt 0 ]; do
diff --git a/macros/latex/contrib/pagelayout/scripts/textestvis b/macros/latex/contrib/pagelayout/scripts/textestvis
index 53dcedddca..8ddcde77e1 100755
--- a/macros/latex/contrib/pagelayout/scripts/textestvis
+++ b/macros/latex/contrib/pagelayout/scripts/textestvis
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2022-2023 by Friedemann Bartels
+# Copyright (c) 2022-2024 by Friedemann Bartels
#
# This file may be distributed and/or modified under the
# conditions of the LaTeX Project Public License, either
@@ -13,7 +13,7 @@
# LaTeX version 2008/05/04 or later.
#
-version=1.0.5
+version=1.1.0
OK="$( tput setaf 2 )•$( tput sgr0 )"
FAILED="$( tput setaf 1 )$( tput bold )x$( tput sgr0 )"
diff --git a/macros/latex/contrib/pagelayout/tex/pagelayout.cls b/macros/latex/contrib/pagelayout/tex/pagelayout.cls
index fbc4a507ff..8e7d3616ae 100644
--- a/macros/latex/contrib/pagelayout/tex/pagelayout.cls
+++ b/macros/latex/contrib/pagelayout/tex/pagelayout.cls
@@ -1,5 +1,5 @@
%%
-%% Copyright (c) 2022-2023 by Friedemann Bartels
+%% Copyright (c) 2022-2024 by Friedemann Bartels
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -13,8 +13,8 @@
%%
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesClass{pagelayout}[2023/12/21 Layout graphic rich documents]
-\def\pagelayoutversion{1.0.5}
+\ProvidesClass{pagelayout}[2024/01/17 Layout graphic rich documents]
+\def\pagelayoutversion{1.1.0}
% packages
\RequirePackage{pgfopts}
@@ -85,7 +85,7 @@
\newdimen\pal@topsafetymargin\newdimen\pal@bottomsafetymargin\newdimen\pal@innersafetymargin\newdimen\pal@outersafetymargin
\newdimen\pal@topmargin\newdimen\pal@topmargintmp\newdimen\pal@innermargin\newdimen\pal@bottommargin\newdimen\pal@outermargin
\newdimen\pal@gutter
-\newdimen\pal@x\newdimen\pal@y\newdimen\pal@xx\newdimen\pal@yy\newdimen\width\newdimen\height\newdimen\x\newdimen\y
+\newdimen\pal@x\newdimen\pal@y\newdimen\pal@xx\newdimen\pal@yy\newdimen\pal@yytmp\newdimen\width\newdimen\height\newdimen\x\newdimen\y
\newdimen\pal@gridoffsethorizontal\newdimen\pal@gridoffsetvertical\newdimen\pal@gridoffsethorizontaln\newdimen\pal@gridoffsetverticaln
\newdimen\pal@graphpaperx\newdimen\pal@graphpapery\newdimen\pal@graphpaperoffset\newdimen\pal@graphpapersnap
@@ -868,13 +868,18 @@
% graphic
\newif\ifpal@isvisible
\newif\ifpal@calculatecrop
+\newif\ifpal@trimnext
+\newif\ifpal@hflip
+\newif\ifpal@vflip
+\newif\ifpal@graphicoptionhflip
+\newif\ifpal@graphicoptionvflip
\newdimen\pal@originalgraphicwidth\newdimen\pal@originalgraphicheight
\newdimen\pal@cropx\newdimen\pal@cropy
\newdimen\pal@cropleft\newdimen\pal@cropright
\newdimen\pal@cropbottom\newdimen\pal@croptop
\newdimen\pal@cropstart\newdimen\pal@cropend
\newdimen\pal@snapleft\newdimen\pal@snapright
-\newdimen\pal@snapbottom\newdimen\pal@snaptop
+\newdimen\pal@snapbottom\newdimen\pal@snaptop\newdimen\pal@dimentmp
\newdimen\pal@viewportwidth\newdimen\pal@viewportheight
\newdimen\pal@frameborderwidth
\newdimen\pal@frameborderradius
@@ -1000,6 +1005,9 @@
/graphic,
file/.store in=\pal@graphicoptionfile,
scale/.store in=\pal@graphicoptionscale,
+ orientation/.store in=\pal@graphicoptionorientation,
+ hflip/.is if=pal@graphicoptionhflip,
+ vflip/.is if=pal@graphicoptionvflip,
vpos/.store in=\pal@graphicoptionvpos,
hpos/.store in=\pal@graphicoptionhpos,
unsharp/.store in=\pal@graphicoptionunsharp,
@@ -1259,16 +1267,31 @@
\def\newgraphic#1#2{
\expandafter\newcommand\csname pal@graphic@#1\endcsname[2][0]{%
\ifnum##1=0
- \pgfkeys{pagegraphic,file={#1},scale=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,#2,##2}
+ \pgfkeys{pagegraphic,file={#1},scale=1,orientation=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,#2,##2}
\else
\ifnum##1=1
- \pgfkeys{backcoverpagegraphic,file={#1},scale=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,#2}
+ \pgfkeys{backcoverpagegraphic,file={#1},scale=1,orientation=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,#2}
\else
- \pgfkeys{graphic,file={#1},scale=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,#2,##2}
+ \pgfkeys{graphic,file={#1},scale=1,orientation=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,#2,##2}
\fi
\fi
}%
}
+\def\togglesnapv{
+ \pal@dimentmp=\pal@snaptop
+ \pal@snaptop=\pal@snapbottom
+ \pal@snapbottom=\pal@dimentmp
+}
+\def\togglesnaph{
+ \pal@dimentmp=\pal@snapleft
+ \pal@snapleft=\pal@snapright
+ \pal@snapright=\pal@dimentmp
+}
+\def\togglepos{
+ \xdef\pal@tmp{\pal@graphicoptionhpos}
+ \xdef\pal@graphicoptionhpos{\pal@graphicoptionvpos}
+ \xdef\pal@graphicoptionvpos{\pal@tmp}
+}
\newcommand\pal@putgraphic[6][]{
\pal@x=\posx{1}{#2}{1}{#3}
\pal@yy=\posy{1}{#2}
@@ -1298,13 +1321,156 @@
\pal@snapbleedbottom=\pal@null
\begingroup
- \xdef\pal@filename{#6-\pal@density-\pal@graphicoptionscale-\pal@graphicoptionhpos-\pal@graphicoptionvpos-\the\numexpr\pal@snaptop\relax-\the\numexpr\pal@snapright\relax-\the\numexpr\pal@snapbottom\relax-\the\numexpr\pal@snapleft\relax-\the\numexpr\width\relax-\the\numexpr\height\relax-\pal@downsamplethreshold-\pal@graphicoptionunsharp-\pal@quality}
+ \pal@hflipfalse
+ \pal@vflipfalse
+
+ \ifnum\pal@graphicoptionorientation=1
+ \def\pal@angle{0}
+ \ifpal@graphicoptionhflip
+ \pal@hfliptrue
+ \togglesnaph
+ \fi
+ \ifpal@graphicoptionvflip
+ \pal@vfliptrue
+ \togglesnapv
+ \fi
+ \pgfmathqparse{1pt-\pal@graphicoptionvpos pt}
+ \edef\pal@graphicoptionvpos{\pgfmathresult}
+ \else
+ \ifnum\pal@graphicoptionorientation=2
+ \def\pal@angle{0}
+ \ifpal@graphicoptionhflip
+ \else
+ \pal@hfliptrue
+ \togglesnaph
+ \fi
+ \ifpal@graphicoptionvflip
+ \pal@vfliptrue
+ \togglesnapv
+ \fi
+ \pgfmathqparse{1pt-\pal@graphicoptionvpos pt}
+ \edef\pal@graphicoptionvpos{\pgfmathresult}
+ \pgfmathqparse{1pt-\pal@graphicoptionhpos pt}
+ \edef\pal@graphicoptionhpos{\pgfmathresult}
+ \else
+ \ifnum\pal@graphicoptionorientation=3
+ \def\pal@angle{180}
+ \ifpal@graphicoptionhflip
+ \pal@hfliptrue
+ \else
+ \togglesnaph
+ \fi
+ \ifpal@graphicoptionvflip
+ \pal@vfliptrue
+ \else
+ \togglesnapv
+ \fi
+ \pgfmathqparse{1pt-\pal@graphicoptionhpos pt}
+ \edef\pal@graphicoptionhpos{\pgfmathresult}
+ \else
+ \ifnum\pal@graphicoptionorientation=4
+ \def\pal@angle{180}
+ \ifpal@graphicoptionhflip
+ \togglesnaph
+ \else
+ \pal@hfliptrue
+ \fi
+ \ifpal@graphicoptionvflip
+ \pal@vfliptrue
+ \else
+ \togglesnapv
+ \fi
+ \else
+ \ifnum\pal@graphicoptionorientation=5
+ \def\pal@angle{270}
+ \ifpal@graphicoptionhflip
+ \pal@hfliptrue
+ \else
+ \togglesnaph
+ \fi
+ \ifpal@graphicoptionvflip
+ \togglesnapv
+ \else
+ \pal@vfliptrue
+ \fi
+ \togglepos
+ \pgfmathqparse{1pt-\pal@graphicoptionvpos pt}
+ \edef\pal@graphicoptionvpos{\pgfmathresult}
+ \pgfmathqparse{1pt-\pal@graphicoptionhpos pt}
+ \edef\pal@graphicoptionhpos{\pgfmathresult}
+ \else
+ \ifnum\pal@graphicoptionorientation=6
+ \def\pal@angle{270}
+ \ifpal@graphicoptionhflip
+ \pal@hfliptrue
+ \else
+ \togglesnaph
+ \fi
+ \ifpal@graphicoptionvflip
+ \pal@vfliptrue
+ \else
+ \togglesnapv
+ \fi
+ \togglepos
+ \pgfmathqparse{1pt-\pal@graphicoptionhpos pt}
+ \edef\pal@graphicoptionhpos{\pgfmathresult}
+ \else
+ \def\pal@angle{90}
+ \ifpal@graphicoptionhflip
+ \pal@hfliptrue
+ \togglesnaph
+ \fi
+ \ifnum\pal@graphicoptionorientation=7
+ \ifpal@graphicoptionvflip
+ \else
+ \pal@vfliptrue
+ \togglesnapv
+ \fi
+ \togglepos
+ \else
+ \ifpal@graphicoptionvflip
+ \pal@vfliptrue
+ \togglesnapv
+ \fi
+ \togglepos
+ \pgfmathqparse{1pt-\pal@graphicoptionvpos pt}
+ \edef\pal@graphicoptionvpos{\pgfmathresult}
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+
+ \ifnum\pal@graphicoptionorientation<5
+ \xdef\pal@filename{#6-\pal@density-\pal@graphicoptionscale-\pal@graphicoptionhpos-\pal@graphicoptionvpos-\the\numexpr\pal@snaptop\relax-\the\numexpr\pal@snapright\relax-\the\numexpr\pal@snapbottom\relax-\the\numexpr\pal@snapleft\relax-\the\numexpr\width\relax-\the\numexpr\height\relax-\pal@downsamplethreshold-\pal@graphicoptionunsharp-\pal@quality}
+ \else
+ \xdef\pal@filename{#6-\pal@density-\pal@graphicoptionscale-\pal@graphicoptionhpos-\pal@graphicoptionvpos-\the\numexpr\pal@snapleft\relax-\the\numexpr\pal@snaptop\relax-\the\numexpr\pal@snapright\relax-\the\numexpr\pal@snapbottom\relax-\the\numexpr\height\relax-\the\numexpr\width\relax-\pal@downsamplethreshold-\pal@graphicoptionunsharp-\pal@quality}
+ \fi
+
\ifpal@optimize
\IfFileExists{./cache/\pal@filename/g.jpg}{
- \def\pal@nextincludegraphic{\includegraphics[width=\width]{cache/\pal@filename/g.jpg}}
+ \ifnum\pal@graphicoptionorientation<3
+ \def\pal@nextincludegraphic{\includegraphics[width=\width]{cache/\pal@filename/g.jpg}}
+ \else
+ \ifnum\pal@graphicoptionorientation<5
+ \def\pal@nextincludegraphic{\includegraphics[width=\width,angle=\pal@angle]{cache/\pal@filename/g.jpg}}
+ \else
+ \def\pal@nextincludegraphic{\includegraphics[height=\width,angle=\pal@angle]{cache/\pal@filename/g.jpg}}
+ \fi
+ \fi
}{
\IfFileExists{./cache/\pal@filename/g.png}{
- \def\pal@nextincludegraphic{\includegraphics[width=\width]{cache/\pal@filename/g.png}}
+ \ifnum\pal@graphicoptionorientation<3
+ \def\pal@nextincludegraphic{\includegraphics[width=\width]{cache/\pal@filename/g.png}}
+ \else
+ \ifnum\pal@graphicoptionorientation<5
+ \def\pal@nextincludegraphic{\includegraphics[width=\width,angle=\pal@angle]{cache/\pal@filename/g.png}}
+ \else
+ \def\pal@nextincludegraphic{\includegraphics[height=\width,angle=\pal@angle]{cache/\pal@filename/g.png}}
+ \fi
+ \fi
}{
\pal@calculatecroptrue
}
@@ -1332,10 +1498,13 @@
\pal@disablegraphicsfilecheck
\ifpal@calculatecrop
% graphic crop
- \settowidth{\pal@originalgraphicwidth}{\includegraphics{\pal@currfilebase\pal@currfileext}}
- \settoheight{\pal@originalgraphicheight}{\includegraphics{\pal@currfilebase\pal@currfileext}}
- \pgfmathqparse{1pt-\pal@graphicoptionvpos pt}
- \edef\pal@graphicoptionvpos{\pgfmathresult}
+ \ifnum\pal@graphicoptionorientation<5
+ \settowidth{\pal@originalgraphicwidth}{\includegraphics{\pal@currfilebase\pal@currfileext}}
+ \settoheight{\pal@originalgraphicheight}{\includegraphics{\pal@currfilebase\pal@currfileext}}
+ \else
+ \settoheight{\pal@originalgraphicwidth}{\includegraphics{\pal@currfilebase\pal@currfileext}}
+ \settowidth{\pal@originalgraphicheight}{\includegraphics{\pal@currfilebase\pal@currfileext}}
+ \fi
\pgfmathqparse{\pal@originalgraphicwidth/\pal@originalgraphicheight}
\edef\pal@graphicratio{\pgfmathresult}
\pgfmathqparse{\width/\height}
@@ -1408,6 +1577,7 @@
\pal@snapoptimizedgraphic
\fi
+ \pal@trimnextfalse
\ifdefined\pal@nextincludegraphic
\else
\ifpal@optimize
@@ -1418,19 +1588,39 @@
\isoptimizable{\pal@currfileext}{\pal@optimizegraphic{\pal@currfilebase}{\pal@currfileext}}
\ifdefined\pal@optimizedext
\IfFileExists{./cache/\pal@filename/g\pal@optimizedext}{
- \def\pal@nextincludegraphic{\includegraphics[width=\width]{cache/\pal@filename/g\pal@optimizedext}}
+ \ifnum\pal@graphicoptionorientation<3
+ \def\pal@nextincludegraphic{\includegraphics[width=\width]{cache/\pal@filename/g\pal@optimizedext}}
+ \else
+ \ifnum\pal@graphicoptionorientation<5
+ \def\pal@nextincludegraphic{\includegraphics[width=\width,angle=\pal@angle]{cache/\pal@filename/g\pal@optimizedext}}
+ \else
+ \def\pal@nextincludegraphic{\includegraphics[height=\width,angle=\pal@angle]{cache/\pal@filename/g\pal@optimizedext}}
+ \fi
+ \fi
}{
\ifx\pal@processresult\pal@ok
\ClassError{pagelayout}{Unexpected error. File not optimized}{File `cache/#6/g\pal@optimizedext' not found.\MessageBreak Try to delete the `cache' directory.\MessageBreak\MessageBreak\@ehc}
\fi
- \def\pal@nextincludegraphic{\includegraphics[trim={\pal@cropleft} {\pal@cropbottom} {\pal@cropright} {\pal@croptop},\pal@clip,width=\width]{\pal@currfilebase\pal@currfileext}}
+ \pal@trimnexttrue
}
\else
- \def\pal@nextincludegraphic{\includegraphics[trim={\pal@cropleft} {\pal@cropbottom} {\pal@cropright} {\pal@croptop},\pal@clip,width=\width]{\pal@currfilebase\pal@currfileext}}
+ \pal@trimnexttrue
\fi
\fi
\else
+ \pal@trimnexttrue
+ \fi
+ \fi
+
+ \ifpal@trimnext
+ \ifnum\pal@graphicoptionorientation<3
\def\pal@nextincludegraphic{\includegraphics[trim={\pal@cropleft} {\pal@cropbottom} {\pal@cropright} {\pal@croptop},\pal@clip,width=\width]{\pal@currfilebase\pal@currfileext}}
+ \else
+ \ifnum\pal@graphicoptionorientation<5
+ \def\pal@nextincludegraphic{\includegraphics[trim={\pal@cropleft} {\pal@cropbottom} {\pal@cropright} {\pal@croptop},\pal@clip,width=\width,angle=\pal@angle]{\pal@currfilebase\pal@currfileext}}
+ \else
+ \def\pal@nextincludegraphic{\includegraphics[trim={\pal@cropbottom} {\pal@cropright} {\pal@croptop} {\pal@cropleft},\pal@clip,height=\width,angle=\pal@angle]{\pal@currfilebase\pal@currfileext}}
+ \fi
\fi
\fi
@@ -1475,7 +1665,11 @@
\ifdim\pal@defaultborderradius>0pt
\pal@ismaskrequiredtrue
\else
- \pal@ismaskrequiredfalse
+ \ifnum\pal@graphicoptionorientation=1
+ \pal@ismaskrequiredfalse
+ \else
+ \pal@ismaskrequiredtrue
+ \fi
\fi
\fi
\else
@@ -1498,9 +1692,27 @@
\fi
\draw[draw opacity=0,rounded corners=\pal@defaultborderradius,path picture={
- \node at (0.5\width,0.5\height){
- \pal@nextincludegraphic
- };
+ \ifpal@hflip
+ \ifpal@vflip
+ \node[xscale=-1,yscale=-1] at (0.5\width,0.5\height){
+ \pal@nextincludegraphic
+ };
+ \else
+ \node[xscale=-1] at (0.5\width,0.5\height){
+ \pal@nextincludegraphic
+ };
+ \fi
+ \else
+ \ifpal@vflip
+ \node[yscale=-1] at (0.5\width,0.5\height){
+ \pal@nextincludegraphic
+ };
+ \else
+ \node at (0.5\width,0.5\height){
+ \pal@nextincludegraphic
+ };
+ \fi
+ \fi
}] (0,0) rectangle ++(\width,\height);%
\end{tikzpicture}%
\else%
@@ -1574,12 +1786,19 @@
}
% pagegraphic
+\newif\ifpal@pagegraphicoptionhflip
+\newif\ifpal@pagegraphicoptionvflip
+\newif\ifpal@backcoveroptionpagegraphichflip
+\newif\ifpal@backcoveroptionpagegraphicvflip
\def\pal@pagegraphic{}
\pgfkeys{
/pagegraphic/.is family,
/pagegraphic,
file/.store in=\pal@pagegraphic,
scale/.store in=\pal@pagegraphicoptionscale,
+ orientation/.store in=\pal@pagegraphicoptionorientation,
+ hflip/.is if=pal@pagegraphicoptionhflip,
+ vflip/.is if=pal@pagegraphicoptionvflip,
vpos/.store in=\pal@pagegraphicoptionvpos,
hpos/.store in=\pal@pagegraphicoptionhpos,
unsharp/.store in=\pal@pagegraphicoptionunsharp,
@@ -1589,6 +1808,9 @@
/backcoverpagegraphic,
file/.store in=\pal@backcoveroptionpagegraphicfile,
scale/.store in=\pal@backcoveroptionpagegraphicscale,
+ orientation/.store in=\pal@backcoveroptionpagegraphicorientation,
+ hflip/.is if=pal@backcoveroptionpagegraphichflip,
+ vflip/.is if=pal@backcoveroptionpagegraphicvflip,
vpos/.store in=\pal@backcoveroptionpagegraphicvpos,
hpos/.store in=\pal@backcoveroptionpagegraphichpos,
unsharp/.store in=\pal@backcoveroptionpagegraphicunsharp,
@@ -1601,7 +1823,7 @@
\innermargin=\pal@null
\outermargin=\pal@null
\setgrid{{{1}}}
- \pgfkeys{graphic,scale=\pal@pagegraphicoptionscale,hpos=\pal@pagegraphicoptionhpos,vpos=\pal@pagegraphicoptionvpos,unsharp=\pal@pagegraphicoptionunsharp,border width=0pt,border radius=0pt,shadow size=0,shadow xshift=0pt,shadow yshift=0pt}
+ \pgfkeys{graphic,scale=\pal@pagegraphicoptionscale,orientation=\pal@pagegraphicoptionorientation,hflip=\ifpal@pagegraphicoptionhflip true\else false\fi,vflip=\ifpal@pagegraphicoptionvflip true\else false\fi,hpos=\pal@pagegraphicoptionhpos,vpos=\pal@pagegraphicoptionvpos,unsharp=\pal@pagegraphicoptionunsharp,border width=0pt,border radius=0pt,shadow size=0,shadow xshift=0pt,shadow yshift=0pt}
\pal@putgraphic{0}{0}{1}{1}{\pal@pagegraphic}
\endgroup
}
@@ -1609,7 +1831,7 @@
\ifcsname pal@graphic@#2\endcsname%
\csname pal@graphic@#2\endcsname{#1}
\else%
- \pgfkeys{pagegraphic,file={#2},scale=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,#1}
+ \pgfkeys{pagegraphic,file={#2},scale=1,orientation=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,#1}
\fi
}
\def\nopagegraphic{\setpagegraphic{}}
@@ -1660,6 +1882,7 @@
colframe/.store in=\pal@defaultbordercolor,
opacityframe/.store in=\pal@defaultborderopacity,
breakable/.is if=pal@text@option@breakable,
+ % baselinesnap/.store in=\pal@text@option@baselinesnap,
.unknown/.code=,
library/.unknown/.code=,
}
@@ -1697,6 +1920,7 @@
height/.code={\originaltcbset{height=#1}\def\pal@text@option@height{#1}},
parbox/.is if=pal@text@option@parbox,
breakable/.is if=pal@text@option@breakable,
+ baselinesnap/.store in=\pal@text@option@baselinesnap,
border radius/.code={\originaltcbset{arc=#1}\ifdim\pal@null=\dimexpr#1\relax\originaltcbset{outer arc=#1}\else\originaltcbset{auto outer arc}\fi\def\pal@defaultborderradius{#1}},
arc/.forward to=/text/border radius,
border width/.forward to=/text/boxrule,
@@ -1711,6 +1935,7 @@
.unknown/.code={\originaltcbset{\pgfkeyscurrentname=#1}}
}
\newdimen\pal@tcbheight
+\newcount\pal@breakabletextindex
\newcommand\pal@puttext[5]{
\ifpal@isbatchmode
\else
@@ -1779,6 +2004,14 @@
\fi
\ifpal@text@option@breakable
+ \global\expandafter\edef\csname pal@breakabletext@name@\the\pal@breakabletextindex\endcsname{\pal@text@option@name}
+ \global\expandafter\edef\csname pal@breakabletext@breakat@\pal@text@option@name\endcsname{\the\height}
+ \global\expandafter\edef\csname pal@breakabletext@startat@\pal@text@option@name\endcsname{\the\pal@yy}
+ \ifdefined\pal@text@option@baselinesnap
+ \global\expandafter\edef\csname pal@breakabletext@baselinesnap@\pal@text@option@name\endcsname{\pal@text@option@baselinesnap}
+ \fi
+ % \errmessage{\the\pal@yy, \the\pal@y, \the\height, \the\pageheight}
+ \global\advance\pal@breakabletextindex by 1
\expandafter\xdef\csname pal@textarray@\pal@text@option@name @offsetx\endcsname{\pal@text@option@leftrule}
\expandafter\xdef\csname pal@textarray@\pal@text@option@name @offsety\endcsname{\pal@text@option@bottomrule}
\else
@@ -1797,7 +2030,8 @@
standard jigsaw,
width=\width,
enforce breakable,
- break at=\height,
+ break at=\ifcsname pal@breakable@\pal@text@option@name\endcsname\csname pal@breakable@\pal@text@option@name\endcsname\else\height\fi,
+ % break at=\height/\height/\height/\height/\height/\height/46.633pt/\height,
height fixed for=all,
reset box array=\pal@text@option@name,
store to box array=\pal@text@option@name,
@@ -1872,6 +2106,7 @@
\fi
\fi
}
+
\newcommand\pal@putusetext[5][default]{
\ifpal@isbatchmode
\else
@@ -1879,6 +2114,24 @@
\pal@xx=\posx{-1}{#4}{-1}{#5}
\pal@y=\posy{-1}{#4}
\pal@yy=\posy{1}{#2}
+ \ifdim\csname pal@breakabletext@startat@#1\endcsname=\the\pal@yy
+ \else
+ \ifcsname pal@breakabletext@baselinesnap@#1\endcsname
+ \pal@yytmp=\dimexpr\csname pal@breakabletext@startat@#1\endcsname\relax
+ \ifdim\pal@yytmp>\pal@yy
+ \loop
+ \pal@yytmp=\dimexpr\pal@yytmp-\csname pal@breakabletext@baselinesnap@#1\endcsname\relax
+ \ifdim\pal@yytmp>\pal@yy\repeat
+ \else
+ \ifdim\dimexpr\pal@yytmp+\csname pal@breakabletext@baselinesnap@#1\endcsname\relax<\pal@yy
+ \loop
+ \pal@yytmp=\dimexpr\pal@yytmp+\csname pal@breakabletext@baselinesnap@#1\endcsname\relax
+ \ifdim\dimexpr\pal@yytmp+\csname pal@breakabletext@baselinesnap@#1\endcsname\relax<\pal@yy\repeat
+ \fi
+ \fi
+ \pal@yy=\pal@yytmp
+ \fi
+ \fi
\width=\dimexpr(\pal@xx - \pal@x)\relax
\height=\dimexpr(\pal@yy - \pal@y)\relax
\pal@textboxwidth=\dimexpr(\pal@xx - \pal@x)\relax
@@ -1887,6 +2140,7 @@
\pal@checkvisibility
\ifpal@isvisible
\ifcsname pal@textarray@#1@index\endcsname
+ \global\expandafter\edef\csname pal@breakabletext@breakat@#1\endcsname{\csname pal@breakabletext@breakat@#1\endcsname/\the\height}
\global\expandafter\advance\csname pal@textarray@#1@index\endcsname by 1%
\pal@y=\dimexpr\pal@yy-\pal@textboxheight\relax
@@ -2078,13 +2332,14 @@
}
\def\pal@drawshadow{
\pal@ifshadow{
- \xdef\pal@shadowid{shadow-\pal@defaultshadowsize-\pal@defaultshadowcolor-\pal@defaultshadowopacity-\the\numexpr\pal@frameshadowwidth\relax-\the\numexpr\pal@frameshadowheight\relax-\the\numexpr\pal@frameshadowradius\relax-\the\numexpr\pal@frameshadowborder\relax}
+ \convertcolorspec{named}{\pal@defaultshadowcolor}{RGB}\pal@colortmp
+ \xdef\pal@shadowid{shadow-\pal@defaultshadowsize-\pal@colortmp-\pal@defaultshadowopacity-\the\numexpr\pal@frameshadowwidth\relax-\the\numexpr\pal@frameshadowheight\relax-\the\numexpr\pal@frameshadowradius\relax-\the\numexpr\pal@frameshadowborder\relax}
\IfFileExists{./cache/\pal@shadowid/s.pdf}{
\put(\pal@dimentonumber{\dimexpr\pal@x-5cm-\pal@frameshadowoffsetx+\pal@defaultshadowxshift\relax},\pal@dimentonumber{\dimexpr\pal@y-5cm-\pal@frameshadowoffsety-\pal@defaultshadowyshift\relax}){%
\includegraphics[width=\pal@frameshadowwidth]{cache/\pal@shadowid/s.pdf}
}
}{
- \pal@makeshadow{\pal@shadowid}
+ \pal@makeshadow{\pal@shadowid}{\pal@colortmp}
\IfFileExists{./cache/\pal@shadowid/s.pdf}{
\put(\pal@dimentonumber{\dimexpr\pal@x-5cm-\pal@frameshadowoffsetx+\pal@defaultshadowxshift\relax},\pal@dimentonumber{\dimexpr\pal@y-5cm-\pal@frameshadowoffsety-\pal@defaultshadowyshift\relax}){%
\includegraphics[width=\pal@frameshadowwidth]{cache/\pal@shadowid/s.pdf}
@@ -2550,11 +2805,11 @@
\ifx\pal@pagecolor\pal@emptystring
\else
\begingroup
- \margin=\pal@null
- \topmargin=\pal@null
- \bottommargin=\pal@null
- \innermargin=\pal@null
- \outermargin=\pal@null
+ \margin=-1pt
+ \topmargin=-1pt
+ \bottommargin=-1pt
+ \innermargin=\ifpal@fanfold\pal@null\else-1pt\fi
+ \outermargin=-1pt
\setgrid{{{1}}}
\ifx\pal@pagecolormodel\pal@emptystring
\else
@@ -2596,6 +2851,7 @@
\global\let\pal@defaultshadowxshift\pal@defaultshadowxshift
\global\let\pal@defaultshadowyshift\pal@defaultshadowyshift
\global\let\pal@pagegraphicoptionscale\pal@pagegraphicoptionscale
+ \global\let\pal@pagegraphicoptionorientation\pal@pagegraphicoptionorientation
\global\let\pal@pagegraphicoptionvpos\pal@pagegraphicoptionvpos
\global\let\pal@pagegraphicoptionhpos\pal@pagegraphicoptionhpos
\global\let\pal@pagegraphicoptionunsharp\pal@pagegraphicoptionunsharp
@@ -2782,6 +3038,17 @@
\else
\def\pal@pagegraphic{\pal@backcoveroptionpagegraphicfile}
\def\pal@pagegraphicoptionscale{\pal@backcoveroptionpagegraphicscale}
+ \def\pal@pagegraphicoptionorientation{\pal@backcoveroptionpagegraphicorientation}
+ \ifpal@backcoveroptionpagegraphichflip
+ \pal@pagegraphicoptionhfliptrue
+ \else
+ \pal@pagegraphicoptionhflipfalse
+ \fi
+ \ifpal@backcoveroptionpagegraphicvflip
+ \pal@pagegraphicoptionvfliptrue
+ \else
+ \pal@pagegraphicoptionvflipfalse
+ \fi
\def\pal@pagegraphicoptionvpos{\pal@backcoveroptionpagegraphicvpos}
\def\pal@pagegraphicoptionhpos{\pal@backcoveroptionpagegraphichpos}
\def\pal@pagegraphicoptionunsharp{\pal@backcoveroptionpagegraphicunsharp}
@@ -2970,6 +3237,9 @@
\ifdefined\pal@pagegraphicoptionscale
\let\pal@backcoveroptionpagegraphicscale\pal@pagegraphicoptionscale
\fi
+ \ifdefined\pal@pagegraphicoptionorientation
+ \let\pal@backcoveroptionpagegraphicorientation\pal@pagegraphicoptionorientation
+ \fi
\ifdefined\pal@pagegraphicoptionhpos
\let\pal@backcoveroptionpagegraphichpos\pal@pagegraphicoptionhpos
\fi
@@ -3299,7 +3569,7 @@
\ifnum\pal@contentcounter=\pal@placeholdercounter
\def\pal@currentplaceholdertype{graphic}
\def\pal@currentplaceholderoptions{}
- \pgfkeys{graphic,file={#2},scale=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,#1}
+ \pgfkeys{graphic,file={#2},scale=1,orientation=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,#1}
\ifcsname pal@graphic@#2\endcsname%
\csname pal@graphic@#2\endcsname[2]{#1}%
\fi
@@ -3402,7 +3672,7 @@
\csname pal@graphic@##2\endcsname[2]{##1}
\else
\ifpal@template\else
- \pgfkeys{graphic,file={##2},scale=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,##1}
+ \pgfkeys{graphic,file={##2},scale=1,orientation=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,##1}
\fi
\fi
\fi
@@ -3546,6 +3816,12 @@
\fi
}
\AtEndDocument{
+ \ifnum\pal@breakabletextindex>0
+ \loop
+ \advance\pal@breakabletextindex by -1
+ \immediate\write\@auxout{\gdef\string\pal@breakable@\csname pal@breakabletext@name@\the\pal@breakabletextindex\endcsname{\csname pal@breakabletext@breakat@\csname pal@breakabletext@name@\the\pal@breakabletextindex\endcsname\endcsname}}
+ \ifnum\pal@breakabletextindex>0\repeat
+ \fi
\ifpal@beginleft
\ifpal@leftpage
\pal@hasoddnumberofpagestrue
@@ -3646,9 +3922,17 @@
\pal@errmsg@magicknotinstalled{Ppi not calculated}
\else
\ifdim\pal@originalgraphicwidth<\pal@originalgraphicheight
- \pgfmathqparse{(\pal@originalgraphicwidth - \pal@cropleft - \pal@cropright) / \pal@originalgraphicwidth * \pal@graphicsize pt / \the\width * 72.27pt}
+ \ifnum\pal@graphicoptionorientation<5
+ \pgfmathqparse{(\pal@originalgraphicwidth - \pal@cropleft - \pal@cropright) / \pal@originalgraphicwidth * \pal@graphicsize pt / \the\width * 72.27pt}
+ \else
+ \pgfmathqparse{(\pal@originalgraphicheight - \pal@croptop - \pal@cropbottom) / \pal@originalgraphicheight * \pal@graphicsize pt / \the\height * 72.27pt}
+ \fi
\else
- \pgfmathqparse{(\pal@originalgraphicheight - \pal@croptop - \pal@cropbottom) / \pal@originalgraphicheight * \pal@graphicsize pt / \the\height * 72.27pt}
+ \ifnum\pal@graphicoptionorientation<5
+ \pgfmathqparse{(\pal@originalgraphicheight - \pal@croptop - \pal@cropbottom) / \pal@originalgraphicheight * \pal@graphicsize pt / \the\height * 72.27pt}
+ \else
+ \pgfmathqparse{(\pal@originalgraphicwidth - \pal@cropleft - \pal@cropright) / \pal@originalgraphicwidth * \pal@graphicsize pt / \the\width * 72.27pt}
+ \fi
\fi
\pgfmathint{\pgfmathresult}
@@ -3659,7 +3943,11 @@
\immediate\closein\pal@scriptresult
}
\newcommand\pal@optimizegraphic[2]{
- \immediate\openin\pal@scriptresult={|pagelayoutapi optimize\% "#1#2" \% "\pal@filename" \%\pal@optimizedext\%\the\numexpr\pal@originalgraphicwidth\%\the\numexpr\pal@originalgraphicheight\%\the\numexpr\pal@cropleft\%\the\numexpr\pal@cropright\%\the\numexpr\pal@croptop\%\the\numexpr\pal@cropbottom\%\the\numexpr\pal@density\%\the\numexpr\width\%\the\numexpr\height\%\pal@downsamplethreshold\%\pal@graphicoptionunsharp\%\pal@quality}
+ \ifnum\pal@graphicoptionorientation<5
+ \immediate\openin\pal@scriptresult={|pagelayoutapi optimize\% "#1#2" \% "\pal@filename" \%\pal@optimizedext\%\the\numexpr\pal@originalgraphicwidth\%\the\numexpr\pal@originalgraphicheight\%\the\numexpr\pal@cropleft\%\the\numexpr\pal@cropright\%\the\numexpr\pal@croptop\%\the\numexpr\pal@cropbottom\%\the\numexpr\pal@density\%\the\numexpr\width\%\the\numexpr\height\%\pal@downsamplethreshold\%\pal@graphicoptionunsharp\%\pal@quality}
+ \else
+ \immediate\openin\pal@scriptresult={|pagelayoutapi optimize\% "#1#2" \% "\pal@filename" \%\pal@optimizedext\%\the\numexpr\pal@originalgraphicheight\%\the\numexpr\pal@originalgraphicwidth\%\the\numexpr\pal@cropbottom\%\the\numexpr\pal@croptop\%\the\numexpr\pal@cropleft\%\the\numexpr\pal@cropright\%\the\numexpr\pal@density\%\the\numexpr\height\%\the\numexpr\width\%\pal@downsamplethreshold\%\pal@graphicoptionunsharp\%\pal@quality}
+ \fi
\ifeof\pal@scriptresult
\pal@errmsg@shellaccessforbidden{File not optimized}
\else
@@ -3676,8 +3964,8 @@
\fi
\immediate\closein\pal@scriptresult
}
-\newcommand\pal@makeshadow[1]{
- \immediate\openin\pal@scriptresult={|pagelayoutapi makeshadow\%#1\%\pal@defaultshadowsize\%\pal@defaultshadowopacity\%\pal@defaultshadowcolor\%\the\pal@frameshadowwidth\%\the\pal@frameshadowheight\%\the\pal@frameshadowframewidth\%\the\pal@frameshadowframeheight\%\the\pal@frameshadowborder\%\the\pal@frameshadowradius}
+\newcommand\pal@makeshadow[2]{
+ \immediate\openin\pal@scriptresult={|pagelayoutapi makeshadow\%#1\%\pal@defaultshadowsize\%\pal@defaultshadowopacity\%#2\%\the\pal@frameshadowwidth\%\the\pal@frameshadowheight\%\the\pal@frameshadowframewidth\%\the\pal@frameshadowframeheight\%\the\pal@frameshadowborder\%\the\pal@frameshadowradius}
\ifeof\pal@scriptresult
\edef\pal@processresult{\pal@err@shellaccessforbidden}
\pal@errmsg@shellaccessforbidden{Shadow not created}
@@ -3724,7 +4012,11 @@
\immediate\closein\pal@scriptresult
}
\newcommand\pal@addtobatchlist[2]{
- \global\edef\pal@batchlist{\pal@batchlist\% "#1#2" \% "\pal@filename" \%\pal@optimizedext\%\the\numexpr\pal@originalgraphicwidth\%\the\numexpr\pal@originalgraphicheight\%\the\numexpr\pal@cropleft\%\the\numexpr\pal@cropright\%\the\numexpr\pal@croptop\%\the\numexpr\pal@cropbottom\%\the\numexpr\pal@density\%\the\numexpr\width\%\the\numexpr\height\%\pal@downsamplethreshold\%\pal@graphicoptionunsharp\%\pal@quality}
+ \ifnum\pal@graphicoptionorientation<5
+ \global\edef\pal@batchlist{\pal@batchlist\% "#1#2" \% "\pal@filename" \%\pal@optimizedext\%\the\numexpr\pal@originalgraphicwidth\%\the\numexpr\pal@originalgraphicheight\%\the\numexpr\pal@cropleft\%\the\numexpr\pal@cropright\%\the\numexpr\pal@croptop\%\the\numexpr\pal@cropbottom\%\the\numexpr\pal@density\%\the\numexpr\width\%\the\numexpr\height\%\pal@downsamplethreshold\%\pal@graphicoptionunsharp\%\pal@quality}
+ \else
+ \global\edef\pal@batchlist{\pal@batchlist\% "#1#2" \% "\pal@filename" \%\pal@optimizedext\%\the\numexpr\pal@originalgraphicheight\%\the\numexpr\pal@originalgraphicwidth\%\the\numexpr\pal@cropbottom\%\the\numexpr\pal@croptop\%\the\numexpr\pal@cropleft\%\the\numexpr\pal@cropright\%\the\numexpr\pal@density\%\the\numexpr\height\%\the\numexpr\width\%\pal@downsamplethreshold\%\pal@graphicoptionunsharp\%\pal@quality}
+ \fi
}
\newcommand\pal@batchoptimize{
\immediate\openin\pal@scriptresult={|pagelayoutapi batchoptimize\pal@batchlist}
diff --git a/macros/latex/contrib/preview/preview.dtx b/macros/latex/contrib/preview/preview.dtx
index c68ea26425..f8b72e0522 100644
--- a/macros/latex/contrib/preview/preview.dtx
+++ b/macros/latex/contrib/preview/preview.dtx
@@ -3,7 +3,7 @@
%% Developed as part of AUCTeX <URL:https://www.gnu.org/software/auctex/>.
%
% Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006,
-% 2010, 2017-2023 Free Software Foundation
+% 2010, 2017-2024 Free Software Foundation
%
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
@@ -437,8 +437,8 @@
%<*style>
%<*!active>
\NeedsTeXFormat{LaTeX2e}
-\def\pr@version{13.2}
-\def\pr@date{2023/01/17}
+\def\pr@version{13.3}
+\def\pr@date{2024/01/17}
\ProvidesPackage{preview}[\pr@date\space \pr@version\space (AUCTeX/preview-latex)]
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex/contrib/preview/preview.pdf b/macros/latex/contrib/preview/preview.pdf
index 294804eae8..4728d12e42 100644
--- a/macros/latex/contrib/preview/preview.pdf
+++ b/macros/latex/contrib/preview/preview.pdf
Binary files differ
diff --git a/macros/latex/contrib/pythonimmediate/README b/macros/latex/contrib/pythonimmediate/README
index 43c413e62c..9a6d7b9e1a 100644
--- a/macros/latex/contrib/pythonimmediate/README
+++ b/macros/latex/contrib/pythonimmediate/README
@@ -7,7 +7,7 @@ Report bugs at https://github.com/user202729/pythonimmediate-tex
========
-Copyright 2022-2023 user202729
+Copyright 2022-2024 user202729
This work may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this license or
diff --git a/macros/latex/contrib/pythonimmediate/pythonimmediate.pdf b/macros/latex/contrib/pythonimmediate/pythonimmediate.pdf
index 5b8bf34442..cfcc852434 100644
--- a/macros/latex/contrib/pythonimmediate/pythonimmediate.pdf
+++ b/macros/latex/contrib/pythonimmediate/pythonimmediate.pdf
Binary files differ
diff --git a/macros/latex/contrib/pythonimmediate/pythonimmediate.sty b/macros/latex/contrib/pythonimmediate/pythonimmediate.sty
index 4556973831..1e632aba96 100644
--- a/macros/latex/contrib/pythonimmediate/pythonimmediate.sty
+++ b/macros/latex/contrib/pythonimmediate/pythonimmediate.sty
@@ -1,5 +1,5 @@
% File: pythonimmediate.sty
-% Copyright 2022-2023 user202729
+% Copyright 2022-2024 user202729
%
% This work may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this license or
@@ -12,9 +12,10 @@
%
% The Current Maintainer of this work is user202729.
-\ProvidesExplPackage{pythonimmediate}{2023/03/07}{0.4.0}{Library to run Python code}
+\ProvidesExplPackage{pythonimmediate}{2024/01/18}{0.5.0}{Library to run Python code}
\RequirePackage{saveenv}
+\PassOptionsToPackage{abspath}{currfile} % try to enable abspath if possible (i.e. if package isn't loaded) but otherwise don't give option-clash error
\RequirePackage{currfile}
\RequirePackage{l3keys2e}
\RequirePackage{precattl}
@@ -110,11 +111,14 @@
\bool_if:NTF \_pythonimmediate_child_process {
\newwrite \_pythonimmediate_write_file
- %\immediate\openout \_pythonimmediate_write_file=symlink-to-stderr.txt~
- % tried this method, it seems to work except that it's buffered when stderr is redirected to a file...
- \immediate\openout \_pythonimmediate_write_file=|"\_pythonimmediate_python_executable \space \_pythonimmediate_python_flags \space -m ~ pythonimmediate.copy_to_stderr"~
-
-
+ \sys_if_engine_luatex:TF {
+ % use Lua to write to stderr
+ \directlua{ (require "pythonimmediate_helper")() }
+ } {
+ %\immediate\openout \_pythonimmediate_write_file=symlink-to-stderr.txt~
+ % tried this method, it seems to work except that it's buffered when stderr is redirected to a file...
+ \immediate\openout \_pythonimmediate_write_file=|"\_pythonimmediate_python_executable \space \_pythonimmediate_python_flags \space -m ~ pythonimmediate.copy_to_stderr"~
+ }
} {
\sys_if_engine_luatex:TF {
diff --git a/macros/latex/contrib/pythonimmediate/pythonimmediate.tex b/macros/latex/contrib/pythonimmediate/pythonimmediate.tex
index 539a770fc2..9e6b0c1d8b 100644
--- a/macros/latex/contrib/pythonimmediate/pythonimmediate.tex
+++ b/macros/latex/contrib/pythonimmediate/pythonimmediate.tex
@@ -1,4 +1,4 @@
-\ProvidesFile{pythonimmediate.tex}[2023/03/07 0.4.0 Library to run Python code]
+\ProvidesFile{pythonimmediate.tex}[2024/01/18 0.5.0 Library to run Python code]
\RequirePackage{fvextra}
\documentclass{l3doc}
\usepackage{tikz}
@@ -6,7 +6,8 @@
\usetikzlibrary{arrows.meta}
\EnableCrossrefs
\CodelineIndex
-\fvset{breaklines=true,gobble=0,tabsize=4,frame=single,numbers=left,numbersep=3pt}
+\fvset{breaklines=true,breakanywhere,gobble=0,tabsize=4,frame=single,numbers=left,numbersep=3pt}
+\usepackage{cleveref}
\AtBeginDocument{\DeleteShortVerb\"} % https://tex.stackexchange.com/a/650966/250119
\MakeOuterQuote{"}
@@ -17,6 +18,7 @@
\begin{document}
+\hfuzz=15pt
% hack to make quotes inside |...| straight
\edef\temp{\def\noexpand|{\noexpand\Verb\string|}}\temp
@@ -53,7 +55,7 @@ In addition to the \LaTeX\ package, you need the Python \pkg{pythonimmediate-tex
installation instruction can be found at \url{https://pypi.org/project/pythonimmediate-tex/}.
Note that not all \TeX\ package versions are compatible with all Python package versions.
-This \TeX\ package is compatible with Python package version |0.4.0|.
+This \TeX\ package is compatible with Python package version |0.6.0|.
Remember to enable unrestricted\footnote{
There's little point in supporting restricted mode, since it's possible to execute arbitrary shell commands in Python anyway.
@@ -73,39 +75,43 @@ Instruction:
\begin{itemize}
\item Download the following files and place it in the root folder of Overleaf:
\begin{itemize}
- \item \file{saveenv.sty}
- \item \file{precattl.sty}
\item \file{pythonimmediate.sty}
\item \file{pythonimmediate_helper.lua}
- \item \file{pythonimmediate-tex-0.4.0.zip}
+ \item \file{pythonimmediate-tex-0.6.0.zip}
\end{itemize}
- The |0.4.0| part should be replaced with the desired version
+ The |0.6.0| part should be replaced with the desired version
of the Python package.
The |.sty| files can be downloaded from CTAN at
- \url{https://ctan.org/pkg/saveenv},
- \url{https://ctan.org/pkg/precattl},
- \url{https://ctan.org/pkg/pythonimmediate}
- respectively.
+ \url{https://ctan.org/pkg/pythonimmediate}.
The |.zip| file containing Python source code
can be downloaded from PyPI: \url{https://pypi.org/project/pythonimmediate-tex/\#files}.
+ Remark: Currently the \LaTeX\ package version 0.4.0 is included in \TeX\ Live 2023, you would need to download \LaTeX\ version 0.5.0 from CTAN.
+
+ \item In older \TeX\ Live versions (2022 or less), you will in addition need to download the following files:
+ \begin{itemize}
+ \item \file{saveenv.sty} (from \url{https://ctan.org/pkg/saveenv}),
+ \item \file{precattl.sty} (from \url{https://ctan.org/pkg/precattl}).
+ \end{itemize}
+ Also place in the root folder of Overleaf.
+
\item Write the following in the preamble:
\begin{verbatim}
\usepackage[abspath]{currfile}
-\usepackage[python-executable={PYTHONPATH=pythonimmediate-tex-0.4.0.zip/pythonimmediate-tex-0.4.0/ python3},args={--mode=unnamed-pipe}]{pythonimmediate}
+\usepackage[python-executable={PYTHONPATH=pythonimmediate-tex-0.6.0.zip/pythonimmediate-tex-0.6.0/ python3},args={--mode=unnamed-pipe}]{pythonimmediate}
\end{verbatim}
-As above, replace both occurrences of |0.4.0| with the downloaded version specified in the zip file above.
+As above, replace both occurrences of |0.6.0| with the downloaded version specified in the zip file above.
-Refer to \ref{troubleshoot-source-file-not-found} for explanation of the |abspath| option.
+Refer to \cref{troubleshoot-source-file-not-found} for explanation of the |abspath| option.
\end{itemize}
For some unknown reason in the default mode on Overleaf (|\nonstopmode|), when there's an error
the log file might be truncated,
so in that case consider writing |\errorstopmode|.
-Refer to \ref{troubleshoot-Python-error} to read the error traceback in case of Python error.
+Refer to \cref{troubleshoot-Python-error} to read the error traceback in case of Python error.
Some construct inside the |pycode| block might make the code editor on Overleaf report an error,
even though the code is valid. Refer to \url{https://www.overleaf.com/learn/how-to/Code_Check#Code_Check_Limitations}.
@@ -131,7 +137,7 @@ The documentation is also available at
The name/path to the Python executable. Default to |python3|.
Can also be used to provide environment variables to the Python process.
-An example how to do that is explained in \ref{installation-on-overleaf}.
+An example how to do that is explained in \cref{installation-on-overleaf}.
\DescribeOption{python-flags=}
Flags to be passed to the Python interpreter. For example pass |-O| to disable assertions.
@@ -202,7 +208,7 @@ Execute some Python code provided as an argument (the argument will be interpret
The command is not expandable -- roughly speaking, you can only use this at "top level".
-Any output (as described in \ref{print-to-TeX}) will be typesetted.
+Any output (as described in \cref{print-to-TeX}) will be typesetted.
The difference between |\py| and |\pyc| is that the argument of |\py| should be a Python expression
(suitable for passing into |eval()| Python function) while the argument of |\pyc| should be a Python
@@ -217,7 +223,7 @@ Therefore,
\end{itemize}
\DescribeMacro{\pycq}
-Same as above, but output (\ref{print-to-TeX}) will not be typesetted.
+Same as above, but output (\cref{print-to-TeX}) will not be typesetted.
\DescribeMacro{\pyfile}
Given an argument being the file name, execute that file.
@@ -240,7 +246,7 @@ pythonimmediate.print("123")
Special note: white spaces at the end of lines are preserved.
-Any output (as described in \ref{print-to-TeX}) will be typesetted.
+Any output (as described in \cref{print-to-TeX}) will be typesetted.
\DescribeEnv{pycodeq}
Same as above, but output will not be typesetted.
@@ -366,7 +372,7 @@ $f(x)=1$, $f_i(x)=2$, $f_{ij}(x)=3$
\DescribePython{.get_arg_estr()}
\DescribePython{.get_optional_arg_estr()}
Similar to some functions above, except that the argument is fully expanded and "escapes" of common characters are handled correctly,
-similar to how |\py| command (\ref{py-command}) reads its arguments.
+similar to how |\py| command (\cref{py-command}) reads its arguments.
\DescribePython{.execute()}
Takes a string and execute it immediately. (so that any |.execute()| will be executed before any |.print_TeX()|)
@@ -398,6 +404,11 @@ and as the second line throws an error, the Python traceback will point to that
\section{Troubleshooting}
+\subsection{"Incompatible TeX package version" error message}\label{troubleshoot-incompatible-version}
+Exactly what it means. You can upgrade both the Python package and the TeX package to the latest version.
+
+Alternatively, you can also \emph{downgrade} whichever package that is newer. For instance, Python package version 0.5.0 (download from \url{https://pypi.org/project/pythonimmediate-tex/0.5.0/#files}) is compatible with \LaTeX\ package version 0.4.0.
+
\subsection{"Source file not found!" error message}\label{troubleshoot-source-file-not-found}
In order to obtain the exact code with trailing spaces and produce error traceback
diff --git a/macros/latex/contrib/pythonimmediate/pythonimmediate_helper.lua b/macros/latex/contrib/pythonimmediate/pythonimmediate_helper.lua
index 8590233242..f5c54c1239 100644
--- a/macros/latex/contrib/pythonimmediate/pythonimmediate_helper.lua
+++ b/macros/latex/contrib/pythonimmediate/pythonimmediate_helper.lua
@@ -1,20 +1,125 @@
return function(cmd)
- local process = io.popen(cmd, "w")
+ -- as mentioned in the .sty file this allows explicit flush after each write
+ -- it's not easy to eliminate having to spawn 2 Python processes even with Lua https://stackoverflow.com/questions/8716527/interactive-popen-lua-call
+
+
+ -- if this is a child process, should write to stderr, in which case cmd will be nil
+ local send_content
+ if cmd==nil then
+ send_content=function(str)
+ io.stderr:write(str.."\n")
+ io.stderr:flush()
+ end
+ else
+ process = io.popen(cmd, "w")
+ send_content=function(str)
+ process:write(str.."\n")
+ process:flush()
+ end
+ end
local function_table=lua.get_functions_table()
-- https://tex.stackexchange.com/questions/632408/how-can-i-exclude-tex-macros-when-counting-a-strings-characters-in-lua/632464?noredirect=1#comment1623008_632464 this only work in Lua 5.3 or assume it's allocated sequentially
local send_content_index=#function_table+1
function_table[send_content_index]=function()
- process:write(token.scan_string())
- process:write("\n")
- process:flush()
- end
-
- local close_index=#function_table+1
- function_table[close_index]=function()
- process:close()
- end
-
- tex.print([[\protected \luadef \_pythonimmediate_send_content:e ]] .. send_content_index .. [[\protected \luadef \_pythonimmediate_close_write: ]] .. close_index .. [[\relax]])
- end
+ send_content(token.scan_string())
+ end
+
+ local close_index=#function_table+1
+ function_table[close_index]=function()
+ process:close()
+ end
+
+ local bgroup=token.create(0x7b, 1)
+ local egroup=token.create(0x7d, 2)
+
+ token.put_next(
+ bgroup,
+ token.create("ifodd"),
+ token.create(0x31, 12),
+ token.create("fi"),
+ egroup
+ )
+ local frozen_relax_tok=token.scan_toks(false, true)[1].tok
+ local null_cs_tok=0x20000000 -- \csname\endcsname
+
+ local cmdname_to_type={
+ left_brace="1",
+ right_brace="2",
+ math_shift="3",
+ tab_mark ="4",
+ mac_param ="6",
+ sup_mark ="7",
+ sub_mark ="8",
+ spacer ="A",
+ letter ="B",
+ other_char="C",
+ }
+ local function serialize(tl)
+ local result={}
+ for _, v in ipairs(tl) do
+ local s -- serialized result of v
+ local function handle_character(cat, index, char)
+ if index<32 then
+ s="^"..cat..utf8.char(index+64)
+ else
+ s=cat..char
+ end
+ end
+ if v.csname~=nil then
+ if v.active then
+ handle_character("D", utf8.codepoint(v.csname), v.csname)
+ elseif v.tok==frozen_relax_tok then
+ s="R"
+ elseif v.tok==null_cs_tok then
+ s="\\ "
+ else
+ local c=v.csname
+ s=""
+ for i=1, #c do
+ if c:byte(i)<33 then s=s.."*" end
+ end
+ s="\\"
+ for i=1, #c do
+ if c:byte(i)<33 then
+ s=s.." "..string.char(c:byte(i)+64)
+ else
+ s=s..c:sub(i,i)
+ end
+ end
+ s=s.." "
+ end
+ else
+ assert(cmdname_to_type[v.cmdname]~=nil)
+ handle_character(cmdname_to_type[v.cmdname], v.mode, utf8.char(v.mode))
+ end
+ result[#result+1]=s
+ end
+ return table.concat(result)
+ end
+
+ local serialize_index=#function_table+1
+ function_table[serialize_index]=function()
+ local result_token=token.get_next()
+ assert(result_token.csname~=nil and not result_token.active)
+ local tl=token.scan_toks()
+ --token.set_macro(-2, result_token.csname, table.concat(result))
+ tex.sprint{token.create "def", result_token, bgroup}
+ tex.sprint(-2, serialize(tl))
+ tex.sprint(egroup)
+ end
+
+ local send_balanced_index=#function_table+1
+ function_table[send_balanced_index]=function()
+ local tl=token.scan_toks()
+ send_content(serialize(tl))
+ end
+
+ tex.print(
+ [[\protected \luadef \_pythonimmediate_send_content:e ]] .. send_content_index ..
+ [[\protected \luadef \_pythonimmediate_close_write: ]] .. close_index ..
+ [[\protected \luadef \_pythonimmediate_tlserialize_nodot_unchecked:Nn ]] .. serialize_index ..
+ [[\protected \luadef \_pythonimmediate_send_balanced_tl:n ]] .. send_balanced_index ..
+ [[\relax]])
+end
diff --git a/macros/latex/contrib/runcode/README b/macros/latex/contrib/runcode/README
index 6075685680..4216dbceea 100644
--- a/macros/latex/contrib/runcode/README
+++ b/macros/latex/contrib/runcode/README
@@ -1,4 +1,4 @@
-LaTeX Package: runcode 2023/09/08 v2.2
+LaTeX Package: runcode 2024/01/12 v2.3
----------------------------------------
The runcode package enables the execution of source code (e.g., R,
Julia, Matlab, shell, Python, etc.) and embed the results in the pdf file
diff --git a/macros/latex/contrib/runcode/runcode.pdf b/macros/latex/contrib/runcode/runcode.pdf
index 0a2d35f5e0..9d91e7e7c9 100644
--- a/macros/latex/contrib/runcode/runcode.pdf
+++ b/macros/latex/contrib/runcode/runcode.pdf
Binary files differ
diff --git a/macros/latex/contrib/runcode/runcode.sty b/macros/latex/contrib/runcode/runcode.sty
index 06c3d346e0..0e1f8014d3 100644
--- a/macros/latex/contrib/runcode/runcode.sty
+++ b/macros/latex/contrib/runcode/runcode.sty
@@ -4,7 +4,7 @@
%
% This package is based on an ongoing work by Haim Bar and HaiYing Wang, and comments and questions are welcome!
-\ProvidesPackage{runcode}[2023/09/08 runcode v2.2]
+\ProvidesPackage{runcode}[2024/01/12 runcode v2.3]
\def \langs {}
@@ -424,10 +424,9 @@
\newcommand{\runcmd}[2]
{python3 -c 'from talk2stat.talk2stat import client; client("./","#1",#2)'}
-% R
-% It will be used as a template for other languages
-\newcommand{\LANG}{R}
-\newcommand{\LANGcmd}{R}
+% a generic LANG - it will be used as a template for other languages
+\newcommand{\LANG}{LANG}
+\newcommand{\LANGcmd}{LANGcmd}
\expandafter\NewDocumentCommand\csname run\LANG\endcsname
{O{} m m O{}}
@@ -451,6 +450,7 @@
{\inln{\runcmd{\LANGcmd}{"\tmpname.txt"}}{#2}[#3][#4]}
}
{\inln{#1}{#2}[#3][#4]}
+ \unskip\unskip\unskip
}
\expandafter\NewDocumentCommand\csname run\LANG Chunk\endcsname
@@ -459,46 +459,59 @@
{\csname run\LANG IncOut\endcsname[#1]{\generated/#2-#3.txt}[#4][#2-#3][#6]}
}
+% R
+\NewDocumentCommand{\runR}{O{} m m O{}}
+{{\renewcommand{\LANGcmd}{R}\runLANG[#1]{#2}{#3}[#4]}}
+
+\NewDocumentCommand{\runRIncOut}{O{} m O{} O{} O{vbox}}
+{{\renewcommand{\LANGcmd}{R}\runLANGIncOut[#1]{#2}[#3][#4][#5]}}
+
+\NewDocumentCommand{\inlnR}{O{} m O{} O{inline}}
+{{\renewcommand{\LANGcmd}{R}\inlnLANG[#1]{#2}[#3][#4]}}
+
+\NewDocumentCommand{\runRChunk}{O{} m m O{} O{} O{vbox}}
+{{\renewcommand{\LANGcmd}{R}\runLANGChunk[#1]{#2}{#3}[#4][#5][#6]}}
+
% Julia
\NewDocumentCommand{\runJulia}{O{} m m O{}}
-{\renewcommand{\LANGcmd}{julia} \runR[#1]{#2}{#3}[#4]}
+{{\renewcommand{\LANGcmd}{julia}\runLANG[#1]{#2}{#3}[#4]}}
\NewDocumentCommand{\runJuliaIncOut}{O{} m O{} O{} O{vbox}}
-{\renewcommand{\LANGcmd}{julia} \runRIncOut[#1]{#2}[#3][#4][#5]}
+{{\renewcommand{\LANGcmd}{julia}\runLANGIncOut[#1]{#2}[#3][#4][#5]}}
\NewDocumentCommand{\inlnJulia}{O{} m O{} O{inline}}
-{\renewcommand{\LANGcmd}{julia} \inlnR[#1]{#2}[#3][#4]}
+{{\renewcommand{\LANGcmd}{julia}\inlnLANG[#1]{#2}[#3][#4]}}
\NewDocumentCommand{\runJuliaChunk}{O{} m m O{} O{} O{vbox}}
-{\renewcommand{\LANGcmd}{julia} \runRChunk[#1]{#2}{#3}[#4][#5][#6]}
+{{\renewcommand{\LANGcmd}{julia}\runLANGChunk[#1]{#2}{#3}[#4][#5][#6]}}
% Matlab
\NewDocumentCommand{\runMatLab}{O{} m m O{}}
-{\renewcommand{\LANGcmd}{matlab} \runR[#1]{#2}{#3}[#4]}
+{{\renewcommand{\LANGcmd}{matlab}\runLANG[#1]{#2}{#3}[#4]}}
\NewDocumentCommand{\runMatLabIncOut}{O{} m O{} O{} O{vbox}}
-{\renewcommand{\LANGcmd}{matlab} \runRIncOut[#1]{#2}[#3][#4][#5]}
+{{\renewcommand{\LANGcmd}{matlab}\runLANGIncOut[#1]{#2}[#3][#4][#5]}}
\NewDocumentCommand{\inlnMatLab}{O{} m O{} O{inline}}
-{\renewcommand{\LANGcmd}{matlab} \inlnR[#1]{#2}[#3][#4]}
+{{\renewcommand{\LANGcmd}{matlab}\inlnLANG[#1]{#2}[#3][#4]}}
\NewDocumentCommand{\runMatLabChunk}{O{} m m O{} O{} O{vbox}}
-{\renewcommand{\LANGcmd}{matlab} \runRChunk[#1]{#2}{#3}[#4][#5][#6]}
+{{\renewcommand{\LANGcmd}{matlab}\runLANGChunk[#1]{#2}{#3}[#4][#5][#6]}}
% Python
\NewDocumentCommand{\runPython}{O{} m m O{}}
-{\renewcommand{\LANGcmd}{python} \runR[#1]{#2}{#3}[#4]}
+{{\renewcommand{\LANGcmd}{python}\runLANG[#1]{#2}{#3}[#4]}}
\NewDocumentCommand{\runPythonIncOut}{O{} m O{} O{} O{vbox}}
-{\renewcommand{\LANGcmd}{python} \runRIncOut[#1]{#2}[#3][#4][#5]}
+{{\renewcommand{\LANGcmd}{python}\runLANGIncOut[#1]{#2}[#3][#4][#5]}}
\NewDocumentCommand{\inlnPython}{O{} m O{} O{inline}}
-{\renewcommand{\LANGcmd}{python} \inlnR[#1]{#2}[#3][#4]}
+{{\renewcommand{\LANGcmd}{python}\inlnLANG[#1]{#2}[#3][#4]}}
\NewDocumentCommand{\runPythonChunk}{O{} m m O{} O{} O{vbox}}
-{\renewcommand{\LANGcmd}{python} \runRChunk[#1]{#2}{#3}[#4][#5][#6]}
+{{\renewcommand{\LANGcmd}{python}\runLANGChunk[#1]{#2}{#3}[#4][#5][#6]}}
%%%%%%%%
diff --git a/macros/latex/contrib/runcode/runcode.tex b/macros/latex/contrib/runcode/runcode.tex
index 23f833bdf5..fb1fd2530e 100644
--- a/macros/latex/contrib/runcode/runcode.tex
+++ b/macros/latex/contrib/runcode/runcode.tex
@@ -1,4 +1,4 @@
-% LaTeX Package: runcode 2023/09/08 v2.2
+% LaTeX Package: runcode 2024/01/12 v2.3
%
% Copyright (C) 2020-2023 by Haim Bar and HaiYing Wang
%
@@ -49,7 +49,7 @@ package’s github repository, at \url{https://github.com/Ossifragus/runcode}.
\end{abstract}
\section{Installation}
-\label{sec:org6031edc}
+\label{sec:orgbc0a4bf}
You can simply put the runcode.sty file in the \LaTeX{} project folder.
The server mode requires the
@@ -65,9 +65,9 @@ compiling a \LaTeX{} document.
\section{Usage}
-\label{sec:org46d9194}
+\label{sec:org6167b11}
\subsection{Load the package:}
-\label{sec:orgdf4d2a5}
+\label{sec:orgc46beda}
\begin{minted}[]{latex}
\usepackage[options]{runcode}
\end{minted}
@@ -139,7 +139,7 @@ be customized with \texttt{\textbackslash{}tcbset},
\end{minted}
\subsection{Basic commands:}
-\label{sec:org1eb4192}
+\label{sec:org9029154}
\begin{itemize}
\item \texttt{\textbackslash{}runExtCode\{Arg1\}\{Arg2\}\{Arg3\}[Arg4]} runs an external code.
@@ -223,7 +223,7 @@ default \texttt{label==} and \texttt{===end}.
\subsection{Extended commands:}
-\label{sec:org2e715a7}
+\label{sec:orgf48d3c2}
\begin{itemize}
\item \texttt{\textbackslash{}runCodeIncOut\{Arg1\}\{Arg2\}[Arg3][Arg4][Arg5]} runs an external code and
embeds the output. This is a combination of \texttt{\textbackslash{}runExtCode} and \texttt{\textbackslash{}includeOutput}.
@@ -240,7 +240,7 @@ functionality is the same as that of \texttt{Arg3} of \texttt{\textbackslash{}in
\end{itemize}
\subsection{Language specific shortcuts:}
-\label{sec:org04ff6f1}
+\label{sec:org506ce7a}
Replace \texttt{LANG} with \texttt{Julia}, \texttt{MatLab}, \texttt{Python}, or \texttt{R}, for the \href{https://julialang.org/}{Julia}, \href{https://www.mathworks.com/products/matlab.html}{MatLab}, \href{https://www.python.org/}{Python}, \href{https://www.r-project.org/}{R}
language, respectively, for the following commands.
@@ -305,8 +305,11 @@ installed via \texttt{pip3 install dill}.
\section{Revisions}
-\label{sec:orgae938b1}
+\label{sec:orgb2671cf}
\begin{itemize}
+\item v2.3, January 12, 2024: two bug fixes (1. removed an extra space after
+\texttt{\textbackslash{}inlnX}; 2. when an underscore appeared inside R code, the tex file would
+compile with an error).
\item v2.2, September 8, 2023: add \texttt{\textbackslash{}showChunk} basic command and \texttt{\textbackslash{}runLANGChunk}
commands for multiple languages.
\item v2.1, June 30, 2023: detokenize code which is passed to \texttt{\textbackslash{}inln}. This is
@@ -341,7 +344,7 @@ code files, zero bytes in output files.)
\end{itemize}
\section{Contributing}
-\label{sec:org9eb0902}
+\label{sec:org3c84ea7}
We welcome your contributions to this package by opening issues on
GitHub and/or making a pull request. We also appreciate more example
documents written using \texttt{runcode}.
diff --git a/macros/latex/contrib/unicode-math-input/README b/macros/latex/contrib/unicode-math-input/README
index 5533cf6261..c4682e9852 100644
--- a/macros/latex/contrib/unicode-math-input/README
+++ b/macros/latex/contrib/unicode-math-input/README
@@ -8,7 +8,7 @@ Report bugs at https://github.com/user202729/TeXlib
========
-Copyright 2022-2023 user202729
+Copyright 2022-2024 user202729
This work may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this license or
diff --git a/macros/latex/contrib/unicode-math-input/unicode-math-input-script.py b/macros/latex/contrib/unicode-math-input/unicode-math-input-script.py
index a3dbbb4625..34fd90ff5b 100644..100755
--- a/macros/latex/contrib/unicode-math-input/unicode-math-input-script.py
+++ b/macros/latex/contrib/unicode-math-input/unicode-math-input-script.py
@@ -1,6 +1,46 @@
#!/bin/python3
-# This file is not used while TeX is running. It's for generating unicode-math-input-table.tex file only.
-# This requires pythonimmediate (not sure which version is compatible but commit 63f94476a5cb11e33db1215a9bf7c17657d9773d on Python 3.10.10 is)
+"""
+This file is not used while TeX is running. It's for generating unicode-math-input-table.tex file only.
+This requires pythonimmediate (not sure which version is compatible but
+commit 020068db8a966c138b5b0b93695c0fefdef03d0a on Python 3.11.3 is)
+
+To generate: run::
+ python3 unicode-math-input-script.py > unicode-math-input-table.tex
+
+How does it work?
+
+The mapping is determined from multiple sources:
+
+* The unicode-math package itself, which defines a "command → Unicode character" mapping.
+ This does not always work because different TeX packages may name the command differently.
+
+* Synonym table, obtained by looking at STIX's command definition
+
+* TeX's glyph → unicode mapping (used to facilitate copy-paste in PDF),
+ e.g. /usr/share/texmf-dist/tex/generic/pdftex/glyphtounicode.tex
+ This should be good, but is currently not used. Furthermore, not all TeX commands are implemented by
+ getting a single character from a font...
+
+How does the Unicode mapping work?
+
+First there's the `pdftex.map` file, then there's umsa.cmap for msam10.tfm/afm/pfm/pfb/mf (metafont source file)
+
+/usr/share/texmf-dist/fonts/source/public/amsfonts/symbols/msam10.mf
+ /usr/share/texmf-dist/fonts/source/public/amsfonts/symbols/asymbols.mf
+
+/usr/share/texmf-dist/fonts/afm/public/amsfonts/symbols/msam10.afm
+→ plaintext-looking file may work
+
+/usr/share/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
+/usr/share/texmf-dist/fonts/type1/public/amsfonts/symbols/msam10.pfm
+/usr/share/texmf-dist/fonts/type1/public/amsfonts/symbols/msam10.pfb
+
+The glyphtounicode.tex may be a bit problematic...
+ https://tex.stackexchange.com/questions/66300/how-to-fix-missing-or-incorrect-mappings-from-glyphtounicode-tex
+
+See also: section 3.2 How to find a table of correspondences? in https://tex.stackexchange.com/a/628285/250119
+
+"""
from __future__ import annotations
@@ -8,7 +48,8 @@ from pythonimmediate.engine import ChildProcessEngine
from pythonimmediate.engine import default_engine
from pythonimmediate import*
import pythonimmediate
-from collections import defaultdict
+from collections import defaultdict, Counter
+from itertools import groupby
import os
import json
import subprocess
@@ -25,11 +66,8 @@ print(r'% This file is automatically generated from unicode-math-input-script.py
# ======== start a luatex engine
-engine=ChildProcessEngine("luatex", env={**os.environ, "hash_extra": "0"})
# https://tex.stackexchange.com/questions/574607/tex-hashtokens-incomplete
-default_engine.set_engine(engine)
-
-Catcode.active("a").meaning_str()
+default_engine.set_engine(ChildProcessEngine("luatex", env={**os.environ, "hash_extra": "0"}))
"""
@@ -93,10 +131,108 @@ for line in lines:
assert match
unicode_char=chr(int(match[1], 16))
csname=match[2]
- #unicode_math_table_.append(Item(unicode_char=unicode_char, csname=csname))
+ #unicode_math_table_.append(Item(unicode_char=unicode_char, csname))
unicode_math_table_[unicode_char].append(csname)
unicode_math_table={unicode_char: tuple(csnames) for unicode_char, csnames in unicode_math_table_.items()}
+# ======== extract unicode-math synonyms
+
+def control_sequences()->list[str]:
+ return (lua_try_eval(r"""
+ do
+ local s={}
+ for k, v in pairs(tex.hashtokens()) do
+ if v:find("^[A-Za-z]+$") then
+ s[v]=0
+ end
+ end
+ local t={}
+ for v, _ in pairs(s) do table.insert(t, v) end
+ return table.concat(t, "\x00")
+ end
+ """) or "").split("\x00")
+
+extra_synonyms_list: list[list[str]] = [
+ ["adots", "iddots"],
+ ["unicodecdots", "cdots"], # https://github.com/wspr/unicode-math/issues/571
+ ["unicodeellipsis", "ldots"],
+ #["llbracket", "lBrack"],
+ #["rrbracket", "rBrack"],
+ ]
+
+
+
+
+c=control_sequences()
+m={x: T[x].meaning_str() for x in c}
+
+pattern=re.compile(r'\\protected macro:->\\([A-Za-z]+) ?')
+
+extra_synonyms_list += [[c, match[1]] for c, m in m.items()
+ if (match:=pattern.fullmatch(m))
+ ]
+
+def same_meaning_control_sequences(meaning: dict[str, str])->list[list[str]]:
+ return [
+ l
+ for m, l0 in groupby(sorted(c, key=lambda x: meaning[x]), lambda x: meaning[x])
+ if m!="undefined"
+ for l in [[*l0]]
+ if len(l)>=2
+ ]
+
+extra_synonyms_list += same_meaning_control_sequences(m)
+
+# ======== extract amsmath&stix synonyms
+
+
+m_values=[]
+for preamble in [
+r"""
+\documentclass{article}
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage{amsfonts}
+\begin{document}
+""",
+r"""
+\documentclass{article}
+\usepackage{stix}
+\begin{document}
+"""
+]:
+ with ChildProcessEngine("luatex", env={**os.environ, "hash_extra": "0"}) as e, default_engine.set_engine(e):
+ execute(preamble)
+ c=control_sequences()
+ m={x: T[x].meaning_str() for x in c}
+ extra_synonyms_list += same_meaning_control_sequences(m)
+ m_values.append(m)
+[amsmath_meaning, stix_meaning]=m_values
+# ======== build extra_synonyms table
+
+while True:
+ tmp=Counter([x for l in extra_synonyms_list for x in l])
+ [(item, frequency)]=tmp.most_common(1)
+ if frequency==1: break
+ assert frequency>1
+ extra_synonyms_list=[
+ # the group that contain item
+ [*{x for l in extra_synonyms_list if item in l for x in l}]
+ ] + [
+ # remaining groups
+ l for l in extra_synonyms_list if item not in l]
+
+
+extra_synonyms_list=sorted([sorted(l) for l in {frozenset(
+ item for item in l
+ if item not in ("dotsc", "dotsm", "dotsb", "dots") # some simple filtering -- we will just use \cdots and \ldots
+ ) for l in extra_synonyms_list} if len(l)>1]) # deduplicate
+
+tmp=Counter(sum(extra_synonyms_list, []))
+assert tmp.most_common()[0][1]==1, tmp
+
+extra_synonyms = {v: u for u in extra_synonyms_list for v in u}
+
# ======== check how much of the table is valid on unicode-math/luatex
def getdelcode(x: str)->tuple[int, int, int, int]:
@@ -289,11 +425,11 @@ math_alphabet_redundant_greek = {
r"\Zeta" : "Z",
}
-extra_synonyms = {v: u for u in
- [
- ["adots", "iddots"]
- ]
- for v in u}
+
+ASCII_symbol_synonym = {
+ "minus": "-",
+ "mid": "|",
+ }
##
@@ -306,18 +442,27 @@ for i in range(ord("!"), ord("~")+1):
if fullch in remaining_chars: remaining_chars.remove(fullch)
print(r'\__umi_define_char{' + fullch + r'}{\char'+str(i)+' }')
-defined_csnames = {x for l in unicode_math_table.values() for x in l}
+defined_csnames = {x for l in unicode_math_table.values() for x in l} | {*stix_meaning} | {*amsmath_meaning}
pdf_engine=ChildProcessEngine("pdftex")
-execute(r"""
+with default_engine.set_engine(pdf_engine): execute(r"""
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{mathrsfs}
\begin{document}
-""", engine=pdf_engine)
+""")
+
+def remove_not(a: str)->Optional[str]:
+ global defined_csnames
+ if a in (r"\ni", r"\nu"): return None
+ if a.startswith(r"\not") and a.removeprefix(r"\not") in defined_csnames:
+ return '\\' + a.removeprefix(r"\not")
+ elif a.startswith(r"\n") and a.removeprefix(r"\n") in defined_csnames:
+ return '\\' + a.removeprefix(r"\n")
+ else: return None
for unicode_char, csnames_ in unicode_math_table.items():
csnames = [*csnames_]
@@ -374,16 +519,18 @@ for unicode_char, csnames_ in unicode_math_table.items():
for csname in [*csnames]:
if csname in extra_synonyms:
csnames+=extra_synonyms[csname]
- csnames=[*set(csnames)]
+ csnames=[*{csname: None for csname in csnames}]
items1=[]
for csname in csnames:
if not is_delimiter:
- assert "delimiter" not in T[csname].meaning_str(engine=pdf_engine), (unicode_char, csname)
+ with default_engine.set_engine(pdf_engine):
+ assert "delimiter" not in T[csname].meaning_str(), (unicode_char, csname)
# that is the symbol is not a delimiter in pdf_engine either (check is not particularly reliable but okay)
for prefix, replacement in math_alphabet_translate.items():
if csname.startswith(prefix):
+ assert csname not in ASCII_symbol_synonym
cs = math_alphabet_csname_translation[csname.removeprefix(prefix)]
def wrap_in_alphabet_selector(cs: str)->str:
if replacement is None: return cs
@@ -398,30 +545,39 @@ for unicode_char, csnames_ in unicode_math_table.items():
break
else:
items1.append("\\" + csname)
+ if csname in ASCII_symbol_synonym: items1+=ASCII_symbol_synonym[csname]
+
+ assert items1
+ if is_delimiter and len(items1)>1:
+ print("Warning: Synonym for delimiter not supported?", unicode_char, delimiter, items1, file=sys.stderr)
+ del items1[1:]
if len(items1)==1:
a = items1[0]
- if a.startswith(r"\not") and a.removeprefix(r"\not") in defined_csnames:
- assert not is_delimiter
- b='\\' + a.removeprefix(r"\not")
- print(f"\\__umi_define_char{{{optional_space}{unicode_char}}}{{\__umi_alternatives_not{a}{b}}}")
- a.removeprefix(r"\not")
- elif a.startswith(r"\n") and a.removeprefix(r"\n") in defined_csnames:
+ b = remove_not(a)
+ if b is not None:
assert not is_delimiter
- b='\\' + a.removeprefix(r"\n")
print(f"\\__umi_define_char{{{optional_space}{unicode_char}}}{{\__umi_alternatives_not{a}{b}}}")
- a.removeprefix(r"\n")
else:
if is_delimiter:
print(f"\\__umi_define_char_maybe_delimiter{{{optional_space}{unicode_char}}}{{{a}}}")
else:
print(f"\\__umi_define_char{{{optional_space}{unicode_char}}}{{{a}}}")
- else:
- assert not is_delimiter, (unicode_char, delimiter)
- assert len(items1)==2, items1
+ elif len(items1)==2:
assert re.fullmatch(r'\\[a-zA-Z]+', items1[0]), items1
- assert re.fullmatch(r'\\[a-zA-Z]+', items1[1]), items1
- print(f"\\__umi_define_char{{{optional_space}{unicode_char}}}{{\\__umi_alternatives{items1[0]}{items1[1]}}}")
+ assert re.fullmatch(r'\\[a-zA-Z]+|[^a-zA-Z]', items1[1]), items1
+ b=remove_not(items1[0])
+ if b is not None:
+ d=remove_not(items1[1])
+ assert d is not None, items1
+ print(f"\\__umi_define_char{{{optional_space}{unicode_char}}}{{\\__umi_alternatives_not_two{items1[0]}{items1[1]}{b}{d}}}")
+ else:
+ print(f"\\__umi_define_char{{{optional_space}{unicode_char}}}{{\\__umi_alternatives{items1[0]}{items1[1]}}}")
+ else:
+ assert len(items1)>=3, items1
+ assert all(remove_not(x) is None for x in items1), items1
+ assert all(re.fullmatch(r'\\[a-zA-Z]+', c) for c in items1), items1
+ print(f"\\__umi_define_char{{{optional_space}{unicode_char}}}{{\\__umi_alternatives_m{{{''.join(items1)}}}}}")
##
@@ -431,94 +587,12 @@ sys.exit()
# ======== part below are draft.
-T.longdivisionsign.meaning_str()
-
-
-
-T.mathexclam.meaning_str()
-
-T.symoperators.meaning_str()
-
-T.perp.meaning_str()
-
-umathcode[" ̅"[1]]
-
-BalancedTokenList(r'\the\Udelcode `̅').expand_o().int()
-
-x = BalancedTokenList(r'\the\Udelcode `!').expand_o().int()
-print(hex(x))
-
-hex(BalancedTokenList(r'\the\delcode `!').expand_o().int())
-
-
-
-
-
-if 0:
-
- data = TokenList([r"\directlua", TokenList.fstr(
- r"""
- for k, v in pairs(tex.hashtokens()) do
- tex.print(-2, v .. "\0")
- end
- """
- )]).expand_x().str()
- control_sequences = data.split("\x00")
- assert control_sequences[-1]==""
- del control_sequences[-1]
-
-
-Path("/tmp/control_sequences.json").write_text(json.dumps(control_sequences)) # type: ignore
-control_sequences = json.loads(Path("/tmp/control_sequences.json").read_text()) # type: ignore
-
-
-Path("/tmp/control_sequences_unicode_math.json").write_text(json.dumps(control_sequences))
-control_sequences = json.loads(Path("/tmp/control_sequences_unicode_math.json").read_text())
-assert "mitrho" in control_sequences
-
-if 0:
- # try some other random things
-
- control_sequences = data.split("\x00")
- assert control_sequences[-1]==""
- del control_sequences[-1]
-
-
-
- BalancedTokenList(r'\the\Umathcode `′').expand_o().int() == 0x1000000
-
-
-control_sequences
-
-BalancedTokenList(r'\the\mathcode`⨁').expand_o().int()
-
-Catcode.active("⨁").meaning_str(engine=engine)
-
-Catcode.active("′").meaning_str(engine=engine)
-
-T.bigoplus_sym.meaning_str()
-
-T.bigoplusop.meaning_str()
-
-T.bigoplus.meaning_str()
-
-
-
-T.rho.meaning_str()
-
-T.mitrho.meaning_str()
-
-T.bigoplus.meaning_str()
-
-engine._stdout_lines[-100:] + [bytes(engine._stdout_buffer)]
-
-
-
-T.mscrA.meaning_str()
-
-
+default_engine.set_engine(ChildProcessEngine("luatex", env={**os.environ, "hash_extra": "0"}, autorestart=True))
+execute(r'\documentclass{article}\usepackage{unicode-math}\begin{document}')
+execute(r'\documentclass{article}\usepackage{amsmath,amssymb,amsfonts}\begin{document}')
+execute(r'\documentclass{article}\usepackage{amsmath}\usepackage{amssymb}\usepackage{amsfonts}\usepackage{tikz}')
@functools.lru_cache(maxsize=None)
@@ -586,6 +660,3 @@ BalancedTokenList(r"\def\aa{bb}").execute(engine=test_engine)
BalancedTokenList(r"\csname\noexpand\aa\endcsname").expand_o(engine=test_engine) # give error
BalancedTokenList(r"\csname\string\aa\endcsname").expand_o(engine=test_engine) # \[\aa] as expected
-T.iddots.meaning_str(engine=engine)
-
-T.adots.meaning_str(engine=engine)
diff --git a/macros/latex/contrib/unicode-math-input/unicode-math-input-table.tex b/macros/latex/contrib/unicode-math-input/unicode-math-input-table.tex
index 7ab364cedd..f72a488c86 100644
--- a/macros/latex/contrib/unicode-math-input/unicode-math-input-table.tex
+++ b/macros/latex/contrib/unicode-math-input/unicode-math-input-table.tex
@@ -96,12 +96,12 @@
\__umi_define_char{£}{\mathsterling}
\__umi_define_char{¥}{\mathyen}
\__umi_define_char{§}{\mathsection}
-\__umi_define_char{¬}{\neg}
+\__umi_define_char{¬}{\__umi_alternatives\neg\lnot}
\__umi_define_char{±}{\pm}
\__umi_define_char{¶}{\mathparagraph}
-\__umi_define_char{·}{\cdotp}
+\__umi_define_char{·}{\__umi_alternatives\cdotp\centerdot}
\__umi_define_char{×}{\times}
-\__umi_define_char{ð}{\matheth}
+\__umi_define_char{ð}{\__umi_alternatives\matheth\eth}
\__umi_define_char{÷}{\div}
\__umi_define_char{Ƶ}{\Zbar}
\__umi_define_char{Α}{\__umi_alternatives_iisafe\Alpha A}
@@ -156,22 +156,22 @@
\__umi_define_char{ϑ}{\vartheta}
\__umi_define_char{ϕ}{\phi}
\__umi_define_char{ϖ}{\varpi}
-\__umi_define_char{Ϝ}{\upDigamma}
-\__umi_define_char{ϝ}{\updigamma}
+\__umi_define_char{Ϝ}{\__umi_alternatives\upDigamma\Digamma}
+\__umi_define_char{ϝ}{\__umi_alternatives\updigamma\digamma}
\__umi_define_char{ϰ}{\varkappa}
\__umi_define_char{ϱ}{\varrho}
\__umi_define_char{ϴ}{\varTheta}
\__umi_define_char{ϵ}{\epsilon}
-\__umi_define_char{϶}{\upbackepsilon}
+\__umi_define_char{϶}{\__umi_alternatives\upbackepsilon\backepsilon}
\__umi_define_char{‐}{\mathhyphen}
\__umi_define_char{―}{\horizbar}
\__umi_define_char_maybe_delimiter{‖}{\Vert}
\__umi_define_char{‗}{\twolowline}
\__umi_define_char{†}{\dagger}
\__umi_define_char{‡}{\ddagger}
-\__umi_define_char{•}{\smblkcircle}
+\__umi_define_char{•}{\__umi_alternatives_m{\smblkcircle\bullet\vysmblkcircle}}
\__umi_define_char{‥}{\enleadertwodots}
-\__umi_define_char{…}{\unicodeellipsis}
+\__umi_define_char{…}{\__umi_alternatives\unicodeellipsis\ldots}
\__umi_define_char{‸}{\caretinsert}
\__umi_define_char{‼}{\Exclam}
\__umi_define_char{⁀}{\tieconcat}
@@ -191,7 +191,7 @@
\__umi_define_char{ℌ}{\umiMathfrak{H}}
\__umi_define_char{ℍ}{\umiMathbb{H}}
\__umi_define_char{ℎ}{\Planckconst}
-\__umi_define_char{ℏ}{\hslash}
+\__umi_define_char{ℏ}{\__umi_alternatives\hslash\hbar}
\__umi_define_char{ℐ}{\umiMathscr{I}}
\__umi_define_char{ℑ}{\Im}
\__umi_define_char{ℒ}{\umiMathscr{L}}
@@ -236,9 +236,9 @@
\__umi_define_char{ⅉ}{\umiMathbbit{j}}
\__umi_define_char{⅊}{\PropertyLine}
\__umi_define_char{⅋}{\upand}
-\__umi_define_char{←}{\leftarrow}
+\__umi_define_char{←}{\__umi_alternatives\leftarrow\gets}
\__umi_define_char_maybe_delimiter{↑}{\uparrow}
-\__umi_define_char{→}{\rightarrow}
+\__umi_define_char{→}{\__umi_alternatives\rightarrow\to}
\__umi_define_char_maybe_delimiter{↓}{\downarrow}
\__umi_define_char{↔}{\leftrightarrow}
\__umi_define_char_maybe_delimiter{↕}{\updownarrow}
@@ -246,7 +246,7 @@
\__umi_define_char{↗}{\nearrow}
\__umi_define_char{↘}{\searrow}
\__umi_define_char{↙}{\swarrow}
-\__umi_define_char{↚}{\__umi_alternatives_not\nleftarrow\leftarrow}
+\__umi_define_char{↚}{\__umi_alternatives_not_two\nleftarrow\ngets\leftarrow\gets}
\__umi_define_char{↛}{\__umi_alternatives_not\nrightarrow\rightarrow}
\__umi_define_char{↜}{\leftwavearrow}
\__umi_define_char{↝}{\rightwavearrow}
@@ -313,7 +313,7 @@
\__umi_define_char{⇚}{\Lleftarrow}
\__umi_define_char{⇛}{\Rrightarrow}
\__umi_define_char{⇜}{\leftsquigarrow}
-\__umi_define_char{⇝}{\rightsquigarrow}
+\__umi_define_char{⇝}{\__umi_alternatives\rightsquigarrow\leadsto}
\__umi_define_char_maybe_delimiter{⇞}{\nHuparrow}
\__umi_define_char_maybe_delimiter{⇟}{\nHdownarrow}
\__umi_define_char{⇠}{\leftdasharrow}
@@ -344,39 +344,39 @@
\__umi_define_char{∂}{\partial}
\__umi_define_char{∃}{\exists}
\__umi_define_char{∄}{\__umi_alternatives_not\nexists\exists}
-\__umi_define_char{∅}{\varnothing}
+\__umi_define_char{∅}{\__umi_alternatives\varnothing\emptyset}
\__umi_define_char{∆}{\increment}
\__umi_define_char{∇}{\nabla}
\__umi_define_char{∈}{\in}
\__umi_define_char{∉}{\__umi_alternatives_not\notin\in}
\__umi_define_char{∊}{\smallin}
-\__umi_define_char{∋}{\ni}
+\__umi_define_char{∋}{\__umi_alternatives\ni\owns}
\__umi_define_char{∌}{\__umi_alternatives_not\nni\ni}
\__umi_define_char{∍}{\smallni}
\__umi_define_char{∎}{\QED}
\__umi_define_char{∏}{\prod}
\__umi_define_char{∐}{\coprod}
\__umi_define_char{∑}{\sum}
-\__umi_define_char{−}{\minus}
+\__umi_define_char{−}{\__umi_alternatives\minus-}
\__umi_define_char{∓}{\mp}
\__umi_define_char{∔}{\dotplus}
\__umi_define_char_maybe_delimiter{∕}{\divslash}
\__umi_define_char{∖}{\smallsetminus}
\__umi_define_char{∗}{\ast}
-\__umi_define_char{∘}{\vysmwhtcircle}
-\__umi_define_char{∙}{\vysmblkcircle}
+\__umi_define_char{∘}{\__umi_alternatives_m{\vysmwhtcircle\circ\smwhtcircle}}
+\__umi_define_char{∙}{\__umi_alternatives_m{\vysmblkcircle\bullet\smblkcircle}}
\__umi_define_char{∝}{\propto}
\__umi_define_char{∞}{\infty}
\__umi_define_char{∟}{\rightangle}
\__umi_define_char{∠}{\angle}
\__umi_define_char{∡}{\measuredangle}
\__umi_define_char{∢}{\sphericalangle}
-\__umi_define_char{∣}{\mid}
+\__umi_define_char{∣}{\__umi_alternatives\mid|}
\__umi_define_char{∤}{\__umi_alternatives_not\nmid\mid}
\__umi_define_char{∥}{\parallel}
\__umi_define_char{∦}{\__umi_alternatives_not\nparallel\parallel}
-\__umi_define_char{∧}{\wedge}
-\__umi_define_char{∨}{\vee}
+\__umi_define_char{∧}{\__umi_alternatives\wedge\land}
+\__umi_define_char{∨}{\__umi_alternatives\vee\lor}
\__umi_define_char{∩}{\cap}
\__umi_define_char{∪}{\cup}
\__umi_define_char{∫}{\int}
@@ -404,7 +404,7 @@
\__umi_define_char{≁}{\__umi_alternatives_not\nsim\sim}
\__umi_define_char{≂}{\eqsim}
\__umi_define_char{≃}{\__umi_alternatives\simeq\sime}
-\__umi_define_char{≄}{\__umi_alternatives\nsimeq\nsime}
+\__umi_define_char{≄}{\__umi_alternatives_not_two\nsime\nsimeq\sime\simeq}
\__umi_define_char{≅}{\cong}
\__umi_define_char{≆}{\simneqq}
\__umi_define_char{≇}{\__umi_alternatives_not\ncong\cong}
@@ -417,7 +417,7 @@
\__umi_define_char{≎}{\Bumpeq}
\__umi_define_char{≏}{\bumpeq}
\__umi_define_char{≐}{\doteq}
-\__umi_define_char{≑}{\Doteq}
+\__umi_define_char{≑}{\__umi_alternatives\Doteq\doteqdot}
\__umi_define_char{≒}{\fallingdotseq}
\__umi_define_char{≓}{\risingdotseq}
\__umi_define_char{≔}{\coloneq}
@@ -432,12 +432,12 @@
\__umi_define_char{≝}{\eqdef}
\__umi_define_char{≞}{\measeq}
\__umi_define_char{≟}{\questeq}
-\__umi_define_char{≠}{\ne}
+\__umi_define_char{≠}{\__umi_alternatives\ne\neq}
\__umi_define_char{≡}{\equiv}
\__umi_define_char{≢}{\__umi_alternatives_not\nequiv\equiv}
\__umi_define_char{≣}{\Equiv}
-\__umi_define_char{≤}{\leq}
-\__umi_define_char{≥}{\geq}
+\__umi_define_char{≤}{\__umi_alternatives\leq\le}
+\__umi_define_char{≥}{\__umi_alternatives\geq\ge}
\__umi_define_char{≦}{\leqq}
\__umi_define_char{≧}{\geqq}
\__umi_define_char{≨}{\lneqq}
@@ -448,8 +448,8 @@
\__umi_define_char{≭}{\__umi_alternatives_not\nasymp\asymp}
\__umi_define_char{≮}{\__umi_alternatives_not\nless\less}
\__umi_define_char{≯}{\ngtr}
-\__umi_define_char{≰}{\__umi_alternatives_not\nleq\leq}
-\__umi_define_char{≱}{\__umi_alternatives_not\ngeq\geq}
+\__umi_define_char{≰}{\__umi_alternatives_not_two\nleq\nle\leq\le}
+\__umi_define_char{≱}{\__umi_alternatives_not_two\ngeq\nge\geq\ge}
\__umi_define_char{≲}{\lesssim}
\__umi_define_char{≳}{\gtrsim}
\__umi_define_char{≴}{\__umi_alternatives_not\nlesssim\lesssim}
@@ -532,7 +532,7 @@
\__umi_define_char{⋁}{\bigvee}
\__umi_define_char{⋂}{\bigcap}
\__umi_define_char{⋃}{\bigcup}
-\__umi_define_char{⋄}{\smwhtdiamond}
+\__umi_define_char{⋄}{\__umi_alternatives\smwhtdiamond\diamond}
\__umi_define_char{⋅}{\cdot}
\__umi_define_char{⋆}{\star}
\__umi_define_char{⋇}{\divideontimes}
@@ -546,14 +546,14 @@
\__umi_define_char{⋏}{\curlywedge}
\__umi_define_char{⋐}{\Subset}
\__umi_define_char{⋑}{\Supset}
-\__umi_define_char{⋒}{\Cap}
-\__umi_define_char{⋓}{\Cup}
+\__umi_define_char{⋒}{\__umi_alternatives\Cap\doublecap}
+\__umi_define_char{⋓}{\__umi_alternatives\Cup\doublecup}
\__umi_define_char{⋔}{\pitchfork}
\__umi_define_char{⋕}{\equalparallel}
\__umi_define_char{⋖}{\lessdot}
\__umi_define_char{⋗}{\gtrdot}
-\__umi_define_char{⋘}{\lll}
-\__umi_define_char{⋙}{\ggg}
+\__umi_define_char{⋘}{\__umi_alternatives\lll\llless}
+\__umi_define_char{⋙}{\__umi_alternatives\ggg\gggtr}
\__umi_define_char{⋚}{\lesseqgtr}
\__umi_define_char{⋛}{\gtreqless}
\__umi_define_char{⋜}{\eqless}
@@ -575,8 +575,8 @@
\__umi_define_char{⋬}{\__umi_alternatives_not\ntrianglelefteq\trianglelefteq}
\__umi_define_char{⋭}{\__umi_alternatives_not\ntrianglerighteq\trianglerighteq}
\__umi_define_char{⋮}{\vdots}
-\__umi_define_char{⋯}{\unicodecdots}
-\__umi_define_char{⋰}{\__umi_alternatives\iddots\adots}
+\__umi_define_char{⋯}{\__umi_alternatives\unicodecdots\cdots}
+\__umi_define_char{⋰}{\__umi_alternatives\adots\iddots}
\__umi_define_char{⋱}{\ddots}
\__umi_define_char{⋲}{\disin}
\__umi_define_char{⋳}{\varisins}
@@ -673,8 +673,8 @@
\__umi_define_char{░}{\blockqtrshaded}
\__umi_define_char{▒}{\blockhalfshaded}
\__umi_define_char{▓}{\blockthreeqtrshaded}
-\__umi_define_char{■}{\mdlgblksquare}
-\__umi_define_char{□}{\mdlgwhtsquare}
+\__umi_define_char{■}{\__umi_alternatives\mdlgblksquare\blacksquare}
+\__umi_define_char{□}{\__umi_alternatives_m{\mdlgwhtsquare\Box\square}}
\__umi_define_char{▢}{\squoval}
\__umi_define_char{▣}{\blackinwhitesquare}
\__umi_define_char{▤}{\squarehfill}
@@ -692,7 +692,7 @@
\__umi_define_char{▰}{\parallelogramblack}
\__umi_define_char{▱}{\parallelogram}
\__umi_define_char{▲}{\bigblacktriangleup}
-\__umi_define_char{△}{\bigtriangleup}
+\__umi_define_char{△}{\__umi_alternatives_m{\bigtriangleup\triangle\varbigtriangleup}}
\__umi_define_char{▴}{\blacktriangle}
\__umi_define_char{▵}{\vartriangle}
\__umi_define_char{▶}{\blacktriangleright}
@@ -702,7 +702,7 @@
\__umi_define_char{►}{\blackpointerright}
\__umi_define_char{▻}{\whitepointerright}
\__umi_define_char{▼}{\bigblacktriangledown}
-\__umi_define_char{▽}{\bigtriangledown}
+\__umi_define_char{▽}{\__umi_alternatives\bigtriangledown\varbigtriangledown}
\__umi_define_char{▾}{\blacktriangledown}
\__umi_define_char{▿}{\triangledown}
\__umi_define_char{◀}{\blacktriangleleft}
@@ -715,8 +715,8 @@
\__umi_define_char{◇}{\mdlgwhtdiamond}
\__umi_define_char{◈}{\blackinwhitediamond}
\__umi_define_char{◉}{\fisheye}
-\__umi_define_char{◊}{\mdlgwhtlozenge}
-\__umi_define_char{○}{\mdlgwhtcircle}
+\__umi_define_char{◊}{\__umi_alternatives_m{\mdlgwhtlozenge\Diamond\lozenge}}
+\__umi_define_char{○}{\__umi_alternatives\mdlgwhtcircle\bigcirc}
\__umi_define_char{◌}{\dottedcircle}
\__umi_define_char{◍}{\circlevertfill}
\__umi_define_char{◎}{\bullseye}
@@ -743,7 +743,7 @@
\__umi_define_char{◣}{\llblacktriangle}
\__umi_define_char{◤}{\ulblacktriangle}
\__umi_define_char{◥}{\urblacktriangle}
-\__umi_define_char{◦}{\smwhtcircle}
+\__umi_define_char{◦}{\__umi_alternatives_m{\smwhtcircle\circ\vysmwhtcircle}}
\__umi_define_char{◧}{\squareleftblack}
\__umi_define_char{◨}{\squarerightblack}
\__umi_define_char{◩}{\squareulblack}
@@ -889,9 +889,9 @@
\__umi_define_char{⤋}{\Ddownarrow}
\__umi_define_char{⤌}{\leftbkarrow}
\__umi_define_char{⤍}{\rightbkarrow}
-\__umi_define_char{⤎}{\leftdbkarrow}
-\__umi_define_char{⤏}{\dbkarrow}
-\__umi_define_char{⤐}{\drbkarrow}
+\__umi_define_char{⤎}{\__umi_alternatives\leftdbkarrow\dashleftarrow}
+\__umi_define_char{⤏}{\__umi_alternatives_m{\dbkarrow\dasharrow\dashrightarrow\dbkarow}}
+\__umi_define_char{⤐}{\__umi_alternatives\drbkarrow\drbkarow}
\__umi_define_char{⤑}{\rightdotarrow}
\__umi_define_char{⤒}{\baruparrow}
\__umi_define_char{⤓}{\downarrowbar}
@@ -912,8 +912,8 @@
\__umi_define_char{⤢}{\neswarrow}
\__umi_define_char{⤣}{\hknwarrow}
\__umi_define_char{⤤}{\hknearrow}
-\__umi_define_char{⤥}{\hksearrow}
-\__umi_define_char{⤦}{\hkswarrow}
+\__umi_define_char{⤥}{\__umi_alternatives\hksearrow\hksearow}
+\__umi_define_char{⤦}{\__umi_alternatives\hkswarrow\hkswarow}
\__umi_define_char{⤧}{\tona}
\__umi_define_char{⤨}{\toea}
\__umi_define_char{⤩}{\tosa}
@@ -1351,7 +1351,7 @@
\__umi_define_char{⫙}{\forkv}
\__umi_define_char{⫚}{\topfork}
\__umi_define_char{⫛}{\mlcp}
-\__umi_define_char{⫝̸}{\forks}
+\__umi_define_char{⫝̸}{\__umi_alternatives\forks\nforksnot}
\__umi_define_char{⫝}{\forksnot}
\__umi_define_char{⫞}{\shortlefttack}
\__umi_define_char{⫟}{\shortdowntack}
diff --git a/macros/latex/contrib/unicode-math-input/unicode-math-input.pdf b/macros/latex/contrib/unicode-math-input/unicode-math-input.pdf
index 80d94c1908..2bfddf791b 100644
--- a/macros/latex/contrib/unicode-math-input/unicode-math-input.pdf
+++ b/macros/latex/contrib/unicode-math-input/unicode-math-input.pdf
Binary files differ
diff --git a/macros/latex/contrib/unicode-math-input/unicode-math-input.sty b/macros/latex/contrib/unicode-math-input/unicode-math-input.sty
index dcb72f6a30..b9696c3a32 100644
--- a/macros/latex/contrib/unicode-math-input/unicode-math-input.sty
+++ b/macros/latex/contrib/unicode-math-input/unicode-math-input.sty
@@ -1,5 +1,5 @@
% File: unicode-math-input.sty
-% Copyright 2022-2023 user202729
+% Copyright 2022-2024 user202729
%
% This work may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this license or
@@ -14,7 +14,7 @@
\RequirePackage{expl3}
\RequirePackage{iftex}
-\ProvidesExplPackage{unicode-math-input}{2023-05-12}{0.0.0}{Allow entering Unicode symbols in math formulas}
+\ProvidesExplPackage{unicode-math-input}{2024-01-18}{0.1.0}{Allow entering Unicode symbols in math formulas}
\makeatletter
\AtBeginDocument{
@@ -38,7 +38,17 @@
\cs_new_protected:Npn \umiMathbf {\__umi_check_math_alphabet \mathbf \umiMathbf }
\cs_new_protected:Npn \umiMathit {\__umi_check_math_alphabet \mathit \umiMathit }
\cs_new_protected:Npn \umiMathbfit {\__umi_check_math_alphabet \bm \umiMathbfit }
-\cs_new_protected:Npn \umiMathscr {\__umi_check_math_alphabet \mathscr \umiMathscr }
+\cs_new_protected:Npn \umiMathscr {
+ \ifdefined \mathscr
+ \expandafter \mathscr
+ \else
+ \ifdefined \mathcal
+ \expandafter \expandafter \expandafter \mathcal
+ \else
+ \msg_error:nnnn {unicode-math-input} {define-math-alphabet} {\mathscr/\mathcal} {\umiMathscr}
+ \fi
+ \fi
+}
\cs_new_protected:Npn \umiMathbfscr {\__umi_check_math_alphabet \mathbfscr \umiMathbfscr }
\cs_new_protected:Npn \umiMathfrak {\__umi_check_math_alphabet \mathfrak \umiMathfrak }
\cs_new_protected:Npn \umiMathbb {\__umi_check_math_alphabet \mathbb \umiMathbb }
@@ -79,11 +89,23 @@
\ifdefined #2
#2
\else
- \msg_error:nnn {unicode-math-input} {undefined-cs} {#1#2}
+ \__umi_raise_error {#1#2}
\fi
\fi
}
+\cs_new_protected:Npn \__umi_alternatives_m #1 {
+ \tl_map_inline:nn {#1} {
+ \ifdefined ##1
+ ##1
+ \tl_map_break:n {\use_none:nn}
+ \fi
+ }
+ \__umi_raise_error {#1}
+}
+
+\cs_new_protected:Npn \__umi_raise_error { \msg_error:nnn {unicode-math-input} {undefined-cs} }
+
% #1 is control sequence, #2 is anything (must not peek ahead!)
\cs_new_protected:Npn \__umi_alternatives_iisafe #1 #2 {
\ifdefined #1
@@ -107,6 +129,16 @@
\fi
}
+\cs_new_protected:Npn \__umi_alternatives_not_two #1 #2 #3 #4{
+ \ifdefined #1 #1 \else
+ \ifdefined #2 #2 \else
+ \ifdefined #3 \not#3 \else
+ \ifdefined #4 \not#4 \else
+ \msg_error:nnn {unicode-math-input} {undefined-cs} {#1#2#3#4}
+ \fi \fi \fi \fi
+}
+
+
% ======== \__umi_require_math
\msg_new:nnn {unicode-math-input} {not-math-mode} {
This~symbol~can~only~be~used~in~math~mode!
@@ -213,8 +245,8 @@
}
- \cs_new_eq:NN \umiDefineMathChar \__umi_define_char_single
- \cs_new_protected:Npn \umiDefineMathDelimiter #1 #2 {
+ \cs_new_eq:NN \umiDeclareMathChar \__umi_define_char_single
+ \cs_new_protected:Npn \umiDeclareMathDelimiter #1 #2 {
\cs_new_protected:Npn \__umi_check_delimiter_defined_not_delimiter ##1 ##2 {
\msg_error:nnnn {unicode-math-input} {not-delimiter} {##1} {##2}
}
@@ -278,16 +310,23 @@
\cs_new_eq:NN \__umi_define_char_maybe_delimiter \__umi_define_char
- \cs_new_protected:Npn \umiDefineMathChar #1 #2{
+ \cs_new_protected:Npn \umiDeclareMathChar #1 #2{
\ifnum \str_count:n{#1}=1
\__umi_define_char_single #1 {#2}
\else
\cs_gset_protected:cpx {u8:\detokenize{#1}} {\unexpanded{\__umi_require_math #2}}
\fi
}
- \cs_new_eq:NN \umiDefineMathDelimiter \umiDefineMathChar
+ \cs_new_eq:NN \umiDeclareMathDelimiter \umiDeclareMathChar
}
+
+\cs_new_eq:NN \umiDefineMathChar \umiDeclareMathChar
+\cs_new_eq:NN \umiDefineMathDelimiter \umiDeclareMathDelimiter % backwards compatibility
+
+\cs_new_protected:Npn \umiDeclareMathCharCopy { \__umi_internal_error }
+\cs_new_protected:Npn \umiDeclareMathDelimiterCopy { \__umi_internal_error }
+
\__umi_if_engine_unicode {
\tl_build_begin:N \__umi_delimiter_list
} {}
@@ -451,8 +490,9 @@
\expandafter \__umi_continue_script_aux \exp:w\exp_end_continue_f:w
\char_generate:nn {\expandafter \__umi_gobble_the_character \meaning #1} {13}
} {
- \cs_gset_eq:NN \__umi_script \__umi_put_script_normal
- ^{\l_tmpa_tl} #1
+ % is not the case, finished (put back the #1)
+ \__umi_script_collect_done
+ \__umi_script_cat{\l_tmpa_tl} #1
}
}
@@ -492,12 +532,13 @@
}
\def \__umi_brace_error {\__umi_internal_error \l_tmpa_tl}
+ \def \__umi_brace_nobrace {\l_tmpa_tl}
\def \__umi_brace_two #1 #2 {\l_tmpa_tl {#1 #2}}
\def \__umi_brace_three #1 #2 #3 {\l_tmpa_tl {#1 #2 #3}}
\def \__umi_brace_four #1 #2 #3 #4 {\l_tmpa_tl {#1 #2 #3 #4}}
\int_step_inline:nnn {"00} {"7F} {
- \expandafter\let\csname __umi_brace_handle_ \char_generate:nn {#1} {12} \endcsname \relax
+ \expandafter\let\csname __umi_brace_handle_ \char_generate:nn {#1} {12} \endcsname \__umi_brace_nobrace
}
\int_step_inline:nnn {"80} {"BF} {
\expandafter\let\csname __umi_brace_handle_ \char_generate:nn {#1} {12} \endcsname \__umi_brace_error
diff --git a/macros/latex/contrib/unicode-math-input/unicode-math-input.tex b/macros/latex/contrib/unicode-math-input/unicode-math-input.tex
index 7b385c34cc..61fe577ced 100644
--- a/macros/latex/contrib/unicode-math-input/unicode-math-input.tex
+++ b/macros/latex/contrib/unicode-math-input/unicode-math-input.tex
@@ -1,5 +1,6 @@
%! TEX program = lualatex
-\ProvidesFile{unicode-math-input.tex} [2023/05/12 v0.0.0 ]
+\ProvidesFile{unicode-math-input.tex} [2024/01/18 v0.1.0 ]
+\PassOptionsToPackage{hyphens}{url}
\RequirePackage{fvextra}
\documentclass{l3doc}
\usepackage[svgnames]{xcolor}
@@ -15,7 +16,12 @@
\tracinglostchars=3
\newcommand\csref[1]{\texttt{\hyperref[doc/function//#1]{\textbackslash #1}}}
\newcommand\varref[1]{\texttt{\hyperref[doc/function//#1]{#1}}}
+\usepackage{precattl}
\begin{document}
+\precattlExec{
+\NewDocumentEnvironment{option}{v}{\begin{variable}{#1\cO\}\iffalse}\fi Package option.\par}{\end{variable}}
+}
+
\hfuzz=1pt
\GetFileInfo{\jobname.tex}
@@ -45,6 +51,15 @@ they does not cover a lot of characters and/or does not handle several issues we
We compare the situation with several existing packages:
\begin{itemize}
+ \item \pkg{commonunicode}:
+ \begin{itemize}
+ \item defines all characters to be active, which means it breaks usage of |α| in \pkg{fancyvrb}'s |Verbatim| environment for example.
+ \item changes the behavior of e.g. |½| in text mode in PDF\LaTeX.
+ \item does not always select best option, for example |∄| always get mapped to |\not\exists| even though the outcome is worse than |\nexists|.
+ \item fakes several symbols such as |≝| even when there's better option e.g. |\eqdef|,
+ \item uses |\ensuremath| extensively, which means no error message when it's used in text mode,
+ \item not as good symbol coverage.
+ \end{itemize}
\item \pkg{unixode}:
\begin{itemize}
\item defines |′| to be |\prime| which is big and not usable, it should be |^{\prime}|
@@ -177,6 +192,13 @@ We need to get the following things correct:
corresponding Unicode character (|π|) will also change. This will incur a small loss in efficiency however.
(modulo the issue with |\Udelcode| mentioned above)
+
+ \item The character |⋯| is mapped to |\cdots| and |…| is mapped to |\ldots|. Note that |\dots| behaves
+ the same as |\ldots| without \pkg{amsmath} package loaded, but with it it smartly detect which variant to use
+ depends on the following character, for example |$\dots +$| prints $\dots +$ but |$\dots ,$| prints $\dots ,$.
+
+ There's another discrepancy with the spacing around these 2 characters,
+ see \url{https://github.com/wspr/unicode-math/issues/571}.
\end{itemize}
There are some issues however:
@@ -227,6 +249,8 @@ Because by default the \pkg{unicode-math} package will already allow entering Un
For example you can |\renewcommand\umiMathbf[1]{\mathbf{#1}}| which is the default behavior.
+ Or you can execute, for example, |\renewcommand\umiMathscr[1]{\mathcal{#1}}| to use the calligraphic instead of the script alphabet for script characters.
+
More usefully, you may want to |\renewcommand\umiMathbf{\bm}| to make entered characters such as
$𝐚$ appear bold italic in the output, remember to load package \pkg{bm} if you want to do so (which is |unicode-math| behavior
with |[bold-style=ISO]| package option).
@@ -240,27 +264,27 @@ Because by default the \pkg{unicode-math} package will already allow entering Un
|\let\umiFrac\tfrac| (or more clearly, |\renewcommand\umiFrac[2]{\tfrac{#1}{#2}}|)
to customize the appearance of Unicode characters like |½|.
- If you want to customize the appearance of individual symbols, consider using \csref{umiDefineMathChar}.
+ If you want to customize the appearance of individual symbols, consider using \csref{umiDeclareMathChar}.
\end{function}
-\begin{function}{\umiDefineMathChar}
+\begin{function}{\umiDeclareMathChar}
\begin{syntax}
- |\umiDefineMathChar {α} {\alpha}|
+ |\umiDeclareMathChar {α} {\alpha}|
\end{syntax}
- Does what it says.
+ Does what it says. Will override existing definitions, if any.
Note that the Unicode character must be braced.
- (You may choose to call \csref{umiPatchCmdUnicodeArg}| \umiDefineMathChar|
+ (You may choose to call \csref{umiPatchCmdUnicodeArg}| \umiDeclareMathChar|
beforehand so bracing is not necessary, but this is not really recommended)
This might or might not destroy the existing text-mode definition. For now,
- one way to preserve it is |\umiDefineMathChar {²} {\TextOrMath{\texttwosuperior}{^2}}|.
+ one way to preserve it is |\umiDeclareMathChar {²} {\TextOrMath{\texttwosuperior}{^2}}|.
\end{function}
-\begin{function}{\umiDefineMathDelimiter}
+\begin{function}{\umiDeclareMathDelimiter}
\begin{syntax}
- |\umiDefineMathDelimiter {⟨} \langle|
+ |\umiDeclareMathDelimiter {⟨} \langle|
\end{syntax}
You must use this in order to use the Unicode character with |\left|, |\big|, |\bigl| etc.
(because of the internal detail being that in Xe\LaTeX\ and Lua\LaTeX,
@@ -269,9 +293,14 @@ Because by default the \pkg{unicode-math} package will already allow entering Un
In that case the second argument must be a single token.
- Unfortunately, the command does not always work.
+ Unfortunately, the command does not always work -- it must detect the second argument to be a delimiter, but
+ if the detection fails it may not work.
\end{function}
+\emph{Note}: There's no need to provide |\umiDeclareMathAlphabet|, |\umiDeclareMathAccent| or |\umiDeclareMathRadical|, for |\umiDeclareMathChar| suffices.
+It's not supported to define \emph{control sequences}, for that the typical |\RenewDocumentCommand|
+or |\RenewCommandCopy| suffices.
+
\begin{function}{\umiRefreshDelimiterList}
\begin{syntax}
|\umiRefreshDelimiterList|
@@ -282,17 +311,15 @@ Because by default the \pkg{unicode-math} package will already allow entering Un
This command will check all the normal delimiter Unicode characters. In PDF\LaTeX\ this command does nothing.
- Another way is to use \csref{umiDefineMathDelimiter} to manually refresh individual Unicode characters,
+ Another way is to use \csref{umiDeclareMathDelimiter} to manually refresh individual Unicode characters,
this is also useful if you define an Unicode character that is not "normally" a delimiter.
\end{function}
-\begin{variable}{ignore-refresh-delimiter-list}
- Package option.
-
+\begin{option}{ignore-refresh-delimiter-list}
\csref{umiRefreshDelimiterList} will be run |\AtBeginDocument|. Pass this to disable it running.
Only needed if there's some package clash or if there's spurious warning on "not determined to be a delimiter" etc.
-\end{variable}
+\end{option}
\begin{function}{\umiPatchCmdUnicodeArg,\umiUnpatchCmdUnicodeArg}
\begin{syntax}
@@ -336,12 +363,14 @@ Because by default the \pkg{unicode-math} package will already allow entering Un
The command being patched must take exactly one argument.
This is useful because some \TeX\ primitives such as |^| or |\mathopen|
- requires either a single "character" or a group braced with |{...}| / |\bgroup...\egroup|.
+ requires either a single "character" or a group braced with |{...}| / |\bgroup...\egroup| --
+ in particular, |\Big|'s original definition is such that |\Bigl| being defined
+ as |\mathopen \Big| can work, and we must ensure it still work after the patch.
\end{function}
-\begin{variable}{ignore-patch-delimiter-commands}
- Package option. Pass this to avoid patching |\Big| etc. with the command above (only needed if there's some package clash).
-\end{variable}
+\begin{option}{ignore-patch-delimiter-commands}
+ Pass this to avoid patching |\Big| etc. with the command above (only needed if there's some package clash).
+\end{option}
\begin{function}{\umiBraceNext}
\begin{syntax}
@@ -362,11 +391,11 @@ Because by default the \pkg{unicode-math} package will already allow entering Un
then |\big⟨| will eventually execute |\oldbig{⟨}| which is the desired behavior (that |\oldbig| expects one braced argument).
\end{function}
-\begin{variable}{ignore-patch-prime}
+\begin{option}{ignore-patch-prime}
Do not patch the default definition of |'| in math mode.
By default it's patched to allow |G'²| and |G²'| to work. Only use this when there's some package clash.
-\end{variable}
+\end{option}
\begin{function}{\umiPatchPrime,\umiUnpatchPrime}
\begin{syntax}
@@ -384,6 +413,50 @@ then |\big⟨| will eventually execute |\oldbig{⟨}| which is the desired behav
This package should have tested with various \TeX\ distribution versions on Overleaf.
+\section{Advanced remarks}
+
+As mentioned before, by design this package defines the Unicode character in math mode to do whatever the corresponding
+\LaTeX\ command does \emph{at the time of use}, so if you redefine the meaning of |\alpha|, then the Unicode character |α|
+will change as well.
+
+The other "standard" way to define commands in \LaTeX\ is to assign the mathcode to the character/control sequence directly,
+using |\DeclareMathSymbol| etc. which is used to define almost all the standard control sequences.
+For efficiency reasons or other reasons, you may want to \emph{copy} the definition of an existing control sequence
+(this way the definition of the Unicode character is not changed when the control sequence changes),
+you can do that by:
+
+\begin{function}{\umiDeclareMathCharCopy}
+ \begin{syntax}
+ |\umiDeclareMathCharCopy {±} \pm|
+ \end{syntax}
+ Does what it says.
+
+ The second argument must be a single control sequence.
+\end{function}
+
+\begin{function}{\umiDeclareMathDelimiterCopy}
+ \begin{syntax}
+ |\umiDeclareMathDelimiterCopy {‖} \Vert|
+ \end{syntax}
+ Does what it says. Refer to \csref{umiDeclareMathDelimiter} for difference between this command and \csref{umiDeclareMathCharCopy}.
+\end{function}
+
+In case you want to explicitly specify a font/slot pair for an Unicode character, you can use |\DeclareMathSymbol| etc.
+directly, then use one of the commands above to copy it to the Unicode character.
+
+Useful resources:
+
+\begin{sloppypar}
+ \hbadness=10000
+\begin{itemize}
+ \item \url{https://tex.stackexchange.com/questions/98781/create-a-font-table-for-all-available-characters-for-a-particular-font}
+ \item \url{https://tex.stackexchange.com/questions/380775/font-table-for-opentype-truetype-fonts}
+ \item \url{https://ctan.org/pkg/fonttable} (need double quotes if font name has spaces: \url{https://tex.stackexchange.com/a/506246/250119})
+ \item Although there's always |texdoc encguide| for the default (non-Unicode) encodings.
+\end{itemize}
+\end{sloppypar}
+
+
\PrintChanges
\PrintIndex
\Finale
diff --git a/support/TeX4ht/source/ChangeLog b/support/TeX4ht/source/ChangeLog
index 8371f083c7..319d184bf6 100644
--- a/support/TeX4ht/source/ChangeLog
+++ b/support/TeX4ht/source/ChangeLog
@@ -1,3 +1,12 @@
+2024-01-16 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (unicode-math-hooks.4ht): added support for various
+ Unicode prime and back-prime symbols.
+
+ * tex4ht-4ht.tex (hyperref.4ht): fixed support for the `]`
+ characters in URLs in the \href command.
+ https://tex.stackexchange.com/a/707193/2891
+
2024-01-15 Michal Hoftich <michal.h21@gmail.com>
* tex4ht-4ht.tex (tcolorbox.4ht): don't use \RecallEndP in
diff --git a/support/TeX4ht/source/tex4ht-4ht.tex b/support/TeX4ht/source/tex4ht-4ht.tex
index 9372b02b23..113c21f337 100644
--- a/support/TeX4ht/source/tex4ht-4ht.tex
+++ b/support/TeX4ht/source/tex4ht-4ht.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-4ht.tex 1442 2024-01-15 22:00:31Z karl $
+% $Id: tex4ht-4ht.tex 1444 2024-01-16 16:58:10Z michal_h21 $
% tex tex4ht-4ht or ht tex tex4ht-4ht
%
% Copyright 2009-2024 TeX Users Group
@@ -4374,6 +4374,14 @@ document.
\DeclareDocumentCommand \setmathfont { O{} m O{} }{}
\DeclareDocumentCommand \unimathsetup {m} {}
\catcode`\:=11\makeatletter
+% declare prime and backprime Unicode symbols. they shouldn't be used with
+% explicit superscripts
+\DeclareDocumentCommand\dprime{}{\sp{\ht:special{t4ht@+\string&{35}x2033;}x}}
+\DeclareDocumentCommand\trprime{}{\sp{\ht:special{t4ht@+\string&{35}x2034;}x}}
+\DeclareDocumentCommand\qprime{}{\sp{\ht:special{t4ht@+\string&{35}x2057;}x}}
+\DeclareDocumentCommand\backprime{}{\sp{\ht:special{t4ht@+\string&{35}x2035;}x}}
+\DeclareDocumentCommand\backdprime{}{\sp{\ht:special{t4ht@+\string&{35}x2036;}x}}
+\DeclareDocumentCommand\backtrprime{}{\sp{\ht:special{t4ht@+\string&{35}x2037;}x}}
\endinput
>>> \AddFile{9}{unicode-math-hooks}
@@ -5547,7 +5555,10 @@ be removed safely.
\let\HyRef@currentHtag\empty
\Hy@colorlink{\@urlcolor}#1\Hy@endcolorlink
\else
- \Link[#2]{}{}\Hy@colorlink{\@urlcolor}#1\Hy@endcolorlink\EndLink
+ % we use this trick to hide possible ] characters in the URL
+ % https://tex.stackexchange.com/a/707193/2891
+ \def\:currentlink{#2}
+ \Link[\noexpand\:currentlink]{}{}\Hy@colorlink{\@urlcolor}#1\Hy@endcolorlink\EndLink
\global\let\hyper:normalise|=\:UnDef
\fi
\endgroup }
diff --git a/support/latexindent/LatexIndent/Replacement.pm b/support/latexindent/LatexIndent/Replacement.pm
index c1df5db131..a261c4dc03 100644
--- a/support/latexindent/LatexIndent/Replacement.pm
+++ b/support/latexindent/LatexIndent/Replacement.pm
@@ -71,7 +71,7 @@ sub make_replacements {
#
my $this = quotemeta( ${$_}{this} );
my $that = ( defined ${$_}{that} ) ? qq{${$_}{that}} : q();
- ${$self}{body} = join( $that, split( $this, ${$self}{body} ) );
+ ${$self}{body} = join( $that, split( /$this/, ${$self}{body}, -1 ) );
}
else {
#
diff --git a/support/latexindent/LatexIndent/Version.pm b/support/latexindent/LatexIndent/Version.pm
index d5ea0dd260..f56a438ec0 100644
--- a/support/latexindent/LatexIndent/Version.pm
+++ b/support/latexindent/LatexIndent/Version.pm
@@ -20,6 +20,6 @@ use warnings;
use Exporter qw/import/;
our @EXPORT_OK = qw/$versionNumber $versionDate/;
-our $versionNumber = '3.23.5';
-our $versionDate = '2024-01-01';
+our $versionNumber = '3.23.6';
+our $versionDate = '2024-01-17';
1
diff --git a/support/latexindent/README b/support/latexindent/README
index 019150fcab..9a21dd77ce 100644
--- a/support/latexindent/README
+++ b/support/latexindent/README
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- latexindent.pl, version 3.23.5, 2024-01-01
+ latexindent.pl, version 3.23.6, 2024-01-17
PERL script to indent code within environments, and align delimited
environments in .tex files.
diff --git a/support/latexindent/bin/linux/latexindent b/support/latexindent/bin/linux/latexindent
index 2c335323a2..831e122a92 100644
--- a/support/latexindent/bin/linux/latexindent
+++ b/support/latexindent/bin/linux/latexindent
Binary files differ
diff --git a/support/latexindent/bin/macos/latexindent b/support/latexindent/bin/macos/latexindent
index 0470b4bdd2..ad7ab51add 100644
--- a/support/latexindent/bin/macos/latexindent
+++ b/support/latexindent/bin/macos/latexindent
Binary files differ
diff --git a/support/latexindent/defaultSettings.yaml b/support/latexindent/defaultSettings.yaml
index 1943c272da..a00474e143 100644
--- a/support/latexindent/defaultSettings.yaml
+++ b/support/latexindent/defaultSettings.yaml
@@ -1,5 +1,5 @@
#
-# latexindent.pl, version 3.23.5, 2024-01-01
+# latexindent.pl, version 3.23.6, 2024-01-17
#
# defaultSettings.yaml, the default settings for latexindent.pl
#
diff --git a/support/latexindent/documentation/latexindent-yaml-schema.json b/support/latexindent/documentation/latexindent-yaml-schema.json
index 43739e7af6..0bb03ddc43 100644
--- a/support/latexindent/documentation/latexindent-yaml-schema.json
+++ b/support/latexindent/documentation/latexindent-yaml-schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/schema",
"$id": "latexindent-yaml-schema.json",
"title": "latexindent.pl YAML schema",
- "description": "latexindent.pl YAML schema helper, V3.23.5 2024-01-01",
+ "description": "latexindent.pl YAML schema helper, V3.23.6 2024-01-17",
"type": "object",
"properties": {
"fileExtensionPreference": {
diff --git a/support/latexindent/documentation/latexindent.pdf b/support/latexindent/documentation/latexindent.pdf
index e698d5923f..fe0fa82176 100644
--- a/support/latexindent/documentation/latexindent.pdf
+++ b/support/latexindent/documentation/latexindent.pdf
Binary files differ
diff --git a/support/latexindent/latexindent.pl b/support/latexindent/latexindent.pl
index a8e82f2bd9..e5c034dd77 100755
--- a/support/latexindent/latexindent.pl
+++ b/support/latexindent/latexindent.pl
@@ -1,6 +1,6 @@
#!/usr/bin/env perl
#
-# latexindent.pl, version 3.23.5, 2024-01-01
+# latexindent.pl, version 3.23.6, 2024-01-17
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/systems/texlive/tlnet/tlpkg/TeXLive/TLWinGoo.pm b/systems/texlive/tlnet/tlpkg/TeXLive/TLWinGoo.pm
index e468d8719a..b70f8c0d69 100644
--- a/systems/texlive/tlnet/tlpkg/TeXLive/TLWinGoo.pm
+++ b/systems/texlive/tlnet/tlpkg/TeXLive/TLWinGoo.pm
@@ -1,4 +1,4 @@
-# $Id: TLWinGoo.pm 65994 2023-02-20 23:40:00Z karl $
+# $Id: TLWinGoo.pm 69435 2024-01-15 20:05:55Z siepo $
# TeXLive::TLWinGoo.pm - Windows goop.
# Copyright 2008-2023 Siep Kroonenberg, Norbert Preining
# This file is licensed under the GNU General Public License version 2
@@ -13,7 +13,7 @@
package TeXLive::TLWinGoo;
-my $svnrev = '$Revision: 65994 $';
+my $svnrev = '$Revision: 69435 $';
my $_modulerevision;
if ($svnrev =~ m/: ([0-9]+) /) {
$_modulerevision = $1;
@@ -34,7 +34,6 @@ C<TeXLive::TLWinGoo> -- TeX Live Windows-specific support
=head2 DIAGNOSTICS
- TeXLive::TLWinGoo::is_ten;
TeXLive::TLWinGoo::admin;
TeXLive::TLWinGoo::non_admin;
TeXLive::TLWinGoo::reg_country;
@@ -91,7 +90,6 @@ BEGIN {
use vars qw( @ISA @EXPORT @EXPORT_OK $Registry);
@ISA = qw( Exporter );
@EXPORT = qw(
- &is_ten
&admin
&non_admin
);
@@ -179,36 +177,8 @@ if ($is_win) {
=head2 DIAGNOSTICS
-=over 4
-
-=item C<win_version>
-
-C<win_version> returns the Windows version number as stored in the
-registry: 5.0 for Windows 2000, 5.1 for Windows XP and 6.0 for Vista.
-
=cut
-my $windows_version = 0;
-my $windows_subversion = 0;
-
-if ($is_win) {
- my $ver = `ver`;
- chomp $ver;
- $ver =~ s/^[^0-9]*//;
- $ver =~ s/[^0-9.]*$//;
- ($windows_version = $ver) =~ s/\..*$//;
- ($windows_subversion = $ver) =~ s/^[^\.]*\.//;
- $windows_subversion =~ s/\..*$//;
-}
-
-=item C<is_ten>
-
-C<is_ten> returns 1 if windows version is >= 10.0, otherwise 0.
-
-=cut
-
-sub is_ten { return $windows_version >= 10; }
-
# permissions with which we try to access the system environment
my $is_admin = 1;
@@ -1272,7 +1242,7 @@ UNEND3
# but not for a user install under win10 because then
# it shows up in Settings / Apps / Apps & features,
# where it will trigger an inappropriate UAC prompt
- if (admin() || !is_ten()) {
+ if (admin()) {
&log("Registering uninstaller\n");
my $k;
my $uninst_key = $Registry -> Open((admin() ? "LMachine" : "CUser") .
diff --git a/systems/texlive/tlnet/tlpkg/installer/config.guess b/systems/texlive/tlnet/tlpkg/installer/config.guess
index cdfc439204..f6d217a49f 100755
--- a/systems/texlive/tlnet/tlpkg/installer/config.guess
+++ b/systems/texlive/tlnet/tlpkg/installer/config.guess
@@ -1,10 +1,10 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2023 Free Software Foundation, Inc.
+# Copyright 1992-2024 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale
-timestamp='2023-08-22'
+timestamp='2024-01-01'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -60,7 +60,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2023 Free Software Foundation, Inc.
+Copyright 1992-2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -165,6 +165,8 @@ Linux|GNU|GNU/*)
LIBC=dietlibc
#elif defined(__GLIBC__)
LIBC=gnu
+ #elif defined(__LLVM_LIBC__)
+ LIBC=llvm
#else
#include <stdarg.h>
/* First heuristic to detect musl libc. */
@@ -1593,6 +1595,9 @@ EOF
*:Unleashed:*:*)
GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
;;
+ *:Ironclad:*:*)
+ GUESS=$UNAME_MACHINE-unknown-ironclad
+ ;;
esac
# Do we have a guess based on uname results?
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 31122bbb3c..251021d7a9 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2023
-depend revision/69420
+depend revision/69463
name 00texlive.image
category TLCore
-revision 69420
+revision 69452
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
@@ -462,6 +462,7 @@ runfiles size=13630
tlpkg/tlpsrc/altsubsup.tlpsrc
tlpkg/tlpsrc/amiri.tlpsrc
tlpkg/tlpsrc/amiweb2c-guide.tlpsrc
+ tlpkg/tlpsrc/amnestyreport.tlpsrc
tlpkg/tlpsrc/amsaddr.tlpsrc
tlpkg/tlpsrc/amscdx.tlpsrc
tlpkg/tlpsrc/amscls-doc.tlpsrc
@@ -4834,7 +4835,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 69415
+revision 69447
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
@@ -17525,6 +17526,39 @@ catalogue-license lppl1.3c
catalogue-topics documentation
catalogue-version 1.0
+name amnestyreport
+category Package
+revision 69439
+shortdesc A LaTeX class for Amnesty International
+relocated 1
+longdesc This package provides a class for Amnesty International reports
+longdesc according to guidelines at https://brandhub.amnesty.org/.
+containersize 5240
+containerchecksum 9fb76037c976d48259609295b876a256e5b72e611c7ece52cbc39b7df607d58a90ce2b0a0ff33d816c08f869e911a2cf979b8635a044697af8331d8769382be5
+doccontainersize 1544912
+doccontainerchecksum e3a3989cd630e3776bfc103d5ebd7fcdd39464e49338b638b165e1c486a7afb58ebc907e2fcaaf008be5463f3496e66aa36b0bebea87d1d945a0497469f36eb5
+docfiles size=392
+ RELOC/doc/latex/amnestyreport/BoschFragment.png
+ RELOC/doc/latex/amnestyreport/README details="Readme"
+ RELOC/doc/latex/amnestyreport/amnestyreport.pdf details="Package documentation"
+ RELOC/doc/latex/amnestyreport/amnestytemplate.tex
+ RELOC/doc/latex/amnestyreport/examplereferences.bib
+ RELOC/doc/latex/amnestyreport/sample.Rmd
+ RELOC/doc/latex/amnestyreport/sample.pdf details="Example of use"
+ RELOC/doc/latex/amnestyreport/sample.tex
+srccontainersize 11396
+srccontainerchecksum bacce1f1ab7f2c6220c1fb59ecd63a4dc93405e57654390f377c5b6b511a5f732198e869b955211a752e94aa8c1601c4ea13d3d0aea7324a3ae38e035ff3e43e
+srcfiles size=11
+ RELOC/source/latex/amnestyreport/Makefile
+ RELOC/source/latex/amnestyreport/amnestyreport.dtx
+ RELOC/source/latex/amnestyreport/amnestyreport.ins
+runfiles size=4
+ RELOC/tex/latex/amnestyreport/amnestyreport.cls
+catalogue-ctan /macros/latex/contrib/amnestyreport
+catalogue-license lppl1.3
+catalogue-topics class report-like std-conform
+catalogue-version 1.2
+
name amsaddr
category Package
revision 64357
@@ -37087,7 +37121,7 @@ catalogue-version 2.6
name bibcop
category Package
-revision 69395
+revision 69454
shortdesc Style checker for .bib files
longdesc This LaTeX package checks the quality of your .bib file and
longdesc emits warning messages if any issues are found. For this, the
@@ -37098,10 +37132,10 @@ longdesc Windows.
depend bibcop.ARCH
depend iexec
depend pgfopts
-containersize 8168
-containerchecksum e4520627247c144f8fdaa3f3923f150297714171124f3e76e0d772ef0455d89c8229574a3e9bc8875c6902103465dace4eda81b0e30de3830152f3cd260bc794
+containersize 8180
+containerchecksum 31f7f19f43b7e2c89da45b73e7049eac432dacf1d9c78d4e9334422838dab9367318c31100b7caf9837cc98699fb6bc9782c80845a8d9982364469459b3a1749
doccontainersize 359716
-doccontainerchecksum 30ee2abd74da23ece25080c25c9c94bf44a54dea50088fa6a04109a7f67c9ddbd08973679499854cc4a29ed432a110283319cd2f8f53f6aed005a03218d0ab0c
+doccontainerchecksum 3f0a1ba3c2ac798a57250c38c8b95e3029fd414d0fc85f7fb0d6d1fb62f6893b9044ab58697c9f4b2450480581acf891da3fdf90425e4c5a13eadc033ae85b26
docfiles size=95
texmf-dist/doc/bibtex/bibcop/DEPENDS.txt
texmf-dist/doc/bibtex/bibcop/LICENSE.txt
@@ -37110,8 +37144,8 @@ docfiles size=95
texmf-dist/doc/bibtex/bibcop/bibcop.pdf details="Package documentation"
texmf-dist/doc/man/man1/bibcop.1
texmf-dist/doc/man/man1/bibcop.man1.pdf
-srccontainersize 6244
-srccontainerchecksum e2bfecbc459f92887760ce2862874f05a392970c8d5dc5564a46128564f7da7d8dec4d4fa27ae4381efc79222760d76c74f19f5a6216fc234a377f83402ee0db
+srccontainersize 6240
+srccontainerchecksum 23aa6b5a8d7826cef40c29e5e2675aa8390e4ebbdc478037f861068a3ceab43e8f91b73a688998e9522b0907e28829ba90df845d3cb4b794d1d3af7648ace05b
srcfiles size=5
texmf-dist/source/bibtex/bibcop/bibcop.dtx
texmf-dist/source/bibtex/bibcop/bibcop.ins
@@ -37122,7 +37156,7 @@ catalogue-contact-repository https://github.com/yegor256/bibcop
catalogue-ctan /biblio/bibtex/utils/bibcop
catalogue-license mit
catalogue-topics biblio-supp ext-code
-catalogue-version 0.0.17
+catalogue-version 0.0.18
name bibcop.aarch64-linux
category Package
@@ -43967,7 +44001,7 @@ catalogue-version 1.6
name bodeplot
category Package
-revision 69397
+revision 69442
shortdesc Draw Bode, Nyquist and Nichols plots with gnuplot or pgfplots
relocated 1
longdesc This is a LaTeX package to plot Bode, Nichols, and Nyquist
@@ -43981,15 +44015,15 @@ longdesc and unstable second order transfer functions. Support for both
longdesc Gnuplot (default) and pgfplots (package option pgf). Support
longdesc for linear and asymptotic approximation of magnitude and phase
longdesc plots of any transfer function given poles, zeros, and gain.
-containersize 5788
-containerchecksum ce07cd6d21576123e5fcbefe15417f90a3c8bb65344a0700cb017bbcf76a27b2a3938e7d3f13e12a06398f6af739af69d4e09e614f1ca58850f2d74150bedb71
-doccontainersize 738136
-doccontainerchecksum 478f633335f8fd55c712c37b11f54523c9d51a650d9025bd0f09b4ba77241710a6921fac8caac6ab0c4aeab252ba89886871c3887b327d1abc01771e6e9c5618
-docfiles size=267
+containersize 5792
+containerchecksum c8adf79728e4aaca8762d6125b4f0c04254d27811077388ca5e89e2fa7b03337ee494ccebe74e1b92c51e4ba0f56c4da8029cfb9d980a15f55c1cb50e744a830
+doccontainersize 554784
+doccontainerchecksum 74baacbe307a7fe9b0a6400d32fa9d78064a656fd29791a2bc34ccecf0f4d6cc3e8c52f7da91f36a656da5363d34e85c4e7b74fac6e0345c8cc69ddb424eed20
+docfiles size=217
RELOC/doc/latex/bodeplot/README.md details="Readme"
RELOC/doc/latex/bodeplot/bodeplot-doc.pdf details="Package documentation"
-srccontainersize 17376
-srccontainerchecksum 53c0f4825ad3323af7cb59ee07327d628a075e86dc880edffcac25dd0b3891d2f156085764cf0153c4b7bb9549f6e9253d090a4b08c0d12d195e872dbab02686
+srccontainersize 17324
+srccontainerchecksum c2b6ae18ac11fc793ef15fcb89e5b4f5670a074cdcc24229492b247bc980a20e7526ad3a9793a44f2060097c5aa013fba281d923a28162ac63086354ea2b0f3d
srcfiles size=27
RELOC/source/latex/bodeplot/bodeplot.dtx
RELOC/source/latex/bodeplot/bodeplot.ins
@@ -44001,7 +44035,7 @@ catalogue-contact-repository https://github.com/rlkamalapurkar/bodeplot
catalogue-ctan /graphics/pgf/contrib/bodeplot
catalogue-license lppl1.3c
catalogue-topics engineering graphics-plot pgf-tikz
-catalogue-version 1.1.5
+catalogue-version 1.1.6
name bohr
category Package
@@ -71681,7 +71715,7 @@ containerchecksum 889eae40b82f31c7c4b3a17740399c763dabec7986fcb39261b252afff69a0
name collection-latexextra
category Collection
-revision 69389
+revision 69452
shortdesc LaTeX additional packages
relocated 1
longdesc A very large collection of add-on packages for LaTeX.
@@ -71748,6 +71782,7 @@ depend autonum
depend autopdf
depend autopuncitems
depend avremu
+depend awesomebox
depend axessibility
depend background
depend bankstatement
@@ -73210,8 +73245,8 @@ depend zref-clever
depend zref-vario
depend zwgetfdate
depend zwpagelayout
-containersize 7068
-containerchecksum 9241966245fa9c875e458a781779f1ab00b615cfee8e5b4a591bd2fe71ed0ef148f7ed40559e7a54c6a46c63305838bb2e46634a2f434d550e80366af2f329a1
+containersize 7072
+containerchecksum bb1fbab6ef9acc1f4ac06d524b36deb92044dcd22e81c5c725d4558eb8770700f7c60d4045ec1c76cff0d94a45a45cc96a81662756a96e1fccf16468fcf51790
name collection-latexrecommended
category Collection
@@ -74297,7 +74332,7 @@ containerchecksum 508276fe37018f3d9773fc7cda0cb37edcdd28e9cf8ab54ed5be16b07c2066
name collection-publishers
category Collection
-revision 69033
+revision 69439
shortdesc Publisher styles, theses, etc.
relocated 1
depend aastex
@@ -74312,6 +74347,7 @@ depend afparticle
depend afthesis
depend aguplus
depend aiaa
+depend amnestyreport
depend anonymous-acm
depend anufinalexam
depend aomart
@@ -74586,8 +74622,8 @@ depend yathesis
depend yazd-thesis
depend yb-book
depend york-thesis
-containersize 1728
-containerchecksum 3bef1e82951ac3624c88c3f42e7d9dfdb4aaef71648852a0df777276139a1fa121f640420d5977a5eae99a590a53eb96854dc97b6637bbebf76e63a7c1248228
+containersize 1736
+containerchecksum 07d08a200302a0395d26630c10c44b439513ce922047f24d39b3b796133d1bf18d7662293c037c0b47abd24aafe0bb3c3b55272c2b20ce1c173df3a2a5d04ad3
name collection-texworks
category Collection
@@ -74614,13 +74650,12 @@ containerchecksum 8af5c376990a7ed062588a0eb8695455936a92376b94f157d75a22f976f620
name collection-xetex
category Collection
-revision 64951
+revision 69452
shortdesc XeTeX and packages
relocated 1
longdesc Packages for XeTeX, the Unicode/OpenType-enabled TeX by
longdesc Jonathan Kew, http://tug.org/xetex.
depend arabxetex
-depend awesomebox
depend bidi-atbegshi
depend bidicontour
depend bidipagegrid
@@ -74662,8 +74697,8 @@ depend xetexfontinfo
depend xetexko
depend xevlna
depend zbmath-review-template
-containersize 660
-containerchecksum 457c4e7a3e2089adc69173950c5d3fa177c6e03c5936c49328bbd3c276d9940ba5aca974aea4b97c5dd51b6ec1ca9ebe28861e730aef63b1312589e0cb16df1e
+containersize 652
+containerchecksum 5ec49133c1a9f43a8c025fc3b46d855d13f230f2885ed1d2cf57aa32f071a471a9c77c590e1269c885be045ea9c8cd36334a4b4fe647aa23454e91e42c229089
name collref
category Package
@@ -105670,7 +105705,7 @@ catalogue-topics notes editorial
name easybook
category Package
-revision 69411
+revision 69457
shortdesc Easily typesetting Chinese theses or books
relocated 1
longdesc easybook is a pure academic template created based on the
@@ -105681,16 +105716,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 16444
-containerchecksum 384ca42bbf351ddcde2675f202c4fc8d8413b074415d55f80858e982d8cc487583b00618b8a9a0fa084305b0bc425438c5859a18e8b2127d7cc58976049148cb
-doccontainersize 622156
-doccontainerchecksum 8a9ec5d3147540f5ebebc7c85a2c1413a86d96d5961d7dadf9f24179bdf546f7645dc157a7f1b3ec12daefe243dafec828380532e867958733fa554baea45dcf
+containersize 16612
+containerchecksum 1d4753fb37f821708a1aaf3f7afb2074427b13539fdd69953db5e5f394a4467eeeeb25b7618c145e61bba18696de56a42dda9fae280c6350b70264efe5639d23
+doccontainersize 625352
+doccontainerchecksum 0cfdd40633811e41a9877d41d44f5c257277aee092f60d3cbb3ae437eba5a324d3905d0c0047d3152f0ccc89d1ed5ed8568b01cc3fc4ae0435faced4627f2161
docfiles size=170
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 16356
-srccontainerchecksum aef472cd48badc742213b17cfad43b5c5b59b4bc185548a3332a733542301f6cb6f9de10b60d6b7d860f6e2e62c43b9338a14eb5683456563e38377d84bc08dd
+srccontainersize 16480
+srccontainerchecksum 6eff17397a34e39b2ddfbac8ea6273a763e90cdca3de424e7f2643883d8c7f164382849332939010c3717917d1535f5900887d51c4a0d96a9352f91c64f691a9
srcfiles size=20
RELOC/source/latex/easybook/easybook.dtx
RELOC/source/latex/easybook/easybook.ins
@@ -105703,7 +105738,7 @@ catalogue-contact-repository https://gitee.com/texno3/easybook
catalogue-ctan /macros/latex/contrib/easybook
catalogue-license lppl1.3c
catalogue-topics book-pub dissertation class doc-templ chinese expl3
-catalogue-version 2024G
+catalogue-version 2024I
name easydtx
category Package
@@ -179980,7 +180015,7 @@ catalogue-version 2.0e
name latex
category Package
-revision 68720
+revision 69443
shortdesc A TeX macro package that defines LaTeX
relocated 1
longdesc LaTeX is a widely-used macro package for TeX, providing many
@@ -180002,11 +180037,11 @@ depend latex-fonts
depend latexconfig
depend luatex
depend pdftex
-containersize 238136
-containerchecksum 5db84e105289993a7b03358f17af52568fc826c677368aec4c9326c1ca974961de01833b038aae6b95101a05dbd60f6714756d866e1a144c30199a0bd661e30c
-doccontainersize 34912628
-doccontainerchecksum 53f76796c526b4357b48df1443baedf5af5304da87b21ed2ee6619184c9daec33c8fd7a059f92c0dc037c1b19c3bedf804e907c8031385b1f62d199c7af67e2b
-docfiles size=11018
+containersize 238228
+containerchecksum b6696892356c87acc788255f0023f081078878f4f76408be138b8b9b62f0fe01f8dd8bb68c8049fea319b41dfe4dafadb3237869fcde797ff5580ba94d68a473
+doccontainersize 34918312
+doccontainerchecksum d599e1fb7c4433658aa65df89ca318467b3c6689d3e4e2d16bddd9397968888052937900d382fdd43fe627813e40d242d7728325a1bc15c8ab5658fd6ea4c912
+docfiles size=11016
RELOC/doc/latex/base/README.md
RELOC/doc/latex/base/alltt.pdf
RELOC/doc/latex/base/bugs.txt
@@ -180187,8 +180222,8 @@ docfiles size=11018
RELOC/doc/latex/base/utf8ienc.pdf
RELOC/doc/latex/base/webcomp.err
RELOC/doc/latex/base/webcomp.pdf
-srccontainersize 750128
-srccontainerchecksum c6c5244599aa46ee18f66dfbb59e59411625cdb75333bd84a461f3c03b3f4d0400e3d6100b1f511107d779f0adc7dc1ae50952c1315ed587b95432dd3b659a0c
+srccontainersize 750220
+srccontainerchecksum 4b156445e50bd24dc3ab2f90088b0ae5e25930818fa14b7db3ccc1aec4642cb3172f07c57bf0dab3e17f91cf22e1b5d5fa08e705e392635328fd366514da7a24
srcfiles size=1107
RELOC/source/latex/base/alltt.dtx
RELOC/source/latex/base/alltt.ins
@@ -180467,7 +180502,7 @@ runfiles size=674
catalogue-contact-home http://www.latex-project.org/
catalogue-license lppl1.3c
catalogue-topics format
-catalogue-version 2023-06-01 PL1
+catalogue-version 2023-11-01 PL1
name latex-amsmath-dev
category Package
@@ -194407,7 +194442,7 @@ catalogue-topics font font-body font-type1 font-serif font-sans font-proportiona
name libertinust1math
category Package
-revision 69062
+revision 69440
shortdesc A Type 1 font and LaTeX support for Libertinus Math
relocated 1
longdesc The package provides a Type1 version of Libertinus Math, with a
@@ -194416,10 +194451,10 @@ longdesc allow it to serve as a math accompaniment to Libertine under
longdesc LaTeX. In addition, with option sansmath, it can function as a
longdesc standalone math font with sans serif Roman and Greek letters.
execute addMap libertinust1math.map
-containersize 1248760
-containerchecksum 9a44af1c4f96453aa69c83658c9474838efcf1020c9301d12577a403371d2b3127fefb57baa0bd5fa5ef737e842abd4f9c368761ee38f6285aeb5a2dd88ad1af
-doccontainersize 1533708
-doccontainerchecksum 14c87d5e0d19d818152bf1a5dd7533eb651d5b477f3e42d42277fc4040a263114fc2006000af25884c7dfc64de0936d950fcacdf7fc55e4d09c2d756400c34f3
+containersize 1248764
+containerchecksum ad93607e4accadbc0a429bab7d6bb8ba964a98324a9c65fc1993db025a728dfb8b3e48e3d67552a88bbecad247db573d1b1f7386e1aacce7954b00ace4feacb3
+doccontainersize 1533744
+doccontainerchecksum 012227a7d46da30dc4a20b403a0f0abc0010d6902585c18a0bb3fea1e4b7cf58b629ae8c49597c6c39a264cf25a7a80877cb09e99b0f59b01d37198c5c4db769
docfiles size=1246
RELOC/doc/fonts/libertinust1math/FONTLOG.txt
RELOC/doc/fonts/libertinust1math/LibertinusT1Math-doc.pdf details="Package documentation"
@@ -194523,7 +194558,7 @@ runfiles size=543
catalogue-ctan /fonts/libertinust1math
catalogue-license ofl lppl
catalogue-topics font-serif font-sans font-maths font-type1
-catalogue-version 2.0.3
+catalogue-version 2.0.4
name libgreek
category Package
@@ -211561,7 +211596,7 @@ catalogue-version 1.7e
name memoize
category Package
-revision 69285
+revision 69456
shortdesc Externalization of graphics and memoization of compilation results in general
longdesc Memoize is a package for externalization of graphics and
longdesc memoization of compilation results in general, allowing the
@@ -211576,10 +211611,10 @@ longdesc cross-referencing, TikZ overlays and Beamer, (v) works with all
longdesc major engines and formats, and (vi) is adaptable to any
longdesc workflow.
depend memoize.ARCH
-containersize 27692
-containerchecksum 1464aad053b69b821e1c99c72a6e448a231a554c1f04d31550fe29401698705fca9c97149435655269d3128885601d4917c7954be2990905360cde1de73db477
-doccontainersize 2501412
-doccontainerchecksum d210344a90649cdd67b118aca5096db266fede551b7170de088eec4a40b765b9a66b890824092329f76969ebab71dfe6faa3a55ba46bd8b5af9d092cf4fb4aa1
+containersize 27704
+containerchecksum 5e4016350f1bd7455890c7cb068b9f61545545821b722d91a2c29d8ba83c3bbe64b4c67d4dbfbd9cd1aff4d6ae7a8c2f8c073a9a7b2f95564da33890b0bcc0fc
+doccontainersize 2501444
+doccontainerchecksum 0ffcd2fef90f2295d440fbefa4bcb1cbaa2988096c9045b46d14af77dbc4fb14a90b9f090308bd88b7fba3946fc39ab2d21916b2e514a91fc2252884b659ac5d
docfiles size=870
texmf-dist/doc/generic/memoize/CHANGELOG.md
texmf-dist/doc/generic/memoize/FILES
@@ -211611,8 +211646,8 @@ docfiles size=870
texmf-dist/doc/man/man1/memoize-extract.pl.man1.pdf
texmf-dist/doc/man/man1/memoize-extract.py.1
texmf-dist/doc/man/man1/memoize-extract.py.man1.pdf
-srccontainersize 38860
-srccontainerchecksum 68ac9d4a8af74c5d4922da8d8f2c89518bf855d8d578d0df1d9fd798f242c0a339a0e76d10b913a178c0c4195ffbd2e1aab7d3927ba4ea6133fb5e45ce4f9eef
+srccontainersize 38880
+srccontainerchecksum 8724636e205cd0ad5349ecd82748fd1170b341091cf20efbfacd7a27225139a1c897e804d7d2a6ef1ffe91dec86cf0f642daccda33b0a41d5246b988b89742b5
srcfiles size=39
texmf-dist/source/generic/memoize/Makefile
texmf-dist/source/generic/memoize/memoize.edtx
@@ -211637,7 +211672,7 @@ catalogue-contact-repository https://github.com/sasozivanovic/memoize
catalogue-ctan /macros/generic/memoize
catalogue-license lppl1.3c
catalogue-topics compilation ext-code cond-comp macro-gen graphics
-catalogue-version 1.1.0
+catalogue-version 1.1.1
name memoize.aarch64-linux
category Package
@@ -233711,7 +233746,7 @@ catalogue-version 1.055
name newtxtt
category Package
-revision 54512
+revision 69451
shortdesc Enhancement of typewriter fonts from newtx
relocated 1
longdesc The package provides enhanced fonts with LaTeX support files
@@ -233719,15 +233754,15 @@ longdesc providing access to the typewriter fonts from newtx. Regular
longdesc and bold weights, slanted variants and a choice of four
longdesc different styles for zero.
execute addMap newtxtt.map
-containersize 116976
-containerchecksum 8d453dd25a50384aa0ffc620448a7c1ecff58b51b2cefd0ee2a3ea98ef274ffe1a11e6e26ccabc1d218d4a3f69da4cb254b3e9c6ee9fa99ac32d8714c15a9164
-doccontainersize 171356
-doccontainerchecksum 0a29f11edadeec4284ac9c9c04230a925517b198eb3653a456ab68bf495a9dd0b846cea4c3e1a425539f0b834d37f8f9a7f20e5945e8c8efea7ab4bb9342f6fd
-docfiles size=45
+containersize 117944
+containerchecksum 8139f2084b0ea3cbd7b03951152aadd1d2658106806ccb52f09203fba2a657138227da5512fcaf8954efc56d2b7976738eeed6530ed8d709c92d8031ea6f6b12
+doccontainersize 194632
+doccontainerchecksum 533360ee2cb99b4c71bd9a1b77e51e4aa341c8ea58ad587252a896c8ecf4dc2b92c92f9ed2af4db042ab68a5710022186c3cdc8787d47459037ec8171be73e40
+docfiles size=52
RELOC/doc/fonts/newtxtt/README details="Readme"
RELOC/doc/fonts/newtxtt/newtxtt-doc.pdf details="Package documentation"
RELOC/doc/fonts/newtxtt/newtxtt-doc.tex
-runfiles size=204
+runfiles size=205
RELOC/fonts/enc/dvips/newtxtt/txttAec.enc
RELOC/fonts/enc/dvips/newtxtt/txttAqec.enc
RELOC/fonts/enc/dvips/newtxtt/txttBec.enc
@@ -233863,6 +233898,7 @@ runfiles size=204
RELOC/fonts/tfm/public/newtxtt/tcxbttzsl.tfm
RELOC/fonts/tfm/public/newtxtt/tcxttz.tfm
RELOC/fonts/tfm/public/newtxtt/tcxttzsl.tfm
+ RELOC/fonts/tfm/public/newtxtt/txttz.tfm
RELOC/fonts/type1/public/newtxtt/newtxbtt.pfb
RELOC/fonts/type1/public/newtxtt/newtxbttsc.pfb
RELOC/fonts/type1/public/newtxtt/newtxtt.pfb
@@ -233875,7 +233911,7 @@ runfiles size=204
catalogue-ctan /fonts/newtxtt
catalogue-license gpl3 lppl
catalogue-topics font font-type1 font-mono font-supp font-t1enc
-catalogue-version 1.056
+catalogue-version 1.057
name newunicodechar
category Package
@@ -258919,28 +258955,28 @@ catalogue-topics doc-supp
name piton
category Package
-revision 69320
+revision 69437
shortdesc Typeset Python listings with LPEG
relocated 1
longdesc This package uses the Lua library LPEG to typeset and highlight
longdesc informatic listings in several languages (Python, OCaml, SQL
longdesc and C++). It requires the use of LuaLaTeX. It won't work with
longdesc XeLaTeX, nor pdfLaTeX.
-containersize 16704
-containerchecksum 95028768d96516ebd9b44abd790d47694716edc795bafed8ec8ddc54626792b0590295e87ee8d06740b50d42b2e4a00c326cc8ce737ff31b2f0d42130f8a57c5
-doccontainersize 813280
-doccontainerchecksum 11825345e1017add9674e543d146dd151fb3d9dbcc228ec0660392a12e0baa7ec08f224d7024f059ca125f26e744e083369fb972c308173e17908b0d48ce2aa1
-docfiles size=353
+containersize 17356
+containerchecksum a698dbcb6406981b94000609c6e75e1f669f6f82b0ddeedb686b654fcd45a7dcc678f03e0d68549e57e8f5c6f921e7a5591f70af5ff956cdf46af08c0a261aad
+doccontainersize 830348
+doccontainerchecksum cb704c81b4bebbe8dbfdbcc9978476f0377d029c7f9f187db58297453977ffa09294f41847b56f843f64789a98dad4b98b4cff196108b9cd7aa28a77968004dd
+docfiles size=366
RELOC/doc/lualatex/piton/README.md details="Readme"
RELOC/doc/lualatex/piton/piton-french.pdf details="Package documentation (French)" language="fr"
RELOC/doc/lualatex/piton/piton-french.tex
RELOC/doc/lualatex/piton/piton.pdf details="Package documentation (English)"
-srccontainersize 48396
-srccontainerchecksum f29cdafeb5efbe3a0d927a68183687aaa6ac6f932a24d362af32827377de566f69c8721329546d07c1a1127da587b25fa3b649ffed0579056e88bf9e987bb7c6
-srcfiles size=60
+srccontainersize 49484
+srccontainerchecksum 88e7a9a60ec494211a7710e9a3065b07ff7161f250e1e603fb8b0456c1aa2f82e111bd94742b64114130bc1cf104cf2f94a2e1081aafca1e6f63bd6f817c4160
+srcfiles size=63
RELOC/source/lualatex/piton/piton.dtx
RELOC/source/lualatex/piton/piton.ins
-runfiles size=23
+runfiles size=26
RELOC/tex/lualatex/piton/piton.lua
RELOC/tex/lualatex/piton/piton.sty
catalogue-also codehigh
@@ -258948,7 +258984,7 @@ catalogue-contact-repository https://github.com/fpantigny/piton
catalogue-ctan /macros/luatex/latex/piton
catalogue-license lppl1.3
catalogue-topics listing synt-hlt luatex expl3
-catalogue-version 2.3
+catalogue-version 2.4
name pittetd
category Package
@@ -265405,7 +265441,7 @@ catalogue-version 0.13c
name ppt-slides
category Package
-revision 68764
+revision 69458
shortdesc Good-looking slide decks a la PowerPoint (PPT)
relocated 1
longdesc This LaTeX package helps you create slide decks as good-looking
@@ -265424,19 +265460,19 @@ depend tikzpagenodes
depend tools
depend varwidth
depend xcolor
-containersize 4204
-containerchecksum 6b4748adc7f9823f7ff3dce2a73c4535085974a9f7cda33b53a934acd3399e310a85dbdf367102f71c310b8678119d3396f71f36e3e26063569a85af0c77595c
-doccontainersize 789572
-doccontainerchecksum e258319f37ef32ce20ec72e055755ce1782e2133a98fdfaeee6402c404df02e1c60ef9fbdaff39306da947534b6bd79fd16c2b82d4a635325ad8c94858b4cbea
+containersize 4112
+containerchecksum 59191fec553512620c04c25f1d9967440253cf54503f34c6e1502e734a14dc9877ede13d334fd7f87bd86f5671fb410eef0c0068d707f8bb0566a12f4e2c2a7f
+doccontainersize 791348
+doccontainerchecksum ccb47339e04eb07325dd489f389a569e523614d5808988070848d14f00d9e6e4abbff3cc9175f04c4af374b6e95629cf32752dffdec008af62b3de658592c1da
docfiles size=256
RELOC/doc/latex/ppt-slides/DEPENDS.txt
RELOC/doc/latex/ppt-slides/LICENSE.txt
RELOC/doc/latex/ppt-slides/README.md details="Readme"
RELOC/doc/latex/ppt-slides/ppt-slides.pdf details="Package documentation and example of use"
RELOC/doc/latex/ppt-slides/socrates.jpg
-srccontainersize 6516
-srccontainerchecksum a5f1384b3d4fd1e33e924b2bc51498c509772136bac0c03abab8125ab5ef0720f5583ffb9236ce9a044bb87127e0f42ae6668c4fd2b0b98f07e32ded13ce619b
-srcfiles size=6
+srccontainersize 6680
+srccontainerchecksum b7c0f8c8503900f84ae8e98b9cdc4b0b68ea72bab031f09cc602a55063a12f750fd9c290e1079ec9f46c1e65b86144cec73388fcc134359266442c960d3078c3
+srcfiles size=7
RELOC/source/latex/ppt-slides/ppt-slides.dtx
RELOC/source/latex/ppt-slides/ppt-slides.ins
runfiles size=7
@@ -265450,7 +265486,7 @@ catalogue-contact-repository https://github.com/yegor256/ppt-slides
catalogue-ctan /macros/latex/contrib/ppt-slides
catalogue-license mit
catalogue-topics presentation
-catalogue-version 0.3.0
+catalogue-version 0.3.1
name pracjourn
category Package
@@ -285409,7 +285445,7 @@ catalogue-topics font font-body font-proportional font-mono font-sans font-serif
name robust-externalize
category Package
-revision 68842
+revision 69459
shortdesc Cache anything (TikZ, python, ...) in a robust, efficient and pure way
relocated 1
longdesc This package provides a LaTeX library to cache anything (TikZ,
@@ -285417,15 +285453,15 @@ longdesc python, ...), in a robust, efficient and pure way. We also
longdesc provide a template system with placeholders to provide
longdesc configurable templates. For more information, see the
longdesc documentation and the github repository.
-containersize 27184
-containerchecksum b210a9adbfa6bc7d0063e624a30abb885eb49a7e7dd3e215f97784e5da4c79886fe4d19aa012395894098833c18209c117e913b14091fd2f3eb8904a356fd792
-doccontainersize 691812
-doccontainerchecksum e1732e10a355b4f54d870420acfa3bbeb6256b0a7c0136f5cfde829ff02885422b175c2834b229bf22a4b4a28a1c8e80932af2b0a826b1658d0d8ec58de909bf
-docfiles size=244
+containersize 35040
+containerchecksum e15a349a1b9b3283ef8efc534cfc3f506fe0b2114189941e344a029a9104bd9946d13f540c3626501c678f20ba66b2ab4b0aa103499cb6127bd2c0c1645b9e20
+doccontainersize 1342484
+doccontainerchecksum 05a2619dc2b3c43df9dfc32dc5de2ffc6845a23cd3f85df9f6a2955c3a1a9c3c819cacbbcb82ed1b033073b632d035c8367d6e1c3fe17cfad7cefbe57fd3f976
+docfiles size=457
RELOC/doc/latex/robust-externalize/README.md details="Readme"
RELOC/doc/latex/robust-externalize/robust-externalize.pdf details="Package documentation"
RELOC/doc/latex/robust-externalize/robust-externalize.tex
-runfiles size=35
+runfiles size=45
RELOC/tex/latex/robust-externalize/robust-externalize.sty
catalogue-contact-announce https://github.com/leo-colisson/robust-externalize/releases
catalogue-contact-bugs https://github.com/leo-colisson/robust-externalize/issues
@@ -285433,7 +285469,7 @@ catalogue-contact-repository https://github.com/leo-colisson/robust-externalize/
catalogue-ctan /macros/latex/contrib/robust-externalize
catalogue-license mit
catalogue-topics compilation expl3
-catalogue-version 2.2
+catalogue-version 2.5
name robustcommand
category Package
@@ -311569,7 +311605,7 @@ binfiles arch=x86_64-solaris size=1
name tex4ht
category Package
-revision 69412
+revision 69463
shortdesc Convert (La)TeX to HTML/XML
longdesc A converter from TeX and LaTeX to SGML-based formats such as
longdesc (X)HTML, MathML, OpenDocument, and Docbook, providing a
@@ -311590,10 +311626,10 @@ longdesc files from them is nontrivial, and generally done with the
longdesc Makefile in development, from which the TeX4ht package in TeX
longdesc Live is updated.
depend tex4ht.ARCH
-containersize 1116136
-containerchecksum 59848f9a4accb16164f2af9c7c26ae4a28af826116ac85f68fd1d9a399b979cff18e0d15ad85cbcdec5a955a01da1f46fc7ea6c817a216cc8aaf0df88c5b9ef6
+containersize 1116308
+containerchecksum 9ef08eb11e654575d48957cedc168b1fee5f4edc2dfc1c068e5a1bfa8bdf2d89edb8df8a176ff1507986f8940f9afbf745ba7e99af2e02ad4b9165af666fe8ec
doccontainersize 136384
-doccontainerchecksum 6756a4022af3e42e47e090638e114a2d4c4a50bcfef7473bb8ebac3a9d2adea6153b7596144f65955cf02a697c0df47a631877118cdfe8b25a00ffcd5b1737de
+doccontainerchecksum d8a76bc65f6b6af3498b42550103c543ac036c97cf547098cfcafc9a9ab7e6362b43e40f31d8368084f96557bea1848661b4a4db327afe1d2a3d465d99707dd0
docfiles size=260
texmf-dist/doc/generic/tex4ht/Makefile
texmf-dist/doc/generic/tex4ht/README details="Readme"
@@ -311665,8 +311701,8 @@ docfiles size=260
texmf-dist/doc/generic/tex4ht/mn56.html
texmf-dist/doc/generic/tex4ht/mn5x.png
texmf-dist/doc/generic/tex4ht/mn6x.png
-srccontainersize 1484084
-srccontainerchecksum c1c3746084f4eb88f6aab21c20168e9a520f4757eeec5d6742e905d81aff44d5b2b0265efcad2066fab8669a59186a05d634bbe87f28b44f6e58cf3a0fac52ae
+srccontainersize 1479264
+srccontainerchecksum a3611eecca3260f0ba8d06ab4d5a5da2c20f097570a4846a6608a51a10fe6e41bdcef0f66fcf0b11724c7aabddb70ca000339cbb64f78856a852199354c4fd04
srcfiles size=4632
texmf-dist/source/generic/tex4ht/ChangeLog
texmf-dist/source/generic/tex4ht/Makefile
@@ -311747,7 +311783,7 @@ srcfiles size=4632
texmf-dist/source/generic/tex4ht/update-htfonts
texmf-dist/source/generic/tex4ht/wripro.tex
texmf-dist/source/generic/tex4ht/xtpipes.tex
-runfiles size=13077
+runfiles size=13078
texmf-dist/scripts/tex4ht/ht.sh
texmf-dist/scripts/tex4ht/htcopy.pl
texmf-dist/scripts/tex4ht/htlatex.sh
@@ -312109,6 +312145,7 @@ runfiles size=13077
texmf-dist/tex/generic/tex4ht/pdfbase-hooks.4ht
texmf-dist/tex/generic/tex4ht/pdfpages.4ht
texmf-dist/tex/generic/tex4ht/pdfx-hooks.4ht
+ texmf-dist/tex/generic/tex4ht/pgf-hooks.4ht
texmf-dist/tex/generic/tex4ht/pgf.4ht
texmf-dist/tex/generic/tex4ht/physics.4ht
texmf-dist/tex/generic/tex4ht/picins.4ht
@@ -324077,7 +324114,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 69415
+revision 69447
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.
@@ -324085,10 +324122,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 114276
-containerchecksum fe322c525f5787a17d4ee7e7b6f2fbaad5574ce83b08c31f5878c8f11a8dbb50e50d47a914289ac0c39ac6bf0ab451c4e812fb459ee8a75a5206ae16733048a0
-doccontainersize 431400
-doccontainerchecksum d9016f7838fd24c0b335fee6dc2544b957d8b49ee148a25371dfcbdc5ebf0f87599cdd2e33bfc9293e5df0001b36772c4401aa2f19e4c08824ac96a38a1cb94b
+containersize 114280
+containerchecksum 96b666030ebc16b6ce9e540b36bbb6ced1c24cd17301ea96ee015468818ba3ae06f1fa36e5ca7995501ed1acc5552e273a33031f871fe749bfc64c810ce2dbcc
+doccontainersize 431496
+doccontainerchecksum 61e12e21be2a86b339735b7a5cb589fb6acb232c28f9b452ba41c0be46beaa5a72a9e24331d4427103e81693e01785684532f13ab01039f7954381ebd1e4e6ad
docfiles size=562
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -325755,26 +325792,26 @@ catalogue-version 1.3.1
name texlogsieve
category Package
-revision 69072
+revision 69436
shortdesc Filter and summarize LaTeX log files
longdesc texlogsieve reads a LaTeX log file (or the standard input if no
longdesc file is specified), filters out less relevant messages, and
longdesc displays a summary report. It is a texlua script, similar in
longdesc spirit to tools such as texfot, texloganalyser, rubber-info,
-longdesc textlog_extract, texlogparser, and others. Highlights: Two
-longdesc reports: the most important messages from the log file followed
-longdesc by a summary of repeated messages, undefined references etc.;
-longdesc The program goes to great lengths to correctly handle TeX line
-longdesc wrapping and does a much better job at that than existing
-longdesc tools; Multiline messages are treated as a single entity;
-longdesc Several options to control which messages should be filtered
-longdesc out; No messages are accidentally removed; The summary report
-longdesc is currently simple, but useful.
+longdesc textlog_extract, texlogparser, texlogfilter, and others.
+longdesc Highlights: Two reports: the most important messages from the
+longdesc log file followed by a summary of repeated messages, undefined
+longdesc references etc.; The program goes to great lengths to correctly
+longdesc handle TeX line wrapping and does a much better job at that
+longdesc than existing tools; Multiline messages are treated as a single
+longdesc entity; Several options to control which messages should be
+longdesc filtered out; No messages are accidentally removed; The summary
+longdesc report is currently simple, but useful.
depend texlogsieve.ARCH
-containersize 46836
-containerchecksum 22822a9ea14652674238224914fd84d9ea09ba1a19fd8eca288fad52c35b0c7e0a0003730b1214e9f358d068eeda191a92dbb2cf2e14bf29297b61177af1a1b4
-doccontainersize 114904
-doccontainerchecksum 507ed977b9c272c789fabe42b48b60722c09f0548c4f857d9f3207651b05ac593a6e2b94a53f66527591cc3bc15b61a3849a540db3923d196f135dd7cce11836
+containersize 46980
+containerchecksum a4e94f5674cc2bb54f03e285aa18a19d3c389455f2ab15e40998aed6d211435bde3fcf549c989364673bc77a93458e4146b0e662d4bd139e18880a36d4445832
+doccontainersize 115048
+doccontainerchecksum 47d11f611bc3a440dab6dea06cc55053802d2b78133eec21af4eb8d44e74b013a4dd8df0667b946afcbdd8132821ab1429f30f74da610bc1e1283793d465c454
docfiles size=46
texmf-dist/doc/man/man1/texlogsieve.1
texmf-dist/doc/man/man1/texlogsieve.man1.pdf
@@ -325788,7 +325825,7 @@ catalogue-contact-repository https://gitlab.com/lago/texlogsieve
catalogue-ctan /support/texlogsieve
catalogue-license gpl3+
catalogue-topics comp-mgmt log-manip use-lua
-catalogue-version 1.4.0
+catalogue-version 1.4.1
name texlogsieve.aarch64-linux
category Package
@@ -332867,17 +332904,17 @@ catalogue-version 2.1d
name tkz-base
category Package
-revision 66115
+revision 69460
shortdesc Tools for drawing with a cartesian coordinate system
relocated 1
longdesc The bundle is a set of packages, designed to give mathematics
longdesc teachers (and students) easy access to programming of drawings
longdesc with TikZ.
-containersize 16308
-containerchecksum 1bcee5c2d6ce967369dbd6fc7c55a69793410c2d1a4de6c66c79071a360c3a0889c014eaab27ac73c771424c0d0655cabe62f9e2514dc13de418c336ea09ef80
-doccontainersize 373140
-doccontainerchecksum 3c2f7a584b1580c4fe15a5945b45a912960bff6c25ad637be8a43ee82b752949e1228008179d7a311b6961b1d0d4aa08fc44daa02696d2fdcc51777512db80c7
-docfiles size=133
+containersize 16296
+containerchecksum a26cb6c8fda3baad6d455a989a4c0f46b5e3b1364acb8f32a866f5ed946344574d29b310c2fbf4e3534dde555d068ae588f9e04b430d15a59ccfdedfe31bd2ca
+doccontainersize 368052
+doccontainerchecksum 9da2aa2bad4901e14cb4c8fa747af000de891005c38175bdce88d706fe83166b534f0d5b39c8557e5ae5975b8b58212cfafee7d2d22c07e76d41ba77ce1403fe
+docfiles size=132
RELOC/doc/latex/tkz-base/README.md details="Readme"
RELOC/doc/latex/tkz-base/TKZdoc-base-BB.tex
RELOC/doc/latex/tkz-base/TKZdoc-base-axes.tex
@@ -332922,7 +332959,7 @@ catalogue-contact-home http://altermundus.fr
catalogue-ctan /macros/latex/contrib/tkz/tkz-base
catalogue-license lppl1.3
catalogue-topics pgf-tikz
-catalogue-version 4.2c
+catalogue-version 4.21c
name tkz-berge
category Package
@@ -333166,7 +333203,7 @@ catalogue-version 1.45c
name tkz-elements
category Package
-revision 69213
+revision 69461
shortdesc A Lua library for drawing Euclidean geometry with TikZ or tkz-euclide
relocated 1
longdesc This package provides a library written in Lua, allowing to
@@ -333177,11 +333214,11 @@ longdesc main possibility of programmation proposed is oriented "object
longdesc programming" with object classes like point, line, triangle,
longdesc circle and ellipse. For the moment, once the calculations are
longdesc done, it is tkz-euclide or TikZ which allows the drawings.
-containersize 16596
-containerchecksum 66380dcbb489c8afd4f916024baf3008975543424a391e0449f261f9fdb66118f9dd4bc8ad988a4f48ed2a770daca48fdb98243456025d545736e61e2b42aed3
-doccontainersize 684280
-doccontainerchecksum 4f6630df37eb9192cd2b9d0f0b4f687762e39b83ac6b4249e86defe945093ead57dcad5414a0ae1edceca75eef7f8be706b3b626dd4557b2377354d8717bea1b
-docfiles size=261
+containersize 17216
+containerchecksum de69c7074684a308bc04b97d182ba6977ea24797e71db1f86de0ea7f0599927e9fe092bfe29e77263c99fa618a3ed9e90cd37c7eeb29b72049c3a3574c1cec90
+doccontainersize 747488
+doccontainerchecksum 95681e2aa14371df774ae0ab6b57d61f57a17e62bef58c780004f498c11546de66bafaa2bfdf1a853692403147e76dcf205e19c8684ec1c28dfcacfd2d40acaf
+docfiles size=291
RELOC/doc/latex/tkz-elements/README.md details="Readme"
RELOC/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex
RELOC/doc/latex/tkz-elements/TKZdoc-elements-classes-ellipse.tex
@@ -333199,9 +333236,12 @@ docfiles size=261
RELOC/doc/latex/tkz-elements/TKZdoc-elements-examples.tex
RELOC/doc/latex/tkz-elements/TKZdoc-elements-indepthstudy.tex
RELOC/doc/latex/tkz-elements/TKZdoc-elements-intersection.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-inversion.tex
RELOC/doc/latex/tkz-elements/TKZdoc-elements-main.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-organization.tex
RELOC/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex
RELOC/doc/latex/tkz-elements/TKZdoc-elements-structure.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-tests.tex
RELOC/doc/latex/tkz-elements/TKZdoc-elements-transferts.tex
RELOC/doc/latex/tkz-elements/TKZdoc-elements-why.tex
RELOC/doc/latex/tkz-elements/examples/tkz-elements-demo_1.pdf
@@ -333212,8 +333252,10 @@ docfiles size=261
RELOC/doc/latex/tkz-elements/examples/tkz-elements-demo_3.tex
RELOC/doc/latex/tkz-elements/examples/tkz-elements-demo_4.pdf
RELOC/doc/latex/tkz-elements/examples/tkz-elements-demo_4.tex
+ RELOC/doc/latex/tkz-elements/gold_preamble.lua
+ RELOC/doc/latex/tkz-elements/sangaku.lua
RELOC/doc/latex/tkz-elements/tkz-elements.pdf details="Package documentation"
-runfiles size=33
+runfiles size=35
RELOC/tex/latex/tkz-elements/tkz-elements.sty
RELOC/tex/latex/tkz-elements/tkz_elements_circle.lua
RELOC/tex/latex/tkz-elements/tkz_elements_class.lua
@@ -333240,21 +333282,21 @@ catalogue-contact-home https://altermundus.fr
catalogue-ctan /macros/latex/contrib/tkz/tkz-elements
catalogue-license lppl1.3
catalogue-topics maths calculation luatex
-catalogue-version 1.72c
+catalogue-version 1.82c
name tkz-euclide
category Package
-revision 68747
+revision 69462
shortdesc Tools for drawing Euclidean geometry
relocated 1
longdesc The tkz-euclide package is a set of files designed to give math
longdesc teachers and students easy access to the programming of
longdesc Euclidean geometry with TikZ.
-containersize 41924
-containerchecksum 14e39eb45f188f8563b8c49b16cceffe62117ac3cb17d484d1722122b6f3ca927b35ed0dc15cf0650d877f584eaf05f6473dcd8ca83f4766f5d421a07eced464
-doccontainersize 1175256
-doccontainerchecksum ba09b1cbb47c65ab74119c7e52fc4d08c3174ddfebe0cae6c3b0ad9954d40e78bb57a219acb12584cc67616d51d70212de284a4f30286ecdfc3bd70c4ef9bf8b
-docfiles size=392
+containersize 41944
+containerchecksum bdac2d5f2bb723b25612257659444a67efe515990bb1ae6a1901cd1eec40f645c8da55c9fd3652d3b7ef8e60162181db232c7fedf7f094cb31e9e74ea336095e
+doccontainersize 1172932
+doccontainerchecksum 23e70d1723b07f7d802e71222611934876db06f238db13f2ac659ab064905060769947a08ea2e0812f2103c4f7a402ed34fc4b2ce51a7b7efe5e4e5327ee1135
+docfiles size=391
RELOC/doc/latex/tkz-euclide/README.md details="Readme"
RELOC/doc/latex/tkz-euclide/TKZdoc-euclide-FAQ.tex
RELOC/doc/latex/tkz-euclide/TKZdoc-euclide-angles.tex
@@ -333340,7 +333382,7 @@ catalogue-contact-home https://altermundus.fr
catalogue-ctan /macros/latex/contrib/tkz/tkz-euclide
catalogue-license lppl1.3
catalogue-topics maths graphics-use use-luatex pgf-tikz
-catalogue-version 5.04c
+catalogue-version 5.05c
name tkz-fct
category Package
@@ -375285,7 +375327,7 @@ catalogue-version 1.4e
name zx-calculus
category Package
-revision 60838
+revision 69455
shortdesc A library to typeset ZX Calculus diagrams
relocated 1
longdesc This library (based on the great TikZ and TikZ-cd packages)
@@ -375294,15 +375336,16 @@ longdesc with many pre-built wire shapes, a highly customizable node
longdesc style (with multiple flavours for putting labels inside or
longdesc outside nodes), and a "debugging" mode to avoid getting lost in
longdesc big diagrams.
-containersize 19132
-containerchecksum 17854656622c012a3c0a4711e9c38d2c100a156072e7556b3ba3d6ce6edf1463c69078073bd72b83d3136e96e72e4adfff3982a73d4fd4d66fa98ff6823eafb5
-doccontainersize 631596
-doccontainerchecksum 076a25ef96775d28fad2e97027ef69b983f1cc44f11866b7f6db0408bca45759b8ed0f3914516712f235ee4a670bb3fcb28954a2b3f745786e6d6f8f7c06cde9
-docfiles size=185
+containersize 38400
+containerchecksum 5849c1cebc5e3cd88f8c9d5f5841c6ae037ace8182b47135c83738ec97b4ddacb236912707a7fee72ad0aa3ea7c472111237d5227434fbeef95dcd9289e9f856
+doccontainersize 1158936
+doccontainerchecksum 1cc693a10173fa3d8b8542b401b2a8f68c4fc1358e1c60116f3b3505cd3bf46f4fadd0592d9e1d1283de027ecb626dd74244ba20fdd4dc8d29d7a8332909a835
+docfiles size=345
RELOC/doc/latex/zx-calculus/README.md details="Readme"
+ RELOC/doc/latex/zx-calculus/biblio.bib
RELOC/doc/latex/zx-calculus/zx-calculus.pdf details="Package documentation"
RELOC/doc/latex/zx-calculus/zx-calculus.tex
-runfiles size=21
+runfiles size=46
RELOC/tex/latex/zx-calculus/tikzlibraryzx-calculus.code.tex
RELOC/tex/latex/zx-calculus/zx-calculus.sty
catalogue-contact-bugs https://github.com/leo-colisson/zx-calculus/issues
@@ -375310,6 +375353,7 @@ catalogue-contact-repository https://github.com/leo-colisson/zx-calculus
catalogue-ctan /graphics/pgf/contrib/zx-calculus
catalogue-license mit
catalogue-topics pgf-tikz diagram
+catalogue-version 2.0
name zxjafbfont
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index c361b583bb..699fece1e3 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-b08f5bbaf519ff9a58180840eee2f0b3 texlive.tlpdb
+b10ba2c0e7ff72886468afd6c3943b8b texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 4064fb7a25..817da199a4 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-d54fa1dbb7fe99f3609079322fe9d8b945c3ae7a88a8cec18234cb67be454939f20b064561f873d934d410dbf0fbda8f83522b2a023cb0ee3db03c6ed7f8ace2 texlive.tlpdb
+e73f388021f4d116f14a475074a3eac01f9055b29297be1923abc71667a89a4f8b21c0c53de2178790616594092715b9f6329d7a055f8fea0527aa44f917a2a3 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index b57773db33..18952c56a1 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmWkgC8ACgkQTOGHfhlD
-jHBK0Af/cMu3agQj/3QXmRbGE0bWeamv2l5uAS+GI+f58GpxemBaezK+8GBlC2/2
-jpRIvy7X4mQ4ZHRdHKm2O1u6u6kP00r84IwfUbeC5ZwccnKRiE0iUPZT6d+Jf5wN
-Ry8Ztem/XrhPaJyqAXc7qDK/Bj0ztnrWIfSLT9PQuDrmdD5a4vsPRN61wu2vZg/2
-bzQW8rgmeWSvtelafltOMdxKDtxCrifSABu1UHXNrhhwuirQQYd8CtzwCKOifK+Z
-HMml7mFg5MVzCWEsMkhyct/LYEXm1+IlLKGHHRuhWIPzxfHN/VB1DyHG5KEq7jvJ
-Q1VW9tjnG/Yl70Eg45KNDQVS6MygRQ==
-=UOJZ
+iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmWnI4QACgkQTOGHfhlD
+jHA24Af/TPb/SnSjaleevpDGDA+tQRT91KUA+md2DumJMlOsaFLkGXydmFbKD3lc
+1fcJysMGHKm9X97pbT3Uj54pMuo3zOH5qL8bR13g4pHyjY69uR4l0oeVWnpE8JuT
+gbsFX8EZ7uGaNXSRViiPCrXqKfeZqBIJdNe/DuwRjqWyyxMffGygkFMIubrNH1wa
+1W+iDoIfWjLs+KIQl4HYI0b7yLxGow526F/SWfwjSUDtMKxDY0WQOphs7Lu1G1Hf
+xvyJ/WNXedLVz4bbYPZdx/xXM6g0nneYbGtW6i+yNFv1W1OhNRr2A3nssK3e3cea
+zEVDlc8ii3GfHaaewlW9yzHMYDURyA==
+=D8ke
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 7e2271c81e..9858397bf1 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/timestamp b/timestamp
index b4e062df94..7b94ead4d6 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:
-2024-01-17-02-02
+2024-01-18-02-02