summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname679
-rw-r--r--FILES.byname.gzbin2435297 -> 2435575 bytes
-rw-r--r--FILES.last07days631
-rw-r--r--graphics/pgf/contrib/liftarm/README.md9
-rw-r--r--graphics/pgf/contrib/liftarm/liftarm.pdfbin0 -> 4095932 bytes
-rw-r--r--graphics/pgf/contrib/liftarm/liftarm.sty256
-rw-r--r--graphics/pgf/contrib/liftarm/liftarm.tex559
-rw-r--r--info/kaytannollista-latexia/README.md2
-rw-r--r--info/kaytannollista-latexia/kaytannollista-latexia.pdfbin874286 -> 874252 bytes
-rw-r--r--info/kaytannollista-latexia/kirjallisuutta.bib10
-rw-r--r--info/kaytannollista-latexia/luku-asetukset.tex104
-rw-r--r--info/kaytannollista-latexia/luku-merkintakieli.tex6
-rw-r--r--info/kaytannollista-latexia/versio.tex2
-rw-r--r--info/startlatex2e/README35
-rw-r--r--info/startlatex2e/StartLaTeX2e.pdfbin272000 -> 0 bytes
-rw-r--r--info/startlatex2e/StartLaTeX2e.tex1554
-rw-r--r--info/yet-another-guide-latex2e/README27
-rw-r--r--info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.pdfbin0 -> 938396 bytes
-rw-r--r--info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.tex2342
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md3
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty14
-rwxr-xr-x[-rw-r--r--]macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdfbin274695 -> 42671 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex13
-rwxr-xr-x[-rw-r--r--]macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpgbin48354 -> 45868 bytes
-rw-r--r--macros/latex/contrib/dtxdescribe/README.txt2
-rw-r--r--macros/latex/contrib/dtxdescribe/dtxdescribe.dtx6
-rw-r--r--macros/latex/contrib/dtxdescribe/dtxdescribe.pdfbin389219 -> 387502 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx475
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin586959 -> 592701 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex62
-rw-r--r--macros/latex/contrib/lwarp/README.txt2
-rw-r--r--macros/latex/contrib/lwarp/lwarp.dtx2325
-rw-r--r--macros/latex/contrib/lwarp/lwarp.ins1
-rw-r--r--macros/latex/contrib/lwarp/lwarp.pdfbin3176264 -> 3181333 bytes
-rwxr-xr-xmacros/latex/contrib/lwarp/lwarpmk.lua2
-rw-r--r--macros/latex/contrib/messagepassing/README.md28
-rw-r--r--macros/latex/contrib/messagepassing/messagepassing.dtx861
-rw-r--r--macros/latex/contrib/messagepassing/messagepassing.ins49
-rw-r--r--macros/latex/contrib/messagepassing/messagepassing.pdfbin0 -> 267669 bytes
-rw-r--r--macros/latex/contrib/mhequ/README2
-rw-r--r--macros/latex/contrib/mhequ/example.pdfbin98452 -> 119518 bytes
-rw-r--r--macros/latex/contrib/mhequ/example.tex48
-rw-r--r--macros/latex/contrib/mhequ/mhequ.sty4
-rw-r--r--macros/latex/contrib/projlib/ProjLib.ins72
-rw-r--r--macros/latex/contrib/projlib/ProjLib.sty38
-rw-r--r--macros/latex/contrib/projlib/README.md11
-rw-r--r--macros/latex/contrib/projlib/old-modules/PJLauthor.sty245
-rw-r--r--macros/latex/contrib/projlib/old-modules/PJLdate.sty74
-rw-r--r--macros/latex/contrib/projlib/old-modules/PJLdraft.sty104
-rw-r--r--macros/latex/contrib/projlib/old-modules/PJLlang.sty358
-rw-r--r--macros/latex/contrib/projlib/old-modules/PJLlogo.sty72
-rw-r--r--macros/latex/contrib/projlib/old-modules/PJLmath.sty315
-rw-r--r--macros/latex/contrib/projlib/old-modules/PJLpaper.sty96
-rw-r--r--macros/latex/contrib/projlib/old-modules/PJLthm.sty (renamed from macros/latex/contrib/projlib/ProjLib.dtx)1714
-rw-r--r--macros/latex/contrib/projlib/old-modules/PJLtoolkit.sty184
-rw-r--r--macros/latex/contrib/projlib/projlib-author.sty (renamed from macros/latex/contrib/projlib/new-modules/projlib-author.sty)7
-rw-r--r--macros/latex/contrib/projlib/projlib-datetime.sty (renamed from macros/latex/contrib/projlib/new-modules/projlib-datetime.sty)10
-rw-r--r--macros/latex/contrib/projlib/projlib-draft.sty (renamed from macros/latex/contrib/projlib/new-modules/projlib-draft.sty)0
-rw-r--r--macros/latex/contrib/projlib/projlib-font.sty (renamed from macros/latex/contrib/projlib/new-modules/projlib-font.sty)9
-rw-r--r--macros/latex/contrib/projlib/projlib-language.sty (renamed from macros/latex/contrib/projlib/new-modules/projlib-language.sty)14
-rw-r--r--macros/latex/contrib/projlib/projlib-logo.sty (renamed from macros/latex/contrib/projlib/new-modules/projlib-logo.sty)0
-rw-r--r--macros/latex/contrib/projlib/projlib-math.sty (renamed from macros/latex/contrib/projlib/new-modules/projlib-math.sty)0
-rw-r--r--macros/latex/contrib/projlib/projlib-paper.sty (renamed from macros/latex/contrib/projlib/new-modules/projlib-paper.sty)55
-rw-r--r--macros/latex/contrib/projlib/projlib-theorem.sty1184
-rw-r--r--support/TeX4ht/source/ChangeLog7
-rw-r--r--support/TeX4ht/source/tex4ht-4ht.tex16
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl1
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb99
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2357476 -> 2355936 bytes
-rw-r--r--systems/win32/miktex/tm/packages/files.csv.lzmabin643154 -> 643499 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/files.csv.lzmabin642699 -> 643487 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini10
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini12
-rw-r--r--timestamp2
79 files changed, 9990 insertions, 4854 deletions
diff --git a/FILES.byname b/FILES.byname
index c41b20ff2e..b38cbe3c07 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2021,7 +2021,7 @@
1989/12/11 | 6196 | biblio/tib/tib.man
1989/03/29 | 23265 | biblio/tib/vitaMake
2005/12/15 | 366385 | biblio/tib.zip
-2022/03/06 | 17697 | CTAN.sites
+2022/03/09 | 17726 | CTAN.sites
1990/10/03 | 5032 | dviware/beebe/00readme.txt
1990/10/03 | 479 | dviware/beebe/doc/00dir.cmd
1990/10/03 | 1209 | dviware/beebe/doc/00dir.lst
@@ -5212,7 +5212,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2022/03/08 | 347230 | FILES.last07days
+2022/03/09 | 509360 | 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
@@ -155559,6 +155559,11 @@
2020/02/03 | 17373 | graphics/pgf/contrib/lie-hasse/lie-hasse.tex
2020/02/03 | 590 | graphics/pgf/contrib/lie-hasse/README
2020/02/03 | 586616 | graphics/pgf/contrib/lie-hasse.zip
+2022/03/08 | 4095932 | graphics/pgf/contrib/liftarm/liftarm.pdf
+2022/03/06 | 10774 | graphics/pgf/contrib/liftarm/liftarm.sty
+2022/03/08 | 18843 | graphics/pgf/contrib/liftarm/liftarm.tex
+2022/03/07 | 467 | graphics/pgf/contrib/liftarm/README.md
+2022/03/09 | 3840379 | graphics/pgf/contrib/liftarm.zip
2014/06/15 | 336497 | graphics/pgf/contrib/logicpuzzle/logicpuzzle.dtx
2014/06/15 | 810773 | graphics/pgf/contrib/logicpuzzle/logicpuzzle.pdf
2014/06/15 | 1855 | graphics/pgf/contrib/logicpuzzle/qrcode.png
@@ -161395,7 +161400,7 @@
2021/10/04 | 44310 | indexing/makeindexk/aclocal.m4
2009/04/23 | 341 | indexing/makeindexk/ac/withenable.ac
2021/06/30 | 5087 | indexing/makeindexk/c-auto.in
-2021/09/19 | 8999 | indexing/makeindexk/ChangeLog
+2022/03/08 | 9169 | indexing/makeindexk/ChangeLog
2007/07/03 | 710 | indexing/makeindexk/configure
2021/09/19 | 988 | indexing/makeindexk/configure.ac
2022/01/18 | 533222 | indexing/makeindexk/configure.texk
@@ -161417,7 +161422,7 @@
2014/11/13 | 29598 | indexing/makeindexk/makeindex.1
2013/04/16 | 12961 | indexing/makeindexk/mkind.c
2019/11/01 | 1097 | indexing/makeindexk/mkindex
-2006/01/17 | 1128 | indexing/makeindexk/mkindex.1
+2022/03/08 | 838 | indexing/makeindexk/mkindex.1
2021/09/19 | 14627 | indexing/makeindexk/mkind.h
2006/01/17 | 3419 | indexing/makeindexk/NOTES
2012/07/27 | 5836 | indexing/makeindexk/qsort.c
@@ -161455,7 +161460,7 @@
2021/09/19 | 3278 | indexing/makeindexk/tests/range.idx
2012/07/27 | 459 | indexing/makeindexk/tests/sample.idx
2012/07/27 | 268 | indexing/makeindexk/tests/sample.ind
-2022/01/19 | 239194 | indexing/makeindexk.zip
+2022/03/09 | 239145 | indexing/makeindexk.zip
1989/08/31 | 10291 | indexing/makeindex/lib/idxmac-amstex.tex
1989/08/31 | 7082 | indexing/makeindex/lib/idxmac.tex
1989/08/31 | 280 | indexing/makeindex/lib/makeidx.doc
@@ -182867,19 +182872,19 @@
2019/01/28 | 1187 | info/joy-of-tex/README
2019/01/29 | 3973964 | info/joy-of-tex.zip
1995/01/19 | 36098 | info/jrtex12a
-2022/01/06 | 874286 | info/kaytannollista-latexia/kaytannollista-latexia.pdf
-2022/01/06 | 15461 | info/kaytannollista-latexia/kaytannollista-latexia.tex
-2022/01/06 | 2647 | info/kaytannollista-latexia/kirjallisuutta.bib
-2022/01/06 | 122575 | info/kaytannollista-latexia/luku-asetukset.tex
-2022/01/06 | 20554 | info/kaytannollista-latexia/luku-erikoiset.tex
-2022/01/06 | 2633 | info/kaytannollista-latexia/luku-esipuhe.tex
-2022/01/06 | 86920 | info/kaytannollista-latexia/luku-merkintakieli.tex
-2022/01/06 | 316736 | info/kaytannollista-latexia/luku-rakenne.tex
-2022/01/06 | 20558 | info/kaytannollista-latexia/luku-valmistautuminen.tex
-2022/01/06 | 6168 | info/kaytannollista-latexia/README.md
-2022/01/06 | 12129 | info/kaytannollista-latexia/tavutusvihjeet.tex
-2022/01/06 | 27 | info/kaytannollista-latexia/versio.tex
-2022/01/06 | 1021153 | info/kaytannollista-latexia.zip
+2022/03/09 | 874252 | info/kaytannollista-latexia/kaytannollista-latexia.pdf
+2022/03/09 | 15461 | info/kaytannollista-latexia/kaytannollista-latexia.tex
+2022/03/09 | 2989 | info/kaytannollista-latexia/kirjallisuutta.bib
+2022/03/09 | 122584 | info/kaytannollista-latexia/luku-asetukset.tex
+2022/03/09 | 20554 | info/kaytannollista-latexia/luku-erikoiset.tex
+2022/03/09 | 2633 | info/kaytannollista-latexia/luku-esipuhe.tex
+2022/03/09 | 86927 | info/kaytannollista-latexia/luku-merkintakieli.tex
+2022/03/09 | 316736 | info/kaytannollista-latexia/luku-rakenne.tex
+2022/03/09 | 20558 | info/kaytannollista-latexia/luku-valmistautuminen.tex
+2022/03/09 | 6300 | info/kaytannollista-latexia/README.md
+2022/03/09 | 12129 | info/kaytannollista-latexia/tavutusvihjeet.tex
+2022/03/09 | 29 | info/kaytannollista-latexia/versio.tex
+2022/03/09 | 1020363 | info/kaytannollista-latexia.zip
2017/08/18 | 333896 | info/knuth/cwebman.pdf
2021/03/17 | 623768 | info/knuth-pdf/bibtex/bibtex-changes.pdf
2021/03/17 | 1329399 | info/knuth-pdf/bibtex/bibtex.pdf
@@ -184332,10 +184337,6 @@
1999/11/13 | 3618 | info/spanish/TeEncontreX/translations.py
2006/03/21 | 167221 | info/spanish/TeEncontreX.zip
1999/10/16 | 41046 | info/spanish/tipos.pdf
-2020/10/30 | 1283 | info/startlatex2e/README
-2020/09/30 | 272000 | info/startlatex2e/StartLaTeX2e.pdf
-2020/10/30 | 60864 | info/startlatex2e/StartLaTeX2e.tex
-2020/10/30 | 249956 | info/startlatex2e.zip
2012/03/29 | 82902 | info/svg-inkscape/image-normal.pdf
2012/03/29 | 6639 | info/svg-inkscape/image.pdf
2012/03/29 | 3833 | info/svg-inkscape/image.pdf_tex
@@ -185560,6 +185561,10 @@
2019/12/09 | 146393 | info/xetexref/xetex-reference.pdf
2019/12/09 | 42467 | info/xetexref/xetex-reference.tex
2019/12/09 | 157222 | info/xetexref.zip
+2022/03/09 | 1017 | info/yet-another-guide-latex2e/README
+2022/03/09 | 938396 | info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.pdf
+2022/03/09 | 119925 | info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.tex
+2022/03/09 | 861091 | info/yet-another-guide-latex2e.zip
2021/02/04 | 4944311 | install/biblio/bibtex/contrib/gost.tds.zip
2022/01/22 | 457613 | install/biblio/citation-style-language.tds.zip
2013/11/06 | 795801 | install/fonts/accanthis.tds.zip
@@ -185934,7 +185939,7 @@
2012/05/03 | 406018 | install/macros/latex/contrib/lstaddons.tds.zip
2011/03/25 | 10183 | install/macros/latex/contrib/ltxdockit.tds.zip
2021/02/18 | 340623 | install/macros/latex/contrib/luacolor.tds.zip
-2022/02/01 | 4236884 | install/macros/latex/contrib/lwarp.tds.zip
+2022/03/09 | 4262982 | install/macros/latex/contrib/lwarp.tds.zip
2019/11/29 | 336437 | install/macros/latex/contrib/magicnum.tds.zip
2009/09/03 | 125014 | install/macros/latex/contrib/makecmds.tds.zip
2018/08/09 | 330020 | install/macros/latex/contrib/marginnote.tds.zip
@@ -204545,26 +204550,26 @@
2016/05/25 | 6502 | macros/latex/contrib/beamer-contrib/themes/beamertheme-epyt/epyt-demo.tex
2016/05/24 | 329 | macros/latex/contrib/beamer-contrib/themes/beamertheme-epyt/README
2016/05/25 | 203652 | macros/latex/contrib/beamer-contrib/themes/beamertheme-epyt.zip
-2022/02/21 | 2691 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamercolorthemefocus.sty
-2022/02/21 | 2045 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerfontthemefocus.sty
-2022/02/21 | 4591 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
-2022/02/21 | 13349 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
-2022/02/21 | 2056 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
-2022/02/21 | 100 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md
-2022/02/21 | 602 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo_bibliography.bib
-2022/02/21 | 27131 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-appendix.jpg
-2022/02/21 | 9717 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-focus.jpg
-2022/02/21 | 32126 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-references.jpg
-2022/02/21 | 35571 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-subsectionpage.jpg
-2022/02/21 | 57942 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage-color.jpg
-2022/02/21 | 35777 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage.jpg
-2022/02/21 | 48354 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
-2022/02/21 | 274695 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
-2022/02/21 | 4777 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
-2022/02/21 | 4062 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-logo.pdf
-2022/02/21 | 35149 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/LICENSE.md
-2022/02/21 | 4028 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
-2022/02/21 | 508062 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus.zip
+2022/03/09 | 2691 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamercolorthemefocus.sty
+2022/03/09 | 2045 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerfontthemefocus.sty
+2022/03/09 | 4591 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
+2022/03/09 | 13361 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
+2022/03/09 | 2150 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
+2022/03/09 | 29 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md
+2022/03/09 | 602 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo_bibliography.bib
+2022/03/09 | 27131 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-appendix.jpg
+2022/03/09 | 9717 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-focus.jpg
+2022/03/09 | 32126 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-references.jpg
+2022/03/09 | 35571 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-subsectionpage.jpg
+2022/03/09 | 57942 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage-color.jpg
+2022/03/09 | 35777 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage.jpg
+2022/03/09 | 45868 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
+2022/03/09 | 42671 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
+2022/03/09 | 4862 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
+2022/03/09 | 4062 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-logo.pdf
+2022/03/09 | 35149 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/LICENSE.md
+2022/03/09 | 4072 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
+2022/03/09 | 265983 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus.zip
2007/02/01 | 3862 | macros/latex/contrib/beamer-contrib/themes/beamerthemeJLTree.sty
2021/04/05 | 1633 | macros/latex/contrib/beamer-contrib/themes/beamerthemelalic/beamercolorthemelalic.sty
2021/04/05 | 108 | macros/latex/contrib/beamer-contrib/themes/beamerthemelalic/beamerfontthemelalic.sty
@@ -210547,11 +210552,11 @@
2010/07/03 | 11058 | macros/latex/contrib/drs/drs.sty
2010/07/03 | 658 | macros/latex/contrib/drs/README
2010/07/03 | 104778 | macros/latex/contrib/drs.zip
-2022/02/01 | 97289 | macros/latex/contrib/dtxdescribe/dtxdescribe.dtx
-2022/02/01 | 1668 | macros/latex/contrib/dtxdescribe/dtxdescribe.ins
-2022/02/01 | 389219 | macros/latex/contrib/dtxdescribe/dtxdescribe.pdf
-2022/02/01 | 930 | macros/latex/contrib/dtxdescribe/README.txt
-2022/02/01 | 404382 | macros/latex/contrib/dtxdescribe.zip
+2022/03/09 | 97389 | macros/latex/contrib/dtxdescribe/dtxdescribe.dtx
+2022/03/09 | 1668 | macros/latex/contrib/dtxdescribe/dtxdescribe.ins
+2022/03/09 | 387502 | macros/latex/contrib/dtxdescribe/dtxdescribe.pdf
+2022/03/09 | 930 | macros/latex/contrib/dtxdescribe/README.txt
+2022/03/09 | 403116 | macros/latex/contrib/dtxdescribe.zip
2020/10/29 | 93291 | macros/latex/contrib/ducksay/ducksay.dtx
2020/10/29 | 486578 | macros/latex/contrib/ducksay/ducksay.pdf
2020/02/01 | 939 | macros/latex/contrib/ducksay/README.md
@@ -210636,12 +210641,12 @@
2008/02/10 | 19110 | macros/latex/contrib/ean13isbn/License.txt
2021/01/24 | 422 | macros/latex/contrib/ean13isbn/README
2021/01/24 | 322624 | macros/latex/contrib/ean13isbn.zip
-2022/03/08 | 74749 | macros/latex/contrib/easybook/easybook.dtx
+2022/03/09 | 74709 | macros/latex/contrib/easybook/easybook.dtx
2022/01/02 | 2085 | macros/latex/contrib/easybook/easybook.ins
-2022/03/08 | 586959 | macros/latex/contrib/easybook/easybook.pdf
-2022/03/08 | 82899 | macros/latex/contrib/easybook/easybook.tex
+2022/03/09 | 592701 | macros/latex/contrib/easybook/easybook.pdf
+2022/03/09 | 83585 | macros/latex/contrib/easybook/easybook.tex
2022/03/06 | 799 | macros/latex/contrib/easybook/README.md
-2022/03/08 | 628099 | macros/latex/contrib/easybook.zip
+2022/03/09 | 633974 | 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
@@ -218341,15 +218346,15 @@
1999/06/10 | 980 | macros/latex/contrib/lucold/t1hlos.fd
1999/05/25 | 407 | macros/latex/contrib/lucold/test.tex
2005/04/30 | 25682 | macros/latex/contrib/lucold.zip
-2022/02/01 | 719 | macros/latex/contrib/lwarp/lwarp_baseline_marker.eps
-2022/02/01 | 89 | macros/latex/contrib/lwarp/lwarp_baseline_marker.png
-2022/02/01 | 2785561 | macros/latex/contrib/lwarp/lwarp.dtx
-2022/02/01 | 33461 | macros/latex/contrib/lwarp/lwarp.ins
-2022/02/01 | 29813 | macros/latex/contrib/lwarp/lwarpmk.lua
-2022/02/01 | 3176264 | macros/latex/contrib/lwarp/lwarp.pdf
-2022/02/01 | 2947 | macros/latex/contrib/lwarp/lwarp_tutorial.txt
-2022/02/01 | 1624 | macros/latex/contrib/lwarp/README.txt
-2022/02/01 | 3647730 | macros/latex/contrib/lwarp.zip
+2022/03/09 | 719 | macros/latex/contrib/lwarp/lwarp_baseline_marker.eps
+2022/03/09 | 89 | macros/latex/contrib/lwarp/lwarp_baseline_marker.png
+2022/03/09 | 2834118 | macros/latex/contrib/lwarp/lwarp.dtx
+2022/03/09 | 33525 | macros/latex/contrib/lwarp/lwarp.ins
+2022/03/09 | 29813 | macros/latex/contrib/lwarp/lwarpmk.lua
+2022/03/09 | 3181333 | macros/latex/contrib/lwarp/lwarp.pdf
+2022/03/09 | 2947 | macros/latex/contrib/lwarp/lwarp_tutorial.txt
+2022/03/09 | 1624 | macros/latex/contrib/lwarp/README.txt
+2022/03/09 | 3668772 | macros/latex/contrib/lwarp.zip
2006/09/11 | 4093 | macros/latex/contrib/lyx/sikumuna/article-sikumuna.layout
2006/09/11 | 781 | macros/latex/contrib/lyx/sikumuna/README
2006/09/11 | 1806 | macros/latex/contrib/lyx/sikumuna.zip
@@ -218988,6 +218993,11 @@
2012/03/06 | 1321 | macros/latex/contrib/messagebubbles/messagebubbles-usage.tex
2012/03/06 | 372 | macros/latex/contrib/messagebubbles/README
2012/03/06 | 67330 | macros/latex/contrib/messagebubbles.zip
+2022/03/09 | 29299 | macros/latex/contrib/messagepassing/messagepassing.dtx
+2022/03/09 | 1446 | macros/latex/contrib/messagepassing/messagepassing.ins
+2022/03/09 | 267669 | macros/latex/contrib/messagepassing/messagepassing.pdf
+2022/03/09 | 1314 | macros/latex/contrib/messagepassing/README.md
+2022/03/09 | 275022 | macros/latex/contrib/messagepassing.zip
2010/05/29 | 2879 | macros/latex/contrib/metalogo/graphics/eLaToutline.pdf
2010/05/29 | 2779 | macros/latex/contrib/metalogo/graphics/TeXoutline.pdf
2010/05/29 | 23896 | macros/latex/contrib/metalogo/metalogo.dtx
@@ -219128,11 +219138,11 @@
2021/12/30 | 736 | macros/latex/contrib/mhchem/README
2013/06/23 | 142995 | macros/latex/contrib/mhchem/rsphrase.sty
2021/12/31 | 709350 | macros/latex/contrib/mhchem.zip
-2015/08/25 | 98452 | macros/latex/contrib/mhequ/example.pdf
-2015/08/25 | 3002 | macros/latex/contrib/mhequ/example.tex
-2015/08/25 | 11871 | macros/latex/contrib/mhequ/mhequ.sty
-2015/08/25 | 424 | macros/latex/contrib/mhequ/README
-2015/08/26 | 103328 | macros/latex/contrib/mhequ.zip
+2022/03/09 | 119518 | macros/latex/contrib/mhequ/example.pdf
+2022/03/09 | 4312 | macros/latex/contrib/mhequ/example.tex
+2022/03/09 | 11876 | macros/latex/contrib/mhequ/mhequ.sty
+2022/03/09 | 427 | macros/latex/contrib/mhequ/README
+2022/03/09 | 122268 | macros/latex/contrib/mhequ.zip
1998/06/11 | 136750 | macros/latex/contrib/mhs/mhs.sty
2022/02/23 | 2157678 | macros/latex/contrib/microtype/microtype-code.pdf
2022/02/23 | 755743 | macros/latex/contrib/microtype/microtype.dtx
@@ -223018,23 +223028,32 @@
2003/07/02 | 413 | macros/latex/contrib/progress/README
2006/05/20 | 88703 | macros/latex/contrib/progress.zip
2022/02/27 | 19106 | macros/latex/contrib/projlib/LICENSE
-2022/02/24 | 11084 | macros/latex/contrib/projlib/new-modules/projlib-author.sty
-2022/02/24 | 55015 | macros/latex/contrib/projlib/new-modules/projlib-datetime.sty
-2022/02/24 | 4682 | macros/latex/contrib/projlib/new-modules/projlib-draft.sty
-2022/02/26 | 4513 | macros/latex/contrib/projlib/new-modules/projlib-font.sty
-2022/02/26 | 16649 | macros/latex/contrib/projlib/new-modules/projlib-language.sty
-2022/02/24 | 2643 | macros/latex/contrib/projlib/new-modules/projlib-logo.sty
-2022/02/26 | 7420 | macros/latex/contrib/projlib/new-modules/projlib-math.sty
-2022/02/25 | 4096 | macros/latex/contrib/projlib/new-modules/projlib-paper.sty
+2021/12/16 | 7735 | macros/latex/contrib/projlib/old-modules/PJLauthor.sty
+2021/12/16 | 2046 | macros/latex/contrib/projlib/old-modules/PJLdate.sty
+2021/12/16 | 3179 | macros/latex/contrib/projlib/old-modules/PJLdraft.sty
+2021/12/16 | 15706 | macros/latex/contrib/projlib/old-modules/PJLlang.sty
+2021/12/16 | 1931 | macros/latex/contrib/projlib/old-modules/PJLlogo.sty
+2021/12/16 | 14017 | macros/latex/contrib/projlib/old-modules/PJLmath.sty
+2021/12/16 | 2613 | macros/latex/contrib/projlib/old-modules/PJLpaper.sty
+2021/12/16 | 74174 | macros/latex/contrib/projlib/old-modules/PJLthm.sty
+2022/03/09 | 4984 | macros/latex/contrib/projlib/old-modules/PJLtoolkit.sty
+2022/03/09 | 11151 | macros/latex/contrib/projlib/projlib-author.sty
+2022/03/03 | 55207 | macros/latex/contrib/projlib/projlib-datetime.sty
2022/02/27 | 322407 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
2022/02/27 | 98208 | macros/latex/contrib/projlib/ProjLib-doc.dtx
2022/02/27 | 200297 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf
2022/02/27 | 201834 | macros/latex/contrib/projlib/ProjLib-doc-fr.pdf
2022/02/27 | 857 | macros/latex/contrib/projlib/ProjLib-doc.ins
-2022/02/27 | 135371 | macros/latex/contrib/projlib/ProjLib.dtx
-2022/02/27 | 2832 | macros/latex/contrib/projlib/ProjLib.ins
-2022/02/27 | 5318 | macros/latex/contrib/projlib/README.md
-2022/02/27 | 791161 | macros/latex/contrib/projlib.zip
+2022/02/24 | 4682 | macros/latex/contrib/projlib/projlib-draft.sty
+2022/03/09 | 4743 | macros/latex/contrib/projlib/projlib-font.sty
+2022/03/09 | 16869 | macros/latex/contrib/projlib/projlib-language.sty
+2022/02/24 | 2643 | macros/latex/contrib/projlib/projlib-logo.sty
+2022/02/26 | 7420 | macros/latex/contrib/projlib/projlib-math.sty
+2022/03/09 | 5062 | macros/latex/contrib/projlib/projlib-paper.sty
+2022/03/09 | 1413 | macros/latex/contrib/projlib/ProjLib.sty
+2022/03/09 | 54906 | macros/latex/contrib/projlib/projlib-theorem.sty
+2022/03/09 | 5426 | macros/latex/contrib/projlib/README.md
+2022/03/09 | 797193 | macros/latex/contrib/projlib.zip
2022/02/07 | 121559 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdf
2022/02/07 | 10484 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex
2022/02/07 | 84168 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx
@@ -276156,7 +276175,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
-2022/02/28 | 184426 | support/TeX4ht/source/ChangeLog
+2022/03/09 | 184637 | 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
@@ -276168,7 +276187,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
-2022/02/23 | 1108526 | support/TeX4ht/source/tex4ht-4ht.tex
+2022/03/09 | 1108925 | 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
2021/05/03 | 21247 | support/TeX4ht/source/tex4ht-cond4ht.tex
@@ -277955,12 +277974,12 @@
2006/01/09 | 1786 | systems/doc/etex/nts-group.html
2006/01/09 | 14439 | systems/doc/etex/webmerge.tex
2019/06/21 | 199629 | systems/doc/etex.zip
-2022/03/07 | 1113686 | systems/doc/hitex/hiformat.hnt
-2022/03/07 | 1255342 | systems/doc/hitex/hiformat.pdf
+2022/03/08 | 1114325 | systems/doc/hitex/hiformat.hnt
+2022/03/08 | 1255399 | systems/doc/hitex/hiformat.pdf
2022/03/07 | 45991 | systems/doc/hitex/hintmac.tex
-2022/03/07 | 541091 | systems/doc/hitex/hitexman.hnt
-2022/03/07 | 233835 | systems/doc/hitex/hitexman.pdf
-2022/03/07 | 38867 | systems/doc/hitex/hitexman.tex
+2022/03/08 | 541228 | systems/doc/hitex/hitexman.hnt
+2022/03/08 | 234052 | systems/doc/hitex/hitexman.pdf
+2022/03/08 | 38868 | systems/doc/hitex/hitexman.tex
2022/03/04 | 365006 | systems/doc/kpathsea/kpathsea.html
2022/03/04 | 401951 | systems/doc/kpathsea/kpathsea.pdf
2020/03/14 | 187652 | systems/doc/luatex/graphics/luaharfbuzz.pdf
@@ -283563,9 +283582,9 @@
2021/07/19 | 313228 | systems/texlive/tlnet/archive/easing.doc.r59975.tar.xz
2021/07/19 | 2220 | systems/texlive/tlnet/archive/easing.r59975.tar.xz
2021/07/19 | 7876 | systems/texlive/tlnet/archive/easing.source.r59975.tar.xz
-2022/03/08 | 608536 | systems/texlive/tlnet/archive/easybook.doc.r62509.tar.xz
-2022/03/08 | 16576 | systems/texlive/tlnet/archive/easybook.r62509.tar.xz
-2022/03/08 | 16476 | systems/texlive/tlnet/archive/easybook.source.r62509.tar.xz
+2022/03/09 | 608540 | systems/texlive/tlnet/archive/easybook.doc.r62523.tar.xz
+2022/03/09 | 16564 | systems/texlive/tlnet/archive/easybook.r62523.tar.xz
+2022/03/09 | 16468 | systems/texlive/tlnet/archive/easybook.source.r62523.tar.xz
2019/02/28 | 4540 | systems/texlive/tlnet/archive/easy.doc.r19440.tar.xz
2020/09/08 | 175976 | systems/texlive/tlnet/archive/easyfig.doc.r56291.tar.xz
2020/09/08 | 1936 | systems/texlive/tlnet/archive/easyfig.r56291.tar.xz
@@ -284552,9 +284571,9 @@
2019/02/28 | 196308 | systems/texlive/tlnet/archive/footbib.doc.r17115.tar.xz
2019/02/28 | 6692 | systems/texlive/tlnet/archive/footbib.r17115.tar.xz
2019/02/28 | 22456 | systems/texlive/tlnet/archive/footbib.source.r17115.tar.xz
-2022/03/08 | 511224 | systems/texlive/tlnet/archive/footmisc.doc.r62509.tar.xz
-2022/03/08 | 7648 | systems/texlive/tlnet/archive/footmisc.r62509.tar.xz
-2022/03/08 | 22112 | systems/texlive/tlnet/archive/footmisc.source.r62509.tar.xz
+2022/03/09 | 511220 | systems/texlive/tlnet/archive/footmisc.doc.r62527.tar.xz
+2022/03/09 | 7672 | systems/texlive/tlnet/archive/footmisc.r62527.tar.xz
+2022/03/09 | 22204 | systems/texlive/tlnet/archive/footmisc.source.r62527.tar.xz
2019/02/28 | 396 | systems/texlive/tlnet/archive/footmisx.doc.r42621.tar.xz
2019/02/28 | 6048 | systems/texlive/tlnet/archive/footmisx.r42621.tar.xz
2019/02/28 | 19832 | systems/texlive/tlnet/archive/footmisx.source.r42621.tar.xz
@@ -287058,9 +287077,9 @@
2021/01/08 | 3476 | systems/texlive/tlnet/archive/lua-visual-debug.r57349.tar.xz
2021/03/04 | 95132 | systems/texlive/tlnet/archive/luavlna.doc.r58087.tar.xz
2021/03/04 | 7628 | systems/texlive/tlnet/archive/luavlna.r58087.tar.xz
-2022/02/23 | 319168 | systems/texlive/tlnet/archive/lua-widow-control.doc.r62144.tar.xz
-2022/02/23 | 7080 | systems/texlive/tlnet/archive/lua-widow-control.r62144.tar.xz
-2022/02/23 | 12064 | systems/texlive/tlnet/archive/lua-widow-control.source.r62144.tar.xz
+2022/03/09 | 381520 | systems/texlive/tlnet/archive/lua-widow-control.doc.r62526.tar.xz
+2022/03/09 | 10204 | systems/texlive/tlnet/archive/lua-widow-control.r62526.tar.xz
+2022/03/09 | 13432 | systems/texlive/tlnet/archive/lua-widow-control.source.r62526.tar.xz
2021/10/08 | 123428 | systems/texlive/tlnet/archive/luaxml.doc.r60709.tar.xz
2021/10/08 | 32276 | systems/texlive/tlnet/archive/luaxml.r60709.tar.xz
2022/02/28 | 77912 | systems/texlive/tlnet/archive/lutabulartools.doc.r62253.tar.xz
@@ -291153,14 +291172,14 @@
2021/02/27 | 109184 | systems/texlive/tlnet/archive/tex4ht.amd64-freebsd.r57941.tar.xz
2021/02/24 | 87364 | systems/texlive/tlnet/archive/tex4ht.amd64-netbsd.r57877.tar.xz
2021/02/27 | 69944 | systems/texlive/tlnet/archive/tex4ht.armhf-linux.r57957.tar.xz
-2022/02/23 | 136380 | systems/texlive/tlnet/archive/tex4ht.doc.r62147.tar.xz
+2022/03/09 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r62532.tar.xz
2021/03/16 | 51080 | systems/texlive/tlnet/archive/tex4ht.i386-cygwin.r58387.tar.xz
2021/02/27 | 93092 | systems/texlive/tlnet/archive/tex4ht.i386-freebsd.r57961.tar.xz
2021/02/24 | 89116 | systems/texlive/tlnet/archive/tex4ht.i386-linux.r57878.tar.xz
2021/02/24 | 76196 | systems/texlive/tlnet/archive/tex4ht.i386-netbsd.r57877.tar.xz
2021/02/27 | 83896 | systems/texlive/tlnet/archive/tex4ht.i386-solaris.r57938.tar.xz
-2022/02/23 | 927404 | systems/texlive/tlnet/archive/tex4ht.r62147.tar.xz
-2022/02/23 | 1235612 | systems/texlive/tlnet/archive/tex4ht.source.r62147.tar.xz
+2022/03/09 | 927108 | systems/texlive/tlnet/archive/tex4ht.r62532.tar.xz
+2022/03/09 | 1235608 | systems/texlive/tlnet/archive/tex4ht.source.r62532.tar.xz
2021/02/25 | 185088 | systems/texlive/tlnet/archive/tex4ht.universal-darwin.r57908.tar.xz
2021/04/08 | 57760 | systems/texlive/tlnet/archive/tex4ht.win32.r58783.tar.xz
2021/03/16 | 58360 | systems/texlive/tlnet/archive/tex4ht.x86_64-cygwin.r58387.tar.xz
@@ -291395,7 +291414,7 @@
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz
-2022/03/08 | 404044 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62491.tar.xz
+2022/03/09 | 404044 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62511.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
@@ -291419,7 +291438,7 @@
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz
-2022/03/08 | 108812 | systems/texlive/tlnet/archive/texlive-scripts.r62491.tar.xz
+2022/03/09 | 108804 | systems/texlive/tlnet/archive/texlive-scripts.r62511.tar.xz
2021/02/25 | 572 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r57908.tar.xz
2021/04/12 | 36308 | systems/texlive/tlnet/archive/texlive-scripts.win32.r58829.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz
@@ -292922,13 +292941,13 @@
2019/02/28 | 344 | systems/texlive/tlnet/archive/xindex.amd64-freebsd.r49312.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/xindex.amd64-netbsd.r49312.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/xindex.armhf-linux.r49312.tar.xz
-2022/02/14 | 503012 | systems/texlive/tlnet/archive/xindex.doc.r62002.tar.xz
+2022/03/09 | 504128 | systems/texlive/tlnet/archive/xindex.doc.r62521.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xindex.i386-cygwin.r49312.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/xindex.i386-freebsd.r49312.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xindex.i386-linux.r49312.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xindex.i386-netbsd.r49312.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xindex.i386-solaris.r49312.tar.xz
-2022/02/14 | 34608 | systems/texlive/tlnet/archive/xindex.r62002.tar.xz
+2022/03/09 | 34592 | systems/texlive/tlnet/archive/xindex.r62521.tar.xz
2021/02/25 | 340 | systems/texlive/tlnet/archive/xindex.universal-darwin.r57908.tar.xz
2019/02/28 | 680 | systems/texlive/tlnet/archive/xindex.win32.r49312.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xindex.x86_64-cygwin.r49312.tar.xz
@@ -293218,16 +293237,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2022/02/22 | 106745 | systems/texlive/tlnet/install-tl
-2022/03/08 | 6810740 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/03/08 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/03/08 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/03/09 | 6810822 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/03/09 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/03/09 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2022/03/08 | 20873631 | systems/texlive/tlnet/install-tl-windows.exe
-2022/03/08 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/03/08 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/03/08 | 25628835 | systems/texlive/tlnet/install-tl.zip
-2022/03/08 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/03/08 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/03/09 | 20874501 | systems/texlive/tlnet/install-tl-windows.exe
+2022/03/09 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/03/09 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/03/09 | 25628828 | systems/texlive/tlnet/install-tl.zip
+2022/03/09 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/03/09 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2021/04/01 | 1229 | systems/texlive/tlnet/README.md
2021/04/01 | 0 | systems/texlive/tlnet/TEXLIVE_2021
2021/07/03 | 7181 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -293237,8 +293256,8 @@
2021/07/03 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2022/01/12 | 49482 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2022/03/08 | 7387 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
-2022/03/07 | 213092 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
+2022/03/09 | 7340 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/03/09 | 213092 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
2021/02/27 | 5390 | systems/texlive/tlnet/tlpkg/installer/install-menu-extl.pl
@@ -293279,12 +293298,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2022/03/08 | 17179555 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/03/08 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/03/09 | 17179633 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/03/09 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2021/12/21 | 86654 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2022/03/08 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/03/08 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/03/08 | 2357476 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/03/09 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/03/09 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/03/09 | 2355936 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/12/21 | 58848 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2021/12/21 | 42112 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -295989,7 +296008,7 @@
2022/02/26 | 93844 | systems/texlive/tlnet/tlpkg/translations/fr.po
2022/02/26 | 87555 | systems/texlive/tlnet/tlpkg/translations/it.po
2022/02/26 | 62194 | systems/texlive/tlnet/tlpkg/translations/ja.po
-2022/03/08 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
+2022/03/09 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
2022/02/26 | 57618 | systems/texlive/tlnet/tlpkg/translations/nl.po
2022/02/26 | 66753 | systems/texlive/tlnet/tlpkg/translations/pl.po
2022/02/26 | 82407 | systems/texlive/tlnet/tlpkg/translations/pt_BR.po
@@ -297225,9 +297244,9 @@
2022/03/07 | 39359 | systems/win32/miktex/tm/packages/biblatex-ext__source.tar.lzma
2022/03/07 | 28970 | systems/win32/miktex/tm/packages/biblatex-ext.tar.lzma
2017/11/22 | 616165 | systems/win32/miktex/tm/packages/biblatex-fiwi.tar.lzma
-2022/03/07 | 1388186 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015__doc.tar.lzma
-2022/03/07 | 89307 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015__source.tar.lzma
-2022/03/07 | 43635 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015.tar.lzma
+2022/03/09 | 1365137 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015__doc.tar.lzma
+2022/03/09 | 89336 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015__source.tar.lzma
+2022/03/09 | 43645 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015.tar.lzma
2020/11/24 | 173898 | systems/win32/miktex/tm/packages/biblatex-german-legal.tar.lzma
2021/05/18 | 1022019 | systems/win32/miktex/tm/packages/biblatex-gost.tar.lzma
2010/08/24 | 601778 | systems/win32/miktex/tm/packages/biblatex-historian.tar.lzma
@@ -298093,9 +298112,9 @@
2021/07/18 | 313984 | systems/win32/miktex/tm/packages/easing__doc.tar.lzma
2021/07/18 | 8201 | systems/win32/miktex/tm/packages/easing__source.tar.lzma
2021/07/18 | 2391 | systems/win32/miktex/tm/packages/easing.tar.lzma
-2022/03/07 | 585313 | systems/win32/miktex/tm/packages/easybook__doc.tar.lzma
-2022/03/07 | 38990 | systems/win32/miktex/tm/packages/easybook__source.tar.lzma
-2022/03/07 | 16117 | systems/win32/miktex/tm/packages/easybook.tar.lzma
+2022/03/09 | 589749 | systems/win32/miktex/tm/packages/easybook__doc.tar.lzma
+2022/03/09 | 39112 | systems/win32/miktex/tm/packages/easybook__source.tar.lzma
+2022/03/09 | 16147 | systems/win32/miktex/tm/packages/easybook.tar.lzma
2018/03/31 | 183421 | systems/win32/miktex/tm/packages/easyfig.tar.lzma
2020/12/21 | 609763 | systems/win32/miktex/tm/packages/easyfloats.tar.lzma
2017/06/12 | 52618 | systems/win32/miktex/tm/packages/easyformat.tar.lzma
@@ -298439,7 +298458,7 @@
2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2022/03/08 | 643154 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/03/09 | 643499 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -298533,9 +298552,9 @@
2017/07/16 | 330987 | systems/win32/miktex/tm/packages/fonttable.tar.lzma
2008/06/10 | 283950 | systems/win32/miktex/tm/packages/fontwrap.tar.lzma
2010/02/22 | 224322 | systems/win32/miktex/tm/packages/footbib.tar.lzma
-2022/02/18 | 511837 | systems/win32/miktex/tm/packages/footmisc__doc.tar.lzma
-2022/02/18 | 22475 | systems/win32/miktex/tm/packages/footmisc__source.tar.lzma
-2022/02/18 | 7796 | systems/win32/miktex/tm/packages/footmisc.tar.lzma
+2022/03/09 | 512067 | systems/win32/miktex/tm/packages/footmisc__doc.tar.lzma
+2022/03/09 | 22925 | systems/win32/miktex/tm/packages/footmisc__source.tar.lzma
+2022/03/09 | 7874 | systems/win32/miktex/tm/packages/footmisc.tar.lzma
2016/12/05 | 26465 | systems/win32/miktex/tm/packages/footmisx.tar.lzma
2012/07/03 | 113754 | systems/win32/miktex/tm/packages/footnotebackref.tar.lzma
2021/09/06 | 83108 | systems/win32/miktex/tm/packages/footnotehyper__doc.tar.lzma
@@ -299263,8 +299282,8 @@
2021/11/13 | 7963 | systems/win32/miktex/tm/packages/latex-firstaid__source.tar.lzma
2021/11/13 | 3571 | systems/win32/miktex/tm/packages/latex-firstaid.tar.lzma
2009/06/30 | 18674 | systems/win32/miktex/tm/packages/latex-fonts.tar.lzma
-2022/02/07 | 1308527 | systems/win32/miktex/tm/packages/latex-for-undergraduates__source.tar.lzma
-2022/02/07 | 1784641 | systems/win32/miktex/tm/packages/latex-for-undergraduates.tar.lzma
+2022/03/09 | 1308485 | systems/win32/miktex/tm/packages/latex-for-undergraduates__source.tar.lzma
+2022/03/09 | 1785199 | systems/win32/miktex/tm/packages/latex-for-undergraduates.tar.lzma
2020/02/28 | 86786 | systems/win32/miktex/tm/packages/latex-git-log.tar.lzma
2020/04/21 | 455359 | systems/win32/miktex/tm/packages/latexgit.tar.lzma
2022/01/24 | 2504654 | systems/win32/miktex/tm/packages/latex-graphics-dev__doc.tar.lzma
@@ -299553,9 +299572,9 @@
2022/03/07 | 7878 | systems/win32/miktex/tm/packages/lua-uni-algos.tar.lzma
2021/01/11 | 294199 | systems/win32/miktex/tm/packages/lua-visual-debug.tar.lzma
2021/03/03 | 103795 | systems/win32/miktex/tm/packages/luavlna.tar.lzma
-2022/03/07 | 319867 | systems/win32/miktex/tm/packages/lua-widow-control__doc.tar.lzma
-2022/03/07 | 12665 | systems/win32/miktex/tm/packages/lua-widow-control__source.tar.lzma
-2022/03/07 | 7347 | systems/win32/miktex/tm/packages/lua-widow-control.tar.lzma
+2022/03/09 | 382302 | systems/win32/miktex/tm/packages/lua-widow-control__doc.tar.lzma
+2022/03/09 | 14092 | systems/win32/miktex/tm/packages/lua-widow-control__source.tar.lzma
+2022/03/09 | 10521 | systems/win32/miktex/tm/packages/lua-widow-control.tar.lzma
2021/10/14 | 114779 | systems/win32/miktex/tm/packages/luaxml__doc.tar.lzma
2021/10/14 | 9729 | systems/win32/miktex/tm/packages/luaxml__source.tar.lzma
2021/10/14 | 32350 | systems/win32/miktex/tm/packages/luaxml.tar.lzma
@@ -299994,9 +300013,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2022/01/29 | 39717 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2022/01/29 | 43173 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/03/08 | 269447 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/03/08 | 1432204 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/03/08 | 1323516 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/03/09 | 269647 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/03/09 | 1432945 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/03/09 | 1323480 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/01/29 | 13505 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2022/01/29 | 14408 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -300220,191 +300239,192 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2022/03/08 | 642699 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/03/08 | 51516 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/03/08 | 57318 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/03/08 | 1020251 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2022/03/08 | 1156086 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/03/08 | 28889 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/03/08 | 31570 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/03/08 | 30176 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2022/03/08 | 35233 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/03/08 | 56986 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/03/08 | 65100 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/03/08 | 86483 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2022/03/08 | 95316 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/03/08 | 68890 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2022/03/08 | 77078 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/03/08 | 27244 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/03/08 | 31336 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/03/08 | 332517 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2022/03/08 | 394184 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2022/03/08 | 32936 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/03/08 | 37089 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2022/03/08 | 51468 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2022/03/08 | 57349 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/03/08 | 256392 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/03/08 | 281708 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/03/08 | 180014 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2022/03/08 | 196186 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2022/03/08 | 92955 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/03/08 | 103056 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/03/08 | 21321 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2022/03/08 | 24170 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/03/08 | 479429 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/03/08 | 46090 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2022/03/08 | 52075 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/03/08 | 285910 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/03/08 | 326730 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/03/08 | 41317 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/03/08 | 45701 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/03/08 | 120469 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2022/03/08 | 135254 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/03/08 | 1306317 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2022/03/08 | 1454271 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/03/08 | 99713 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2022/03/08 | 113013 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/03/08 | 43643 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/03/08 | 48826 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/03/08 | 25107 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/03/08 | 28595 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/03/08 | 57044 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/03/08 | 63391 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/03/08 | 136109 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/03/08 | 155456 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/03/08 | 73597 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/03/08 | 78966 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/03/08 | 72005 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2022/03/08 | 81642 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/03/08 | 259093 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/03/08 | 296017 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2022/03/08 | 22163 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2022/03/08 | 25067 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/03/08 | 97023 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2022/03/08 | 112476 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/03/08 | 64527 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/03/08 | 73203 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/03/08 | 96602 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2022/03/08 | 115694 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/03/08 | 38480 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2022/03/08 | 43805 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/03/08 | 484790 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2022/03/08 | 566552 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/03/08 | 188211 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
-2022/03/08 | 229951 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2022/03/08 | 152071 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2022/03/08 | 168767 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2022/03/08 | 95463 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/03/08 | 109518 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/03/08 | 16504 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2022/03/08 | 18359 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/03/08 | 28419 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2022/03/08 | 30525 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/03/08 | 633940 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/03/08 | 682350 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/03/08 | 532218 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2022/03/08 | 599046 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2022/03/08 | 477758 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2022/03/08 | 527877 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/03/08 | 93956 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/03/08 | 103393 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/03/08 | 1753744 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/03/08 | 1983663 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/03/08 | 68006 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/03/08 | 74064 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/03/08 | 27629 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/03/08 | 32139 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2022/03/08 | 7759 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2022/03/08 | 8787 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/03/08 | 197457 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2022/03/08 | 216062 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/03/08 | 251335 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/03/08 | 286546 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/03/08 | 99249 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2022/03/08 | 104710 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/03/08 | 126758 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2022/03/08 | 139421 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2022/03/08 | 254981 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/03/08 | 286872 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/03/08 | 199569 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/03/08 | 181677 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/03/08 | 68623 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2022/03/08 | 76233 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/03/08 | 31409 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/03/08 | 35190 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/03/08 | 38577 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/03/08 | 43936 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/03/08 | 43372 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2022/03/08 | 48017 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/03/08 | 45942 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/03/08 | 52313 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/03/08 | 198683 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/03/08 | 213208 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/03/08 | 36062 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2022/03/08 | 41279 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/03/08 | 759646 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2022/03/08 | 825812 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/03/08 | 200077 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/03/08 | 202534 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/03/08 | 210199 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/03/08 | 244867 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/03/08 | 78983 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/03/08 | 88124 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/03/08 | 1180914 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2022/03/08 | 1322725 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/03/08 | 20192 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2022/03/08 | 23936 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/03/08 | 31567 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/03/08 | 37395 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/03/08 | 64722 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/03/08 | 73012 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/03/08 | 50824 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2022/03/08 | 58657 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/03/08 | 688943 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/03/08 | 762607 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/03/08 | 1355329 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/03/08 | 1499051 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/03/08 | 42746 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2022/03/08 | 52594 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/03/08 | 57475 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/03/08 | 63761 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/03/08 | 25458 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/03/08 | 27591 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/03/08 | 16570 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/03/08 | 18500 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/03/08 | 64474 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2022/03/08 | 71001 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/03/08 | 156732 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/03/08 | 172562 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/03/08 | 58686 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/03/08 | 67225 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2022/03/08 | 101443 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2022/03/08 | 109180 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/03/08 | 2696290 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2022/03/08 | 2816622 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2022/03/08 | 55414 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2022/03/08 | 62130 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2022/03/08 | 37181 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/03/08 | 41228 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/03/08 | 28700 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/03/08 | 34036 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2022/03/08 | 67652 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/03/08 | 73504 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/03/08 | 316655 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/03/08 | 351834 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/03/08 | 55764 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/03/08 | 57445 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/03/08 | 591472 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2022/03/08 | 629482 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2022/03/08 | 39720 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/03/08 | 43665 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/03/08 | 269604 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/03/08 | 1432719 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/03/08 | 1323361 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/03/08 | 13512 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/03/08 | 14412 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/03/09 | 643487 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/03/09 | 51558 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/03/09 | 57330 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/03/09 | 1021843 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/03/09 | 1156463 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/03/09 | 28797 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/03/09 | 31518 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/03/09 | 30145 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/03/09 | 35241 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/03/09 | 56617 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/03/09 | 65054 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/03/09 | 86755 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/03/09 | 95282 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/03/09 | 68871 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/03/09 | 77067 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/03/09 | 27247 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/03/09 | 31340 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/03/09 | 332414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/03/09 | 394370 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/03/09 | 32953 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/03/09 | 37080 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/03/09 | 51485 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/03/09 | 57269 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/03/09 | 5028 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
+2022/03/09 | 244960 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/03/09 | 270297 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/03/09 | 179875 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/03/09 | 196115 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/03/09 | 92917 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/03/09 | 103090 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/03/09 | 21314 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/03/09 | 24119 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/03/09 | 481497 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/03/09 | 46064 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/03/09 | 52092 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/03/09 | 285714 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/03/09 | 326659 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/03/09 | 41305 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/03/09 | 45823 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/03/09 | 120613 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/03/09 | 135377 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/03/09 | 1302482 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/03/09 | 1454764 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/03/09 | 99816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/03/09 | 113051 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/03/09 | 43645 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/03/09 | 48823 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/03/09 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/03/09 | 28567 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/03/09 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/03/09 | 63309 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/03/09 | 135949 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/03/09 | 155496 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/03/09 | 73477 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/03/09 | 78974 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/03/09 | 72012 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/03/09 | 81460 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/03/09 | 259256 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/03/09 | 296036 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/03/09 | 22145 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/03/09 | 25057 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/03/09 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/03/09 | 112588 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/03/09 | 64541 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/03/09 | 73146 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/03/09 | 96630 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/03/09 | 115655 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/03/09 | 38425 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/03/09 | 43824 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/03/09 | 484369 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/03/09 | 565926 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/03/09 | 203832 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/03/09 | 247332 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/03/09 | 152031 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/03/09 | 168818 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/03/09 | 95432 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/03/09 | 109477 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/03/09 | 16502 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/03/09 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/03/09 | 28420 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/03/09 | 30540 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/03/09 | 631280 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/03/09 | 681937 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/03/09 | 532456 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/03/09 | 598230 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/03/09 | 477846 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/03/09 | 528016 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/03/09 | 93958 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/03/09 | 103337 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/03/09 | 1752145 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/03/09 | 1982080 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/03/09 | 68009 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/03/09 | 74069 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/03/09 | 27589 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/03/09 | 32133 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/03/09 | 7753 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/03/09 | 8784 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/03/09 | 190504 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/03/09 | 208807 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/03/09 | 251129 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/03/09 | 286410 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/03/09 | 99256 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/03/09 | 104554 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/03/09 | 126534 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/03/09 | 139101 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/03/09 | 288200 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/03/09 | 325268 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/03/09 | 199830 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/03/09 | 181515 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/03/09 | 49769 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/03/09 | 55568 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/03/09 | 31411 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/03/09 | 35167 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/03/09 | 38560 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/03/09 | 43915 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/03/09 | 43360 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/03/09 | 47922 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/03/09 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/03/09 | 52325 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/03/09 | 197034 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/03/09 | 213277 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/03/09 | 36049 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/03/09 | 41180 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/03/09 | 755742 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/03/09 | 824369 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/03/09 | 200395 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/03/09 | 202834 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/03/09 | 210275 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/03/09 | 245094 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/03/09 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/03/09 | 88151 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/03/09 | 1181125 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/03/09 | 1322742 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/03/09 | 20182 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/03/09 | 23943 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/03/09 | 31587 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/03/09 | 37372 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/03/09 | 64707 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/03/09 | 72883 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/03/09 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/03/09 | 58661 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/03/09 | 693067 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/03/09 | 758954 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/03/09 | 1357072 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/03/09 | 1501236 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/03/09 | 42816 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/03/09 | 52477 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/03/09 | 57617 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/03/09 | 63739 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/03/09 | 25551 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/03/09 | 27635 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/03/09 | 16559 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/03/09 | 18491 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/03/09 | 64488 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/03/09 | 71004 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/03/09 | 156963 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/03/09 | 173007 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/03/09 | 58666 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/03/09 | 67251 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/03/09 | 100485 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/03/09 | 107704 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/03/09 | 2694875 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/03/09 | 2820687 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/03/09 | 55284 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/03/09 | 62380 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/03/09 | 37115 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/03/09 | 41201 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/03/09 | 28689 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/03/09 | 34051 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/03/09 | 67704 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/03/09 | 73526 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/03/09 | 316241 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/03/09 | 351697 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/03/09 | 55756 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/03/09 | 57525 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/03/09 | 591570 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/03/09 | 629429 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/03/09 | 39725 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/03/09 | 43222 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/03/09 | 269767 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/03/09 | 1433245 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/03/09 | 1324965 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/03/09 | 13512 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/03/09 | 14411 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2022/03/08 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/03/09 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma
@@ -300820,7 +300840,9 @@
2021/08/28 | 19851 | systems/win32/miktex/tm/packages/pm-isomath__source.tar.lzma
2021/08/28 | 3078 | systems/win32/miktex/tm/packages/pm-isomath.tar.lzma
2016/01/03 | 396227 | systems/win32/miktex/tm/packages/pmxchords.tar.lzma
-2021/01/30 | 674371 | systems/win32/miktex/tm/packages/pmx.tar.lzma
+2022/03/09 | 460837 | systems/win32/miktex/tm/packages/pmx__doc.tar.lzma
+2022/03/09 | 1796503 | systems/win32/miktex/tm/packages/pmx__source.tar.lzma
+2022/03/09 | 10272 | systems/win32/miktex/tm/packages/pmx.tar.lzma
2020/06/13 | 881436 | systems/win32/miktex/tm/packages/poemscol.tar.lzma
2019/12/15 | 287993 | systems/win32/miktex/tm/packages/poetry.tar.lzma
2016/03/09 | 18224 | systems/win32/miktex/tm/packages/poetrytex.tar.lzma
@@ -300863,7 +300885,7 @@
2022/02/22 | 6917 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2022/03/08 | 941 | systems/win32/miktex/tm/packages/pr.ini
+2022/03/09 | 1007 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -301193,6 +301215,9 @@
2021/05/09 | 65765323 | systems/win32/miktex/tm/packages/rmannot.tar.lzma
2020/12/21 | 275370 | systems/win32/miktex/tm/packages/rmathbr.tar.lzma
2010/10/07 | 606000 | systems/win32/miktex/tm/packages/rmpage.tar.lzma
+2022/03/09 | 185265 | systems/win32/miktex/tm/packages/robotarm__doc.tar.lzma
+2022/03/09 | 7241 | systems/win32/miktex/tm/packages/robotarm__source.tar.lzma
+2022/03/09 | 3134 | systems/win32/miktex/tm/packages/robotarm.tar.lzma
2007/03/17 | 1185504 | systems/win32/miktex/tm/packages/robot-man.tar.bz2
2019/12/13 | 10299746 | systems/win32/miktex/tm/packages/roboto.tar.lzma
2006/04/13 | 62825 | systems/win32/miktex/tm/packages/robustcommand.cab
@@ -302257,9 +302282,9 @@
2015/11/25 | 486715 | systems/win32/miktex/tm/packages/xifthen.tar.lzma
2017/11/18 | 1746 | systems/win32/miktex/tm/packages/xii-lat.tar.lzma
2017/11/18 | 1593 | systems/win32/miktex/tm/packages/xii.tar.lzma
-2022/02/18 | 337479 | systems/win32/miktex/tm/packages/xindex__doc.tar.lzma
-2022/02/18 | 168992 | systems/win32/miktex/tm/packages/xindex__source.tar.lzma
-2022/02/18 | 35195 | systems/win32/miktex/tm/packages/xindex.tar.lzma
+2022/03/09 | 337532 | systems/win32/miktex/tm/packages/xindex__doc.tar.lzma
+2022/03/09 | 169064 | systems/win32/miktex/tm/packages/xindex__source.tar.lzma
+2022/03/09 | 34916 | systems/win32/miktex/tm/packages/xindex.tar.lzma
2016/11/05 | 133165 | systems/win32/miktex/tm/packages/xindy.tar.lzma
2021/07/14 | 2185133 | systems/win32/miktex/tm/packages/xint__doc.tar.lzma
2021/11/07 | 3453 | systems/win32/miktex/tm/packages/xintsession__doc.tar.lzma
@@ -302419,7 +302444,7 @@
2007/02/12 | 395234 | systems/win32/texshell32/WinTeXShell32.zip
2021/10/01 | 2480 | systems/win32/TLW64/00README.TLW64
2021/10/01 | 61484773 | systems/win32/TLW64/gs9550w64full-gpl.exe
-2022/03/07 | 99081190 | systems/win32/TLW64/tl-win64.zip
+2022/03/08 | 99080415 | systems/win32/TLW64/tl-win64.zip
1996/11/26 | 1822 | systems/win32/tsconfig/readme
1996/11/26 | 30343 | systems/win32/tsconfig/tsconfig.zip
1998/01/20 | 766976 | systems/win32/util/cmdsh110.exe
@@ -302652,7 +302677,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2022/03/09 | 186 | timestamp
+2022/03/10 | 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 e85d89af99..93d6d0a6a7 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index bc0a5f00c7..bd3e308d89 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,8 +1,333 @@
+2022/03/09 | 99816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/03/09 | 99256 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/03/09 | 97389 | macros/latex/contrib/dtxdescribe/dtxdescribe.dtx
+2022/03/09 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/03/09 | 9717 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-focus.jpg
+2022/03/09 | 96630 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/03/09 | 95432 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/03/09 | 95282 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/03/09 | 93958 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/03/09 | 938396 | info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.pdf
+2022/03/09 | 930 | macros/latex/contrib/dtxdescribe/README.txt
+2022/03/09 | 92917 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/03/09 | 927108 | systems/texlive/tlnet/archive/tex4ht.r62532.tar.xz
+2022/03/09 | 89 | macros/latex/contrib/lwarp/lwarp_baseline_marker.png
+2022/03/09 | 89336 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015__source.tar.lzma
+2022/03/09 | 88151 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/03/09 | 8784 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/03/09 | 874252 | info/kaytannollista-latexia/kaytannollista-latexia.pdf
+2022/03/09 | 86927 | info/kaytannollista-latexia/luku-merkintakieli.tex
+2022/03/09 | 86755 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/03/09 | 861091 | info/yet-another-guide-latex2e.zip
+2022/03/09 | 83585 | macros/latex/contrib/easybook/easybook.tex
+2022/03/09 | 824369 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/03/09 | 81460 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/03/09 | 797193 | macros/latex/contrib/projlib.zip
+2022/03/09 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/03/09 | 78974 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/03/09 | 7874 | systems/win32/miktex/tm/packages/footmisc.tar.lzma
+2022/03/09 | 7753 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/03/09 | 77067 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/03/09 | 7672 | systems/texlive/tlnet/archive/footmisc.r62527.tar.xz
+2022/03/09 | 758954 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/03/09 | 755742 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/03/09 | 74709 | macros/latex/contrib/easybook/easybook.dtx
+2022/03/09 | 74069 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/03/09 | 73526 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/03/09 | 73477 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/03/09 | 7340 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/03/09 | 73146 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/03/09 | 72883 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/03/09 | 7241 | systems/win32/miktex/tm/packages/robotarm__source.tar.lzma
+2022/03/09 | 72012 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/03/09 | 719 | macros/latex/contrib/lwarp/lwarp_baseline_marker.eps
+2022/03/09 | 71004 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/03/09 | 693067 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/03/09 | 68871 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/03/09 | 681937 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/03/09 | 6810822 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/03/09 | 68009 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/03/09 | 67704 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/03/09 | 67251 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/03/09 | 65054 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/03/09 | 64707 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/03/09 | 64541 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/03/09 | 64488 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/03/09 | 643499 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/03/09 | 643487 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/03/09 | 63739 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/03/09 | 633974 | macros/latex/contrib/easybook.zip
+2022/03/09 | 63309 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/03/09 | 631280 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/03/09 | 6300 | info/kaytannollista-latexia/README.md
+2022/03/09 | 629429 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/03/09 | 62380 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/03/09 | 608540 | systems/texlive/tlnet/archive/easybook.doc.r62523.tar.xz
+2022/03/09 | 602 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo_bibliography.bib
+2022/03/09 | 598230 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/03/09 | 592701 | macros/latex/contrib/easybook/easybook.pdf
+2022/03/09 | 591570 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/03/09 | 589749 | systems/win32/miktex/tm/packages/easybook__doc.tar.lzma
+2022/03/09 | 58666 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/03/09 | 58661 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/03/09 | 57942 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage-color.jpg
+2022/03/09 | 57617 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/03/09 | 57525 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/03/09 | 57330 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/03/09 | 57269 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/03/09 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/03/09 | 56617 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/03/09 | 565926 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/03/09 | 55756 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/03/09 | 55568 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/03/09 | 55284 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/03/09 | 54906 | macros/latex/contrib/projlib/projlib-theorem.sty
+2022/03/09 | 5426 | macros/latex/contrib/projlib/README.md
+2022/03/09 | 532456 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/03/09 | 528016 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/03/09 | 52477 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/03/09 | 52325 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/03/09 | 52092 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/03/09 | 51558 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/03/09 | 51485 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/03/09 | 512067 | systems/win32/miktex/tm/packages/footmisc__doc.tar.lzma
+2022/03/09 | 511220 | systems/texlive/tlnet/archive/footmisc.doc.r62527.tar.xz
+2022/03/09 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/03/09 | 5062 | macros/latex/contrib/projlib/projlib-paper.sty
+2022/03/09 | 504128 | systems/texlive/tlnet/archive/xindex.doc.r62521.tar.xz
+2022/03/09 | 5028 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
+2022/03/09 | 4984 | macros/latex/contrib/projlib/old-modules/PJLtoolkit.sty
+2022/03/09 | 49769 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/03/09 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/03/09 | 48823 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/03/09 | 4862 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
+2022/03/09 | 484369 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/03/09 | 481497 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/03/09 | 47922 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/03/09 | 477846 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/03/09 | 4743 | macros/latex/contrib/projlib/projlib-font.sty
+2022/03/09 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
+2022/03/09 | 460837 | systems/win32/miktex/tm/packages/pmx__doc.tar.lzma
+2022/03/09 | 46064 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/03/09 | 4591 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
+2022/03/09 | 45868 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
+2022/03/09 | 45823 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/03/09 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/03/09 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/03/09 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/03/09 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/03/09 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/03/09 | 43915 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/03/09 | 43824 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/03/09 | 43645 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/03/09 | 43645 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015.tar.lzma
+2022/03/09 | 43360 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/03/09 | 43222 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/03/09 | 4312 | macros/latex/contrib/mhequ/example.tex
+2022/03/09 | 42816 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/03/09 | 427 | macros/latex/contrib/mhequ/README
+2022/03/09 | 42671 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
+2022/03/09 | 4262982 | install/macros/latex/contrib/lwarp.tds.zip
+2022/03/09 | 41305 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/03/09 | 41201 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/03/09 | 41180 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/03/09 | 4072 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
+2022/03/09 | 4062 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-logo.pdf
+2022/03/09 | 404044 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62511.tar.xz
+2022/03/09 | 403116 | macros/latex/contrib/dtxdescribe.zip
+2022/03/09 | 39725 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/03/09 | 394370 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/03/09 | 39112 | systems/win32/miktex/tm/packages/easybook__source.tar.lzma
+2022/03/09 | 387502 | macros/latex/contrib/dtxdescribe/dtxdescribe.pdf
+2022/03/09 | 38560 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/03/09 | 38425 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/03/09 | 3840379 | graphics/pgf/contrib/liftarm.zip
+2022/03/09 | 382302 | systems/win32/miktex/tm/packages/lua-widow-control__doc.tar.lzma
+2022/03/09 | 381520 | systems/texlive/tlnet/archive/lua-widow-control.doc.r62526.tar.xz
+2022/03/09 | 37372 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/03/09 | 37115 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/03/09 | 37080 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/03/09 | 3668772 | macros/latex/contrib/lwarp.zip
+2022/03/09 | 36049 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/03/09 | 35777 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage.jpg
+2022/03/09 | 35571 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-subsectionpage.jpg
+2022/03/09 | 35241 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/03/09 | 351697 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/03/09 | 35167 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/03/09 | 35149 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/LICENSE.md
+2022/03/09 | 34916 | systems/win32/miktex/tm/packages/xindex.tar.lzma
+2022/03/09 | 34592 | systems/texlive/tlnet/archive/xindex.r62521.tar.xz
+2022/03/09 | 34051 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/03/09 | 337532 | systems/win32/miktex/tm/packages/xindex__doc.tar.lzma
+2022/03/09 | 33525 | macros/latex/contrib/lwarp/lwarp.ins
+2022/03/09 | 332414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/03/09 | 32953 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/03/09 | 326659 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/03/09 | 325268 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/03/09 | 32133 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/03/09 | 32126 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-references.jpg
+2022/03/09 | 3181333 | macros/latex/contrib/lwarp/lwarp.pdf
+2022/03/09 | 316736 | info/kaytannollista-latexia/luku-rakenne.tex
+2022/03/09 | 316241 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/03/09 | 31587 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/03/09 | 31518 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/03/09 | 31411 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/03/09 | 3134 | systems/win32/miktex/tm/packages/robotarm.tar.lzma
+2022/03/09 | 31340 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/03/09 | 30540 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/03/09 | 30145 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/03/09 | 29 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md
+2022/03/09 | 29 | info/kaytannollista-latexia/versio.tex
+2022/03/09 | 2989 | info/kaytannollista-latexia/kirjallisuutta.bib
+2022/03/09 | 29813 | macros/latex/contrib/lwarp/lwarpmk.lua
+2022/03/09 | 296036 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/03/09 | 2947 | macros/latex/contrib/lwarp/lwarp_tutorial.txt
+2022/03/09 | 29299 | macros/latex/contrib/messagepassing/messagepassing.dtx
+2022/03/09 | 288200 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/03/09 | 28797 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/03/09 | 28689 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/03/09 | 286410 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/03/09 | 285714 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/03/09 | 28567 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/03/09 | 28420 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/03/09 | 2834118 | macros/latex/contrib/lwarp/lwarp.dtx
+2022/03/09 | 2820687 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/03/09 | 27635 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/03/09 | 27589 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/03/09 | 275022 | macros/latex/contrib/messagepassing.zip
+2022/03/09 | 27247 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/03/09 | 27131 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-appendix.jpg
+2022/03/09 | 270297 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/03/09 | 269767 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/03/09 | 269647 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/03/09 | 2694875 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/03/09 | 2691 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamercolorthemefocus.sty
+2022/03/09 | 267669 | macros/latex/contrib/messagepassing/messagepassing.pdf
+2022/03/09 | 265983 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus.zip
+2022/03/09 | 2633 | info/kaytannollista-latexia/luku-esipuhe.tex
+2022/03/09 | 259256 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/03/09 | 25628828 | systems/texlive/tlnet/install-tl.zip
+2022/03/09 | 25551 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/03/09 | 251129 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/03/09 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/03/09 | 25057 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/03/09 | 247332 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/03/09 | 245094 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/03/09 | 244960 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/03/09 | 24119 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/03/09 | 23943 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/03/09 | 239145 | indexing/makeindexk.zip
+2022/03/09 | 2355936 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/03/09 | 22925 | systems/win32/miktex/tm/packages/footmisc__source.tar.lzma
+2022/03/09 | 22204 | systems/texlive/tlnet/archive/footmisc.source.r62527.tar.xz
+2022/03/09 | 22145 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/03/09 | 2150 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
+2022/03/09 | 213277 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/03/09 | 21314 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/03/09 | 213092 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
+2022/03/09 | 210275 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/03/09 | 208807 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/03/09 | 20874501 | systems/texlive/tlnet/install-tl-windows.exe
+2022/03/09 | 20558 | info/kaytannollista-latexia/luku-valmistautuminen.tex
+2022/03/09 | 20554 | info/kaytannollista-latexia/luku-erikoiset.tex
+2022/03/09 | 2045 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerfontthemefocus.sty
+2022/03/09 | 203832 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/03/09 | 202834 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/03/09 | 20182 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/03/09 | 200395 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/03/09 | 199830 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/03/09 | 1982080 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/03/09 | 197034 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/03/09 | 196115 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/03/09 | 190504 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/03/09 | 185265 | systems/win32/miktex/tm/packages/robotarm__doc.tar.lzma
+2022/03/09 | 18491 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/03/09 | 184637 | support/TeX4ht/source/ChangeLog
+2022/03/09 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/03/09 | 181515 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/03/09 | 179875 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/03/09 | 1796503 | systems/win32/miktex/tm/packages/pmx__source.tar.lzma
+2022/03/09 | 1785199 | systems/win32/miktex/tm/packages/latex-for-undergraduates.tar.lzma
+2022/03/09 | 17726 | CTAN.sites
+2022/03/09 | 1752145 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/03/09 | 173007 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/03/09 | 17179633 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/03/09 | 169064 | systems/win32/miktex/tm/packages/xindex__source.tar.lzma
+2022/03/09 | 168818 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/03/09 | 16869 | macros/latex/contrib/projlib/projlib-language.sty
+2022/03/09 | 1668 | macros/latex/contrib/dtxdescribe/dtxdescribe.ins
+2022/03/09 | 16564 | systems/texlive/tlnet/archive/easybook.r62523.tar.xz
+2022/03/09 | 16559 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/03/09 | 16502 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/03/09 | 16468 | systems/texlive/tlnet/archive/easybook.source.r62523.tar.xz
+2022/03/09 | 1624 | macros/latex/contrib/lwarp/README.txt
+2022/03/09 | 16147 | systems/win32/miktex/tm/packages/easybook.tar.lzma
+2022/03/09 | 156963 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/03/09 | 155496 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/03/09 | 15461 | info/kaytannollista-latexia/kaytannollista-latexia.tex
+2022/03/09 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/03/09 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/03/09 | 152031 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/03/09 | 1501236 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/03/09 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/03/09 | 1454764 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/03/09 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/03/09 | 1446 | macros/latex/contrib/messagepassing/messagepassing.ins
+2022/03/09 | 14411 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/03/09 | 1433245 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/03/09 | 1432945 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/03/09 | 1413 | macros/latex/contrib/projlib/ProjLib.sty
+2022/03/09 | 14092 | systems/win32/miktex/tm/packages/lua-widow-control__source.tar.lzma
+2022/03/09 | 139101 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/03/09 | 1365137 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015__doc.tar.lzma
+2022/03/09 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r62532.tar.xz
+2022/03/09 | 135949 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/03/09 | 1357072 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/03/09 | 135377 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/03/09 | 13512 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/03/09 | 13432 | systems/texlive/tlnet/archive/lua-widow-control.source.r62526.tar.xz
+2022/03/09 | 13361 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
+2022/03/09 | 1324965 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/03/09 | 1323480 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/03/09 | 1322742 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/03/09 | 1314 | macros/latex/contrib/messagepassing/README.md
+2022/03/09 | 1308485 | systems/win32/miktex/tm/packages/latex-for-undergraduates__source.tar.lzma
+2022/03/09 | 1302482 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/03/09 | 126534 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/03/09 | 1235608 | systems/texlive/tlnet/archive/tex4ht.source.r62532.tar.xz
+2022/03/09 | 122584 | info/kaytannollista-latexia/luku-asetukset.tex
+2022/03/09 | 122268 | macros/latex/contrib/mhequ.zip
+2022/03/09 | 12129 | info/kaytannollista-latexia/tavutusvihjeet.tex
+2022/03/09 | 120613 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/03/09 | 119925 | info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.tex
+2022/03/09 | 119518 | macros/latex/contrib/mhequ/example.pdf
+2022/03/09 | 11876 | macros/latex/contrib/mhequ/mhequ.sty
+2022/03/09 | 1181125 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/03/09 | 115655 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/03/09 | 1156463 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/03/09 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/03/09 | 113051 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/03/09 | 112588 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/03/09 | 11151 | macros/latex/contrib/projlib/projlib-author.sty
+2022/03/09 | 1108925 | support/TeX4ht/source/tex4ht-4ht.tex
+2022/03/09 | 109477 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/03/09 | 108804 | systems/texlive/tlnet/archive/texlive-scripts.r62511.tar.xz
+2022/03/09 | 107704 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/03/09 | 10521 | systems/win32/miktex/tm/packages/lua-widow-control.tar.lzma
+2022/03/09 | 104554 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/03/09 | 103337 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/03/09 | 103090 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/03/09 | 10272 | systems/win32/miktex/tm/packages/pmx.tar.lzma
+2022/03/09 | 1021843 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/03/09 | 10204 | systems/texlive/tlnet/archive/lua-widow-control.r62526.tar.xz
+2022/03/09 | 1020363 | info/kaytannollista-latexia.zip
+2022/03/09 | 1017 | info/yet-another-guide-latex2e/README
+2022/03/09 | 1007 | systems/win32/miktex/tm/packages/pr.ini
+2022/03/09 | 100485 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2022/03/08 | 99993 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/utilityclass.png
-2022/03/08 | 99713 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
2022/03/08 | 994 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/common_footer.htm
2022/03/08 | 9945 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h
-2022/03/08 | 99249 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/03/08 | 99080415 | systems/win32/TLW64/tl-win64.zip
2022/03/08 | 986 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/quickstart.cpp
2022/03/08 | 9856 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-filepath.h
2022/03/08 | 98539 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/readertest.cpp
@@ -12,20 +337,14 @@
2022/03/08 | 975 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp
2022/03/08 | 9744 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h
2022/03/08 | 9704 | indexing/xindex/scripts/xindex.lua
-2022/03/08 | 97023 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
2022/03/08 | 967 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/overview_footer.htm
-2022/03/08 | 96602 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
2022/03/08 | 964 | graphics/asymptote/LspCpp/src/jsonrpc/Context.cpp
2022/03/08 | 95 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/depend.make
-2022/03/08 | 95463 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
2022/03/08 | 953 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h
-2022/03/08 | 95316 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
2022/03/08 | 94 | graphics/asymptote/LspCpp/third_party/rapidjson/include_dirs.js
2022/03/08 | 9461 | graphics/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp
2022/03/08 | 943 | graphics/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp
2022/03/08 | 94336 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/reader.h
-2022/03/08 | 941 | systems/win32/miktex/tm/packages/pr.ini
-2022/03/08 | 93956 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
2022/03/08 | 9386 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h
2022/03/08 | 937 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h
2022/03/08 | 935 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move1.dot
@@ -33,11 +352,11 @@
2022/03/08 | 9318 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_stress_test.cc
2022/03/08 | 929 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/platforms.md
2022/03/08 | 9298 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/type.json
-2022/03/08 | 92955 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
2022/03/08 | 9271 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h
2022/03/08 | 9267 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-internal-utils.cc
2022/03/08 | 923 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/required.json
2022/03/08 | 92378 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/iterative-parser-states-diagram.png
+2022/03/08 | 9169 | indexing/makeindexk/ChangeLog
2022/03/08 | 912 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/architecture.dot
2022/03/08 | 907 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h
2022/03/08 | 9059 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/bin/jsonschema_suite
@@ -57,17 +376,14 @@
2022/03/08 | 884 | systems/texlive/tlnet/archive/dvisvgm.r62509.tar.xz
2022/03/08 | 88387 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest.h
2022/03/08 | 8831 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h
-2022/03/08 | 88124 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
2022/03/08 | 8795 | graphics/asymptote/LspCpp/third_party/rapidjson/readme.zh-cn.md
2022/03/08 | 8789 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-pp-string_test.cc
-2022/03/08 | 8787 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
2022/03/08 | 8767 | graphics/asymptote/LspCpp/third_party/uri/test/uri_normalization_test.cpp
2022/03/08 | 872 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h
2022/03/08 | 8705 | graphics/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp
2022/03/08 | 86 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/readme.txt
2022/03/08 | 867 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h
2022/03/08 | 86552 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/advanced.md
-2022/03/08 | 86483 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
2022/03/08 | 857 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/pattern.json
2022/03/08 | 857 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/pattern.json
2022/03/08 | 8561 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_output_test_.cc
@@ -88,6 +404,7 @@
2022/03/08 | 842 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h
2022/03/08 | 8411 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference.dox
2022/03/08 | 8401 | graphics/asymptote/LspCpp/examples/WebsocketExample.cpp
+2022/03/08 | 838 | indexing/makeindexk/mkindex.1
2022/03/08 | 8386 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-catch-exceptions-test_.cc
2022/03/08 | 8372 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h
2022/03/08 | 834 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/CMakeLists.txt
@@ -95,11 +412,8 @@
2022/03/08 | 8296 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.txt
2022/03/08 | 828 | graphics/asymptote/LspCpp/third_party/rapidjson/CMakeModules/FindGTestSrc.cmake
2022/03/08 | 828 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h
-2022/03/08 | 82899 | macros/latex/contrib/easybook/easybook.tex
2022/03/08 | 827 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h
2022/03/08 | 82608 | macros/latex/contrib/footmisc/footmisc.dtx
-2022/03/08 | 825812 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/03/08 | 81642 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
2022/03/08 | 8129 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/CMakeLists.txt
2022/03/08 | 8120 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-message.h
2022/03/08 | 8112 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-test-part-test.cc
@@ -112,59 +426,42 @@
2022/03/08 | 794 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/execute_command.h
2022/03/08 | 792 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h
2022/03/08 | 789 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h
-2022/03/08 | 78983 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/03/08 | 78966 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
2022/03/08 | 784 | graphics/asymptote/LspCpp/third_party/uri/deps/CMakeLists.txt
2022/03/08 | 7821 | indexing/xindex/lualatex/xindex-yannis.lua
2022/03/08 | 781 | graphics/asymptote/LspCpp/third_party/uri/deps/WORKSPACE
2022/03/08 | 778 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h
-2022/03/08 | 7759 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
2022/03/08 | 77498 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_pred_impl_unittest.cc
2022/03/08 | 7731 | graphics/asymptote/LspCpp/third_party/uri/include/network/string_view.hpp
-2022/03/08 | 77078 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
2022/03/08 | 769276 | systems/texlive/tlnet/archive/grading-scheme.doc.r62509.tar.xz
2022/03/08 | 768 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h
2022/03/08 | 7671 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Context.h
-2022/03/08 | 7648 | systems/texlive/tlnet/archive/footmisc.r62509.tar.xz
2022/03/08 | 76445 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-spec-builders.h
2022/03/08 | 7632 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool.hpp
-2022/03/08 | 762607 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/03/08 | 76233 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
2022/03/08 | 7619 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/threadpool.css
2022/03/08 | 759 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maxProperties.json
-2022/03/08 | 759646 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
2022/03/08 | 751 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h
2022/03/08 | 74 | graphics/asymptote/LspCpp/include/LibLsp/lsp/method_type.h
2022/03/08 | 748 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h
-2022/03/08 | 74749 | macros/latex/contrib/easybook/easybook.dtx
2022/03/08 | 74749 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-spec-builders_test.cc
2022/03/08 | 740 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32lebom.json
2022/03/08 | 740 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32bebom.json
-2022/03/08 | 74064 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
2022/03/08 | 74016 | graphics/asymptote/LspCpp/third_party/uri/Doxyfile.in
2022/03/08 | 738 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h
-2022/03/08 | 7387 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/03/08 | 736 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32le.json
2022/03/08 | 736 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32be.json
2022/03/08 | 7364 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_cheat_sheet.md
-2022/03/08 | 73597 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/03/08 | 73504 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
2022/03/08 | 7344 | macros/luatex/generic/lua-widow-control/lua-widow-control.sty
-2022/03/08 | 73203 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
2022/03/08 | 7304 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-string.h
-2022/03/08 | 73012 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
2022/03/08 | 7287 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_stress_test.cc
2022/03/08 | 725 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/minProperties.json
2022/03/08 | 722 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h
2022/03/08 | 7218 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/schematest.cpp
-2022/03/08 | 72005 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
2022/03/08 | 7180 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_repeat_test.cc
2022/03/08 | 7163 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h
2022/03/08 | 7152 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h
2022/03/08 | 714 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_resolve.hpp
2022/03/08 | 7130 | graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp
2022/03/08 | 710 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse_authority.hpp
-2022/03/08 | 71001 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
2022/03/08 | 706 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maxItems.json
2022/03/08 | 706 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/maxItems.json
2022/03/08 | 706 | graphics/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h
@@ -177,26 +474,18 @@
2022/03/08 | 6917 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
2022/03/08 | 688 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h
2022/03/08 | 6889 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h
-2022/03/08 | 688943 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/03/08 | 68890 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
2022/03/08 | 687491 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/sample.json
2022/03/08 | 6872 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/actions.md
2022/03/08 | 6862 | graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp
-2022/03/08 | 68623 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
2022/03/08 | 6860 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/encoding.zh-cn.md
2022/03/08 | 685 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simpledom/simpledom.cpp
2022/03/08 | 685716 | systems/texlive/tlnet/archive/pmx.doc.r62509.tar.xz
-2022/03/08 | 682350 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
2022/03/08 | 6818 | graphics/asymptote/LspCpp/third_party/rapidjson/CHANGELOG.md
-2022/03/08 | 6810740 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/03/08 | 68006 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
2022/03/08 | 67 | graphics/asymptote/LspCpp/third_party/threadpool/project-root.jam
2022/03/08 | 678 | graphics/asymptote/LspCpp/third_party/rapidjson/contrib/natvis/README.md
2022/03/08 | 676 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h
-2022/03/08 | 67652 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
2022/03/08 | 6751 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/format.json
2022/03/08 | 6732 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stream.h
-2022/03/08 | 67225 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2022/03/08 | 6708 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/encoding.md
2022/03/08 | 667 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h
2022/03/08 | 6656 | systems/texlive/tlnet/archive/ut-thesis.source.r62509.tar.xz
@@ -207,29 +496,18 @@
2022/03/08 | 6568 | systems/texlive/tlnet/archive/uwa-letterhead.source.r62509.tar.xz
2022/03/08 | 6568 | systems/texlive/tlnet/archive/newcastle-bst.r62509.tar.xz
2022/03/08 | 6550 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/scheduling_policies.hpp
-2022/03/08 | 65100 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/03/08 | 64722 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/03/08 | 64527 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/03/08 | 64474 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
2022/03/08 | 643 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/common_footer.htm
-2022/03/08 | 643154 | systems/win32/miktex/tm/packages/files.csv.lzma
-2022/03/08 | 642699 | systems/win32/miktex/tm/packages/next/files.csv.lzma
2022/03/08 | 6418 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_environment_test.cc
2022/03/08 | 6412 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_test.cc
2022/03/08 | 639 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_advance_parts.hpp
2022/03/08 | 6386 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h
2022/03/08 | 63842 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-printers-test.cc
2022/03/08 | 6376 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_output_unittest_.cc
-2022/03/08 | 63761 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
2022/03/08 | 63725 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h
2022/03/08 | 6369 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/traits.h
2022/03/08 | 6350 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.txt
-2022/03/08 | 633940 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/03/08 | 63391 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
2022/03/08 | 631 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h
-2022/03/08 | 629482 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
2022/03/08 | 628 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h
-2022/03/08 | 628099 | macros/latex/contrib/easybook.zip
2022/03/08 | 62786 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp
2022/03/08 | 626 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/widget.json
2022/03/08 | 626602 | macros/latex/contrib/footmisc.zip
@@ -238,7 +516,6 @@
2022/03/08 | 625 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h
2022/03/08 | 6252 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-type-util.h
2022/03/08 | 62413 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-death-test.cc
-2022/03/08 | 62130 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2022/03/08 | 6194 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample8_unittest.cc
2022/03/08 | 617 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h
2022/03/08 | 61699 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-internal.h
@@ -249,23 +526,17 @@
2022/03/08 | 6099 | indexing/xindex/lualatex/xindex-norsk.lua
2022/03/08 | 6097 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-cardinalities.h
2022/03/08 | 6090 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/DoxygenLayout.xml
-2022/03/08 | 608536 | systems/texlive/tlnet/archive/easybook.doc.r62509.tar.xz
2022/03/08 | 6064 | systems/texlive/tlnet/archive/uwa-pcf.source.r62509.tar.xz
2022/03/08 | 603 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/glossary.json
2022/03/08 | 6022 | graphics/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp
2022/03/08 | 5 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail30.json
2022/03/08 | 5 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/abcde.txt
-2022/03/08 | 599046 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2022/03/08 | 594 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_normalize.hpp
2022/03/08 | 5946 | graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp
2022/03/08 | 5925 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample9_unittest.cc
-2022/03/08 | 591472 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
2022/03/08 | 58 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail10.json
2022/03/08 | 588 | graphics/asymptote/LspCpp/include/LibLsp/lsp/out_list.h
2022/03/08 | 587 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h
-2022/03/08 | 586959 | macros/latex/contrib/easybook/easybook.pdf
-2022/03/08 | 58686 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/03/08 | 58657 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
2022/03/08 | 5837 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp
2022/03/08 | 580 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h
2022/03/08 | 579 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h
@@ -273,67 +544,50 @@
2022/03/08 | 57656 | systems/texlive/tlnet/archive/uwa-letterhead.doc.r62509.tar.xz
2022/03/08 | 57599 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp
2022/03/08 | 5756 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h
-2022/03/08 | 57475 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/03/08 | 57445 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/03/08 | 57349 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/03/08 | 57318 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
2022/03/08 | 572 | graphics/asymptote/LspCpp/third_party/uri/test/invalid_urls.txt
2022/03/08 | 572 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/config.hpp
-2022/03/08 | 57044 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
2022/03/08 | 56 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/assets/css/style.scss
-2022/03/08 | 56986 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
2022/03/08 | 5696 | systems/texlive/tlnet/archive/uwa-pif.source.r62509.tar.xz
2022/03/08 | 5683 | graphics/asymptote/LspCpp/third_party/uri/deps/CONTRIBUTING.md
2022/03/08 | 566 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h
-2022/03/08 | 566552 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
2022/03/08 | 565 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h
2022/03/08 | 563 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse.hpp
2022/03/08 | 561 | graphics/asymptote/LspCpp/third_party/rapidjson/package.json
2022/03/08 | 5595 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-failfast-unittest_.cc
2022/03/08 | 5578 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_checked_api.cpp
-2022/03/08 | 55764 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
2022/03/08 | 5574 | language/korean/kotex-oblivoir.new.../tex/memhangul-common/fapapersize.sty
2022/03/08 | 55726 | graphics/asymptote/LspCpp/third_party/utfcpp/README.md
2022/03/08 | 5544 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp
-2022/03/08 | 55414 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
2022/03/08 | 5419 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp
+2022/03/08 | 541228 | systems/doc/hitex/hitexman.hnt
2022/03/08 | 54109 | graphics/asymptote/LspCpp/src/jsonrpc/optional.hpp
2022/03/08 | 54109 | graphics/asymptote/LspCpp/include/optional.hpp
2022/03/08 | 5375 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample3-inl.h
2022/03/08 | 5360 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample3_unittest.cc
2022/03/08 | 5350 | graphics/asymptote/LspCpp/src/lsp/working_files.cpp
2022/03/08 | 53373 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-more-actions_test.cc
-2022/03/08 | 532218 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
2022/03/08 | 5319 | graphics/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp
2022/03/08 | 52 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/pass2.json
-2022/03/08 | 527877 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
2022/03/08 | 52740 | systems/texlive/tlnet/archive/uwa-pcf.doc.r62509.tar.xz
2022/03/08 | 5265 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-message-test.cc
2022/03/08 | 5265 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/tutorial.cpp
2022/03/08 | 5262 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-cardinalities.cc
2022/03/08 | 5259 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/logo/rapidjson.png
-2022/03/08 | 52594 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/03/08 | 52313 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
2022/03/08 | 5221 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.dox
-2022/03/08 | 52075 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
2022/03/08 | 5204 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/quickstart-bazel.md
2022/03/08 | 5203 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.dox
2022/03/08 | 5202 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.dox
2022/03/08 | 5196 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.dox
2022/03/08 | 5152 | graphics/asymptote/LspCpp/third_party/rapidjson/license.txt
-2022/03/08 | 51516 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
2022/03/08 | 5150 | graphics/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp
2022/03/08 | 514 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h
-2022/03/08 | 51468 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
2022/03/08 | 5143 | graphics/asymptote/LspCpp/examples/StdIOClientExample.cpp
2022/03/08 | 513436 | systems/texlive/tlnet/archive/biblatex-swiss-legal.doc.r62509.tar.xz
2022/03/08 | 51302 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-actions_test.cc
-2022/03/08 | 511224 | systems/texlive/tlnet/archive/footmisc.doc.r62509.tar.xz
2022/03/08 | 5111 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample1_unittest.cc
2022/03/08 | 511088 | systems/texlive/tlnet/archive/oup-authoring-template.doc.r62509.tar.xz
2022/03/08 | 510 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/README.md
2022/03/08 | 50 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail18.json
-2022/03/08 | 50824 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
2022/03/08 | 5062 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/pkgconfig.md
2022/03/08 | 5054 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/quickstart-cmake.md
2022/03/08 | 5052 | graphics/asymptote/LspCpp/examples/TcpServerExample.cpp
@@ -346,28 +600,21 @@
2022/03/08 | 4979 | graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp
2022/03/08 | 491 | graphics/asymptote/LspCpp/third_party/rapidjson/test/CMakeLists.txt
2022/03/08 | 490 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h
-2022/03/08 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2022/03/08 | 489 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveCompletionItem.h
2022/03/08 | 4899 | graphics/asymptote/LspCpp/include/LibLsp/lsp/utils.h
2022/03/08 | 488 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/implementation.h
-2022/03/08 | 48826 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
2022/03/08 | 487 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/shutdown.h
-2022/03/08 | 484790 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
2022/03/08 | 483 | graphics/asymptote/LspCpp/third_party/uri/test/string_utility.hpp
2022/03/08 | 4835 | indexing/xindex/lualatex/xindex-dtk.lua
2022/03/08 | 482 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/initialized.h
2022/03/08 | 4822 | graphics/asymptote/LspCpp/src/jsonrpc/serializer.cpp
2022/03/08 | 4807 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/gmock-port.h
2022/03/08 | 4805 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/features.zh-cn.md
-2022/03/08 | 48017 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
2022/03/08 | 47993 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-death-test-test.cc
-2022/03/08 | 479429 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
2022/03/08 | 4787 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/README.md
-2022/03/08 | 477758 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
2022/03/08 | 47582 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-port.cc
2022/03/08 | 4753 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp
2022/03/08 | 469 | graphics/asymptote/LspCpp/third_party/rapidjson/RapidJSONConfigVersion.cmake.in
-2022/03/08 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
2022/03/08 | 468 | macros/latex/contrib/footmisc/README.md
2022/03/08 | 4688 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h
2022/03/08 | 46854 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-internal-inl.h
@@ -378,19 +625,12 @@
2022/03/08 | 4620 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample7_unittest.cc
2022/03/08 | 4613 | graphics/asymptote/LspCpp/third_party/uri/deps/README.md
2022/03/08 | 460 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h
-2022/03/08 | 46090 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
2022/03/08 | 4608 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/optional/format.json
-2022/03/08 | 45942 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
2022/03/08 | 4590 | graphics/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp
2022/03/08 | 4580 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h
2022/03/08 | 4578 | graphics/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h
2022/03/08 | 4577 | indexing/xindex/lualatex/xindex-baselib.lua
-2022/03/08 | 45701 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
2022/03/08 | 456 | systems/texlive/tlnet/archive/latex-for-undergraduates.r62509.tar.xz
-2022/03/08 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/03/08 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2022/03/08 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/03/08 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2022/03/08 | 451220 | indexing/xindex/doc/xindex-doc.pdf
2022/03/08 | 4465 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/mergesort.cpp
2022/03/08 | 4465 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/future.hpp
@@ -401,23 +641,17 @@
2022/03/08 | 43 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/cmake_clean_target.cmake
2022/03/08 | 43 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail13.json
2022/03/08 | 4396 | graphics/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp
-2022/03/08 | 43936 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
2022/03/08 | 4389 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp
2022/03/08 | 4385 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/ref.json
2022/03/08 | 43844 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.r62509.tar.xz
2022/03/08 | 43830 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/testing.md
-2022/03/08 | 43805 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
2022/03/08 | 4375 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/draft-04/schema
2022/03/08 | 43670 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/simpledom.png
2022/03/08 | 4366 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/ref.json
-2022/03/08 | 43665 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/03/08 | 43643 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
2022/03/08 | 4347 | graphics/asymptote/LspCpp/third_party/uri/test/optional_test.cpp
2022/03/08 | 4345 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/task_adaptors.hpp
-2022/03/08 | 43372 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
2022/03/08 | 428 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/symbol.h
2022/03/08 | 4283 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_premature_exit_test.cc
-2022/03/08 | 42746 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
2022/03/08 | 42714 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-output-test-golden-lin.txt
2022/03/08 | 4265 | graphics/asymptote/LspCpp/include/LibLsp/lsp/symbol.h
2022/03/08 | 4256 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp
@@ -431,33 +665,27 @@
2022/03/08 | 415431 | macros/luatex/generic/lua-widow-control/lua-widow-control.pdf
2022/03/08 | 41517 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move2.png
2022/03/08 | 415150 | install/macros/luatex/generic/lua-widow-control.tds.zip
-2022/03/08 | 41317 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/03/08 | 41279 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
2022/03/08 | 4126 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-test-part.cc
-2022/03/08 | 41228 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
2022/03/08 | 4118 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lru_cache.h
2022/03/08 | 411616 | macros/luatex/generic/lua-widow-control.zip
2022/03/08 | 40 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail32.json
2022/03/08 | 40998 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-test.cc
+2022/03/08 | 4095932 | graphics/pgf/contrib/liftarm/liftarm.pdf
2022/03/08 | 40876 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-port-test.cc
2022/03/08 | 4061 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h
-2022/03/08 | 404044 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62491.tar.xz
2022/03/08 | 4013 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h
2022/03/08 | 3979 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h
2022/03/08 | 3972 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h
-2022/03/08 | 39720 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
2022/03/08 | 3956 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/itoatest.cpp
2022/03/08 | 3955 | indexing/xindex/lualatex/xindex-cfg-common.lua
-2022/03/08 | 394184 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2022/03/08 | 3917 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample2_unittest.cc
2022/03/08 | 3917 | graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h
2022/03/08 | 3912 | macros/luatex/generic/lua-widow-control/lwc-sample.tex
2022/03/08 | 38 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail26.json
+2022/03/08 | 38868 | systems/doc/hitex/hitexman.tex
2022/03/08 | 3870 | graphics/asymptote/LspCpp/third_party/uri/test/uri_parse_path_test.cpp
-2022/03/08 | 38577 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
2022/03/08 | 384 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/optional/zeroTerminatedFloats.json
2022/03/08 | 384 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/zeroTerminatedFloats.json
-2022/03/08 | 38480 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
2022/03/08 | 3842 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_assert_by_exception_test.cc
2022/03/08 | 3834 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h
2022/03/08 | 382 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h
@@ -465,17 +693,14 @@
2022/03/08 | 3780 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-typed-test.cc
2022/03/08 | 3767 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_test_macro_stack_footprint_test.cc
2022/03/08 | 3756 | graphics/asymptote/LspCpp/examples/StdIOServerExample.cpp
-2022/03/08 | 37395 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
2022/03/08 | 3733 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/cursorstreamwrappertest.cpp
2022/03/08 | 3731 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h
2022/03/08 | 37281 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/insituparsing.png
2022/03/08 | 3723 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-matchers.cc
2022/03/08 | 3723 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock.h
2022/03/08 | 3723 | graphics/asymptote/LspCpp/third_party/threadpool/CHANGE_LOG
-2022/03/08 | 37181 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
2022/03/08 | 370 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16lebom.json
2022/03/08 | 370 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16bebom.json
-2022/03/08 | 37089 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2022/03/08 | 3704 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-env-var-test_.cc
2022/03/08 | 368 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16le.json
2022/03/08 | 368 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16be.json
@@ -484,7 +709,6 @@
2022/03/08 | 363788 | macros/latex/contrib/footmisc/footmisc-code.pdf
2022/03/08 | 36371 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move3.png
2022/03/08 | 36152 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-output-test_.cc
-2022/03/08 | 36062 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
2022/03/08 | 3601 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-death-test_ex_test.cc
2022/03/08 | 3574 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h
2022/03/08 | 3572 | language/korean/kotex-oblivoir.new.../tex/memhangul-common/oblivoir-misc.sty
@@ -494,10 +718,7 @@
2022/03/08 | 354 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/gtest_main.pc.in
2022/03/08 | 354 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/cmake/gmock_main.pc.in
2022/03/08 | 35467 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp
-2022/03/08 | 35233 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
2022/03/08 | 35217 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-param-util.h
-2022/03/08 | 35190 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/03/08 | 351834 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
2022/03/08 | 3517 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-pp_test.cc
2022/03/08 | 34 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail17.json
2022/03/08 | 34 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail15.json
@@ -509,7 +730,6 @@
2022/03/08 | 3419 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-more-matchers.h
2022/03/08 | 3418 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h
2022/03/08 | 3407 | graphics/asymptote/LspCpp/third_party/rapidjson/rapidjson.autopkg
-2022/03/08 | 34036 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
2022/03/08 | 33 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail22.json
2022/03/08 | 3392 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_throw_on_failure_ex_test.cc
2022/03/08 | 3391 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h
@@ -521,19 +741,16 @@
2022/03/08 | 3348 | systems/texlive/tlnet/archive/uwa-letterhead.r62509.tar.xz
2022/03/08 | 33482 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-spec-builders.cc
2022/03/08 | 33275 | graphics/asymptote/LspCpp/third_party/uri/test/uri_test.cpp
-2022/03/08 | 332517 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
2022/03/08 | 33240 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-matchers.h
2022/03/08 | 3306 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h
2022/03/08 | 32 | graphics/asymptote/LspCpp/third_party/threadpool/Jamrules
2022/03/08 | 32 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail21.json
2022/03/08 | 3298 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h
2022/03/08 | 3294 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h
-2022/03/08 | 32936 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
2022/03/08 | 32887 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/normalparsing.png
2022/03/08 | 32847 | indexing/xindex/lualatex/xindex-lib.lua
2022/03/08 | 3282 | graphics/asymptote/LspCpp/third_party/uri/CMakeLists.txt
2022/03/08 | 3280 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_ex_test.cc
-2022/03/08 | 326730 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2022/03/08 | 3266 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/BUILD.bazel
2022/03/08 | 325 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8bom.json
2022/03/08 | 325 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/listOverridableMethods.h
@@ -543,21 +760,15 @@
2022/03/08 | 322 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8.json
2022/03/08 | 321 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/README
2022/03/08 | 3219 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-shuffle-test_.cc
-2022/03/08 | 32139 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
2022/03/08 | 320 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/Move.h
2022/03/08 | 31 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail14.json
2022/03/08 | 31 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail12.json
2022/03/08 | 319 | graphics/asymptote/LspCpp/third_party/threadpool/Jamfile.v2
2022/03/08 | 3197 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_list_output_unittest_.cc
-2022/03/08 | 316655 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
2022/03/08 | 3157 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/address.json
-2022/03/08 | 31570 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/03/08 | 31567 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
2022/03/08 | 314 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/gmock-generated-actions.h
-2022/03/08 | 31409 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
2022/03/08 | 3139 | graphics/asymptote/LspCpp/third_party/uri/test/uri_comparison_test.cpp
2022/03/08 | 3139 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/dependencies.json
-2022/03/08 | 31336 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2022/03/08 | 3125 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h
2022/03/08 | 311 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/gtest.pc.in
2022/03/08 | 309 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/projectConfigurationUpdate.h
@@ -568,12 +779,10 @@
2022/03/08 | 30640 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h
2022/03/08 | 3063 | graphics/asymptote/LspCpp/third_party/uri/src/detail/grammar.hpp
2022/03/08 | 3060 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/CMakeLists.txt
-2022/03/08 | 30525 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
2022/03/08 | 3036 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_cpp11.cpp
2022/03/08 | 3025 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-assertion-result.cc
2022/03/08 | 3025 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/allOf.json
2022/03/08 | 301 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/organizeImports.h
-2022/03/08 | 30176 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
2022/03/08 | 3011 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock_main.cc
2022/03/08 | 3004 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h
2022/03/08 | 30003 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/alotofkeys.json
@@ -588,7 +797,6 @@
2022/03/08 | 2980 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h
2022/03/08 | 2974 | graphics/asymptote/LspCpp/include/LibLsp/lsp/language/language.h
2022/03/08 | 2973 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h
-2022/03/08 | 296017 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
2022/03/08 | 294 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/classFileContents.h
2022/03/08 | 2930 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h
2022/03/08 | 29260 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h
@@ -596,23 +804,14 @@
2022/03/08 | 29203 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_for_dummies.md
2022/03/08 | 2915 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_sass/main.scss
2022/03/08 | 2913 | graphics/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp
-2022/03/08 | 28889 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
2022/03/08 | 2881 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/properties.json
2022/03/08 | 2881 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/properties.json
2022/03/08 | 287695 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-matchers_test.cc
-2022/03/08 | 28700 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/03/08 | 286872 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/03/08 | 286546 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/03/08 | 28595 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/03/08 | 285910 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
2022/03/08 | 284 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/Config.cmake.in
2022/03/08 | 2845 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h
-2022/03/08 | 28419 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
2022/03/08 | 2836 | indexing/xindex/CHANGELOG
2022/03/08 | 28289 | macros/luatex/generic/lua-widow-control/lwc-documentation.tex
2022/03/08 | 2817 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/worker_thread.hpp
-2022/03/08 | 281708 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/03/08 | 2816622 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
2022/03/08 | 28158 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/uritest.cpp
2022/03/08 | 2814 | graphics/asymptote/LspCpp/third_party/rapidjson/example/messagereader/messagereader.cpp
2022/03/08 | 2813 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test2-test.cc
@@ -621,20 +820,14 @@
2022/03/08 | 27859 | graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h
2022/03/08 | 277 | graphics/asymptote/LspCpp/src/jsonrpc/GCThreadContext.cpp
2022/03/08 | 2767 | indexing/xindex/lualatex/xindex-DIN2.lua
-2022/03/08 | 27629 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/03/08 | 27591 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
2022/03/08 | 2745 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/additionalProperties.json
2022/03/08 | 2745 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/additionalProperties.json
2022/03/08 | 2726 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h
-2022/03/08 | 27244 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
2022/03/08 | 2716 | indexing/xindex/lualatex/xindex-danteedition.lua
2022/03/08 | 2700 | macros/luatex/generic/lua-widow-control/lua-widow-control-2022-02-22.sty
2022/03/08 | 26 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail7.json
2022/03/08 | 26 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail6.json
2022/03/08 | 2699 | indexing/xindex/lualatex/xindex-cfg.lua
-2022/03/08 | 2696290 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2022/03/08 | 269604 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/03/08 | 269447 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
2022/03/08 | 26856 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h
2022/03/08 | 2682 | graphics/asymptote/LspCpp/third_party/uri/test/uri_reference_test.cpp
2022/03/08 | 26765280 | graphics/asymptote.zip
@@ -660,26 +853,18 @@
2022/03/08 | 2597762 | support/pmx.zip
2022/03/08 | 2592 | systems/texlive/tlnet/archive/uwa-pif.r62509.tar.xz
2022/03/08 | 2591 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/extends.json
-2022/03/08 | 259093 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
2022/03/08 | 2578 | graphics/asymptote/LspCpp/third_party/uri/test/uri_parse_scheme_test.cpp
2022/03/08 | 2577 | graphics/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp
2022/03/08 | 25776 | macros/latex/contrib/footmisc/footmisc-2011-06-06.sty
2022/03/08 | 256 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/footer.html
2022/03/08 | 256895 | language/korean/kotex-oblivoir.new.../doc/oblivoir-simpledoc.pdf
-2022/03/08 | 256392 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/03/08 | 25628835 | systems/texlive/tlnet/install-tl.zip
2022/03/08 | 25599 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h
2022/03/08 | 25503 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-function-mocker.h
-2022/03/08 | 254981 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/03/08 | 25458 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
2022/03/08 | 2539 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h
2022/03/08 | 2526 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_resolve.cpp
2022/03/08 | 252536 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest.cc
2022/03/08 | 2524 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h
2022/03/08 | 2514 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h
-2022/03/08 | 251335 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/03/08 | 25107 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/03/08 | 25067 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
2022/03/08 | 2505 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-color-test_.cc
2022/03/08 | 24 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail5.json
2022/03/08 | 2499 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest_prod.h
@@ -688,23 +873,20 @@
2022/03/08 | 2478 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp
2022/03/08 | 2470 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample1.cc
2022/03/08 | 2459 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
-2022/03/08 | 244867 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
2022/03/08 | 24474 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-listener-test.cc
2022/03/08 | 242 | graphics/asymptote/LspCpp/third_party/rapidjson/test/valgrind.supp
2022/03/08 | 2424 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/WebSocketServer.h
2022/03/08 | 241 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h
-2022/03/08 | 24170 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
2022/03/08 | 2403 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_no_test_unittest.cc
2022/03/08 | 2401 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp
2022/03/08 | 23 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail20.json
2022/03/08 | 2396 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-typed-test_test.h
2022/03/08 | 2396 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/size_policies.hpp
-2022/03/08 | 23936 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
2022/03/08 | 23931 | graphics/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp
2022/03/08 | 2385 | indexing/xindex/lualatex/xindex-cfg-uca.lua
2022/03/08 | 236 | graphics/asymptote/LspCpp/include/LibLsp/lsp/Directory.h
-2022/03/08 | 2357476 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2022/03/08 | 23507 | graphics/asymptote/LspCpp/src/lsp/lsp.cpp
+2022/03/08 | 234052 | systems/doc/hitex/hitexman.pdf
2022/03/08 | 2335 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_all_test.cc
2022/03/08 | 2328 | graphics/asymptote/LspCpp/third_party/uri/README.rst
2022/03/08 | 2319 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_layouts/default.html
@@ -717,7 +899,6 @@
2022/03/08 | 229 | graphics/asymptote/LspCpp/third_party/rapidjson/RapidJSON.pc.in
2022/03/08 | 229 | graphics/asymptote/LspCpp/third_party/rapidjson/docker/debian/Dockerfile
2022/03/08 | 229 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h
-2022/03/08 | 229951 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
2022/03/08 | 2286 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-global-environment-unittest_.cc
2022/03/08 | 2282 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-test.h
2022/03/08 | 2282 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/additionalItems.json
@@ -741,16 +922,13 @@
2022/03/08 | 2239 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/insituparsing.dot
2022/03/08 | 2223 | graphics/asymptote/LspCpp/third_party/uri/deps/CONTRIBUTORS
2022/03/08 | 221 | graphics/asymptote/LspCpp/third_party/threadpool/COPYING
-2022/03/08 | 22163 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
2022/03/08 | 22121 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/tutorial.md
-2022/03/08 | 22112 | systems/texlive/tlnet/archive/footmisc.source.r62509.tar.xz
2022/03/08 | 2201 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-all.cc
2022/03/08 | 21998 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri.hpp
2022/03/08 | 21956 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/internals.zh-cn.md
2022/03/08 | 217 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/GCThreadContext.h
2022/03/08 | 2175 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_sole_header_test.cc
2022/03/08 | 2175 | graphics/asymptote/LspCpp/third_party/rapidjson/contrib/natvis/LICENSE
-2022/03/08 | 216062 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
2022/03/08 | 2154 | macros/latex/contrib/footmisc/footmisc.ins
2022/03/08 | 21546 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/tutorial.zh-cn.md
2022/03/08 | 21535 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/assertions.md
@@ -761,8 +939,6 @@
2022/03/08 | 2143 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp
2022/03/08 | 2138 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name2-test_.cc
2022/03/08 | 2132 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample4.h
-2022/03/08 | 21321 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2022/03/08 | 213208 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
2022/03/08 | 2130 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/production.h
2022/03/08 | 21279 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp
2022/03/08 | 21276 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/sax.md
@@ -772,14 +948,12 @@
2022/03/08 | 2110 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample4.cc
2022/03/08 | 2107 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-all.cc
2022/03/08 | 2104 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h
-2022/03/08 | 210199 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
2022/03/08 | 2100 | graphics/asymptote/LspCpp/third_party/uri/src/detail/algorithm.hpp
2022/03/08 | 20 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail23.json
2022/03/08 | 20974 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/mocking.md
2022/03/08 | 2094 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/gtest-printers.h
2022/03/08 | 2088 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_help_test_.cc
2022/03/08 | 2088 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/locking_ptr.hpp
-2022/03/08 | 20873631 | systems/texlive/tlnet/install-tl-windows.exe
2022/03/08 | 207686 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-matchers.h
2022/03/08 | 2073 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
2022/03/08 | 2069 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_in_environment_setup_test.cc
@@ -788,31 +962,23 @@
2022/03/08 | 20408 | macros/luatex/generic/lua-widow-control/lua-widow-control.lua
2022/03/08 | 203 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/exit.h
2022/03/08 | 2035 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_normalize.cpp
-2022/03/08 | 202534 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
2022/03/08 | 2023 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name1-test_.cc
-2022/03/08 | 20192 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
2022/03/08 | 20123 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/matchers.md
2022/03/08 | 2011328 | systems/texlive/tlnet/archive/latex-for-undergraduates.doc.r62509.tar.xz
2022/03/08 | 2005 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_test.cc
2022/03/08 | 20010 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_data/utf8_invalid.txt
2022/03/08 | 2000 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool_adaptors.hpp
-2022/03/08 | 200077 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
2022/03/08 | 199 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/progress.make
2022/03/08 | 199 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/Jamfile.v2
2022/03/08 | 19967 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/sax.zh-cn.md
2022/03/08 | 1995 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample4_unittest.cc
-2022/03/08 | 199569 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/03/08 | 198683 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/03/08 | 1983663 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
2022/03/08 | 1977 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-port_test.cc
2022/03/08 | 1975 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/enum.json
2022/03/08 | 19752 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/uri.h
-2022/03/08 | 197457 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
2022/03/08 | 1968 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest_main.cc
2022/03/08 | 1964 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/enum.json
2022/03/08 | 1961 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/refRemote.json
2022/03/08 | 1961 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/refRemote.json
-2022/03/08 | 196186 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2022/03/08 | 19604 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_link_test.h
2022/03/08 | 195 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/Jamfile.v2
2022/03/08 | 1957 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/shutdown_policies.hpp
@@ -837,7 +1003,7 @@
2022/03/08 | 18994 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h
2022/03/08 | 1898 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
2022/03/08 | 188 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/cmake_clean.cmake
-2022/03/08 | 188211 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/03/08 | 18843 | graphics/pgf/contrib/liftarm/liftarm.tex
2022/03/08 | 1878 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-uninitialized-test_.cc
2022/03/08 | 1876 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_link_test.cc
2022/03/08 | 1876 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_link2_test.cc
@@ -845,21 +1011,17 @@
2022/03/08 | 1868 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp
2022/03/08 | 1858 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/gtest.h
2022/03/08 | 185467 | macros/latex/contrib/robotarm/robotarm.pdf
-2022/03/08 | 18500 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
2022/03/08 | 184 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/index.html
2022/03/08 | 18474 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-printers.cc
2022/03/08 | 18448 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/gmock-internal-utils.h
2022/03/08 | 1841 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_main_unittest.cc
2022/03/08 | 18382 | graphics/asymptote/LspCpp/third_party/uri/src/uri.cpp
-2022/03/08 | 18359 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
2022/03/08 | 18327 | graphics/asymptote/LspCpp/third_party/uri/test/uri_parse_test.cpp
2022/03/08 | 1831 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h
2022/03/08 | 1830 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_percent_encode.hpp
-2022/03/08 | 181677 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
2022/03/08 | 1814 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h
2022/03/08 | 18148 | systems/texlive/tlnet/archive/biblatex-swiss-legal.r62509.tar.xz
2022/03/08 | 1808 | graphics/asymptote/LspCpp/include/LibLsp/lsp/location_type.h
-2022/03/08 | 180014 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
2022/03/08 | 17 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail2.json
2022/03/08 | 17993 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/schema.md
2022/03/08 | 1796 | macros/luatex/generic/lua-widow-control/lua-widow-control.tex
@@ -872,30 +1034,22 @@
2022/03/08 | 176 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h
2022/03/08 | 1765 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/ScopeExit.h
2022/03/08 | 1753 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/README.md
-2022/03/08 | 1753744 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
2022/03/08 | 173 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/readme.txt
2022/03/08 | 1734 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/CMakeLists.txt
2022/03/08 | 17263 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp
-2022/03/08 | 172562 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/03/08 | 17179555 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2022/03/08 | 1710 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_io.hpp
2022/03/08 | 17088 | graphics/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp
2022/03/08 | 16 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail8.json
2022/03/08 | 16 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail4.json
2022/03/08 | 16 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail24.json
2022/03/08 | 1698 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/floats.json
-2022/03/08 | 168767 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2022/03/08 | 1675 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/production.cc
2022/03/08 | 1673 | graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp
2022/03/08 | 1673 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h
2022/03/08 | 1665 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h
2022/03/08 | 1665 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h
-2022/03/08 | 16576 | systems/texlive/tlnet/archive/easybook.r62509.tar.xz
-2022/03/08 | 16570 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
2022/03/08 | 16569 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/architecture.png
2022/03/08 | 16552 | graphics/asymptote/LspCpp/third_party/uri/include/network/optional.hpp
-2022/03/08 | 16504 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2022/03/08 | 16476 | systems/texlive/tlnet/archive/easybook.source.r62509.tar.xz
2022/03/08 | 16302 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp
2022/03/08 | 1617 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h
2022/03/08 | 1615 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h
@@ -908,29 +1062,23 @@
2022/03/08 | 15976 | graphics/asymptote/LspCpp/src/lsp/utils.cpp
2022/03/08 | 15959 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-typed-test.h
2022/03/08 | 1567 | graphics/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h
-2022/03/08 | 156732 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/03/08 | 155456 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
2022/03/08 | 15529 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-nice-strict_test.cc
2022/03/08 | 15464 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/dom.md
2022/03/08 | 1544 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/divisibleBy.json
-2022/03/08 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
2022/03/08 | 15393 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/dom.zh-cn.md
2022/03/08 | 1538 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/README.md
2022/03/08 | 15364 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/faq.md
2022/03/08 | 15320 | systems/texlive/tlnet/archive/grading-scheme.source.r62509.tar.xz
2022/03/08 | 15318 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/BUILD.bazel
-2022/03/08 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2022/03/08 | 1527 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp
2022/03/08 | 1525 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/multipleOf.json
2022/03/08 | 1521 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8.h
-2022/03/08 | 152071 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
2022/03/08 | 15142 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/mixed.json
2022/03/08 | 15132 | systems/texlive/tlnet/archive/oup-authoring-template.r62509.tar.xz
2022/03/08 | 15043 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest_pred_impl.h
2022/03/08 | 15030 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/faq.zh-cn.md
2022/03/08 | 1502 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move2.dot
2022/03/08 | 14 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail27.json
-2022/03/08 | 1499051 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2022/03/08 | 14980 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_faq.md
2022/03/08 | 1493 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h
2022/03/08 | 1492 | macros/luatex/generic/lua-widow-control/lwc-documentation.bib
@@ -938,23 +1086,17 @@
2022/03/08 | 1475 | graphics/asymptote/LspCpp/third_party/uri/deps/LICENSE
2022/03/08 | 1475 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h
2022/03/08 | 14651 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-death-test.h
-2022/03/08 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
2022/03/08 | 1457 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp
2022/03/08 | 14575 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/internal_utils.cmake
2022/03/08 | 1456 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/tutorial.dot
2022/03/08 | 1454 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move3.dot
-2022/03/08 | 1454271 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
2022/03/08 | 14531 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/stream.md
2022/03/08 | 145014 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_cook_book.md
-2022/03/08 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2022/03/08 | 1448336 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.doc.r62509.tar.xz
2022/03/08 | 1441 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/pass1.json
-2022/03/08 | 14412 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2022/03/08 | 1440 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h
2022/03/08 | 1435 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/simpledom.dot
-2022/03/08 | 1432719 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
2022/03/08 | 14325 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/stream.zh-cn.md
-2022/03/08 | 1432204 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
2022/03/08 | 1427 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/normalparsing.dot
2022/03/08 | 141 | macros/latex/contrib/robotarm/README.md
2022/03/08 | 1419 | graphics/asymptote/LspCpp/third_party/uri/test/uri_stream_test.cpp
@@ -965,16 +1107,11 @@
2022/03/08 | 139 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/docs/README.md
2022/03/08 | 139940 | systems/texlive/tlnet/archive/newcastle-bst.doc.r62509.tar.xz
2022/03/08 | 1398 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/swap.h
-2022/03/08 | 139421 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2022/03/08 | 13824 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/pool_core.hpp
2022/03/08 | 138168 | systems/texlive/tlnet/archive/ut-thesis.doc.r62509.tar.xz
2022/03/08 | 1380 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h
2022/03/08 | 13612 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_output_test_golden.txt
-2022/03/08 | 136109 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/03/08 | 1355329 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
2022/03/08 | 1352 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_watched_files.h
-2022/03/08 | 135254 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/03/08 | 13512 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
2022/03/08 | 134 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tox.ini
2022/03/08 | 13491 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/gmock-pp.h
2022/03/08 | 13464 | macros/latex/contrib/robotarm/robotarm.sty
@@ -986,16 +1123,12 @@
2022/03/08 | 1332 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial_header.htm
2022/03/08 | 1328 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h
2022/03/08 | 132820 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h
-2022/03/08 | 1323516 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2022/03/08 | 1323361 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
2022/03/08 | 1322 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.txt
-2022/03/08 | 1322725 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
2022/03/08 | 1321 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h
2022/03/08 | 13217 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/type.json
2022/03/08 | 1317 | indexing/xindex/README.md
2022/03/08 | 1316 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp
2022/03/08 | 1315 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/idandref.json
-2022/03/08 | 1306317 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
2022/03/08 | 13060 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-unittest-api_test.cc
2022/03/08 | 12 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail33.json
2022/03/08 | 1291 | graphics/asymptote/LspCpp/third_party/utfcpp/CMakeLists.txt
@@ -1005,8 +1138,8 @@
2022/03/08 | 1273 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/default.json
2022/03/08 | 1268 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/performance.md
2022/03/08 | 1267 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h
-2022/03/08 | 126758 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
2022/03/08 | 125 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/docker/Dockerfile
+2022/03/08 | 1255399 | systems/doc/hitex/hiformat.pdf
2022/03/08 | 125009 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp
2022/03/08 | 12474 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/checked.h
2022/03/08 | 1244 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h
@@ -1017,7 +1150,6 @@
2022/03/08 | 1213 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h
2022/03/08 | 121147 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h
2022/03/08 | 12054 | graphics/asymptote/LspCpp/CMakeLists.txt
-2022/03/08 | 120469 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
2022/03/08 | 1201 | graphics/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp
2022/03/08 | 1200 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_data/navigation.yml
2022/03/08 | 12004 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp
@@ -1028,14 +1160,10 @@
2022/03/08 | 1188 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview_header.htm
2022/03/08 | 1185 | graphics/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h
2022/03/08 | 1183 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h
-2022/03/08 | 1180914 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
2022/03/08 | 1161 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h
2022/03/08 | 1159 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h
-2022/03/08 | 115694 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/03/08 | 1156086 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
2022/03/08 | 11559 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/diyfp.h
2022/03/08 | 1154 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h
-2022/03/08 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2022/03/08 | 1150 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h
2022/03/08 | 114 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.make
2022/03/08 | 1143 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h
@@ -1044,15 +1172,14 @@
2022/03/08 | 1136 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/items.json
2022/03/08 | 1136 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/items.json
2022/03/08 | 1134 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design_header.htm
-2022/03/08 | 113013 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
2022/03/08 | 1129 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h
2022/03/08 | 1125 | graphics/asymptote/LspCpp/third_party/threadpool/Makefile
2022/03/08 | 11255 | graphics/asymptote/LspCpp/src/lsp/textDocument.cpp
-2022/03/08 | 112476 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
2022/03/08 | 1122 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples_header.htm
2022/03/08 | 1118 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/samples.md
2022/03/08 | 1116 | graphics/asymptote/LspCpp/third_party/uri/test/valid_urls.txt
2022/03/08 | 11146 | graphics/asymptote/LspCpp/third_party/rapidjson/readme.md
+2022/03/08 | 1114325 | systems/doc/hitex/hiformat.hnt
2022/03/08 | 110 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/remotes/subSchemas.json
2022/03/08 | 1109 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h
2022/03/08 | 11085 | indexing/xindex/lualatex/xindex-HAdW-eKO.lua
@@ -1061,13 +1188,10 @@
2022/03/08 | 1098 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/integers.json
2022/03/08 | 1098 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h
2022/03/08 | 10989 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h
-2022/03/08 | 109518 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
2022/03/08 | 1092 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp
2022/03/08 | 10928 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h
2022/03/08 | 10919 | indexing/xindex/lualatex/xindex-base.lua
-2022/03/08 | 109180 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
2022/03/08 | 1088 | graphics/asymptote/LspCpp/third_party/threadpool/TODO
-2022/03/08 | 108812 | systems/texlive/tlnet/archive/texlive-scripts.r62491.tar.xz
2022/03/08 | 1087 | graphics/asymptote/LspCpp/LICENSE
2022/03/08 | 1077 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h
2022/03/08 | 1074 | graphics/asymptote/LspCpp/src/lsp/initialize.cpp
@@ -1083,7 +1207,6 @@
2022/03/08 | 1052 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/CMakeLists.txt
2022/03/08 | 10518 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h
2022/03/08 | 10476 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-nice-strict.h
-2022/03/08 | 104710 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2022/03/08 | 10414 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse.cpp
2022/03/08 | 103 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/readme.txt
2022/03/08 | 1039 | graphics/asymptote/LspCpp/third_party/uri/test/CMakeLists.txt
@@ -1092,21 +1215,17 @@
2022/03/08 | 1034 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/index.md
2022/03/08 | 103478 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/Doxyfile.zh-cn.in
2022/03/08 | 1033 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h
-2022/03/08 | 103393 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
2022/03/08 | 103393 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/Doxyfile.in
2022/03/08 | 1032 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_checked_iterator.cpp
2022/03/08 | 1031 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri.hpp
2022/03/08 | 1031 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp
2022/03/08 | 10312 | graphics/asymptote/LspCpp/third_party/rapidjson/CMakeLists.txt
-2022/03/08 | 103056 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
2022/03/08 | 10251 | graphics/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp
-2022/03/08 | 1020251 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
2022/03/08 | 101 | macros/latex/contrib/footmisc/footmisc-code.tex
2022/03/08 | 1019 | graphics/asymptote/LspCpp/third_party/rapidjson/example/pretty/pretty.cpp
2022/03/08 | 1019 | graphics/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h
2022/03/08 | 10168 | graphics/asymptote/LspCpp/third_party/uri/test/uri_resolve_test.cpp
2022/03/08 | 1015 | graphics/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp
-2022/03/08 | 101443 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2022/03/08 | 10136 | indexing/xindex/lualatex/xindex-lapp.lua
2022/03/08 | 10110 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/itoa.h
2022/03/08 | 1008 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeLists.txt
@@ -1123,7 +1242,6 @@
2022/03/07 | 998 | graphics/asymptote/GUI/res/icons/chevron-with-circle-right.svg
2022/03/07 | 9923 | graphics/asymptote/profiler.h
2022/03/07 | 990 | graphics/asymptote/examples/RiemannSphere.asy
-2022/03/07 | 99081190 | systems/win32/TLW64/tl-win64.zip
2022/03/07 | 989121 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/Glew/CustomGL/glew.h
2022/03/07 | 986 | graphics/asymptote/predicates.h
2022/03/07 | 9867 | graphics/asymptote/runstring.in
@@ -1182,7 +1300,6 @@
2022/03/07 | 900065 | systems/win32/miktex/tm/packages/bath-bst__doc.tar.lzma
2022/03/07 | 897 | graphics/asymptote/doc/flowchartdemo.asy
2022/03/07 | 8973 | graphics/asymptote/doc/asy.1
-2022/03/07 | 89307 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015__source.tar.lzma
2022/03/07 | 88 | graphics/asymptote/cudareflect/tinyexr/examples/exrfilter/README.md
2022/03/07 | 886 | graphics/asymptote/angle.h
2022/03/07 | 8856 | graphics/asymptote/runmath.in
@@ -1293,7 +1410,6 @@
2022/03/07 | 739005 | systems/win32/miktex/tm/packages/caption__doc.tar.lzma
2022/03/07 | 737 | graphics/asymptote/tests/array/determinant.asy
2022/03/07 | 734 | graphics/asymptote/examples/quilt.asy
-2022/03/07 | 7347 | systems/win32/miktex/tm/packages/lua-widow-control.tar.lzma
2022/03/07 | 734663 | systems/win32/miktex/tm/packages/l3build__doc.tar.lzma
2022/03/07 | 73435 | graphics/asymptote/GL/glxew.h
2022/03/07 | 733 | graphics/asymptote/GUI/xasySvg.py
@@ -1454,7 +1570,6 @@
2022/03/07 | 5883 | graphics/asymptote/Delaunay.cc
2022/03/07 | 586 | graphics/asymptote/GUI/xasyStrings.py
2022/03/07 | 585661 | systems/win32/miktex/tm/packages/l3kernel__source.tar.lzma
-2022/03/07 | 585313 | systems/win32/miktex/tm/packages/easybook__doc.tar.lzma
2022/03/07 | 582 | graphics/asymptote/examples/cos3.asy
2022/03/07 | 5820 | graphics/asymptote/cudareflect/IrradianceGenerator.vcxproj
2022/03/07 | 581 | graphics/asymptote/examples/BezierSaddle.asy
@@ -1500,7 +1615,6 @@
2022/03/07 | 54577 | graphics/asymptote/settings.cc
2022/03/07 | 545627 | systems/win32/miktex/tm/packages/luaotfload__doc.tar.lzma
2022/03/07 | 5441 | graphics/asymptote/env.cc
-2022/03/07 | 541091 | systems/doc/hitex/hitexman.hnt
2022/03/07 | 535 | graphics/asymptote/cudareflect/tinyexr/Makefile.llvm-mingw
2022/03/07 | 5357 | systems/win32/miktex/tm/packages/lutabulartools__source.tar.lzma
2022/03/07 | 533 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_savedialog.c
@@ -1592,6 +1706,7 @@
2022/03/07 | 471 | graphics/asymptote/base/shaders/sum3.glsl
2022/03/07 | 4718 | graphics/asymptote/doc/FAQ/m-ascii.pl
2022/03/07 | 4716 | graphics/asymptote/prc/PRCTools/makePRC.cc
+2022/03/07 | 467 | graphics/pgf/contrib/liftarm/README.md
2022/03/07 | 46531 | graphics/asymptote/base/plain_picture.asy
2022/03/07 | 464 | graphics/asymptote/drawgsave.h
2022/03/07 | 464 | graphics/asymptote/doc/GaussianSurface.asy
@@ -1636,7 +1751,6 @@
2022/03/07 | 437 | graphics/asymptote/cudareflect/tinyexr/Makefile.gcc-mingw
2022/03/07 | 4371 | graphics/asymptote/cudareflect/kernel.cu
2022/03/07 | 436 | graphics/asymptote/examples/colorpatch.asy
-2022/03/07 | 43635 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015.tar.lzma
2022/03/07 | 43567 | systems/win32/miktex/tm/packages/texlogsieve.tar.lzma
2022/03/07 | 4348 | graphics/asymptote/doc/colo-asy.tex
2022/03/07 | 433 | graphics/asymptote/examples/twoSpheres.asy
@@ -1709,9 +1823,7 @@
2022/03/07 | 3912 | graphics/asymptote/tr.h
2022/03/07 | 390 | graphics/asymptote/doc/tile.asy
2022/03/07 | 38 | graphics/asymptote/examples/spring0.asy
-2022/03/07 | 38990 | systems/win32/miktex/tm/packages/easybook__source.tar.lzma
2022/03/07 | 388 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/common.h
-2022/03/07 | 38867 | systems/doc/hitex/hitexman.tex
2022/03/07 | 3884339 | systems/win32/miktex/tm/packages/acmart__doc.tar.lzma
2022/03/07 | 387196 | systems/win32/miktex/tm/packages/biblatex-bath__doc.tar.lzma
2022/03/07 | 3857 | graphics/asymptote/examples/pipes.asy
@@ -1823,7 +1935,6 @@
2022/03/07 | 320405 | graphics/asymptote/base/geometry.asy
2022/03/07 | 32006 | systems/win32/miktex/tm/packages/biblatex-bath__source.tar.lzma
2022/03/07 | 31 | graphics/asymptote/cudareflect/tinyexr/test/unit/win32-filelist-utf8.inc
-2022/03/07 | 319867 | systems/win32/miktex/tm/packages/lua-widow-control__doc.tar.lzma
2022/03/07 | 319839 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/miniz.c
2022/03/07 | 318 | graphics/asymptote/patches/gcc3.3.2curses.patch
2022/03/07 | 318990 | systems/win32/miktex/tm/packages/handoutwithnotes__doc.tar.lzma
@@ -2005,7 +2116,6 @@
2022/03/07 | 234 | graphics/asymptote/doc/beziercurve.asy
2022/03/07 | 2341 | graphics/asymptote/prc/PRCTools/iPRCFile.h
2022/03/07 | 233 | graphics/asymptote/examples/cardioid.asy
-2022/03/07 | 233835 | systems/doc/hitex/hitexman.pdf
2022/03/07 | 2328 | graphics/asymptote/virtualfieldaccess.h
2022/03/07 | 232813 | systems/win32/miktex/tm/packages/bfh-ci__doc.tar.lzma
2022/03/07 | 2327 | systems/win32/miktex/tm/packages/beamertheme-arguelles.tar.lzma
@@ -2050,7 +2160,6 @@
2022/03/07 | 21382 | graphics/asymptote/fileio.h
2022/03/07 | 2136 | graphics/asymptote/seconds.h
2022/03/07 | 2134 | graphics/asymptote/drawlabel.h
-2022/03/07 | 213092 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2022/03/07 | 2123676 | systems/texlive/tlnet/archive/shtthesis.doc.r62483.tar.xz
2022/03/07 | 211246 | systems/win32/miktex/tm/packages/njustthesis__doc.tar.lzma
2022/03/07 | 2111314 | systems/win32/miktex/tm/packages/shtthesis__doc.tar.lzma
@@ -2214,7 +2323,6 @@
2022/03/07 | 1614049 | graphics/asymptote/ChangeLog
2022/03/07 | 1612 | graphics/asymptote/asy-list.pl
2022/03/07 | 1611 | graphics/asymptote/v3dheadertypes.py
-2022/03/07 | 16117 | systems/win32/miktex/tm/packages/easybook.tar.lzma
2022/03/07 | 160 | graphics/asymptote/cudareflect/tinyexr/jni/Makefile
2022/03/07 | 16091 | graphics/asymptote/LspCpp/third_party/uri/src/Makefile
2022/03/07 | 16089 | graphics/asymptote/base/slide.asy
@@ -2289,7 +2397,6 @@
2022/03/07 | 13944 | graphics/asymptote/runtriple.cc
2022/03/07 | 1391 | graphics/asymptote/doc/CAD1.asy
2022/03/07 | 138 | graphics/asymptote/Pipfile
-2022/03/07 | 1388186 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015__doc.tar.lzma
2022/03/07 | 13867 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/nuklear_btgui_gl2.h
2022/03/07 | 1384 | graphics/asymptote/tests/pic/trans.asy
2022/03/07 | 1375 | graphics/asymptote/base/tree.asy
@@ -2333,11 +2440,9 @@
2022/03/07 | 12753 | graphics/asymptote/Makefile.in
2022/03/07 | 1274 | graphics/asymptote/newexp.h
2022/03/07 | 1266 | graphics/asymptote/drawverbatim.h
-2022/03/07 | 12665 | systems/win32/miktex/tm/packages/lua-widow-control__source.tar.lzma
2022/03/07 | 12630 | graphics/asymptote/cudareflect/tinyexr/examples/cube2longlat/cube2longlat.cc
2022/03/07 | 1261761 | graphics/asymptote/examples/worldmap.dat
2022/03/07 | 12604 | graphics/asymptote/runsystem.cc
-2022/03/07 | 1255342 | systems/doc/hitex/hiformat.pdf
2022/03/07 | 125501 | systems/win32/miktex/tm/packages/book-of-common-prayer__doc.tar.lzma
2022/03/07 | 1253 | graphics/asymptote/keywords.pl
2022/03/07 | 12534 | graphics/asymptote/ax_pthread.m4
@@ -2424,7 +2529,6 @@
2022/03/07 | 111 | graphics/asymptote/GUI/res/icons/center.asy
2022/03/07 | 111 | graphics/asymptote/examples/shadestroke.asy
2022/03/07 | 1114 | graphics/asymptote/examples/laserlattice.asy
-2022/03/07 | 1113686 | systems/doc/hitex/hiformat.hnt
2022/03/07 | 11122 | graphics/asymptote/base/math.asy
2022/03/07 | 1111 | graphics/asymptote/examples/imagehistogram.asy
2022/03/07 | 1101 | graphics/asymptote/cudareflect/tinyexr/examples/resize/resize.cc
@@ -2619,7 +2723,6 @@
2022/03/06 | 1976 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authornumber-terse.cbx
2022/03/06 | 19104 | macros/unicodetex/latex/fontsetup/doc/fontsetup-doc.tex
2022/03/06 | 1848 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx
-2022/03/06 | 17697 | CTAN.sites
2022/03/06 | 164531 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex
2022/03/06 | 15750 | macros/latex/contrib/buctthesis/doc/chapter/chapter1.tex
2022/03/06 | 15162 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty
@@ -2638,6 +2741,7 @@
2022/03/06 | 114749 | support/pmx/doc/pmx-install.pdf
2022/03/06 | 111164 | systems/texlive/tlnet/archive/texlogsieve.doc.r62454.tar.xz
2022/03/06 | 10823 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty
+2022/03/06 | 10774 | graphics/pgf/contrib/liftarm/liftarm.sty
2022/03/06 | 1051 | macros/latex/contrib/buctthesis/doc/mycfg.sty
2022/03/06 | 10473 | info/latex-for-undergraduates/alounsburymacros-doc.tex
2022/03/06 | 1045832 | systems/texlive/tlnet/archive/chemmacros.doc.r62449.tar.xz
@@ -6296,6 +6400,7 @@
2022/03/03 | 633 | graphics/minim-hatching/README
2022/03/03 | 615 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.bib
2022/03/03 | 554 | fonts/spark-otf/README.md
+2022/03/03 | 55207 | macros/latex/contrib/projlib/projlib-datetime.sty
2022/03/03 | 5106 | macros/luatex/generic/minim/minim-pdfresources.lua
2022/03/03 | 48687 | graphics/minim-hatching/minim-hatching-doc.pdf
2022/03/03 | 4822 | support/texdoc/script/texdoclib-const.tlu
@@ -6400,61 +6505,3 @@
2022/03/03 | 10477 | macros/luatex/generic/minim-xmp/minim-xmp.doc
2022/03/03 | 10196 | macros/luatex/generic/minim/minim-alloc.lua
2022/03/03 | 100248 | systems/texlive/tlnet/archive/arara.source.r62339.tar.xz
-2022/03/02 | 9940 | usergrps/usergrps/pl.html
-2022/03/02 | 9935 | usergrps/usergrps/hu.html
-2022/03/02 | 9868 | usergrps/usergrps/cz.html
-2022/03/02 | 9813 | usergrps/usergrps/labels.pdf
-2022/03/02 | 9795 | usergrps/usergrps/fr.html
-2022/03/02 | 9775 | usergrps/usergrps/kr.html
-2022/03/02 | 975620 | systems/texlive/tlnet/archive/mattens.doc.r62327.tar.xz
-2022/03/02 | 9752 | usergrps/usergrps/bg.html
-2022/03/02 | 9751 | usergrps/usergrps/nl.html
-2022/03/02 | 9714 | usergrps/usergrps/cn.html
-2022/03/02 | 9658 | usergrps/usergrps/it.html
-2022/03/02 | 9655 | usergrps/usergrps/es.html
-2022/03/02 | 9546 | usergrps/usergrps/us.html
-2022/03/02 | 9531 | usergrps/usergrps/gr.html
-2022/03/02 | 9510 | usergrps/usergrps/esc.html
-2022/03/02 | 9506 | usergrps/usergrps/dk.html
-2022/03/02 | 9504 | usergrps/usergrps/pt.html
-2022/03/02 | 9486 | usergrps/usergrps/vn.html
-2022/03/02 | 9476 | usergrps/usergrps/no.html
-2022/03/02 | 9431 | usergrps/usergrps/ie.html
-2022/03/02 | 9425 | usergrps/usergrps/za.html
-2022/03/02 | 9422 | usergrps/usergrps/lt.html
-2022/03/02 | 9421 | usergrps/usergrps/br.html
-2022/03/02 | 9415 | usergrps/usergrps/uy.html
-2022/03/02 | 9406 | usergrps/usergrps/is.html
-2022/03/02 | 9375 | usergrps/usergrps/kh.html
-2022/03/02 | 9365 | usergrps/usergrps/mx.html
-2022/03/02 | 9285 | usergrps/usergrps/ee.html
-2022/03/02 | 8715680 | systems/texlive/tlnet/archive/hvfloat.doc.r62323.tar.xz
-2022/03/02 | 86240 | systems/texlive/tlnet/archive/hvlogos.doc.r62325.tar.xz
-2022/03/02 | 780996 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles.zip
-2022/03/02 | 780684 | systems/texlive/tlnet/archive/install-latex-guide-zh-cn.doc.r62313.tar.xz
-2022/03/02 | 739156 | systems/texlive/tlnet/archive/caption.doc.r62291.tar.xz
-2022/03/02 | 705660 | systems/texlive/tlnet/archive/tabularray.doc.r62329.tar.xz
-2022/03/02 | 705294 | macros/latex/contrib/nicematrix/nicematrix.dtx
-2022/03/02 | 6490 | usergrps/usergrps/index.html
-2022/03/02 | 59600 | systems/texlive/tlnet/archive/caption.r62291.tar.xz
-2022/03/02 | 568 | systems/texlive/tlnet/archive/install-latex-guide-zh-cn.r62313.tar.xz
-2022/03/02 | 501207 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
-2022/03/02 | 48898 | usergrps/usergrps/lugs.pdf
-2022/03/02 | 48784 | systems/texlive/tlnet/archive/lectureslides.doc.r62293.tar.xz
-2022/03/02 | 33556 | systems/texlive/tlnet/archive/tabularray.r62329.tar.xz
-2022/03/02 | 33207 | usergrps/usergrps/lugs.html
-2022/03/02 | 2824 | systems/texlive/tlnet/archive/mattens.r62327.tar.xz
-2022/03/02 | 2704 | systems/texlive/tlnet/archive/hvlogos.r62325.tar.xz
-2022/03/02 | 25612 | systems/texlive/tlnet/archive/bfh-ci.r62319.tar.xz
-2022/03/02 | 24196 | systems/texlive/tlnet/archive/tzplot.r62289.tar.xz
-2022/03/02 | 233328 | systems/texlive/tlnet/archive/bfh-ci.doc.r62319.tar.xz
-2022/03/02 | 2127339 | macros/latex/contrib/nicematrix.zip
-2022/03/02 | 210924 | systems/texlive/tlnet/archive/caption.source.r62291.tar.xz
-2022/03/02 | 191096 | macros/latex/contrib/nicematrix/nicematrix-french.tex
-2022/03/02 | 1717516 | systems/doc/pdftex.zip
-2022/03/02 | 1502769 | macros/latex/contrib/nicematrix/nicematrix.pdf
-2022/03/02 | 1368 | systems/texlive/tlnet/archive/lectureslides.r62293.tar.xz
-2022/03/02 | 1309664 | systems/texlive/tlnet/archive/tzplot.doc.r62289.tar.xz
-2022/03/02 | 12376 | systems/texlive/tlnet/archive/mattens.source.r62327.tar.xz
-2022/03/02 | 11416 | systems/texlive/tlnet/archive/hvfloat.r62323.tar.xz
-2022/03/02 | 10002 | usergrps/usergrps/de.html
diff --git a/graphics/pgf/contrib/liftarm/README.md b/graphics/pgf/contrib/liftarm/README.md
new file mode 100644
index 0000000000..fc982a486f
--- /dev/null
+++ b/graphics/pgf/contrib/liftarm/README.md
@@ -0,0 +1,9 @@
+# liftarm
+
+Draw liftarms with TikZ
+
+(c) Matthias Floré
+
+This package is based on the package TikZ and can be used to draw liftarms with TikZ. It provides several options for the appearance of the liftarms, a command which connects two liftarms and an environment to describe a construction.
+
+This program can be redistributed and/or modified under the terms of the LaTeX Project Public License Distributed from CTAN archives on http://www.latex-project.org/lppl.txt. \ No newline at end of file
diff --git a/graphics/pgf/contrib/liftarm/liftarm.pdf b/graphics/pgf/contrib/liftarm/liftarm.pdf
new file mode 100644
index 0000000000..73b4628baf
--- /dev/null
+++ b/graphics/pgf/contrib/liftarm/liftarm.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/liftarm/liftarm.sty b/graphics/pgf/contrib/liftarm/liftarm.sty
new file mode 100644
index 0000000000..9cd8660f8e
--- /dev/null
+++ b/graphics/pgf/contrib/liftarm/liftarm.sty
@@ -0,0 +1,256 @@
+%liftarm package
+%Draw liftarms with TikZ
+%(c) Matthias Floré
+%This program can be redistributed and/or modified under the terms of the LaTeX Project Public License Distributed from CTAN archives on http://www.latex-project.org/lppl.txt.
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{liftarm}[2022/03/06 v1.0 Draw liftarms with TikZ]
+\RequirePackage{etoolbox}
+\RequirePackage[dvipsnames]{xcolor}
+\RequirePackage{tikz}
+\usetikzlibrary{calc}
+\newif\ifliftarm@brick
+\newif\ifliftarm@contour
+\newif\ifliftarm@connectreverse
+\pgfkeys{
+/liftarm/.is family,
+/liftarm/.unknown/.code={\edef\liftarm@colorkey{\pgfkeyscurrentname}},
+/liftarm,
+color/.store in=\liftarm@colorkey,
+color 0/.initial=Gray,
+color 1/.initial=darkgray,
+color 2/.initial=Yellow,
+color 3/.initial=Orange,
+color 4/.initial=Red,
+color 5/.initial=Green,
+color 6/.initial=Blue,
+color 7/.initial=Brown,
+color modulo/.initial=8,
+brick/.is if=liftarm@brick,
+axle holes/.store in=\liftarm@axleholes,
+mark holes/.store in=\liftarm@markholes,
+mark color/.initial=Black,
+screw holes/.store in=\liftarm@screwholes,
+screw holes angle/.initial=45,
+screw color/.initial=Black,
+scalefactor/.initial=0.5,
+contour/.is if=liftarm@contour,
+coordinate/.store in=\liftarm@coordinate,
+connect coordinate/.store in=\liftarm@connectcoordinate,
+connect/.store in=\liftarm@connect,
+globalize/.code n args={2}{\xdef#1{#2}},
+liftarm 1 options/.style={},
+liftarm 1/.style={liftarm 1 options/.style={#1}},
+liftarm 2 options/.style={},
+liftarm 2/.style={liftarm 2 options/.style={#1}},
+origin/.initial=0,
+connect reverse/.is if=liftarm@connectreverse,
+hole radius/.initial=0.3,
+liftarm thickness/.initial=0.92,
+}
+\pgfmathsetmacro{\liftarm@axleholeangle}{14}%2*\liftarm@axleholeradius*sin(\liftarm@axleholeangle)=1.78/8
+\pgfmathsetmacro{\liftarm@screwholestartangle}{10}
+\newcommand{\liftarm}[4][]{
+\pgfmathsetmacro{\liftarm@length}{#3}
+\ifdim \liftarm@length pt<0 pt
+\PackageWarning{liftarm}{The length (\liftarm@length) of the liftarm is smaller than 0.}
+\else
+\pgfmathsetmacro{\liftarm@ang}{#4}
+\begin{scope}[shift={(#2)},rotate=\liftarm@ang]
+\pgfkeys{/liftarm,#1}
+\pgfmathsetmacro{\liftarm@origin}{\pgfkeysvalueof{/liftarm/origin}}
+\begin{scope}[shift={(-\liftarm@origin,0)}]
+\pgfmathsetmacro{\liftarm@halfthickness}{0.5*\pgfkeysvalueof{/liftarm/scalefactor}*\pgfkeysvalueof{/liftarm/liftarm thickness}}
+\pgfmathsetmacro{\liftarm@holeradius}{\pgfkeysvalueof{/liftarm/scalefactor}*\pgfkeysvalueof{/liftarm/hole radius}}
+\pgfmathsetmacro{\liftarm@halfstudwidth}{\pgfkeysvalueof{/liftarm/scalefactor}*0.3}
+\pgfmathsetmacro{\liftarm@studheight}{\pgfkeysvalueof{/liftarm/scalefactor}*0.2}
+\pgfmathsetmacro{\liftarm@halfplateheight}{\pgfkeysvalueof{/liftarm/scalefactor}*0.2}
+\pgfmathsetmacro{\liftarm@halfplatewidth}{\pgfkeysvalueof{/liftarm/scalefactor}*0.5}
+\pgfmathsetmacro{\liftarm@axleholeradius}{\liftarm@halfthickness}
+\pgfmathsetmacro{\liftarm@screwholeradius}{0.8*\liftarm@holeradius}
+\colorlet{liftarm@markcolor}{\pgfkeysvalueof{/liftarm/mark color}}
+\colorlet{liftarm@screwcolor}{\pgfkeysvalueof{/liftarm/screw color}}
+\pgfmathsetmacro{\liftarm@screwholesangle}{\pgfkeysvalueof{/liftarm/screw holes angle}}
+\ifcsname liftarm@colorkey\endcsname
+\colorlet{liftarm@color}{\liftarm@colorkey}
+\else
+\pgfmathsetmacro{\liftarm@colornumber}{int(mod(\liftarm@length,\pgfkeysvalueof{/liftarm/color modulo}))}
+\colorlet{liftarm@color}{\pgfkeysvalueof{/liftarm/color \liftarm@colornumber}}
+\fi
+\ifliftarm@brick
+\def\liftarm@shape{(-1,{-\liftarm@halfplatewidth-\liftarm@halfplateheight})--(-1,\liftarm@halfplatewidth)
+\foreach\liftarm@n in {-1,...,\liftarm@length}{
+--({\liftarm@n+0.5-\liftarm@halfstudwidth},\liftarm@halfplatewidth)--({\liftarm@n+0.5-\liftarm@halfstudwidth},{\liftarm@halfplatewidth+\liftarm@studheight})--({\liftarm@n+0.5+\liftarm@halfstudwidth},{\liftarm@halfplatewidth+\liftarm@studheight})--({\liftarm@n+0.5+\liftarm@halfstudwidth},\liftarm@halfplatewidth)--({\liftarm@n+1},\liftarm@halfplatewidth)
+}
+--({\liftarm@length+1},{-\liftarm@halfplatewidth-\liftarm@halfplateheight})--cycle}
+\else
+\def\liftarm@shape{(0,\liftarm@halfthickness) arc (90:270:\liftarm@halfthickness)--(\liftarm@length,-\liftarm@halfthickness) arc (-90:90:\liftarm@halfthickness)--cycle}
+\fi
+\fill[liftarm@color,even odd rule] \liftarm@shape
+\foreach\liftarm@n in {0,...,\liftarm@length}{
+(\liftarm@n,0) circle[radius=\liftarm@holeradius]
+};
+\ifliftarm@contour
+%\ifliftarm@brick
+%\else
+\draw[liftarm@color!75!Black,ultra thick] \liftarm@shape;
+%\fi
+\fi
+\ifcsname liftarm@axleholes\endcsname
+\foreach\liftarm@n in \liftarm@axleholes{
+\pgfmathsetmacro{\liftarm@axlehole}{\liftarm@n}
+\ifdim \liftarm@axlehole pt<0 pt
+\else
+\ifdim \liftarm@axlehole pt>\liftarm@length pt
+\else
+\foreach\liftarm@angle in {0,90,180,270}{
+\begin{scope}[shift={(\liftarm@axlehole,0)},rotate=\liftarm@angle]
+\fill[liftarm@color] (\liftarm@axleholeangle:\liftarm@axleholeradius) arc (\liftarm@axleholeangle:{90-\liftarm@axleholeangle}:\liftarm@axleholeradius)--({\liftarm@axleholeradius*sin(\liftarm@axleholeangle)},{\liftarm@axleholeradius*sin(\liftarm@axleholeangle)})--cycle;
+\end{scope}
+}
+\fi
+\fi
+}
+\fi
+\ifcsname liftarm@markholes\endcsname
+\foreach\liftarm@n in \liftarm@markholes{
+\pgfmathsetmacro{\liftarm@markhole}{\liftarm@n}
+\ifdim \liftarm@markhole pt<0 pt
+\else
+\ifdim \liftarm@markhole pt>\liftarm@length pt
+\else
+\fill[liftarm@markcolor] (\liftarm@markhole,0) circle[radius=\liftarm@holeradius];
+\fi
+\fi
+}
+\fi
+\ifcsname liftarm@screwholes\endcsname
+\foreach\liftarm@n in \liftarm@screwholes{
+\pgfmathsetmacro{\liftarm@screwhole}{\liftarm@n}
+\ifdim \liftarm@screwhole pt<0 pt
+\else
+\ifdim \liftarm@screwhole pt>\liftarm@length pt
+\else
+\begin{scope}[shift={(\liftarm@screwhole,0)},rotate=\liftarm@screwholesangle]
+\foreach\liftarm@n in {-1,1}{
+\fill[liftarm@screwcolor] ({\liftarm@screwholeradius*cos(\liftarm@screwholestartangle)},{\liftarm@n*\liftarm@screwholeradius*sin(\liftarm@screwholestartangle)}) arc ({\liftarm@n*\liftarm@screwholestartangle}:{\liftarm@n*(180-\liftarm@screwholestartangle)}:\liftarm@screwholeradius);
+}
+\end{scope}
+\fi
+\fi
+}
+\fi
+\ifcsname liftarm@coordinate\endcsname
+\foreach\liftarm@n/\liftarm@name in \liftarm@coordinate{
+\pgfmathsetmacro{\liftarm@value}{\liftarm@n}
+\coordinate (\liftarm@name) at (\liftarm@value,0);
+}
+\fi
+\end{scope}
+\end{scope}
+\fi
+}
+\newcommand{\liftarmconnect}[5][]{
+\begin{scope}
+\pgfkeys{/liftarm,#1}
+\coordinate (liftarm@A) at (#2);
+\coordinate (liftarm@B) at (#4);
+\begin{scope}
+\pgfkeys{/liftarm,liftarm 1 options}
+\ifcsname liftarm@connect\endcsname
+\pgfmathsetmacro{\liftarm@connectlengthAtemp}{\liftarm@connect-\pgfkeysvalueof{/liftarm/origin}}
+\else
+\pgfmathsetmacro{\liftarm@connectlengthAtemp}{#3-\pgfkeysvalueof{/liftarm/origin}}
+\fi
+\xdef\liftarm@connectlengthA{\liftarm@connectlengthAtemp}
+\ifdim \liftarm@connectlengthA pt=0 pt
+\PackageWarning{liftarm}{The length of the first liftarm is 0.}
+\fi
+\end{scope}
+\begin{scope}
+\pgfkeys{/liftarm,liftarm 2 options}
+\ifcsname liftarm@connect\endcsname
+\pgfmathsetmacro{\liftarm@connectlengthBtemp}{\liftarm@connect-\pgfkeysvalueof{/liftarm/origin}}
+\else
+\pgfmathsetmacro{\liftarm@connectlengthBtemp}{#5-\pgfkeysvalueof{/liftarm/origin}}
+\fi
+\xdef\liftarm@connectlengthB{\liftarm@connectlengthBtemp}
+\ifdim \liftarm@connectlengthB pt=0 pt
+\PackageWarning{liftarm}{The length of the second liftarm is 0.}
+\fi
+\end{scope}
+\path
+let
+\p1=(liftarm@A),
+\p2=(liftarm@B),
+\n1={\x1/\pgf@xx},
+\n2={\y1/\pgf@yy},
+\n3={\x2/\pgf@xx},
+\n4={\y2/\pgf@yy}
+in
+[
+/liftarm/globalize={\liftarm@connectxalet}{\n3},
+/liftarm/globalize={\liftarm@connectyalet}{\n4},
+/liftarm/globalize={\liftarm@connectxblet}{\n1},
+/liftarm/globalize={\liftarm@connectyblet}{\n2}
+]
+;
+\pgfmathsetmacro{\liftarm@connectxa}{\liftarm@connectxalet};
+\pgfmathsetmacro{\liftarm@connectya}{\liftarm@connectyalet};
+\pgfmathsetmacro{\liftarm@connectxb}{\liftarm@connectxblet};
+\pgfmathsetmacro{\liftarm@connectyb}{\liftarm@connectyblet};
+\pgfmathsetmacro{\liftarm@absdiff}{abs(\liftarm@connectxa-\liftarm@connectxb)};
+\ifdim \liftarm@absdiff pt<0.001 pt
+\pgfmathsetmacro{\liftarm@connectanglegamma}{90}
+\ifdim \liftarm@connectya pt<\liftarm@connectyb pt
+\pgfmathsetmacro{\liftarm@connectangleshift}{0}
+\else
+\pgfmathsetmacro{\liftarm@connectangleshift}{180}
+\fi
+\else
+\pgfmathsetmacro{\liftarm@connectanglegamma}{atan((\liftarm@connectyb-\liftarm@connectya)/(\liftarm@connectxb-\liftarm@connectxa))}
+\ifdim \liftarm@connectxa pt<\liftarm@connectxb pt
+\pgfmathsetmacro{\liftarm@connectangleshift}{0}
+\else
+\pgfmathsetmacro{\liftarm@connectangleshift}{180}
+\fi
+\fi
+\pgfmathsetmacro{\liftarm@connectlength}{sqrt((\liftarm@connectyb-\liftarm@connectya)^2+(\liftarm@connectxb-\liftarm@connectxa)^2)}
+\ifdim \liftarm@connectlength pt=0 pt
+\PackageWarning{liftarm}{The length between the origins of the liftarms is 0.}
+\fi
+\pgfmathsetmacro{\liftarm@connectabsconnectlengthAminusconnectlengthB}{abs(\liftarm@connectlengthA-\liftarm@connectlengthB)}
+\ifdim \liftarm@connectabsconnectlengthAminusconnectlengthB pt>\liftarm@connectlength pt
+\PackageWarning{liftarm}{The liftarms can not be connected.}
+\fi
+\pgfmathsetmacro{\liftarm@connectconnectlengthAplusconnectlengthB}{\liftarm@connectlengthA+\liftarm@connectlengthB}
+\ifdim \liftarm@connectconnectlengthAplusconnectlengthB pt<\liftarm@connectlength pt
+\PackageWarning{liftarm}{The liftarms can not be connected.}
+\fi
+\pgfmathsetmacro{\liftarm@connectanglealpha}{acos(((\liftarm@connectlengthB)^2+(\liftarm@connectlength)^2-(\liftarm@connectlengthA)^2)/(2*(\liftarm@connectlength)*(\liftarm@connectlengthB)))}
+\pgfmathsetmacro{\liftarm@connectanglebeta}{acos(((\liftarm@connectlength)^2+(\liftarm@connectlengthA)^2-(\liftarm@connectlengthB)^2)/(2*\liftarm@connectlength*(\liftarm@connectlengthA)))}
+\pgfmathsetmacro{\liftarm@connectangledelta}{\liftarm@connectangleshift+180+\liftarm@connectanglegamma-\liftarm@connectanglebeta}
+\def\liftarm@liftarmA{\liftarm[liftarm 1 options]{#2}{#3}{\liftarm@connectangledelta}}
+\def\liftarm@liftarmB{\liftarm[liftarm 2 options]{#4}{#5}{\liftarm@connectangleshift+\liftarm@connectanglegamma+\liftarm@connectanglealpha}}
+\ifliftarm@connectreverse
+\liftarm@liftarmB
+\liftarm@liftarmA
+\else
+\liftarm@liftarmA
+\liftarm@liftarmB
+\fi
+\ifcsname liftarm@connectcoordinate\endcsname
+\coordinate (\liftarm@connectcoordinate) at ($(#2)+(\liftarm@connectangledelta:\liftarm@connectlengthA)$);
+\fi
+\end{scope}
+}
+\newcommand{\liftarm@construction}[2][]{\begin{tikzpicture}[#1]
+\liftarm@constructfigure
+#2
+\end{tikzpicture}}
+\newcommand{\liftarmconstruct}[3][]{\item #2\nopagebreak
+
+\gappto\liftarm@constructfigure{#3}
+\expandafter\liftarm@construction\expandafter[\liftarm@constructoptions]{#1}
+}
+\newenvironment{liftarmconstruction}[1][]{\def\liftarm@constructoptions{#1}\def\liftarm@constructfigure{}\begin{enumerate}}{\end{enumerate}}
+\endinput \ No newline at end of file
diff --git a/graphics/pgf/contrib/liftarm/liftarm.tex b/graphics/pgf/contrib/liftarm/liftarm.tex
new file mode 100644
index 0000000000..8619b58f2d
--- /dev/null
+++ b/graphics/pgf/contrib/liftarm/liftarm.tex
@@ -0,0 +1,559 @@
+%Documentation for the liftarm package
+%Draw liftarms with TikZ
+%(c) Matthias Floré
+%This program can be redistributed and/or modified under the terms of the LaTeX Project Public License Distributed from CTAN archives on http://www.latex-project.org/lppl.txt.
+\documentclass[a4paper,english,dvipsnames]{ltxdoc}
+\usepackage[english]{babel}
+\usepackage{graphicx}
+\usepackage[a4paper,left=2.25cm,right=2.25cm,top=2.5cm,bottom=2.5cm,nohead]{geometry}
+\usepackage{parskip}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{mathtools}
+\usepackage{amssymb}
+\allowdisplaybreaks
+\usepackage{multicol}
+\usepackage{animate}
+\usepackage{liftarm}
+\input{pgfmanual-en-macros.tex}
+\usepackage[page]{totalcount}
+\usepackage{fancyhdr}
+\pagestyle{fancy}
+\renewcommand{\headrulewidth}{0pt}
+\cfoot{\iftotalpages\begin{tikzpicture}\liftarm[mark holes=\thepage-1]{0,0}{\totalpages-2}{0}\end{tikzpicture}\fi}%\liftarm{0,0}{\thepage}{0}
+\fancyhead{}
+\usepackage{imakeidx}
+\makeindex[program=makeindex,columns=2,intoc=true]
+\indexsetup{othercode={\thispagestyle{fancy}}}
+\usepackage[linktoc=all,pdfstartview=FitH,colorlinks=true,linkcolor=Mahogany,citecolor=ForestGreen,urlcolor=MidnightBlue,bookmarksnumbered=true]{hyperref}
+\hypersetup{pdftitle={The liftarm package},pdfauthor={Matthias Flor\'e},pdfsubject={Manual},pdfkeywords={liftarm}}
+\setcounter{tocdepth}{2}
+\setcounter{secnumdepth}{2}
+\DeclareMathOperator{\atan}{atan}
+\title{The \texttt{liftarm} package\\[12pt]\large Draw liftarms with \tikzname}
+\author{Matthias Flor\'e}
+\date{2022-03-08}
+\begin{document}
+\maketitle
+\thispagestyle{fancy}
+\begin{abstract}
+\noindent This package is based on the package |tikz| (see \cite{TtTaPGFp}) and can be used to draw liftarms with \tikzname. It provides several options for the appearance of the liftarms, a command which connects two liftarms and an environment to describe a construction. This is the manual for version 1.0.
+\end{abstract}
+\tableofcontents
+\section{Usage}
+The package |liftarm| can be used by putting
+
+|\usepackage{liftarm}|
+
+in the preamble.
+
+The package |liftarm| loads the packages |etoolbox|, |xcolor| with the option |dvipsnames|, |tikz| and the \tikzname{} library |calc|. Since |xcolor| is loaded with the option |dvipsnames|, packages such as |pgfplots| and |tcolorbox| must be loaded \emph{after} |liftarm|.
+\section{Drawing liftarms}
+\begin{command}{\liftarm\opt{\oarg{options}}\marg{point}\marg{length}\marg{angle}}
+This command can be placed inside a |tikzpicture| environment. It draws a liftarm of \meta{length} starting at \meta{point}. The angle between the liftarm and the $x$-axis can be specified by \meta{angle} in degrees. The distance between the holes is $1$.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm{1,2}{3}{20}
+\end{tikzpicture}
+\end{codeexample}
+Note that the number of holes is $\meta{length}+1$. The \meta{options} can be given with the following keys.
+\begin{key}{/liftarm/axle holes=\marg{values}}
+This key defines the holes in the liftarm where axle holes will be drawn.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm[axle holes={0,4}]{0,1}{4}{0}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\begin{key}{/liftarm/brick=\opt{\meta{boolean}} (default true, initially false)}
+If true, a brick will be drawn instead of a liftarm.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm[brick]{0,1}{2}{0}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\begin{key}{/liftarm/color=\marg{name}}
+This key defines the color of the liftarm. The color can also be specified without key.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm[color=Green]{0,1}{4}{0}
+\liftarm[Blue]{0,2}{3}{0}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\begin{key}{/liftarm/color 0=\marg{name} (initially Gray)}
+\end{key}
+\begin{key}{/liftarm/color 1=\marg{name} (initially darkgray)}
+\end{key}
+\begin{key}{/liftarm/color 2=\marg{name} (initially Yellow)}
+\end{key}
+\begin{key}{/liftarm/color 3=\marg{name} (initially Orange)}
+\end{key}
+\begin{key}{/liftarm/color 4=\marg{name} (initially Red)}
+\end{key}
+\begin{key}{/liftarm/color 5=\marg{name} (initially Green)}
+\end{key}
+\begin{key}{/liftarm/color 6=\marg{name} (initially Blue)}
+\end{key}
+\begin{key}{/liftarm/color 7=\marg{name} (initially Brown)}
+These keys define the colors of the liftarms which have as their length the number following |color|.
+\end{key}
+\begin{key}{/liftarm/color modulo=\marg{number} (initially 8)}
+The default colors of the liftarms are determined by computing the length of the liftarm modulo the value of this key and selecting the color from the previous keys.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}[scale=0.5]
+\foreach\n in {0,...,16}{
+ \liftarm{0,-\n}{\n}{0}
+}
+\end{tikzpicture}
+\end{codeexample}
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}[scale=0.5]
+\pgfkeys{
+ /liftarm,
+ color 0=Yellow,
+ color 1=Red,
+ color 2=Green,
+ color 3=Blue,
+ color modulo=4
+}
+\foreach\n in {0,...,8}{
+ \liftarm{0,-\n}{\n}{0}
+}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\begin{key}{/liftarm/contour=\opt{\meta{boolean}} (default true, initially false)}
+If true, a contour will be drawn around the liftarm.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm[contour]{0,1}{4}{0}
+\liftarm[brick,contour]{1,2}{2}{0}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\begin{key}{/liftarm/coordinate=\marg{number 1/name 1}\dots}
+This key defines coordinates with name \meta{name i} at hole \meta{number i} of the liftarm.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm[
+ coordinate={1/A,3/B}
+]{0,1}{6}{40}
+\liftarm{A}{3}{0}
+\liftarm{B}{2}{180}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\begin{key}{/liftarm/hole radius=\marg{value} (initially 0.3)}
+The \meta{value} of this key, multiplied with the \meta{value} of the key |scalefactor| defines the radius of the holes.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm[hole radius=0.1]{0,0}{5}{0}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\begin{key}{/liftarm/liftarm thickness=\marg{value} (initially 0.92)}
+The \meta{value} of this key, multiplied with the \meta{value} of the key |scalefactor| defines the thickness of the liftarm.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm[
+ hole radius=0.1,
+ liftarm thickness=0.3
+]{0,0}{5}{0}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\begin{key}{/liftarm/mark color=\marg{name} (initially Black)}
+\end{key}
+\begin{key}{/liftarm/mark holes=\marg{values}}
+The key |mark holes| defines the holes in the liftarm which will be marked. The key |mark color| defines the color of these marks.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm[
+ mark holes={0,1,3}
+]{0,0}{5}{0}
+\liftarm[
+ mark holes={1,2,4},
+ mark color=Blue
+]{0,1}{4}{0}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\begin{key}{/liftarm/origin=\marg{number} (initially 0)}
+This key defines the number of the hole which will be placed at the coordinate given as argument to the liftarm.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm{-2,0}{4}{0}
+\liftarm[origin=1]{0,0}{6}{30}
+\liftarm[origin=2]{0,0}{5}{60}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\begin{key}{/liftarm/scalefactor=\marg{value} (initially 0.5)}
+The \meta{value} of this key defines the factor which scales the thickness of the liftarm and the radius of the holes.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm[scalefactor=1]{0,0}{4}{0}
+\liftarm[brick,scalefactor=1]{1,2}{2}{0}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\begin{key}{/liftarm/screw color=\marg{name} (initially Black)}
+\end{key}
+\begin{key}{/liftarm/screw holes=\marg{values}}
+\end{key}
+\begin{key}{/liftarm/screw holes angle=\marg{angle} (initially 45)}
+The key |screw holes| defines the holes in the liftarm where a screw will be drawn. The key |screw color| defines the color of these screws. The key |screw holes angle| defines the angle in degrees around which the screws are drawn.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm[
+ screw holes={0,1,3}
+]{0,0}{5}{0}
+\liftarm[
+ screw holes={1,2,4},
+ screw color=Blue,
+ screw holes angle=0
+]{0,1}{4}{0}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\end{command}
+\section{Connecting liftarms}
+\begin{command}{\liftarmconnect\opt{\oarg{options}}\marg{point1}\marg{length1}\marg{point2}\marg{length2}}
+This command can be placed inside a |tikzpicture| environment. It draws a liftarm of \meta{length1} starting at \meta{point1} and a liftarm of \meta{length2} starting at \meta{point2} in such a way that their last holes have the same coordinate in case that such a point exists. If such a point does not exist then nothing is drawn. In case that there exist 2 such points then this point is chosen counterclockwise. In that case, the other configuration of the 2 liftarms can be obtained by simply swapping \marg{point1}\marg{length1} and \marg{point2}\marg{length2}. The keys for the command |\liftarm| can be given to the \meta{options}. In this case these keys will be passed to both liftarms.
+\begin{codeexample}[width=9cm]
+\begin{tikzpicture}
+\coordinate (A) at (0,0);
+\coordinate (B) at (4,2);
+\coordinate (C) at (1,-3);
+\coordinate (D) at (5,-1);
+\liftarmconnect[Yellow]{A}{2}{B}{3}
+\liftarmconnect[Red]{B}{3}{A}{2}
+\liftarmconnect[Green]{C}{3}{D}{2}
+\liftarmconnect[Blue]{D}{2}{C}{3}
+\foreach\coord in {A,B,C,D}{
+ \node at (\coord) {{\small $\coord$}};
+}
+\end{tikzpicture}
+\end{codeexample}
+Additionally, the \meta{options} can be given with the following keys.
+\begin{key}{/liftarm/connect coordinate=\marg{name}}
+This key defines a coordinate with name \meta{name} at the connection point of both liftarms.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm{-3,0}{5}{0}
+\liftarmconnect[
+ connect coordinate=A
+]{2,0}{2}{-2,0}{3}
+\liftarm{A}{4}{180}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\begin{key}{/liftarm/connect reverse=\opt{\meta{boolean}} (default true, initially false)}
+If true, the first liftarm of |\liftarmconnect| will be drawn second and the second liftarm will be drawn first. This option can be used to change the appearance at the connection point of both liftarms.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarmconnect{2,0}{1}{0,0}{2}
+\liftarmconnect[
+ connect reverse
+]{5,0}{1}{3,0}{2}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\begin{stylekey}{/liftarm/liftarm 1=\marg{options} (initially \normalfont empty)}
+\end{stylekey}
+\begin{stylekey}{/liftarm/liftarm 2=\marg{options} (initially \normalfont empty)}
+These keys accept a list of keys which will be applied to the first respectively second liftarm. These lists of keys accept the same options as the command |\liftarm|. Additionally, the key |connect| below can be given.
+\begin{key}{/liftarm/connect=\marg{number}}
+This key defines the number of the hole which will be connected to the matching liftarm. If this key is not given then the last hole of the liftarm is taken as the connecting point.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm{0,-7}{10}{90}
+\liftarmconnect[
+ connect coordinate=A,
+ liftarm 1={
+ origin=1,
+ connect=5
+ },
+ liftarm 2={
+ origin=2,
+ connect=6
+ }
+]{0,2}{6}{0,0}{7}
+\liftarmconnect[
+ liftarm 1={
+ origin=2,
+ connect=8
+ },
+ liftarm 2={
+ origin=1,
+ connect=5,
+ coordinate=4/B
+ }
+]{A}{9}{0,-6}{6}
+\liftarm[origin=1]{B}{4}{70}
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+\end{stylekey}
+\end{command}
+\section{Describing a construction}
+If a construction involves many liftarms then it is convenient to describe this construction in separate steps and |tikzpicture|s. Then the content of previous |tikzpicture|s would need to be copied in each new |tikzpicture|. This process can be automated by using the |liftarmconstruction| environment and the command |\liftarmconstruct| below.
+\begin{environment}{{liftarmconstruction}\opt{\oarg{options}}}
+This environment is in fact an |enumerate| environment with the addition that it resets the content of the |tikzpicture| which is displayed by the command |\liftarmconstruct| below. Thus in particular, |\item| can be used inside the |liftarmconstruction| environment. The \meta{options} will be passed to each |tikzpicture| drawn by the command |\liftarmconstruct| inside this environment. The following command can be used inside this environment.
+\begin{command}{\liftarmconstruct\opt{\oarg{options}}\marg{text}\marg{commands}}
+This command starts an |\item| and shows \meta{text}. Then it displays a |tikzpicture| containing \meta{commands} and also the \meta{commands} of previous |\liftarmconstruct| commands inside the same |liftarmconstruction| environment. The \meta{options} will be added to this |tikzpicture| but \emph{only} in the current step.
+
+As an example, we describe below the construction of a regular pentagon from \cite{Tmm1}.
+\begin{codeexample}[width=10cm]
+\begin{minipage}{0.5\linewidth}%only for
+%usage in this manual%\linewidth-6pt
+%\begin{multicols}{2}%only for
+%usage in this manual
+\begin{liftarmconstruction}[scale=0.75]
+\liftarmconstruct[
+ {\node[left,align=left]
+ at (-0.5,-1.3)
+ {Rectangular triangle.\\
+ This text is only\\
+ visible in this step.};}
+]{
+ We start with 3 liftarms to form
+ a rectangular triangle.
+}{
+\liftarm{-3,0}{4}{0}
+\liftarmconnect[
+ liftarm 1={
+ origin=2,
+ mark holes={2,6}
+ },
+ liftarm 2={
+ mark holes=0
+ }
+]{0,0}{6}{-3,0}{5}}
+\item An |\item| can be added since this
+ is an |enumerate| environment.
+\liftarmconstruct{
+ Now we add 2 liftarms of length $3$.
+}{\liftarmconnect[
+ connect coordinate=A,
+ liftarm 1={
+ mark holes={0,3}
+ },
+ liftarm 2={
+ mark holes=0
+ }
+]{0,-2}{3}{0,2}{3}}
+\liftarmconstruct{
+ In this step we construct the first
+ side of the regular pentagon.
+}{\liftarmconnect[
+ connect coordinate=B,
+ liftarm 2={
+ mark holes={0,2}
+ }
+]{A}{2}{1,0}{2}}
+\liftarmconstruct{
+ Now we finish the construction
+ of the regular pentagon.
+}{\liftarmconnect[
+ liftarm 2={
+ mark holes={0,2}
+ }
+]{B}{2}{-1,0}{2}
+\liftarmconnect[
+ liftarm 1={
+ mark holes=2
+ }
+]{-1,0}{2}{A}{2}}
+\end{liftarmconstruction}
+%\end{multicols}
+\end{minipage}
+\end{codeexample}
+\end{command}
+\end{environment}
+\section{Additional examples}
+The following example shows a regular hexagon.
+\begin{codeexample}[width=9cm]
+\begin{tikzpicture}
+\def\r{3}
+\foreach\n in {1,...,6}{
+ \liftarmconnect{0,0}{\r}{\n*60:\r}{\r}
+}
+\end{tikzpicture}
+\end{codeexample}
+The following example illustrates that $2\atan(\frac{1}{2})=\atan(\frac{4}{3})$.
+\begin{codeexample}[width=9cm]
+\begin{tikzpicture}
+\liftarm{0,0}{3}{0}
+\liftarm{0,0}{5}{atan(4/3)}
+\liftarm{3,0}{4}{90}
+\liftarm{2,0}{1}{90}
+\liftarm{2,1}{1}{0}
+\liftarm{2,1}{1}{90+atan(4/3)}
+\end{tikzpicture}
+\end{codeexample}
+Below is an example of an angled liftarm.
+\begin{codeexample}[width=9cm]
+\begin{tikzpicture}
+\pgfkeys{
+ /liftarm,
+ scalefactor=1,
+ Blue
+}
+\liftarm[axle holes=0]{0,0}{3}{0}
+\liftarm[axle holes=5]{3,0}{5}{atan(4/3)}
+\end{tikzpicture}
+\end{codeexample}
+The following example illustrates an angle bisection.
+\begin{codeexample}[width=9cm]
+\begin{tikzpicture}
+\def\ang{40}
+\def\r{3}
+\liftarm[mark holes={0,\r}]{0,0}{2*\r}{0}
+\liftarm[mark holes=\r]{0,0}{2*\r}{\ang}
+\liftarm[
+ mark holes=\r,
+ mark color=Red
+]{\r,0}{\r}{\ang}
+\liftarm{\ang:\r}{\r}{0}
+\end{tikzpicture}
+\end{codeexample}
+The following example illustrates that $7^{2}+4^{2}=8^{2}+1^{2}$.
+\begin{codeexample}[width=9cm]
+\begin{tikzpicture}[scale=0.75]
+\def\a{4}
+\def\b{7}
+\def\c{1}
+\def\d{8}
+%\liftarm{0,0}{\b}{0}
+%\liftarm{\b,0}{\a}{90}
+\liftarmconnect{0,0}{\b}{\b,\a}{\a}
+%\liftarm{\b,\a}{1}{atan(\a/\b)+atan(\c/\d)+90}
+%\liftarm{0,0}{\d}{atan(\a/\b)+atan(\c/\d)}
+\liftarmconnect{\b,\a}{\c}{0,0}{\d}
+\end{tikzpicture}
+\end{codeexample}
+Below is an animation of the Peaucellier-Lipkin linkage, see e.g.~\cite{Koagmopermbl}.
+\begin{codeexample}[width=9cm]
+\newcommand{\PLlinkage}[1]{
+\begin{tikzpicture}[scale=0.75]
+\def\a{3}
+\def\b{4}
+\def\c{9}
+\pgfmathsetmacro{\x}{
+ 2*\a+((\c^2-\b^2-(2*\a)^2)/(2*\a))
+}
+\useasboundingbox (-0.23,-6) rectangle
+ ({\x+0.23},6);
+\draw (\x,-5)--(\x,5);
+\liftarm{0,0}{\a}{0}
+\liftarm[coordinate=\a/A]{\a,0}{\a}{#1}
+\liftarmconnect[
+ connect coordinate=B,
+ connect reverse
+]{A}{\b}{0,0}{\c}
+\liftarmconnect[
+ connect coordinate=C
+]{0,0}{\c}{A}{\b}
+\liftarmconnect{C}{\b}{B}{\b}
+\end{tikzpicture}
+}
+\begin{animateinline}[
+ autoplay,
+ controls,
+ loop
+]{30}
+\multiframe{80}{rXmax=-40+1}{
+ \PLlinkage{\rXmax}
+}
+\newframe
+\multiframe{80}{rXmax=-40+1}{
+ \PLlinkage{-\rXmax}
+}
+\end{animateinline}
+\end{codeexample}
+Below is an animation of Kempe's trisector, as shown in \cite{Tmm3}.
+\begin{codeexample}[]
+\newcommand{\trisector}[1]{
+\begin{tikzpicture}[scale=0.33]
+\useasboundingbox (-27.3,-0.5) rectangle (21.2,37);
+\liftarm[coordinate=8/A]{0,0}{27}{180}
+\liftarm[coordinate=12/B]{0,0}{27}{180-(#1)}
+\liftarm[coordinate=18/C]{0,0}{27}{180-2*(#1)}
+\liftarm[coordinate=27/D]{0,0}{27}{180-3*(#1)}
+\liftarmconnect{C}{27}{D}{18}
+\liftarmconnect[liftarm 2={connect=8}]{A}{12}{B}{18}
+\end{tikzpicture}
+}
+\begin{animateinline}[autoplay,controls,loop]{5}
+\multiframe{20}{rXmax=0+1}{
+\trisector{15+\rXmax}
+}
+\newframe
+\multiframe{20}{rXmax=0+1}{
+\trisector{35-\rXmax}
+}
+\end{animateinline}
+\end{codeexample}
+Below is an animation of Chebyshev's Lambda Mechanism.
+\begin{codeexample}[width=10cm]
+\newcommand{\CL}[1]{
+\begin{tikzpicture}[scale=0.8]
+\def\r{1}
+\useasboundingbox (-2*\r-0.5,-2*\r-0.5)
+ rectangle (10*\r-0.5,10*\r+0.5);
+\liftarm{0,0}{4*\r}{0}
+\liftarm[
+ mark holes={0,2*\r}
+]{0,0}{2*\r}{#1}
+\liftarmconnect[
+ liftarm 1={mark holes={0,5*\r}},
+ liftarm 2={
+ connect=5*\r,
+ mark holes=10*\r,
+ mark color=Red
+ }
+]{4*\r,0}{5*\r}{#1:2*\r}{10*\r}
+\end{tikzpicture}
+}
+\begin{animateinline}[
+ autoplay,
+ controls,
+ loop
+]{60}
+\multiframe{360}{rXmax=0+1}{
+ \CL{\rXmax}
+}
+\end{animateinline}
+\end{codeexample}
+\begin{thebibliography}{9}
+\bibitem{Tmm1}
+Gerard 't Hooft,
+\emph{Meccano Math I},\\
+\url{https://webspace.science.uu.nl/~hooft101/lectures/meccano.pdf},
+2006.
+\bibitem{Tmm2}
+Gerard 't Hooft,
+\emph{Meccano Math II},\\
+\url{https://webspace.science.uu.nl/~hooft101/lectures/meccano2.pdf},
+2008.
+\bibitem{Tmm3}
+Gerard 't Hooft,
+\emph{Meccano Math III},\\
+\url{https://webspace.science.uu.nl/~hooft101/lectures/meccano3.pdf},
+2014.
+\bibitem{Koagmopermbl}
+Alfred Bray Kempe,
+\emph{On a general method of producing exact rectilinear motion by linkwork},
+1875.
+\bibitem{TtTaPGFp}
+Till Tantau,
+\emph{The \tikzname{} and {\upshape\pgfname} Packages},
+Manual for version 3.1.9a,
+\url{https://www.ctan.org/pkg/pgf},
+2021.
+\end{thebibliography}
+\printindex
+\end{document} \ No newline at end of file
diff --git a/info/kaytannollista-latexia/README.md b/info/kaytannollista-latexia/README.md
index db39cb7443..6bed2f4a8f 100644
--- a/info/kaytannollista-latexia/README.md
+++ b/info/kaytannollista-latexia/README.md
@@ -145,3 +145,5 @@ Puutteita ja suunnitelmia
- Mahdollisesti käsitellään wrapfig-paketti (myös wrapfig2).
- Uusi `fi-x-school`-tavutuskaava.
- Mittojen käsittelyn yhteydessä voisi käsitellä calc-paketin.
+ - Babelin versiossa 3.70 on ominaisuus, joka hoitaa automaattisesti
+ yhdysmerkin oikein tilanteessa "pakastekaapit ja -arkut".
diff --git a/info/kaytannollista-latexia/kaytannollista-latexia.pdf b/info/kaytannollista-latexia/kaytannollista-latexia.pdf
index 0c86917772..0cb69e28fe 100644
--- a/info/kaytannollista-latexia/kaytannollista-latexia.pdf
+++ b/info/kaytannollista-latexia/kaytannollista-latexia.pdf
Binary files differ
diff --git a/info/kaytannollista-latexia/kirjallisuutta.bib b/info/kaytannollista-latexia/kirjallisuutta.bib
index 192bc8cf33..1c1afe36f3 100644
--- a/info/kaytannollista-latexia/kirjallisuutta.bib
+++ b/info/kaytannollista-latexia/kirjallisuutta.bib
@@ -76,3 +76,13 @@
pages = {10-14},
url = {https://www.skrolli.fi/numerot/2015-3/}
}
+
+@book{kaijanaho,
+ author = {Kaijan\-aho, Antti-Juhani},
+ title = {Latex ja AMS-Latex},
+ subtitle = {Opus asiatekstin ladonnasta},
+ date = 1998,
+ publisher = {Jyväskylän yli\-opiston atk-keskus},
+ url = {http://urn.fi/URN:ISBN:978-951-39-7159-5},
+ langid = {finnish}
+}
diff --git a/info/kaytannollista-latexia/luku-asetukset.tex b/info/kaytannollista-latexia/luku-asetukset.tex
index 6f527aa79a..73e6ca0130 100644
--- a/info/kaytannollista-latexia/luku-asetukset.tex
+++ b/info/kaytannollista-latexia/luku-asetukset.tex
@@ -2312,10 +2312,9 @@ kaikki kolme kirjainperhettä kreikan kielelle:
\noindent
Kirjoittajan ei tarvitse itse käyttää edellä mainittuja komentoja kuten
-\komento{englishfont}, \komento{greekfont} jne. Riittää, että
-kirjoittaja käyttää vain kielenvaihtokomentoja, ja fontti vaihtuu
-samalla itsestään, jos vain kohdekielelle ja \=/kirjainperheelle on
-määritelty sopiva fonttikomento.
+\komento{englishfont}, \komento{greekfont} jne. Kirjoittaja käyttää vain
+kielenvaihtokomentoja, ja fonttikin vaihtuu samalla itsestään, jos vain
+kohdekielelle ja \=/kirjainperheelle on määritelty sopiva fonttikomento.
\subsection{Babel}
@@ -2479,24 +2478,19 @@ dokumentin pääasiallisen kielen tavutukseen.
\subsection{Yksittäisten sanojen tavutus}
\label{luku/tavutuksen-merkit}
-Tietyt sanassa mukana olevat merkit kytkevät muut tavutussäännöt pois
-päältä ja muuttavat sanan tavutuksen yksilölliseksi. Jos sanassa on
-mukana yksikin tavutusvihje (\komento{-}), yhdysmerkki (\koodi{\=/}),
+Tietyt sanassa mukana olevat merkit kytkevät tavalliset tavutussäännöt
+pois päältä. Jos sanassa on mukana yksikin yhdysmerkki (\koodi{\=/}),
lyhyt ajatusviiva (\mbox{\koodi{--}}) tai pitkä ajatusviiva
-(\mbox{\koodi{---}}), sana katkaistaan vain näiden kohdalta tai
-jälkeen.\footnote{Kielipaketti \paketti{polyglossia} ja Tex toimivat
- tekstissä kuvatulla tavalla. Sen sijaan \paketti{babel}\-/ paketti
- määrittelee ainakin suomen kielelle tavutusvihjeen (\komento{-})
- siten, että se sallii sanan tavutuksen muistakin kohdista kuin
- tavutusvihjeen kohdalta. Tavutusvihjeen molemmin puolin sanan osat
- tavutetaan yleisten sääntöjen mukaisesti, ellei tavutuksen estäviä
- merkkejä kuten yhdysmerkkejä tai ajatusviivoja ole.}
-
-Myös Unicoden ajatusviivamerkit \uctunnus{u+2013 en dash} ja
-\uctunnus{u+2014 em dash} toimivat, mutta ne ovat käyttäytyneet
-tavutuksen kannalta eri tavalla Lualatex\-/\ ja Xelatex\-/ kääntäjillä.
-Yhteensopivuussyistä kannattanee välttää Unicoden ajatusviivoja Latex\-/
-lähdetiedostossa.
+(\mbox{\koodi{---}}), sana katkaistaan vain näiden merkkien jälkeen, eli
+muut tavutuskohdat kytketään pois käytöstä.
+
+Myös tavutusvihje (\komento{-}) käyttäytyy yleensä samoin: jos sanassa
+on mukana yksikin tavutusvihje, tavalliset tavutuskohdat kytkeytyvät
+pois käytöstä, ja sana katkaistaan vain tavutusvihjeiden kohdalta sekä
+edellä mainittujen viivavälimerkkien jälkeen. Kielipaketti
+\paketti{babel} käyttäytyy kuitenkin suomen kielessä eri tavoin. Se
+määrittelee suomen kielelle tavutusvihjeen siten, että se sallii sanan
+tavutuksen muistakin kohdista kuin tavutusvihjeen kohdalta.
\leijutlk{
\begin{tabular}{lll}
@@ -2505,35 +2499,54 @@ lähdetiedostossa.
& \ots{Tavutus}
& \ots{Merkitys} \\
\midrule
+
\koodi{matkustaa}
& mat\tavukohta kus\tavukohta taa
& tavutus kaikista kohdista \\
+
\koodi{matkus\komento{-}taa}
& matkus\tavukohta taa
& vain tavutusvihjeen kohdalta \\
+
+ \koodi{matkus\komento{-}taa}
+ & mat\tavukohta kus\tavukohta taa
+ & (\paketti{babel} ja suomen kieli) \\
+
\koodi{matka-aika}
& matka-\tavukohta aika
& vain yhdysmerkin jälkeen \\
+
\koodi{matka-ai\komento{-}ka}
& matka-\tavukohta ai\tavukohta ka
& vain yhdysmerkki ja tavutusvihje \\
+
\koodi{Oulu--Rovaniemi}
& Oulu--\tavukohta Rovaniemi
& vain ajatusviivan jälkeen \\
+
\koodi{Oulu--Rova\komento{-}niemi}
& Oulu--\tavukohta Rova\tavukohta niemi
& vain ajatusviiva ja tavutusvihje \\
+
+ \koodi{Oulu--Rova\komento{-}niemi}
+ & Oulu--\tavukohta Rova\tavukohta nie\tavukohta mi
+ & (\paketti{babel} ja suomen kieli) \\
+
\koodi{matka-}
& matka-
& ei tavutuskohtia \\
+
\koodi{-aika}
& -\tavukohta aika
& vain yhdysmerkin jälkeen \\
+
\bottomrule
\end{tabular}
}{
\caption{Tavutusvihjeen, yhdysmerkin ja ajatusviivan vaikutus
- tavutukseen}
+ tavutukseen. \paketti{babel}\-/ kielipaketin tavutusvihje
+ (\komento{-}) ei suomen kielessä estä sanan tavutusta muista
+ kohdista}
\label{tlk/tex-tavutus}
}
@@ -2555,9 +2568,9 @@ seuraavassa alaluvussa.
\subsection{Tavutuksen sallivia ja sitovia merkkejä}
\label{luku/tavutus-sallivat-sitovat}
-Unicode\-/merkistön sitova yhdysmerkki \uctunnus{u+2011 non\-/breaking
+Unicode\-/merkistön sitova yhdysmerkki \uctunnus{u+2011 non\-/ breaking
hyphen} näkyy tavallisena yhdysmerkkinä, mutta se estää sanan
-katkaisemisen yhdysmerkin vierestä. \uctunnus{u+2011}\-/merkkiä voi siis
+katkaisemisen yhdysmerkin vierestä. \uctunnus{u+2011}\-/merkkiä voi
käyttää, mutta se ei ole aina toiminut luotettavasti eikä
yhdenmukaisesti eri kääntäjissä. Yhteensopivuussyistä voi olla järkevää
käyttää muita vaihtoehtoja sitovalle yhdysmerkille.
@@ -2761,9 +2774,8 @@ mitään merkkiä tavujen väliin.
\komento{discretionary}\-/komennolla voi luoda myös tavutuskohtia,
joihin ei ilmesty yhdysmerkkiä eikä mitään muutakaan merkkiä
katkaisutilanteessa. Tämä vastaa kielipakettien tavutusvihjettä
-\koodi{\textquotedbl\textquotedbl} (luku \ref{luku/tavutus-muut}).
-\komento{discretionary}\-/ komennolla sama toteutetaan jättämällä kaikki
-argumentit tyhjäksi:
+\koodi{\textquotedbl\textquotedbl}. \komento{discretionary}\-/
+komennolla sama toteutetaan jättämällä kaikki argumentit tyhjäksi:
\komentoi{discretionary}
\begin{koodilohkosis}
@@ -2786,23 +2798,22 @@ tavutuskohdan saa myös seuraavalla tavalla:
\noindent
Tavutuksen suunnittelussa ja tutkimisessa voi auttaa
-\pakettictan{showhyphens}\-/ paketti, jonka lataamalla kaikki
-tavutuskohdat tulevat näkyviin. Dokumentin kaikkien sanojen
-tavutuskohtiin piirretään ohut punainen pystyviiva. Tämä paketti
-hyödyntää Lualatex\-/kääntäjän ominaisuuksia, eikä se siis toimi muiden
-kääntäjien kanssa.
+\pakettictan{showhyphens}\-/ paketti. Kun paketti on ladattuna, kaikkien
+sanojen mahdollisiin tavutuskohtiin ladotaan ohut punainen pystyviiva.
+Paketti hyödyntää Lualatex\-/ kääntäjän ominaisuuksia, eikä se siis
+toimi muiden kääntäjien kanssa.
\subsection{Suomen kielen tavutus}
-Texin kirjainyhdistelmiin perustuvat tavutussäännöt eivät yksinään riitä
-suomen kieleen, ja esimerkiksi yhdyssanojen rajakohdat tuottavat usein
-ongelmia. Sana \emph{alku\-osa} katkaistaan Latexissa kohdista
-\emph{al-kuo-sa}. Se on kyllä oikein tavurakenteen kannalta mutta
-käytännössä ongelmallinen. Tässä ei ole kyse \emph{uo}\-/ diftongista
-eli samaan tavuun kuuluvista vokaaleista, vaan yhdyssanan rajalla on
-myös tavutuskohta (\emph{al-ku-o\=/sa}). Lisäksi sanaa ei saisi
-katkaista siten, että siitä jää yksittäinen kirjain eri riville (ei:
-\emph{o\=/sa}).
+Texin kirjainyhdistelmiin perustuvat tavutussäännöt eivät yksinään ole
+tarpeeksi älykkäitä suomen kieleen, ja esimerkiksi yhdyssanojen
+rajakohdat tuottavat usein ongelmia. Sana \emph{alku\-osa} katkaistaan
+Latexissa kohdista \emph{al-kuo-sa}. Se on kyllä oikein tavurakenteen
+kannalta mutta käytännössä ongelmallinen. Tässä ei ole kyse \emph{uo}\-/
+diftongista eli samaan tavuun kuuluvista vokaaleista, vaan yhdyssanan
+rajalla on myös tavutuskohta (\emph{al-ku-o\=/sa}). Lisäksi sanaa ei
+saisi katkaista siten, että siitä jää yksittäinen kirjain eri riville
+(ei: \emph{o\=/sa}).
Parasta olisi katkaista suomen kielen yhdyssanat vain yhdysosien välistä
(\emph{alku-osa}). Muualtakin voi katkaista (\emph{al-ku-osa}), kunhan
@@ -2832,12 +2843,11 @@ lisäämistä Texillä ei ehkä ole riittävästi vaihtoehtoja tekstikappaleen
rivittämiseen. Voi syntyä liian suuria sanavälejä, tai joistakin
riveistä tulee ylipitkiä, eli ne yltävät marginaalin puolelle.
-Tavutuskohtia voi lisätä sopiviin kohtiin tavutusvihjeillä
-(\komento{-}). Vaihtoehtoisesti kaikki yleisten tavutussääntöjen
-mukaiset tavutuskohdat saa käyttöön \paketti{extdash}\-/ paketin
-välimerkkikomennoilla (taulukko \ref{tlk/extdash}). Seuraavassa
-esimerkissä on tavutuksen hallintaa sanalle
-\emph{Molo\-tov--Ribben\-trop-sopi\-mus}:
+Tavutuskohtia voi lisätä sopiviin kohtiin tavutusvihjeillä.
+Vaihtoehtoisesti kaikki yleisten tavutussääntöjen mukaiset tavutuskohdat
+saa käyttöön \paketti{extdash}\-/ paketin välimerkkikomennoilla
+(taulukko \ref{tlk/extdash}). Seuraavassa esimerkissä on tavutuksen
+hallintaa sanalle \emph{Molo\-tov--Ribben\-trop-sopi\-mus}:
\komentoi{-}
\komentoi{--}
diff --git a/info/kaytannollista-latexia/luku-merkintakieli.tex b/info/kaytannollista-latexia/luku-merkintakieli.tex
index 55e4c1d83a..71ffe4fe5c 100644
--- a/info/kaytannollista-latexia/luku-merkintakieli.tex
+++ b/info/kaytannollista-latexia/luku-merkintakieli.tex
@@ -408,10 +408,10 @@ Oulu--Rovaniemi-yhteys
\noindent
Myös Unicoden ajatusviivamerkit \uctunnus{u+2013 en dash} ja
-\uctunnus{u+2014 em dash} toimivat, mutta tavutuksen kannalta ne
-käyttäytyvät eri tavoin Lualatex\-/\ ja Xelatex\-/kääntäjillä.
+\uctunnus{u+2014 em dash} toimivat, mutta tavutuksen kannalta ne ovat
+käyttäytyneet eri tavoin Lualatex\-/\ ja Xelatex\-/ kääntäjillä.
Yhteensopivuussyistä on parasta tehdä ajatusviivat Latexin omilla
-merkintätavoilla eikä Unicode\-/merkeillä.
+merkintätavoilla eikä Unicode\-/ merkeillä.
Silloin kun todella täytyy latoa kaksi tai kolme peräkkäistä
yhdysmerkkiä, voi käyttää tasalevyistä fonttia
diff --git a/info/kaytannollista-latexia/versio.tex b/info/kaytannollista-latexia/versio.tex
index 45fd5ee813..a17e413dc3 100644
--- a/info/kaytannollista-latexia/versio.tex
+++ b/info/kaytannollista-latexia/versio.tex
@@ -1 +1 @@
-\newcommand{\versio}{2022}
+\newcommand{\versio}{2022.3}
diff --git a/info/startlatex2e/README b/info/startlatex2e/README
deleted file mode 100644
index 4a7c3843a2..0000000000
--- a/info/startlatex2e/README
+++ /dev/null
@@ -1,35 +0,0 @@
-README
-
-File Name: StartLaTeX2e.tex
-Title: Getting Started with LaTeX2e
-Author: Michael P. Morris
-
-
-Description:
-
-‘Getting Stated with LaTeX2e’ is a short document aimed at helping complete novices with LaTeX create a document, format the text, then compile it into postscript or pdf format. It contains information on writing the preamble, formatting the text, creating tables and inserting figures.
-
-I am interested in receiving any corrections or suggestions for improvements. They can be sent to the author at mmorris-500@hotmail.com.
-Finally, thank you for considering my short guide. I hope you find it helpful.
-
-
-License
-
-StartLaTeX2e.tex
-Copyright 2020 M. P. Morris
-
-This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
-of this license or (at your option) any later version.
-The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
-
-This work has the LPPL maintenance status “author-maintained”.
-
-The Current Maintainer of this work is M. P. Morris.
-
-This work consists of the files StartLaTeX2e.tex
-and the derived files StartLaTeX2e.dvi, StartLaTex2e.ps and StartLaTeX2e.pdf.
-
diff --git a/info/startlatex2e/StartLaTeX2e.pdf b/info/startlatex2e/StartLaTeX2e.pdf
deleted file mode 100644
index 878d98ef16..0000000000
--- a/info/startlatex2e/StartLaTeX2e.pdf
+++ /dev/null
Binary files differ
diff --git a/info/startlatex2e/StartLaTeX2e.tex b/info/startlatex2e/StartLaTeX2e.tex
deleted file mode 100644
index 846e19b7d8..0000000000
--- a/info/startlatex2e/StartLaTeX2e.tex
+++ /dev/null
@@ -1,1554 +0,0 @@
-%% StartLaTeX2e.tex
-%% Copyright 2020 M. P. Morris
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status “author-maintained”.
-%
-% The Current Maintainer of this work is M. P. Morris.
-%
-% This work consists of the files StartLaTeX2e.tex
-% and the derived files StartLaTeX2e.dvi, StartLaTex2e.ps and StartLaTeX2e.pdf.
-
-\documentclass[a4paper]{article}
-\usepackage[utf8]{inputenc}
-\usepackage[UKenglish]{babel}
-\usepackage[useregional, showdow]{datetime2}
-\usepackage[dvips]{graphicx, color}
-%\usepackage{lmodern}
-\usepackage{pifont}
-\usepackage{textcomp}
-\usepackage[TS1,T1]{fontenc}
-\usepackage{hyphenat}
-\usepackage{fancyvrb}
-\usepackage{array}
-%\usepackage[left=1in, top=1in, bottom=1.25in, right=1in]{geometry}
-\usepackage[title]{appendix}
-
-%opening
-\title{Getting Started \\ with \\ \LaTeXe}
-
-\author{Michael P. Morris \footnote { \textcopyright Michael P. Morris, 2020. The distribution and modification of this file is constrained by the conditions of LaTeX Project Public License version 1.3. This work is author maintained. Any error reports for this work can be sent to the author at \texttt{mmorris-500@hotmail.com}.} \\
- \texttt{{\footnotesize mmorris-500@hotmail.com}}}
-
-\date{Wednesday 30 September 2020}
-
-\begin{document}
-
-\maketitle
-
-% \thispagestyle{empty}
-
-% \clearpage
-
-% \pagenumbering{roman}
-
-\tableofcontents
-
-\clearpage
-
-\listoffigures
-
-\clearpage
-
-\listoftables
-
-\clearpage
-
-%\pagenumbering{arabic}
-
-\section{Introduction}
-
-LaTeX (pronounced \emph{lah-tek}) is a markup language designed to produce high quality documents. It was created by Donald Knuth who generously released it into the public domain and is freely available from the Comprehensive TeX Archive Network (\textsc{ctan}) at\texttt{ http://www.ctan.org}. Since it’s release it has been greatly added to and there are currently over 5800 add-on packages available. The most recent version is \LaTeXe and LaTeX 3 is under development.
-
-This document grew from my own efforts to become a proficient LaTeX user. It is not a comprehensive guide to using LaTeX. It is aimed at giving an overview of the elements of how to program a document and then compile it into either postscript or \textsc{pdf} format in English. It is a very bare bones outline of LaTeX and only touches on the possibilities. The best source of information is the package documentation. This is available from \textsc{ctan}. There are also a number of published guides and the reference list contains several useful references. A more comprehensive list of these, and a helpful list of texts on typography is also available from \textsc{ctan}.
-
-This document focuses on the Windows 10 operating system. Users of unix-alike or Mac systems should consult their OS documentation for issues that are specific to them. There are a large number of packages and some of them overlap in functionality. There are multiple options for citation systems, for document templates and for fonts. The recommendations made in this document reflect my own experiences and prejudices.
-
-I am very interested in hearing about errors and suggestions for improvements, especially code that doesn't function as advertised. These can be sent to the author at \texttt{mmorris-500@hotmail.com}.
-
-Finally, I'd like to mention The TeX Users Group, of which I am a member. This is a not-for-profit group for those interested in LaTeX. Membership is inexpensive and members are sent TUGboat, the Journal of the Tex Users Group, three times a year, and the TeX Collection on \textsc{dvd} annually. This is a good way of keeping up with developments and also with changes to TeX distributions.
-
-
-
-
-\clearpage
-
-
-\section{LaTeX Conventions}
-
-\subsection{Distributions}
-
-There are three main LaTeX systems available from \textsc{ctan}:
-
-\begin{itemize}
-\item TeXLive is cross platform and will install on \textsc{unix}-alike, Mac and Windows systems.
-
-\item MacTeX is aimed at Mac OS users.
-
-\item ProTeX is aimed at Windows users.
-\end{itemize}
-
-\subsection{Commands}
-
-
-
-Commands in LaTeX begin with a \texttt{\textbackslash}. There are two main types: one is for loading packages and specifying options in the preamble, and the other is for formatting text. Packages are loaded with the package name inside the \texttt{\{\}} and options specified inside \texttt{[]}.
-
-\begin{verbatim}
-\[Option1, Option2]{PackageName}
-\end{verbatim}
-
-If there are multiple options, they are separated with commas. Text is formatted with
-
-\begin{verbatim}
-\Command{Text}
-\end{verbatim}
-
-with the text to be formatted placed inside the \texttt{\{\}}. This sometimes causes an error with all the text following a command being formatted in this way. An alternative is
-
-\begin{verbatim}
-{\Command Text}
-\end{verbatim}
-
-
-It is always a good idea to annotate your code. Annotations can be added to LaTeX code by starting comment lines with a \texttt{\%}. This will stop LaTeX from running it and returning an error message:
-
-\begin{verbatim}
-% This is a comment.
-\end{verbatim}
-
-
-\subsection{Environments}
-
-Environments are used in the body of the document to define a particular behaviour. These range from abstracts, tables and figures, lists and sections of text with differing text justification. LaTeX environments are enclosed with \texttt{\textbackslash begin\{ \}} and \texttt{\textbackslash end\{ \}} A short list of environments are in Table 1:
-
-\begin{verbatim}
-\begin{Environment}
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est
-purus, ultrices in porttitor in, accumsan non quam. Nam consectetur
-porttitor rhoncus.
-\end{environment}
-\end{verbatim}
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{ll}
- \hline
- Environment & Description\\
- \hline
- abstract & Text of a document’s abstract. \\
- centre & Centred text. \\
- flushleft & Left aligned text. \\
- flushright & Right aligned text. \\
- description & Labelled lists. \\
- enumerate & Numbered lists. \\
- itemize & Bulleted lists. \\
- quotation & Include quotes. \\
- verbatim & Text in typewriter font that that will appear exactly as typed. \\
- table & Floating tables. \\
- figure & Floating figures. \\
- \hline
- \end{tabular}
- \caption{Options for environment}
- \end{center}
-\end{table}
-
-
-The verbatim environment prints the entered text in a typewriter font with no formatting. If the text isn't broken with a <return>, it produces text in one long line. The first 100 digits of pi may appear on your editor as
-
-\begin{flushleft}
-\texttt{\textbackslash begin\{verbatim\}}
-\begin{verbatim}
-The first 100 digits of pi:
-3.14159265358979323846264338327950288419716939937510582097494459
-23078164062862089986280348253421170679
-\end{verbatim}
-\texttt{\textbackslash end\{verbatim\}}
-\end{flushleft}
-
-but when the document is compiled, it produces
-
-\begin{verbatim}
-The first 100 digits of pi:
-3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
-\end{verbatim}
-
-This can be fixed by breaking the text into lengths that don't cross into the margins. The location of the breaks are best estimated after the document is compiled. I this number is broken into 25 digit sections
-
-\begin{flushleft}
-\texttt{\textbackslash begin\{verbatim\}}
-\begin{verbatim}
-The first 100 digits of pi:
-3.141592653589793238462643 <return>
-38327950288419716939937510 <return>
-58209749445923078164062862 <return>
-089986280348253421170679
-\end{verbatim}
-\texttt{\textbackslash end\{verbatim\}}
-\end{flushleft}
-
-it produces
-
-\begin{verbatim}
-The first 100 digits of pi:
-3.141592653589793238462643
-38327950288419716939937510
-58209749445923078164062862
-089986280348253421170679
-\end{verbatim}
-
-
-
-
-\subsection{Project Management}
-
-The first step in creating a document with LaTeX is to write the text of the required document and save it as a plain text file into a directory created specifically for that project. This text file is marked up so that when it is compiled it becomes a formatted postscript or \textsc{pdf} document. When it is compiled, LaTeX will produce several other files and this directory will keep all of them together. This directory should also contain any graphic and bibliographical files so that LaTeX can find them.
-
-The task of programming a LaTeX document is made simpler by using an editor. There are quite a few of these: TeXstudio, TeXworks and TeXmaker are freely available and run on Windows, \textsc{unix}-alike and Mac OS systems. Jabref is a freely available reference management program that can help with organising citations.
-
-\subsubsection{Postscript vs \textsc{pdf}}
-
-One of the first options to consider is if the document is to be produced in postscript or \textsc{pdf} format. Both LaTeX and PDFLaTeX will produce postscript, and PDFLaTeX is designed to produce \textsc{pdf} documents. Postscript is the `gold standard’ for printed documents and produces the highest quality files for printing. \textsc{pdf} documents can include hypertext links and live connections to websites, and PDFLaTeX will produce documents that conform to the \textsc{pdf/a} standard with pdfx. This is an \textsc{iso} standard version of \textsc{pdf} and is for archivable electronic documents. \textsc{pdf} files can be produced from postscript files with Ghostscript, but they will be plain text only. Postscript files can be viewed with GSView and pdf files can be viewed by any of the many freely available viewers.
-
-
-
-
-\subsection{Running LaTeX}
-
-When the document is marked up, it is compiled. This can be done either through an editor or manually from the command line. For the command line option to work on Windows, LaTeX and PDFLaTeX must be in the Windows search path. To do this, go to the Control Panel:
-
-Control Panel $\rightarrow$ System and Security $\rightarrow$ System $\rightarrow$ Advanced System Settings $\rightarrow$ Environmental Variables $\rightarrow$ Path in the User Variables box $\rightarrow$ Edit.
-
-Then navigate to the directory containing the binary files and add it to the path. If it is a ProTeX distribution on windows 10 they are in:
-
-\begin{verbatim}
-C:\Program Files\MikTeX2.9\miktex\bin\x64
-\end{verbatim}
-
-For other systems, consult the documentation.
-
-
-LaTeX is run from the command line by navigating to the project folder and then run on the marked up text file. To run it on a file named TestFile.txt:
-
-\begin{verbatim}
-latex TestFile.tex
-\end{verbatim}
-
-This produces a DVI file that can be converted to postscript with dvips. If PDF format is preferred
-
-\begin{verbatim}
-pdflatex TestFile.tex
-\end{verbatim}
-
-produces a file in this format with no intermediate step.
-
-It is more convenient to run this from a \textsc{gui} interface. In TeX Studio, load a marked up text file, then go to Tools $\rightarrow$ Commands $\rightarrow$ LaTeX or PDFLaTeX and it will run automatically.
-
-
-
-
-\subsection{LaTeX Output}
-
-LaTeX must be compiled to produce a readable document. For postscript output, there are two steps.
-
-Step 1: Produce a DVI file.
-
-The first step in compiling a LaTeX document is to produce a \textsc{dvi} file. This can be done either through the command line or an editor with a \textsc{gui} interface. If the file contains a title page, Table of Contents, lists of tables and figures and a bibliography, LaTeX will have to be run multiple times to format them correctly. Biber is also required if the citations are managed with BibLaTeX. To compile TestFile.txt:
-
-
-\begin{verbatim}
-latex TestFile.tex
-biber TestFile.tex
-latex TestFile.tex
-latex TestFile.tex
-\end{verbatim}
-
-This creates a .dvi file named TestFile.dvi.
-
-Step 2: Produce a postscript file.
-
-The next step is to convert the \textsc{dvi} file to a postscript file with dvips. The resulting postscript file can be viewed with GSView.
-
-\begin{verbatim}
-dvips TestFile.dvi
-\end{verbatim}
-
-converts the TestFile from .dvi to .ps format.
-
-If \textsc{pdf} is required, it can be generated with no intermediate step with PDFLaTeX. This can create a document with hyperlinks, and in \textsc{pdf/a} format.
-
-\begin{verbatim}
-pdflatex TestFile.tex
-\end{verbatim}
-
-
-\clearpage
-
-
-
-
-
-\section{Preamble}
-
-
-Each LaTeX document has a preamble which contains instructions regarding document type, page size and other options that will affect it as a whole. It is the first part of any document and goes before the body of the text.
-
-The first line of the preamble is
-
-\begin{verbatim}
-\documentclass[Options]{DocumentType}
-\end{verbatim}
-
-This specifies the type of document to be produced. The base options are article, book, letter or report. After this is selected, options define the size of the font for the document, paper size, number of columns and whether it is to be printed on one side of the page or two.
-
-The main default options are: a 10pt font size, a paper size of 8.5 x 11", which is the US standard letter size, portrait orientation, a separate title page for the report class but not the others, typesetting in one column, and printing on one side of the page only.
-
-All these can be customised with the following:
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{ll}
- \hline
- Option & Command \\
- \hline
- Document Type & \texttt{letter, article, report, book} \\
- Typeface Size (pts) & \texttt{10, 11, 12} \\
- Title Page & \texttt{titlepage, notitlepage} \\
- Columns & \texttt{onecolumn, twocolumn} \\
- Layout & \texttt{oneside, twoside} \\
- \hline
- \end{tabular}
- \caption{LaTeX document options.}
- \end{center}
-\end{table}
-
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{lll}
- \hline
- Size & Measurement(mm) & Command \\
- \hline
- A4 & 210 x 297 & \texttt{a4paper} \\
- A5 & 148 x 210 & \texttt{a5paper} \\
- B5 & 176 x 250 & \texttt{b5paper} \\
- Executive & 185 x 267 & \texttt{executivepaper} \\
- Legal & 216 x 356 & \texttt{legalpaper} \\
- Letter & 216 x 279 & \texttt{letterpaper} \\
-
- \hline
- \end{tabular}
- \caption{LaTeX paper sizes.}
- \end{center}
-\end{table}
-
-
-This creates an article class document with A4 sized paper and a 12 point font. The other options will stay at their default settings:
-
-\begin{verbatim}
-\documentclass[12pt, a4paper]{article}
-\end{verbatim}
-
-After the document type is defined, packages that will be used in the document are loaded with
-
-\begin{verbatim}
-\usepackage[Options]{PackageName}
-\end{verbatim}
-
-These commands load fonts, define page layout and numbering, headers and footers and the option to add dates etc. The first package is babel. This package supports hyphenation. It supports about 200 languages, including three dialects of English: \texttt{english} refers to American and Canadian, \texttt{UKenglish} refers to British, and \texttt{australian} refers to Australian and New Zealand English. If the document contains text in multiple languages, they can all be loaded here. The language listed last is the document’s main language:
-
-\begin{verbatim}
-\usepackage[french, german, australian]{babel}
-\end{verbatim}
-
-This loads French, German and Australian English with Australian being the document's main language. To swap to one of the other languages in the text, use \texttt{\textbackslash selectlanguage\{LanguageName\}} for blocks of text such as paragraphs, and \texttt{\textbackslash foreignlanguage\{LanguageName\}\{Text\}} for text that is part of a paragraph.
-
-\begin{verbatim}
-\selectlanguage(french)
-French language text.
-\selectlanguage(australian)
-Returns to Australian English.
-\end{verbatim}
-
-or
-
-\begin{verbatim}
-\foreignlanguage{french}{French language text.}
-\end{verbatim}
-
-will hyphenate the French text.
-
-
-Dates can be added with datetime2. This package is loaded in the preamble with
-
-\begin{verbatim}
-\usepackage{datetime2}
-\end{verbatim}
-
-and the date itself inserted in the text with
-
-\begin{verbatim}
-\today
-\end{verbatim}
-
-This will add the date the document was compiled in \textsc{yyyy-mm-dd} format so it will look like 2020-09-19. The format can be changed with the [useregional] option. This will set the date format so that it matches language specified when Babel was loaded. The following code is Australian and will format the timestamp to \textsc{dd mm yyyy}. To add the day of the week, add \texttt{showdow}:
-
-\begin{verbatim}
-\usepackage[useregional, showdow]{datetime2}
-\end{verbatim}
-
-
-
-
-
-Fontenc gives access to the glyphs of languages. The default option is OT1. This gives access to 128 glyphs, but doesn’t allow hyphenation of accented characters that appear in other European languages. If the document is in English this doesn’t matter, but if the document contains glyphs from other Western European languages, the encoding should be changed to T1. This encoding contains 256 glyphs. Coding TS1 can also be loaded to give access to text symbols. To load both of these:
-
-\begin{verbatim}
-\usepackage[TS1, T1]{fontenc}
-\end{verbatim}
-
-
-
-\begin{verbatim}
-\usepackage{lmodern}
-\end{verbatim}
-
-This loads the font for the document, in this case Latin Modern. The default font is Computer Modern and is LaTeX’s original font. This contains 128 glyphs which is fine for documents in English. Latin Modern is an expanded version of this and has many more characters and can cater for non-English European languages that use Latin characters. Table 4 contains a short list of fonts and package names. A comprehensive list of fonts can be found at The LaTeX Font Catalogue at \texttt{www.tug.org}.
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{lll}
- \hline
-Font Name & Package Name & Sample Text \\
-\hline
-Avant Garde & \texttt{avant} & \fontfamily{pag}\selectfont ipsum dolor sit amet \\
-Bookman & \texttt{bookman} & \fontfamily{pbk}\selectfont ipsum dolor sit amet \\
-Charter & \texttt{charter} & \fontfamily{bch}\selectfont ipsum dolor sit amet \\
-Computer Modern & \texttt{cmodern} & \fontfamily{cmr}\selectfont ipsum dolor sit amet \\
-Helvetica & \texttt{helvet} & \fontfamily{phv}\selectfont ipsum dolor sit amet \\
-Latin Modern & \texttt{lmodern} & \fontfamily{lmr}\selectfont ipsum dolor sit amet \\
-New Century Schoolbook & \texttt{newcent} & \fontfamily{pnc}\selectfont ipsum dolor sit amet \\
-Palatino & \texttt{mathpazo} & \fontfamily{ppl}\selectfont ipsum dolor sit amet \\
-Times New Roman & \texttt{mathptmx} & \fontfamily{ptm}\selectfont ipsum dolor sit amet \\
-\hline
- \end{tabular}
- \caption{Some of LaTeX's fonts.}
- \end{center}
-\end{table}
-
-
-Textcomp gives access to more symbols. It is loaded with
-
-\begin{verbatim}
-\usepackage{textcomp}
-\end{verbatim}
-
-
-
-\begin{verbatim}
-\usepackage[Options]{geometry}
-\end{verbatim}
-
-Margins can be adjusted from the defaults with the geometry package. The left, right, top and bottom margins can all be specified with this, and an allowance made for binding if the document is to be bound. It accepts units in millimetres, centimetres, points and inches (mm, cm, pt, in). The options are:
-
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{ll}
- \hline
- Option & Comment \\
- \hline
- \texttt{left} & Left Margin \\
- \texttt{right} & Right Margin \\
- \texttt{top} & Top Margin \\
- \texttt{bottom} & Bottom Margin \\
- \texttt{bindingoffset} & Add space for binding \\
- \texttt{headheight} & Changes the size of the header \\
- \hline
- \end{tabular}
- \caption{Options for package Geometry.}
- \end{center}
-\end{table}
-
-
-If headers and footers are used in the document, LaTeX may return an error message to say that the headheight is too small. This can be modified with the \texttt{\textbackslash headheight} command. The header is designed to hold a single line of text, but can be adjusted to accommodate multiple lines. The following code sets the left margin at 1.5 inches, the right margin at 1 inch, the top margin at 1 inch, the bottom margin at 1.75 inches and the height for the header to 18 point:
-
-\begin{verbatim}
-\usepackage[left=1.5in, right=1.0in, top=1.0in, bottom=1.75in,
-headheight=18pt]{geometry}
-\end{verbatim}
-
-These options can be changed mid-document with \texttt{\textbackslash newgeometry\{\}} which specifies the new margins. This reverts back to the original settings with\texttt{ \textbackslash restore\{geometry\}}. This can be done at any point in the document. The \texttt{\textbackslash newgeometry\{\}} command has the same options as those used by geometry in the preamble:
-
-\begin{verbatim}
-\newgeometry{left=0.5in, right=0.5in, top=0.5in, bottom=0.5in}
-\end{verbatim}
-
-This changes the margins to a uniform 0.5 inches all around.
-
-
-Plain LaTeX has limited facilities for headers and footers so these are best handled by fancyhdr. This package provides header and footer placement to the left, centre and right and customizable lines for both headers and footers. This package is loaded in the preamble with
-
-\begin{verbatim}
-\usepackage{fancyhdr}
-\pagestyle{fancy}
-\end{verbatim}
-
-There are six locations available: left, centre and right headers and footers. The location and contents of each header or footer is specified as:
-
-
-\begin{verbatim}
-\lhead{\today}
-\chead{Top Centre}
-\rhead{\thepage}
-\lfoot{Bottom Left}
-\cfoot{Bottom Centre}
-\rfoot{Bottom Right}
-\end{verbatim}
-
-The text of the header or footer is contained between the \{\}. These can contain page numbers and dates generated using \texttt{\textbackslash thepage} and \texttt{\textbackslash today} respectively. Decorative lines can be added to both headers and footers with
-
-\begin{verbatim}
-\renewcommand{headrulewidth}{0.5pt}
-\renewcommand{footrulewidth}{0.5pt}
-\end{verbatim}
-
-This will place a line that is 0.5 points wide beneath the header and above the footer. Line weights can be increased and decreased. For no lines, specify the line weight as 0.0pt.
-
-The following code loads fancyhdr and places a running header or title top left, page numbers top right and todays date stamp bottom left and lines 0.5 points thick below the footer and above the header:
-
-\begin{verbatim}
-\usepackage{fancyhdr}
-\pagestyle{fancy}
-\lhead{Running Header or Title.}
-\chead{}
-\rhead{\thepage}
-\lfoot{\today}
-\cfoot{}
-\rfoot{}
-\renewcommand{\headrulewidth}{0.5pt}
-\renewcommand{\footrulewidth}{0.5pt}
-\end{verbatim}
-
-
-\clearpage
-
-
-
-\section{Text}
-
-The body of the text for LaTeX documents is enclosed in the document environment:
-
-\begin{verbatim}
-\begin{document}
-\end{verbatim}
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus, ultrices in porttitor in, accumsan non quam. Nam consectetur porttitor rhoncus.
-
-\begin{verbatim}
-\end{document}
-\end{verbatim}
-
-
-A blank line between two sections of text, or \texttt{\textbackslash par}, denotes a paragraph break and \texttt{\textbackslash \textbackslash} starts a new line. To insert a page break, \texttt{\textbackslash newpage} or \texttt{\textbackslash clearpage} commands are used. \texttt{\textbackslash clearpage} is preferred if the document contains chapters or sections with floating tables or figures. This will place any remaining floats and add pages to fit them in at the end of the section if LaTeX is unable to place them in the text.
-
-
-\subsection{Fonts}
-
-The base font and size for LaTeX documents is loaded in the preamble. Fonts and font styles can be changed in the body of the text. These can be changed in two ways. The first is to insert the text in curly braces following a command.
-
- \begin{verbatim}
- \textit{Lorem ipsum dolor sit amet . . . }
- \end{verbatim}
-
- formats the text in the curly braces as
- \bigskip
- \textit{Lorem ipsum dolor sit amet . . . }
- \bigskip
-
- This is useful if there are single words or sentances, but for blocks of text, an environment is convenient:
-
-
- \begin{verbatim}
-\begin{itshape}
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla
-est purus, ultrices in porttitor in, accumsan non quam. Nam
-consectetur porttitor rhoncus. Curabitur eu est et leo feugiat
-auctor vel quis lorem.
-\end{itshape}
- \end{verbatim}
-
- produces
-
- \bigskip
-
- \begin{itshape}
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus, ultrices in porttitor in, accumsan non quam. Nam consectetur porttitor rhoncus. Curabitur eu est et leo feugiat auctor vel quis lorem.
- \end{itshape}
-\bigskip
-
-Table 6 gives font styles and their commands. Fonts can be made larger or smaller from {\tiny tiny} to {\Huge Huge} in a similar way. Table 7 gives commands for resizing fonts.
-
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{lll}
- \hline
-Style & Command & Sample \\
-\hline
-Roman & \texttt{\textbackslash textrm\{\}} & \textrm{Roman} \\
-Sans Serif & \texttt{\textbackslash textsf\{\}} & \textsf{Sans Serif} \\
-Typewriter & \texttt{\textbackslash texttt\{\}} & \texttt{Typewriter} \\
-Italics & \texttt{\textbackslash textit\{\}} & \textit{Italics} \\
-Boldface & \texttt{\textbackslash textbf\{\}} & \textbf{Boldface} \\
-Small Caps & \texttt{\textbackslash textsc\{\}} & \textsc{Small Caps} \\
-Underline & \texttt{\textbackslash underline\{\}} & \underline{Underline} \\
-Emphasis & \texttt{\textbackslash emph\{\}} & \emph{Emphasis} \\
-Slanted & \texttt{\textbackslash textsl\{\}} & \textsl{Slanted} \\
-\hline
- \end{tabular}
- \caption{Text styles. }
- \end{center}
-\end{table}
-
-
-
-
-
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{lc}
- \hline
- Command & Sample \\
- \hline
- \texttt{\textbackslash tiny\{\}} & \tiny{tiny} \\
- \texttt{\textbackslash scriptsize\{\}} & \scriptsize{scriptsize} \\
- \texttt{\textbackslash footnotesize\{\}} & \footnotesize{footnotesize} \\
- \texttt{\textbackslash small\{\}} & \small{small} \\
- \texttt{\textbackslash normalsize\{\}} & \normalsize{normalsize} \\
- \texttt{\textbackslash large\{\}} & \large{large} \\
- \texttt{\textbackslash Large\{\}} & \Large{Large} \\
- \texttt{\textbackslash LARGE\{\}} & \LARGE{LARGE} \\
- \texttt{\textbackslash huge\{\}} & \huge{huge} \\
- \texttt{\textbackslash Huge\{\}} & \Huge{Huge} \\
- \hline
- \end{tabular}
- \caption{Font sizes.}
- \end{center}
-\end{table}
-
-
-
-The font can be changed in the text without loading additional packages in the preamble with \texttt{\textbackslash texttt\{\textbackslash fontfamily\{Family\}\textbackslash selectfont\}}. Some common fonts and their family names are listed in Table 8.
-
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{lll}
- \hline
- Font & Family Name & Sample \\
- \hline
- Avant Garde & \texttt{pag} & \fontfamily{pag}\selectfont Avant Garde \\
- Bookman & \texttt{pbk} & \fontfamily{pbk}\selectfont Bookman \\
- Charter & \texttt{bch} & \fontfamily{bch}\selectfont Charter \\
- Computer Modern & \texttt{cmr} & \fontfamily{cmr}\selectfont Computer Modern \\
- Courier & \texttt{pcr} & \fontfamily{pcr}\selectfont Courier \\
- Helvetica & \texttt{phv} & \fontfamily{phv}\selectfont Helvetica \\
- Latin Modern & \texttt{lmr} & \fontfamily{lmr}\selectfont Latin Modern \\
- New Century Schoolbook & \texttt{pnc} & \fontfamily{pnc}\selectfont New Century Schoolbook \\
- Palatino & \texttt{ppl} & \fontfamily{ppl}\selectfont Palatino \\
- Times New Roman & \texttt{ptm} & \fontfamily{ptm}\selectfont Times New Roman \\
- Utopia & \texttt{put} & \fontfamily{put}\selectfont Utopia \\
- Zapf Chancery & \texttt{pzc} & \fontfamily{pzc}\selectfont Zapf Chancery \\
- \hline
- \end{tabular}
- \caption{Some font family names.}
- \end{center}
-\end{table}
-
-
-\subsection{Special Characters}
-
-
-The following symbols are used by LaTeX as part of it's programming instructions so require marking up if they are to be placed as text in a document:
-
-\begin{center}
-\{ \} \% \& \$ \_ \# \textbackslash \~{} \^{} \\
-\end{center}
-
-Quotation marks are defined by using the \textasciigrave and \textquotesingle keys or \texttt{\textbackslash textquoteleft} and \texttt{\textbackslash textquoteright}. \texttt{\textasciigrave Word'} produces `Word'. For double quotes, use two of each or \texttt{\textbackslash textquotedblleft / \textbackslash textquotedblright} : \texttt{\textasciigrave \textasciigrave Word''} produces ``Word''. The \textasciigrave is located at the top left of the keyboard. The \texttt{\textquotesingle} symbol is the usual single quotation mark. The \textquotedbl key on the keyboard is not used. Two dashes are available: en dash for ranges (--) and the em dash (---) for punctuation. A list of these and their commands along with a range of other common symbols is in Table 9.
-
-
-\begin{table}
- \begin{center}
- \begin{tabular}{llllll }
- \hline
- \{ & \texttt{\textbackslash \{ } & --- & \texttt{\textminus \textminus \textminus or \textbackslash textemdash} & \textsterling & \texttt{\textbackslash textsterling} \\
-
- \} & \texttt{\textbackslash \}} & \textasciigrave & \small \texttt{\textbackslash asciigrave} & \texteuro & \texttt{\textbackslash texteuro} \\
-
- \% & \texttt{\textbackslash \%} & \textasciiacute & \texttt{\textbackslash textasciiacute} & \textcent & \texttt{\textbackslash textcent} \\
-
- \& & \texttt{\textbackslash \& } & \textasciibreve & \texttt{\textbackslash textasciibreve} & \textyen & \texttt{\textbackslash textyen} \\
-
- \$ & \texttt{\textbackslash \$ or \textbackslash textdollar} & \textbullet & \texttt{\textbackslash textbullet} & \textdegree & \texttt{\textbackslash textdegree} \\
-
- \_ & \texttt{\textbackslash \_} & \textopenbullet & \texttt{\textbackslash textopenbullet} & \textcelsius & \texttt{\textbackslash textcelsius} \\
-
- \# & \texttt{\textbackslash \#} & \dots & \texttt{\textbackslash dots} & \textcopyright & \texttt{\textbackslash textcopyright} \\
-
- \textbackslash & \texttt{\textbackslash textbackslash} & \textasteriskcentered & \texttt{\textbackslash textasteriskcentered} & \textcopyleft & \texttt{\textbackslash textcopyleft} \\
-
-
- \~{} & \texttt{\textbackslash \textasciitilde\{\} } & \textdagger & \texttt{\textbackslash textdagger} & \texttrademark & \texttt{\textbackslash texttrademark} \\
-
-
- \^{} & \texttt{\textbackslash \textasciicircum\{\} } & \textdaggerdbl & \texttt{\textbackslash textdaggerdbl} & \texttimes & \texttt{\textbackslash texttime} \\
-
-
- \textquoteleft & \texttt{\textbackslash textquoteleft or \textasciigrave} & \textparagraph & \texttt{\textbackslash textparagraph} & \textdiv & \texttt{\textbackslash textdiv} \\
-
-
- \textquoteright & \texttt{\textbackslash textquoteright or \textquotesingle} & \textsection & \texttt{\textbackslash textsection} & \textminus & \texttt{\textbackslash textminus} \\
-
-
- \textquotedblleft & \texttt{\textbackslash textquotedblleft or \textasciigrave \textasciigrave} & \texttildelow & \texttt{\textbackslash texttildelow} & \textgreater & \texttt{\textbackslash textgreater} \\
-
-
- \textquotedblright & \texttt{\textbackslash textquotedblright or \textquotesingle \textquotesingle} & \textasciitilde & \texttt{\textbackslash textasciitilde} & \textless & \texttt{\textbackslash textless} \\
-
-
- -- & \texttt{\textminus \textminus or \textbackslash textendash} &
- \textperiodcentered & \texttt{\textbackslash textperiodcentered} & $\sim$ & \texttt{\$\textbackslash sim\$} \\
- \hline
- \end{tabular}
- \caption{Special characters and some common symbols. }
- \end{center}
-\end{table}
-
-This list is a very small sample of the symbols available in LaTeX. Scott Pakin maintains ‘The Comprehensive LaTeX Symbol List’ which provides a list of over 14,000 symbols. This list is freely available from \textsc{ctan}.
-
-
-
-
-
-\subsection{Line Spacing}
-
-The default line spacing for LaTeX is single spaced. This can be changed to double or one and a half spacing with setspace if it is loaded in the preamble. It supports single, one-and-a-half line spacing and double spacing with \texttt{\textbackslash singlespacing}, \texttt{\textbackslash onehalfspacing} and \texttt{\textbackslash doublespacing} respectively. This will change the spacing of the entire document, but figures, tables and footnotes will be unaffected.
-
-\begin{verbatim}
-\documentclass[a4paper]{article}
-\usepackage{setspace}
-
-. . .
-
-\begin{document}
-\doublespacing
-
-. . .
-
-\end{document}
-\end{verbatim}
-
-
-
-
-\subsection{Page Numbering}
-The default page numbering in LaTeX is Arabic numerals which begin on the first page. Additional styles are shown in Table 10:
-
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{lll}
- \hline
- Style & Numeral Type & Example Text \\
- \hline
- \texttt{arabic} & Arabic numerals & 1, 2, 3, 4, 5 \\
- \texttt{roman} & Lower case Roman numerals & i, ii, iii, iv, v \\
- \texttt{Roman} & Upper case Roman numerals & I, II, III, IV, V \\
- \texttt{alph} & Lower case letters & a, b, c, d, e, f \\
- \texttt{Alph} & Upper case letters & A, B, C, D, E, F \\
-
- \hline
- \end{tabular}
- \caption{Page numbering options.}
- \end{center}
-\end{table}
-
-
-
-
-If the page numbering for the document is to be other than arabic, it can be specified in the preamble after the abstract with
-
-\begin{verbatim}
-\pagenumbering{Style}
-\end{verbatim}
-
-It is possible to have two styles in a document, for instance lower case Roman numerals for the front matter and Arabic numerals for the remainder of the text.
-
-This is handled with \texttt{\textbackslash pagenumbering\{Style\}}. At the beginning of the front matter, insert \texttt{\textbackslash pagenumbering\{roman\}} and when the main matter of the document begins, insert \texttt{\textbackslash pagenumbering\{arabic\}}. If the title page is to be un-numbered, insert \texttt{\textbackslash thispagestyle\{empty\}} following \texttt{\textbackslash maketitle}.
-
-The following creates an article class document with an un-numbered title page containing an abstract, a Table of Contents, List of Figures and List of Tables on separate pages with Roman numerals and the body text in Arabic numerals.
-
-\begin{verbatim}
-\documentclass[a4paper]{article}
-\title{\LaTeXe Document}
-\author{Michael P. Morris}
-
-\begin{document}
-\maketitle
-\thispagestyle{empty}
-\begin{abstract}
-Abstract text.
-\end{abstract}
-\clearpage
-\pagenumbering{roman}
-\tableofcontents
-\clearpage
-\listoffigures
-\clearpage
-\listoftables
-\clearpage
-\pagenumbering{arabic}
-
-Document Text.
-
-\end{document}
-\end{verbatim}
-
-To change the page numbering counter, use \texttt{\textbackslash setcounter\{page\}\{PageNumber\}}.
-
-\begin{verbatim}
-\pagenumbering{arabic}
-\setcounter{page}{5}
-\end{verbatim}
-
-This changes the page numbering to Arabic and begins the page count at page 5.
-
-\clearpage
-
-
-
-\section{Mathematics in LaTeX}
-
-One of LaTeX’s strengths is it’s facilities for mathematical equations. This is done by either activating math mode, or by the equation or displaymath environments.
-
-Math mode is activated by enclosing an equation within a pair of \$. This turns text into italics and the \texttt{–} character becomes a minus rather than a dash. This mode is especially useful when an equation is set within text:
-
-\begin{verbatim}
-Vestibulum mollis, arcu iaculis bibendum varius, velit sapien
-blandit metus, ac posuere lorem nulla ac dolor. $e=mc^2$ Maecenas
-urna elit, tincidunt in dapibus nec, vehicula eu dui. Duis lacinia
-fringilla massa.
-\end{verbatim}
-
-produces:
-
-\bigskip
-Vestibulum mollis, arcu iaculis bibendum varius, velit sapien blandit metus, ac posuere lorem nulla ac dolor. $e=mc^2$ Maecenas urna elit, tincidunt in dapibus nec, vehicula eu dui. Duis lacinia fringilla massa.
-\bigskip
-
-or when you need to include mathematics, such as the results of a statistical test, in a report:
-
-\begin{verbatim}
-... main effect for the interaction between the factors was
-significant (F(2,125) = 3.146, p < 0.05, \omega^2 = 0.032),
-though the practical significance ...
-\end{verbatim}
-
-produces
-
-\bigskip
-. . . main effect for the interaction between the factors was significant $(F(2,125) = 3.146, p < 0.05, \omega^2 = 0.032)$, though the practical significance . . .
-\bigskip
-
-
-The difference between equation and displaymath environments is that formulae set with equation are numbered:
-
-\begin{verbatim}
-\begin{equation}
-\bar{X} = \frac{\Sigma X}{n}
-\end{equation}
-\end{verbatim}
-
-
-\begin{equation}
-\bar{X} = \frac{\Sigma X}{n}
-\end{equation}
-
-
-
-\begin{verbatim}
-\begin{displaymath}
-\bar{X} = \frac{\Sigma X}{n}
-\end{displaymath}
-\end{verbatim}
-
-
-
-\begin{displaymath}
-\bar{X} = \frac{\Sigma X}{n}
-\end{displaymath}
-
-
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{ll}
- \hline
- $a \times b + c - d \div e$ & \texttt{a \textbackslash times b + c - d \textbackslash div e} \\
- $a < b > c$ & \texttt{a < b > c} \\
- $a^2 + b^2 = c^2$ & \texttt{a\^{}2 + b\^{}2 = c\^{}2} \\
- $y - y_1 = m(x - x_1)$ & \texttt{y - y\_1 = m(x - x\_1)} \\
- $f'$ & \texttt{f'} \\
- $n!$ & \texttt{n!} \\
- $\frac{a}{b}$ & \texttt{\textbackslash frac\{a\}\{b\}} \\
- $a \choose b$ & \texttt{a \textbackslash choose b} \\
- $\sqrt a$ & \texttt{\textbackslash sqrt a} \\
- $\root n \of {a}$. & \texttt{\textbackslash root n \textbackslash of \{a\}} \\
- $\overbrace{abc}$ & \texttt{\textbackslash overbrace\{\}} \\
- $\underbrace{abc}$ & \texttt{\textbackslash underbrace\{\}} \\
- \hline
- \end{tabular}
- \caption{Some common mathematical symbols. }
- \end{center}
-\end{table}
-
-
-
-
-Some of the mathematical symbols are shown in Table 11. LaTeX comes with Greek letters in upper and lowercase fonts. A complete list of these and the commands are in Table 12. They can be inserted in math mode by placing them between \textbackslash begin\{math\} and \textbackslash end\{math\} or if you only need a single character, they can be placed between \texttt{\$}. All the lowercase letters and some of the uppercase letters are provided.
-
-\begin{verbatim}
-The $\beta$ weights for the results . . .
-\end{verbatim}
-
-produces:
-\bigskip
-
-The $\beta$ weights for the results . . .
-
-\bigskip
-
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{llllllllll}
- \hline
- $\Gamma$ & \texttt{\textbackslash Gamma} & $\Delta$ & \texttt{\textbackslash Delta} & $\Theta$ & \texttt{\textbackslash Theta} & $\Lambda$ & \texttt{\textbackslash Lambda} & $\Xi$ & \texttt{\textbackslash Xi} \\
-
- $\Pi$ & \texttt{\textbackslash Pi} & $\Sigma$ & \texttt{\textbackslash Sigma} & $\Upsilon$ & \texttt{\textbackslash Upsilon} & $\Phi$ & \texttt{\textbackslash Phi} & $\Psi$ & \texttt{\textbackslash Psi} \\
-
- $\Omega$ & \texttt{\textbackslash Omega} \\
-
- $\alpha$ & \texttt{\textbackslash alpha} & $\beta$ & \texttt{\textbackslash beta} & $\gamma$ & \texttt{\textbackslash gamma} & $\delta$ & \texttt{\textbackslash delta} & $\epsilon$ & \texttt{\textbackslash epsilon} \\
-
- $\zeta$ & \texttt{\textbackslash zeta} & $\eta$ & \texttt{\textbackslash eta} & $\theta$ & \texttt{\textbackslash theta} & $\iota$ & \texttt{\textbackslash iota} & $\kappa$ & \texttt{\textbackslash kappa} \\
-
- $\lambda$ & \texttt{\textbackslash lambda} & $\mu$ & \texttt{\textbackslash mu} & $\nu$& \texttt{\textbackslash nu} & $\xi$& \texttt{\textbackslash xi} & $\pi$& \texttt{\textbackslash pi} \\
-
- $\rho$ & \texttt{\textbackslash rho} & $\sigma$ & \texttt{\textbackslash sigma} & $\tau$ & \texttt{\textbackslash tau} & $\upsilon$ & \texttt{\textbackslash upsilon} & $\phi$ & \texttt{\textbackslash phi} \\
-
- $\chi$ & \texttt{\textbackslash chi} & $\psi$ & \texttt{\textbackslash psi} & $\omega$ & \texttt{\textbackslash omega} \\
-
- \hline
- \end{tabular}
- \caption{Upper and lowercase Greek letters.}
- \end{center}
-\end{table}
-
-
-This is a very short introduction to LaTeX’s mathematical capabilities. A wide range of Greek letters, symbols, functions, operators, arrows and character modifiers such as bars, graves, tildes and hats are also available.
-
-\clearpage
-
-
-
-
-\section{Front Matter}
-
-\subsection{Title Pages}
-
-Contents of the title pages are defined in the final part of the preamble with \texttt{\textbackslash title\{\}}, \texttt{\textbackslash author\{\}} and \texttt{\textbackslash date\{\}}. The current date can be placed inside \texttt{\textbackslash date\{\}} with \texttt{\textbackslash today}, or a date can be entered manually. The title page is created with \texttt{\textbackslash maketitle} which follows \texttt{\textbackslash begin\{document\}}:
-
-\begin{verbatim}
-\documentclass[a4paper]{article}
-
-\title{\LaTeXe Document}
-\author{Michael P. Morris}
-\date{\today}
-
-\begin{document}
-\maketitle
-
-. . .
-
-
-\end{document}
-\end{verbatim}
-
-
-
-
-\subsection{The Abstract}
-
-Abstracts are created by the abstract environment:
-
-\begin{verbatim}
-\begin{abstract}
-
-Lorem ipsum dolor sit amet . . .
-
-\end{abstract}
-\end{verbatim}
-
-
-The abstract appears on the title page but can be placed on a page of it’s own by inserting pagebreaks following \texttt{\textbackslash maketitle} and after the end of the abstract environment. This example uses \texttt{\textbackslash clearpage}:
-
-\begin{verbatim}
-\documentclass[a4paper]{article}
-
-\title{\LaTeXe Document}
-\author{Michael P. Morris}
-\date{\today}
-
-\begin{document}
-\maketitle
-\clearpage
-\begin{abstract}
-Lorem ipsum dolor sit amet . . .
-\end{abstract}
-\clearpage
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est
-purus, ultrices in porttitor in, accumsan non quam. Nam consectetur
-porttitor rhoncus . . .
-
-
-\end{document}
-\end{verbatim}
-
-
-
-\subsection{Table of Contents, List of Figures and List of Tables.}
-
-The Table of Contents, List of Figures and List of Tables are inserted with:
-
-\begin{verbatim}
-\tableofcontents
-
-\listoffigures
-
-\listoftables
-\end{verbatim}
-
-A page break after each command will place them on separate pages. LaTeX will generate these automatically when the document is compiled from the sectioning commands and the figure and table captions.
-
-
-The following creates a document with a title page containing the title and abstract, a Table of Contents, List of Figures and List of Tables. These are placed on separate pages and numbered in Roman numerals, with the body of the text in Arabic numerals. It is double spaced with a ragged right margin. Page breaks are specified with \texttt{\textbackslash clearpage}:
-
-\begin{verbatim}
-\documentclass[a4paper]{article}
-
-\title{\LaTeXe Document}
-\author{Michael P. Morris}
-\date{\today}
-
-\begin{document}
-\maketitle
-\doublespacing
-\begin{flushleft}
-\begin{abstract}
-
-Lorem ipsum dolor sit amet . . .
-
-\end{abstract}
-\thispagestyle{empty}
-\clearpage
-\pagenumbering{roman}
-\tableofcontents
-\clearpage
-\listoffigures
-\clearpage
-\listoftables
-\clearpage
-\pagenumbering{arabic}
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla
-est purus, ultrices in porttitor in, accumsan non quam. Nam
-consectetur porttitor rhoncus . . .
-
-\end{flushleft}
-
-\clearpage
-
-
-\end{document}
-
-\end{verbatim}
-
-
-\clearpage
-
-
-
-
-
-\section{Body}
-
-
-\subsection{Sectioning}
-
-Sectioning is the division on a document into part,chapter, section, subsection, subsubsection, paragraph and subparagraph. This is available for all LaTeX document classes, apart from letter. Chapters are not available for articles. Sectioning commands have the same format as text formatting commands: \texttt{\textbackslash Command\{SectionType\}}. The following creates two sections, each with two subsections. LaTeX numbers these automatically and the titles will appear in the Table of Contents:
-
-\begin{verbatim}
-\section{Section 1}
-\subsection{1A}
-\subsection{1B}
-
-\section{Section 2}
-\subsection{2A}
-\subsection{2B}
-\end{verbatim}
-
-
-
-\subsection{Lists}
-
-LaTeX lists are bulleted or numbered and are created in an environment. The itemize environment creates a bulleted list, and enumerate creates numbered lists. New list items are specified with \texttt{\textbackslash item}. For a bulleted list:
-
-
-\begin{verbatim}
-\begin{itemize}
-\item Item 1
-\item Item 2
-\item Item 3
-\end{itemize}
-\end{verbatim}
-
-produces:
-
-\begin{itemize}
- \item Item 1
- \item Item 2
- \item Item 3
-\end{itemize}
-
-
-The symbol denoting each item in a bulleted list can be changed by adding an option after each \texttt{\textbackslash item} command:
-
-\begin{verbatim}
-\begin{itemize}
-\item[--] Item 1
-\item[\textasteriskcentered] Item 2
-\item[\textdagger] Item 3
-\end{itemize}
-\end{verbatim}
-
-produces
-
-\begin{itemize}
- \item[--] Item 1
- \item[\textasteriskcentered] Item 2
- \item[\textdagger] Item 3
-\end{itemize}
-
-
-Numbered lists are created by the enumerate environment:
-
-\begin{verbatim}
-\begin{enumerate}
-\item Item 1
-\item Item 2
-\item Item 3
-\end{enumerate}
-\end{verbatim}
-
-produces
-
-\begin{enumerate}
- \item Item 1
- \item Item 2
- \item Item 3
-\end{enumerate}
-
-
-
-If there are sub-categories, the list can be nested with additional enumerate commands:
-
-\begin{verbatim}
-\begin{enumerate}
-\item Item 1
-\begin{enumerate}
-\item Item A
-\item Item B
-\item item C
-\end{enumerate}
-\item Item 2
-\item Item 3
-\end{enumerate}
-\end{verbatim}
-
-
-produces
-
-
-\begin{enumerate}
- \item Item 1
- \begin{enumerate}
- \item Item A
- \item Item B
- \item item C
- \end{enumerate}
- \item Item 2
- \item Item 3
-\end{enumerate}
-
-
-
-
-
-\subsection{Tables and Figures}
-
-Tables and figures are placed inside their own environments. LaTeX places them in documents so that they don’t break across pages. Because their location can vary from the location specified by typesetters, they are referred to as floats. Using \texttt{\textbackslash clearpage} at the end of each section places any outstanding floats at the end of the section before the new one starts.
-
-\subsubsection{Tables}
-Tables are placed within the table environment. A caption can be added with \texttt{\textbackslash caption\{Caption Text\}} just before \texttt{\textbackslash end\{table\}} so that it appears below the table. LaTeX will number them automatically and the caption will appear in the List of Tables. If the font for the table is to be sized differently from the text, it is specified on the next line.
-
-\begin{verbatim}
-\begin{table}
- \small
-
-. . . Table Contents . . .
-
-\caption{Caption text}
-\end{table}
-\end{verbatim}
-
-
-The next line specifies the table’s alignment on the page. Options are centre, flushleft and flushright. Within this environment is tabular. This contains the table’s formatting instructions and the table data.
-
-\begin{verbatim}
-\begin{table}
- \small
-\begin{center}
-\begin{tabular}{l|c|c|r}
-\hline
-Column 1 & Column 2 & Column 3 & Column 4 \\
-\hline
-Row 1 & Text 2 & Text 3 & 3.157 \\
-Row 2 & Text 2 & Text 3 & 14.930 \\
-Row 3 & Text 2 & Text 3 & 0.720 \\
-\hline
-\end{tabular}
-\caption{Caption text . . . }
-\end{center}
-\end{table}
-\end{verbatim}
-
-\texttt{\textbackslash begin\{tabular\}\{l|c|c|r\}} instructs LaTeX to begin a tabular environment with text alignment options for four columns. The first is left aligned, the second and third centred and the fourth column right aligned. An \texttt{|} adds a vertical line.
-
-Horizontal lines can be inserted with \texttt{\textbackslash hline}. The next line contains the headings for each column. The \texttt{\&} symbol separates the text for each column and \texttt{\textbackslash \textbackslash} denotes the end of the row.
-
-Below this is the first row of data. As with the columns, each column is separated with an \texttt{\&} symbol and the end of the row by a \texttt{\textbackslash \textbackslash}. Table 13 shows the compiled output.
-
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{l|c|c|r}
- \hline
- Column 1 & Column 2 & Column 3 & Column 4 \\
- \hline
- Row 1 & Text 2 & Text 3 & 3.157 \\
- Row 2 & Text 2 & Text 3 & 14.930 \\
- Row 3 & Text 2 & Text 3 & 0.720 \\
- \hline
- \end{tabular}
- \caption{Example table.}
- \end{center}
-\end{table}
-
-
-\subsubsection{Figures}
-
-The first step in importing graphic files is to place the file in the project directory so that LaTeX can find it. Figures are placed within the figure environment. The placement of the figure on the page is specified in the same way as tables: centre, flushleft or flushright.
-
-\begin{verbatim}
-\begin{figure}
-\center
-\includegraphics[scale=1.0]{GraphicFileName}
-\caption{Caption Text}
-\end{figure}
-\end{verbatim}
-
-\texttt{\textbackslash includegraphics \{\}} tells LaTeX the name of the graphic file to load and \texttt{scale} specifies whether to reduce or enlarge. 1.0 is original size, 0.5 is half size and 2.0 is double. \texttt{\textbackslash caption\{\}} contains the text of the caption and this will appear as the figure title in the List of Figures in the frontmatter.
-
-LaTeX handles only encapsulated postscript files, and PDFLaTeX can handle files in pdf, png or jpg formats. If the file is in a different format, it will have to be converted to these. If an encapsulated postscript file is included in a document created by PDFLaTeX, there will be a blank space where the graphic should be. Figure 1 has been reduced by 50\% by changing the scale to 0.5.
-
-
-\begin{figure}
-\center
-\includegraphics[scale=0.5]{Drawing.eps}
-\caption{Spiral}
-\end{figure}
-
-\clearpage
-
-
-\section{End Matter}
-
-
-\subsection{Citations and References}
-
-LaTeX can generate citations and references automatically. The first step is to create a bibliographical database for the project. This is placed in the project directory so that LaTeX can find it when the document is compiled. The format for database entries is:
-
-\begin{verbatim}
-@book{Paper10,
- author = {Paper, A., Pen, B. and Ink, J},
- title = {Our Book},
- publisher = {First Authors Press},
- year = {2010}.
-}
-
-@article{Kliker12,
- author = {Kliker, G. and Flash, L.},
- title = {Photographing Critics},
- Journal = {The Journal of Critical Photography},
- Year = {2012},
- Volume = {12},
- pages = {50-60}.
-}
-\end{verbatim}
-
-The standard reference types are article, book, booklet, conference, inbook, incollection, inproceedings, manual, mastersthesis, misc, phdthesis, proceedings, techreport and unpublished. This list is saved as a .bib file.
-
-All bibliographical entries contain a unique key. This is found in the first line. It can be anything, but the first author's surname and year of publication is memorable. If the database contains more than one publication by the same author(s) in the same year, they can be uniquely identified by adding a letter: Paper10a, Paper10b, Paper10c.
-
-Jabref is a convenient way of managing these reference databases. It is an open source reference manager and is freely available from \texttt{www.jabref.org}. It has a \textsc{gui} interface, native support for BibTeX and BibLaTeX and can import 15 reference formats.
-
-
-
-\subsubsection{BibLaTeX}
-
-BibLaTeX is a modern package for managing citations and a wide range of citation styles are available for it from \textsc{ctan}. To use this in a document, it is loaded in the preamble along with the citation style and the name of the reference database:
-
-\begin{verbatim}
-\usepackage[style=CitationStyle]{biblatex}
-\addbibresource{DatabaseName.bib}
-\end{verbatim}
-
-
-There are a large number of styles for this package available from \textsc{ctan}. A short list of common styles is in Table 14.
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{ll}
- \hline
- Style & Package \\
- \hline
- APA & apa, apa6 \\
- Chicago & chicago-authordate-trad \\
- Harvard & bath \\
- MLA & mla \\
- Oxford & oxnotes \\
- \hline
- \end{tabular}
- \caption{BibLaTeX citations styles}
- \end{center}
-\end{table}
-
-
-
-Citations are placed in the text with \texttt{\textbackslash cite\{\}}, \texttt{\textbackslash parencite\{\}} or \texttt{\textbackslash footcite\{\}} with the reference key placed between \texttt{\{\}}. \texttt{\textbackslash cite\{Kliker12\}} produces a reference that is something like Kliker and Flash (2012). \texttt{\textbackslash parencite\{Kliker12\}} produces a citation in parentheses (Kliker and Flash, 2012). \texttt{\textbackslash footcite} is used with oxnotes. This places a superscript numeral at the citation with the reference at the bottom of the page.
-
-The reference list is created with \texttt{\textbackslash printbibliography}. This can be placed anywhere inside the document environment. The following loads BibLaTeX with a Harvard style with references in a BibTeX file named DocRefs.bib. There is one citation in parentheses and the reference list is placed on a separate page at the end of the document:
-
-\begin{verbatim}
-\documentclass[a4paper]{article}
-. . .
-\usepackage[bath]{biblatex}
-\addbibresource{DocRefs.bib}
-
-\begin{document}
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla
-est purus, ultrices in porttitor in, accumsan non quam. Nam
-consectetur porttitor rhoncus. Curabitur eu est et leo feugiat
-auctor vel quis lorem. Ut et ligula dolor, sit amet consequat lorem.
-Aliquam porta eros sed velit imperdiet egestas. Maecenas tempus eros
-ut diam ullamcorper id dictum libero tempor. \parencite{Paper10}
-
-\clearpage
-\printbibliography
-\end{document}
-\end{verbatim}
-
-
-When documents with BibLaTeX citations are compiled, the citation processing package Biber must also be run to generate the citations and reference list.
-
-Citation styles are regularly revised, new ones appear, and institutions and publications may have their own versions. If existing LaTeX packages that are available don’t meet these requirements, the citations and reference list can be entered into the document manually. The reference list can be added by adding a chapter or section for references, then adding each entry in the required style. Oxford style footnotes can be added by using \texttt{\textbackslash footnote\{\}}.
-
-
-
-
-\subsection{Appendices}
-
-Appendices can be added to documents with the appendix package. This is loaded in the preamble with
-
-\begin{verbatim}
-\usepackage{appendix}
-\end{verbatim}
-
-Options for this package are listed in Table 15:
-
-
-\begin{table}
- \small
- \begin{center}
- \begin{tabular}{ll}
- \hline
- \texttt{toc} & Includes a title in the Table of Contents prior to listing the appendices \\
- \texttt{page} & Places a title prior to the beginning of the appendices \\
- \texttt{title} & Adds the name `Appendix' to each appendix title \\
- \texttt{titletoc} & Does the same to each appendix title in the Table of Contents \\
- \texttt{header} & Does the same for each page header \\
- \hline
- \end{tabular}
- \caption{Options for package Appendix.}
- \end{center}
-\end{table}
-
-
-The appendices themselves are placed inside the appendix environment and are sectioned in the same way as the document text:
-
-\begin{verbatim}
-\begin{appendices}
-
-\section{Notes on Sources}
-
-\section{Raw Data}
-
-\end{appendices}
-\end{verbatim}
-
-To begin the appendices on a new page, and to place each new appendix on a new page, insert a page break before the appendices environment and the beginning of a new appendix.
-
-
-\clearpage
-
-
-
-
-
-\section{Compiling Documents}
-
-LaTeX can produce postscript and \textsc{pdf} files. Postscript is the `Gold Standard’ for printed documents and LaTeX produces these without any special commands in the document file. These files are compiled by running LaTeX multiple times to resolve front matter, headings and lists, and if the document contains references created through BibLaTeX, Biber will have to be added to resolve the citations. This can be done either by the command line or through an editor’s \textsc{gui} interface. For a document named Filename.tex containing citations created with BibLaTeX:
-
-\begin{verbatim}
-latex Filename.tex
-biber Filename.tex
-latex Filename.tex
-latex Filename.tex
-\end{verbatim}
-
-is suggested. This creates a Device Independent (.dvi) file. This intermediate file is then converted to postscript with dvips:
-
-\begin{verbatim}
-dvips Filename.dvi
-\end{verbatim}
-
-
-\textsc{pdf} files can be created from standard LaTeX postscript files with Ghostscript, or else by using PDFLaTeX. PDFLaTeX is designed to produce documents in \textsc{pdf} format and can produce them directly from a marked-up file. It allows a user to insert file description information such as Title, Author, Subject and Keywords and allows documents to be created in \textsc{pdf/a} format. This is an \textsc{iso} standard format for archiving electronic documents. It supports hyperlinks within the text and links to internet sites.
-
-The contents of the document description can be inserted in the preamble with:
-
-\begin{verbatim}
-\pdfinfo{
- /Author(Michael Morris)
- /Title(A Very Short Guide to Getting Started with LaTeX2e)
- /CreationDate(D:20200910102500)
- /ModDate(D: 20200910102500)
- /Subject(LaTeX2e)
- /Keywords(PDF;Latex;Guide)
-}
-\end{verbatim}
-
-The creation date and modification date format is \texttt{\textsc{yyyymmddhhmmss}}.
-
-\textsc{pdf/a} files are created with pdfx. This is loaded in the preamble with:
-
-\begin{verbatim}
-\usepackage[a-1b]{pdfx}
-\end{verbatim}
-
-Hypertext links can be inserted into \textsc{pdf} documents with hyperref. This turns all internal references, such as the table of contents and lists of tables and figures, cross references and citations into active hyperlinks. Clicking on the link will take you to the appropriate place in the text. This should be the last package loaded in the preamble. It is loaded with:
-
-\begin{verbatim}
-\usepackage{hyperref}
-\end{verbatim}
-
-By default, the hyperlinks appear boxed in red. This can be changed to coloured text using the colorlinks option, and a set of bookmarks to help navigate the document can be generated. Multiple options can be loaded at the same time if they are separated with commas:
-
-\begin{verbatim}
-\usepackage[colorlinks, bookmarks=true]{hyperref}
-\end{verbatim}
-
-Links to external web pages can be created within the body of the text with
-
-\begin{verbatim}
-\textbackslash href\{url\}\{Descriptive Text\}
-\end{verbatim}
-
-The Descriptive Text option provides a comment on the link that appears when the mouse pointer hovers over it. The following inserts a link to \textsc{ctan}:
-
-\begin{verbatim}
-\href{www.ctan.org}{Comprehensive TeX Archive Network}
-\end{verbatim}
-
-
-\clearpage
-
-
-
-
-\section{References}
-
-\begin{flushleft}
-Goosens, M., Mittelbach, F., Rahtz, S., Roegel, D. and Voss, H. (2008) \textit{The LaTeX Graphics Companion}. 2nd Edition. Boston: Addison-Wesley. \\
-\bigskip
-Lamport, L. (1986) \textit{LaTeX: A Document Preparation System}. 2nd Edition. Boston: Addison-Wesley.\\
-\bigskip
-Mittelbach, F. and Goosens, M. 2004. \textit{The LaTeX Companion}. 2nd Edition. Boston: Addison-Wesley.\\
-\bigskip
-Mori, L.F. (2007). Tables in LaTeX2e: Packages and Methods. \textit{The PracTeX Journal}, 1, 1-38.\\
-\bigskip
-Pakin, S., 2020. \textit{The Comprehensive LaTeX Symbol List}. Retrieved from http://tug.ctan.org/info/symbols/comprehensive/symbols-a4.pdf on 25 September, 2020.\\
-\bigskip
-Thanh, H.T., Rahtz, S., Hagen, H., Henkel, H., Schroder, M. and Berry, K. (2020) \textit{The pdfTeX User Manual}. Revision 821. Retrieved from http://mirror.aarnet.edu.au/pub/CTAN/systems/doc/pdftex/manual/pdftex-a.pdf on 25 September, 2020.\\
-\end{flushleft}
-
-
-
-\end{document}
-
-
diff --git a/info/yet-another-guide-latex2e/README b/info/yet-another-guide-latex2e/README
new file mode 100644
index 0000000000..bb72f566e5
--- /dev/null
+++ b/info/yet-another-guide-latex2e/README
@@ -0,0 +1,27 @@
+README
+
+File Name: Yet-Another-Guide-LaTeX2e.pdf
+Title: Yet Another Guide to LaTeX2e. v0.5
+Author: Michael. P. Morris
+
+
+
+
+Description:
+
+This document is a short guide to using LaTeX2e to typeset high quality documents. It focuses on users of Windows and guides the reader through installation, some of LaTeX's conventions, and creating the front matter, body and end matter. The appendices contain a list of useful facilities not otherwise covered in this document and a list of helpful resources.
+
+Cheers and Happy TeXing!!
+
+Michael Morris <mmorris-500@hotmail.com>
+
+
+
+License
+
+Yet-Another-Guide-LaTeX2e.pdf
+
+Copyright 2020--2022 M. P. Morris.
+Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
+
+
diff --git a/info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.pdf b/info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.pdf
new file mode 100644
index 0000000000..a5cb927a50
--- /dev/null
+++ b/info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.pdf
Binary files differ
diff --git a/info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.tex b/info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.tex
new file mode 100644
index 0000000000..ff30406743
--- /dev/null
+++ b/info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.tex
@@ -0,0 +1,2342 @@
+\documentclass[12pt, a4paper]{article}
+\usepackage{setspace}
+
+\usepackage[dvips]{graphicx}
+\usepackage[dvipsnames]{xcolor}
+
+\usepackage[french, ngerman, australian]{babel}
+\usepackage{hyphenat}
+\hyphenation{}
+
+\usepackage[useregional, showdow]{datetime2}
+
+\usepackage[TS1,T1]{fontenc}
+
+\usepackage[left=1in, top=1in, bottom=1.25in, right=1in, headheight=18pt]{geometry}
+\usepackage{fancyhdr}
+\pagestyle{fancy}
+\lhead{}
+\chead{}
+\rhead{\thepage}
+\lfoot{}
+\cfoot{}
+\rfoot{}
+\renewcommand{\headrulewidth}{0.0pt}
+\renewcommand{\footrulewidth}{0.0pt}
+
+\usepackage[title, toc]{appendix}
+
+%opening
+\title{
+Yet Another Guide \\
+to \\
+\LaTeXe \\
+v0.5 \\}
+
+\author{Michael P. Morris \footnote {Copyright \copyright 2020--2022 M. P. Morris. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Any error reports for this work can be sent to the author at \texttt{mmorris-500@hotmail.com}.} \\
+\texttt{{\footnotesize mmorris-500@hotmail.com}}}
+
+\date{}
+
+\usepackage[pdftex, colorlinks=true, allcolors=Blue]{hyperref}
+
+
+\hypersetup{pdfinfo={
+ Title={Yet Another Guide to LaTeX2e. v0.5},
+ Author={M.P. Morris},
+ Subject={LaTeX2e},
+ Keywords={Latex2e; Guide}
+}}
+
+\begin{document}
+
+\maketitle
+\thispagestyle{empty}
+
+\begin{abstract}
+This document is a short guide to using \LaTeXe\ to typeset high quality documents. It focuses on users of Windows 10 OS and guides the reader through installation, some of \LaTeXe's conventions, and creating the front matter, body and end matter of a document. The appendices contain a list of useful facilities not covered in this document and a list of helpful resources.
+\end{abstract}
+
+%\clearpage
+\pagenumbering{roman}
+\tableofcontents
+
+\clearpage
+\listoffigures
+
+\clearpage
+\listoftables
+
+\clearpage
+\pagenumbering{arabic}
+
+\section{Introduction}
+
+LaTeX (pronounced \emph{lah-tek}) is a markup language designed to typeset high quality documents. It was created by Donald Knuth who generously released it into the public domain and is freely available from the Comprehensive TeX Archive Network (\textsc{ctan}) at \texttt{\url{www.ctan.org}}. Since it’s release it has been greatly added to, and as of this writing there are currently over 6100 add-on packages from over 2800 contributors. The most recent version is \LaTeXe and LaTeX 3 is under development.
+
+This document grew from my own efforts to become a proficient LaTeX user. It is not a comprehensive guide to using LaTeX. It is aimed at giving an overview of the elements of how to mark up a document and then compile it into either postscript or \textsc{pdf} format in English. It is a very bare bones outline of LaTeX and only touches on the possibilities. The best source of information is package documentation which is available from \textsc{ctan}. There are also a number of published guides and the reference list contains several useful references. A more comprehensive list, and a helpful list of texts on typography is also available from \textsc{ctan}.
+
+This document focuses on the Windows 10 operating system. Users of \textsc{unix}-alike or Mac systems should consult their OS documentation for issues specific to them. There are a large number of packages and some of them overlap in functionality. There are multiple options for citation systems, for document templates and for fonts. The recommendations made in this document reflect my own experiences and prejudices.
+
+Finally, I'd like to mention The TeX Users Group, of which I am a member. This is a not-for-profit group for those interested in LaTeX. Membership is inexpensive and members are sent \textsc{tug}boat, the Journal of the Tex Users Group, three times a year, and the TeX Collection on \textsc{dvd} annually. This is a good way of keeping up with developments and also with changes to TeX distributions.
+
+A previous version of this document was titled `Getting Started with \LaTeXe'. The name has been changed as it was very similar to other documents relating to LaTeX. This version contains corrections, clarifications and some additions. This document was produced with Pro\TeX\ v3.2-031721, the most recent version available at the time of this writing.
+
+The author is very interested in hearing about errors and suggestions for improvements, especially code that doesn't function as advertised. These reports can be sent to the author at \texttt{\color{Blue}mmorris-500@hotmail.com}.
+
+
+
+\clearpage
+
+\section{Installation}
+
+\LaTeXe is freely available from \texttt{\url{www.ctan.org}} in three main distributions:
+
+
+\begin{itemize}
+\item TeXLive is cross platform and will install on \textsc{unix}-alike, Mac and Windows systems.\\
+
+\item MacTeX is aimed at Mac OS users.\\
+
+\item ProTeX is aimed at Windows users.\\
+\end{itemize}
+
+
+The most current version of ProTeX, as of this writing, is \texttt{protext-3.2-031721}. To install this on a Windows system, download it from \textsc{ctan} and unzip it. This will create a new directory called \texttt{protext-3.2-031721}. Click on this, then \texttt{setup.exe}. This will bring up the global setup console. Click \texttt{manual} to bring up a \textsc{pdf} document with easy installation instructions. The distribution also contains TeXstudio, an editor, and Sumatra, a \textsc{pdf} viewer in their respective directories. These should be installed after LaTeX. The \texttt{doc} directory contains several manuals on using LaTeX.
+
+After ProTeX is installed, the next step for Windows users is to place it in the Windows search path. This will allow Windows to find it if it is run from the command line. To do this, go to the Control Panel:
+
+
+\begin{flushleft}
+\texttt{Control Panel $\rightarrow$ System and Security $\rightarrow$ System $\rightarrow$ Advanced System Settings $\rightarrow$ Environmental Variables $\rightarrow$ Path in the User Variables box $\rightarrow$ Edit}
+\end{flushleft}
+
+
+Then navigate to the directory containing the binary files and add it to the path. If it is a ProTeX distribution running on 64 bit Windows 10 they are in:
+
+
+\begin{flushleft}
+\texttt{C:\textbackslash Program Files\textbackslash MikTeX2.9\textbackslash miktex\textbackslash bin \textbackslash x64}
+\end{flushleft}
+
+
+\subsection{Package Management}
+
+\textsc{ctan} currently has over 6100 packages for LaTeX from over 2800 contributors. These provide additional features, fonts, document templates and documentation. ProTeX provides the MiKTeX Console to help manage them. This provides facilities for updating packages, accessing package documentation and installing new packages. \textsc{unix}-alike and MacTeX users should consult their documentation.
+
+The MikTeX Console can be accessed from the Windows 10 desktop by clicking
+
+
+\begin{flushleft}
+\texttt{Windows Start $\rightarrow$ \texttt{MiKTeX 2.9} $\rightarrow$ \texttt{MiKTeX Console}}
+\end{flushleft}
+
+
+When the Console appears, select the Operation Mode: \texttt{Administrator} or \texttt{User}. Select \texttt{Administrator} if you want to manage a system wide installation, such as on a single workstation, or \texttt{User} if you are working on a workstation which is part of a larger system.
+
+To add packages to LaTeX, click \texttt{Packages} and a list of all the packages available from \textsc{ctan} will appear along with the date it was installed on your system. If the date is missing, the package is not present on your installation. To install it, click the package name so that it is highlighted, then click \texttt{+} at the top of the list to install it.
+
+To update currently installed packages, select
+
+
+\begin{flushleft}
+\texttt{Updates $\rightarrow$ Check for updates}
+\end{flushleft}
+
+
+If any updates are found, they will appear as a list. To perform the update, click \texttt{Update now} and they will be downloaded and installed automatically.
+
+Following the package installation or update the file name and package databases have to be updated so that LaTeX can find the updated packages. If new fonts have been installed, the font map files have to be refreshed. To do this, go to the console Menu, click on
+
+
+\begin{flushleft}
+\texttt{\texttt{Tasks $\rightarrow$ Refresh file name database}}
+\end{flushleft}
+
+
+\begin{flushleft}
+When this is finished, go to
+\end{flushleft}
+
+
+\begin{flushleft}
+\texttt{Tasks $\rightarrow$ Update package database}
+\end{flushleft}
+
+
+\begin{flushleft}
+If fonts have been updated or installed, select
+\end{flushleft}
+
+
+\begin{flushleft}
+\texttt{Tasks $\rightarrow$ Refresh font map files}
+\end{flushleft}
+
+
+Package documentation can be accessed by clicking \texttt{Documentation} on the console. A list of all the packages on \texttt{ctan} will appear along with a tick in the \texttt{Installed} column if it is present on the system. Documentation may be installed in the same way as packages.
+
+A number of packages must be present on your installation so that you can use the examples in this document. Not all of them come with every distribution due to size constraints. The ProTeX distribution's download size had grown to about 3gb, and to reduce this, a number of packages were omitted. This reduced the download size to about 1gb. If any of the required packages are missing, they can be installed using the instructions in the section on Package Management below. Some packages access other packages and these must be present on your installation as well: \texttt{ragged2e}, for instance, requires the packages \texttt{everysel} and \texttt{footmisc}. BibLaTeX, which automatically generates references and reference lists, has 12 additional packages, not including style packages! A list is in Table 1.
+
+
+\begin{table}
+\begin{center}
+\begin{tabular}{ll}
+\hline
+\LaTeXe & Bib\LaTeX \\
+\hline
+\texttt{babel} & \texttt{babel v3.9r or above or polygossia} \\
+\texttt{datetime2} & \texttt{biber} \\
+\texttt{everysel} & \texttt{csquotes} \\
+\texttt{fancyhdr} & \texttt{etoolbox} \\
+\texttt{fontenc} & \texttt{etex} \\
+\texttt{footmisc} & \texttt{ifthen} \\
+\texttt{geometry} & \texttt{keyval} \\
+\texttt{graphicx} & \texttt{kvoptions} \\
+\texttt{hyphenat} & \texttt{logreq} \\
+\texttt{ragged2e} & \texttt{pdftexcmds v0.27 or above} \\
+\texttt{setspace} & \texttt{url} \\
+\texttt{xcolor} & \texttt{xpatch} \\
+\texttt{xmp} & \\
+ & Bibliographical Styles \\
+ & \texttt{biblatex-apa} \\
+ & \texttt{biblatex-chicago} \\
+ & \texttt{biblatex-mla} \\
+ & \texttt{biblatex-vancouver} \\
+\hline
+\end{tabular}
+\caption{Required and recommended packages}
+\end{center}
+\end{table}
+
+
+\subsection{Additional Software}
+
+The software listed below is helpful for managing projects in LaTeX. An editor makes marking up a text file and compiling it much simpler. Two freely available editors are \TeX studio and Kile. \TeX studio comes with ProTeX and the most recent version is available from:
+
+\begin{flushleft}
+\texttt{\url{www.texstudio.org}}
+\end{flushleft}
+
+Kile is another popular choice with similar functionality to TeXstudio. It has a preview feature which shows how your document will look. It is available from:
+
+\begin{flushleft}
+\texttt{\url{www.kile.sourceforge.io/}}
+\end{flushleft}
+
+A reference manager is helpful for scholarly writing because it can keep all the references in a single place, and if the references and reference list is are to be generated automatically, it forms a database that the generator can refer to. Jabref imports 15 reference formats and links to full text documents on the web. It is freely available from:
+
+\begin{flushleft}
+\texttt{\url{www.jabref.org}}
+\end{flushleft}
+
+Zotero is also freely available and supports a large number of reference formats. It allows users to add pdf's, images and web pages to its databases and users can also add annotations to each entry:
+
+\begin{flushleft}
+\texttt{\url{www.zotero.org}}
+\end{flushleft}
+
+
+A fundamental requirement for LaTeX is a viewer so that typesetters can view the results of their labours. There are a large number of viewers for \textsc{pdf} files, and ProTeX comes with Sumatra \textsc{pdf}. The latest version is available from:
+
+
+\begin{flushleft}
+\texttt{\url{www.sumatrapdfreader.org/free-pdf-reader}}
+\end{flushleft}
+
+
+GSView is a free postscript viewer for Windows. It requires Ghostscript which is installed automatically by ProTeX. GSview v5.0 is available from:
+
+\begin{flushleft}
+\texttt{\url{www.ghostgum.com.au/software/gsview.htm}}
+\end{flushleft}
+
+
+LaTeX handles a limited range of graphic formats so an image converter is useful. Image Magic is freely available and reads and writes over 200 graphic formats. It is available from:
+
+\begin{flushleft}
+\texttt{\url{www.imagemagick.org/script/index.php}}
+\end{flushleft}
+
+\clearpage
+
+
+\section{Running \LaTeXe}
+LaTeX is run from the command line by navigating to the project folder and then run on a marked-up text file. These have a \texttt{.tex} extension. To run it on a file named \texttt{TestFile.tex}:
+
+
+\begin{flushleft}
+\texttt{latex TestFile.tex}
+\end{flushleft}
+
+
+This produces a \textsc{dvi} file called \texttt{TestFile.dvi} that can be converted to postscript with \texttt{dvips}:
+
+
+\begin{flushleft}
+\texttt{dvips TestFile.dvi}
+\end{flushleft}
+
+
+If \textsc{pdf} format is preferred, use \textsc{pdf}latex:
+
+
+\begin{flushleft}
+\texttt{pdflatex TestFile.tex}
+\end{flushleft}
+
+
+It is convenient to run this from a \textsc{gui} interface. In TeXstudio, load a marked-up text file then go to
+
+
+\begin{flushleft}
+\texttt{Tools $\rightarrow$ Commands $\rightarrow$ LaTeX or PDFLaTeX}
+\end{flushleft}
+
+
+\begin{flushleft}
+and it will run automatically. In Kile, go to
+\end{flushleft}
+
+
+\begin{flushleft}
+\texttt{Build $\rightarrow$ Compile $\rightarrow$ LaTeX or PDFLaTeX }
+\end{flushleft}
+
+
+
+\clearpage
+
+
+\section{Project Management}
+
+The first step in creating a document with LaTeX is to write the text and save it as a plain text file into a project directory created specifically for that project. This text file is then marked up so that when it is compiled it becomes a formatted postscript or \textsc{pdf} document. The normal suffix for this file is \texttt{.tex}. During compilation, LaTeX will produce several other files and having a project directory will help keep all of them together. This directory should also contain any graphic files and reference databases so that LaTeX can find them.
+
+
+\subsection{Postscript vs \textsc{pdf}}
+
+One of the first things to consider is if the document is to be produced in postscript or Portable Document Format (\textsc{pdf}). Postscript is the `gold standard’ for printed documents and produces the highest quality files for printing. \textsc{pdf} supports hypertext links and live connections to websites and are somewhat smaller than postscript files. Postscript documents require no specific instructions. \textsc{pdf} files have options for file metadata and hyperlinks and these require \textsc{pdf}LaTeX. See the section on \textsc{pdf} document compilation below for how to include these in your document.
+
+
+\clearpage
+
+
+\section{LaTeX Conventions}
+
+LaTeX documents have two parts: the preamble and the document text. The preamble defines the document's global properties such as the template for the document, paper size, fonts and margins and loads packages that contain functions that will be used to format the text. The first command is \texttt{\textbackslash documentclass\{TemplateName\}} Packages are loaded with the \texttt{\textbackslash usepackage[Options]\{PackageName\}} command. The required package name is placed between the curly braces and a list of options separated by commas are listed between square brackets:
+
+
+\begin{flushleft}
+\texttt{\textbackslash documentclass\{TemplateName\} \\
+\textbackslash usepackage[Option1, Option2]\{PackageName\}}
+\end{flushleft}
+
+
+After the preamble comes the document text. This is contained inside the \texttt{document} environment and includes the text, graphs, tables, lists etc.
+
+The simplest document uses LaTeX's default settings and requires only that the document class be specified and that the text be placed in the \texttt{document} environment. The following creates an article class document with everything else left at the default settings:
+
+\begin{flushleft}
+\texttt{\textbackslash documentclass\{article\} \\
+\textbackslash begin\{document\} \\
+Document Text Here \\
+\textbackslash end\{document\}} \\
+\end{flushleft}
+
+
+\subsection{Commands}
+
+Commands in LaTeX begin with a \texttt{\textbackslash}. This is one of LaTeX's special characters and alerts LaTeX that the following is an instruction rather than text. This is followed by a command and the object of the command is often placed between curly braces: \texttt{\textbackslash Command\{Object\}}. To format a section of text in italics, the \texttt{\textbackslash textit\{\}} command tells LaTeX that the text inside the curly braces is to be formatted in italics:
+
+
+\begin{flushleft}
+\texttt{\textbackslash textit\{Lorem ipsum dolor sit amet, consectetur adipiscing elit.\}}
+\end{flushleft}
+
+
+\begin{flushleft}
+produces
+\end{flushleft}
+
+
+\begin{flushleft}
+\textit{Lorem ipsum dolor sit amet, consectetur adipiscing elit.}
+\end{flushleft}
+
+
+Commands are also used to select special characters: A \$ is one of LaTeX's control characters, so a \texttt{\textbackslash} must be added to tell LaTeX that it should be processed as text: \texttt{\textbackslash \$} produces \texttt{\$}. Commands for all of LaTeX's control characters is in Table 8.
+
+It is always a good idea to annotate your code. Annotations can be added to LaTeX code by starting comment lines with a \texttt{\%}. This will stop LaTeX from attempting to run it and returning an error message:
+
+
+\begin{flushleft}
+\texttt{
+\% This is a comment. \\
+}
+\end{flushleft}
+
+
+\clearpage
+
+
+\section{Preamble}
+
+
+Every LaTeX document has a preamble which contains instructions regarding document template, page size and other options that will affect it as a whole. It is the first part of any document and goes before the body of the text. The first line of the preamble is:
+
+
+\begin{flushleft}
+\texttt{\textbackslash documentclass[Options]\{DocumentTemplate\}} \\
+\end{flushleft}
+
+
+This specifies the template for the document. The base options are \texttt{article}, \texttt{book}, \texttt{letter} or \texttt{report}. There are a wide range of templates and some organisations produce their own. If one of these is required, it is named here and will be loaded when the document is compiled. After the template is selected, options define font size, paper size, number of columns and whether it is to be printed on one side of the page or two.
+
+LaTeX's defaults are: a 10pt font size, a paper size of 8.5'' x 11'', which is the US standard letter size, portrait orientation, a separate title page for the report class but not the others, typesetting in one column, and printing on one side of the page only. All these can be customised. A summary of commands and options are outlined in Tables 2 and 3.
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{ll}
+\hline
+Option & Command \\
+\hline
+Document Type & \texttt{letter, article, report, book} \\
+Typeface Size (pts) & \texttt{10, 11, 12} \\
+Title Page & \texttt{titlepage, notitlepage} \\
+Columns & \texttt{onecolumn, twocolumn} \\
+Layout & \texttt{oneside, twoside} \\
+\hline
+\end{tabular}
+\caption{Document class options}
+\end{center}
+\end{table}
+
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{lll}
+\hline
+Size & Measurement(mm) & Command \\
+\hline
+A4 & 210 x 297 & \texttt{a4paper} \\
+A5 & 148 x 210 & \texttt{a5paper} \\
+B5 & 176 x 250 & \texttt{b5paper} \\
+Executive & 185 x 267 & \texttt{executivepaper} \\
+Legal & 216 x 356 & \texttt{legalpaper} \\
+Letter & 216 x 279 & \texttt{letterpaper} \\
+\hline
+\end{tabular}
+\caption{Paper sizes}
+\end{center}
+\end{table}
+
+
+The following code creates an article class document with A4 sized paper and a 12-point font. The other options will stay at their default settings:
+
+
+\begin{flushleft}
+\texttt{\textbackslash documentclass[12pt, a4paper]\{article\}} \\
+\end{flushleft}
+
+
+After the document type is defined, packages that will be used are loaded with
+
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage[Options]\{PackageName\}} \\
+\end{flushleft}
+
+
+The first package is \texttt{setspace}. This package supports single, one-and-a-half and double spacing with \texttt{\textbackslash singlespacing}, \texttt{\textbackslash onehalfspacing} and \texttt{\textbackslash doublespacing}. This will change the spacing of the entire document, but figures, tables and footnotes will be unaffected. \texttt{setspace} is loaded in the preamble and the required spacing is specified in the document text after \texttt{\textbackslash begin\{document\}}. LaTeX's default spacing is single spaced:
+
+
+\begin{flushleft}
+\texttt{\textbackslash documentclass[a4paper]\{article\} \\
+\textbackslash usepackage\{setspace\} \\
+\textellipsis \\
+\textbackslash begin\{document\} \\
+\textbackslash doublespacing \\
+\textellipsis \\
+\textbackslash end \{document\}
+}
+\end{flushleft}
+
+
+The next package is \texttt{graphicx} which is part of the `graphics' bundle. It provides facilities to include graphics in documents with it's \texttt{\textbackslash includegraphics\{\}} command.
+
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage\{graphicx\}} \\
+\end{flushleft}
+
+
+\texttt{xcolor} provides support for coloured text, text background, page colour or a coloured box surrounding text. This is especially helpful for \textsc{pdf} documents that contain hot links as they can be highlighted. If no options are specified, 19 colours are available. Options \texttt{dvipsnames}, \texttt{svgnames} and \texttt{x11names} provide 68, 151 and 317 colours respectively. Colours and their designations for each of these options are provided in \texttt{xcolour's} documentation (Kern, 2021). If specific colours are required, this package can produce them in rgb and cmyk format. The following loads \texttt{xcolor} with \texttt{dvipsnames} to provide 68 colour choices:
+
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage[dvipsnames]\{xcolor\} }
+\end{flushleft}
+
+
+The \texttt{babel} package supports hyphenation for justified text and has facilities for about 200 languages. This includes three dialects of English: \texttt{english} refers to American and Canadian, \texttt{UKenglish} refers to British, and \texttt{australian} refers to Australian and New Zealand English. If the document contains text in multiple languages, all of them should be listed as options. There may be multiple options for language: English has three and German, two. Consult the documentation for details on each one. The language listed last is the document’s main language:
+
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage[french, ngerman, australian]\{babel\}}
+\end{flushleft}
+
+
+This loads French, German and Australian English with Australian being the document's main language. To swap to one of the other languages in the text, use \texttt{\textbackslash selectlang- uage\{LanguageName\}} for blocks of text such as paragraphs, and \texttt{\textbackslash foreignlanguage\{Lang- uageName\}\{Text\}} for text that is part of a paragraph:
+
+
+\begin{flushleft}
+\texttt{Text in English. \\
+\textbackslash selectlanguage\{french\} \\
+Texte en Francais. \\
+\textbackslash selectlanguage\{australian\} \\
+Returns to Australian English. \\}
+\end{flushleft}
+
+\begin{flushleft}
+or
+\end{flushleft}
+
+\begin{flushleft}
+\texttt{\textbackslash foreignlanguage\{french\}\{Texte en Francais.\}}
+\end{flushleft}
+
+
+If LaTeX doesn't hyphenate words properly, they will run into the right-hand margin. To fix this, a list of troublesome words and their syllables can be specified with the \texttt{hyphenat} package and it's \texttt{hyphenation\{\}} command. These words are placed in hyphenation's curly braces divided into syllables with a -. For example, `hyphenate' is defined as \texttt{hy-phen-ate} and preamble is \texttt{pre-am-ble}. Multiple words are separated by commas:
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage[french, ngerman, australian]\{babel\} \\
+\textbackslash usepackage\{hyphenat\} \\
+\textbackslash hyphenation\{hy-phen-ate, pre-am-ble\}} \\
+\end{flushleft}
+
+
+Dates can be added with datetime2. This package is loaded with
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage\{datetime2\}}
+\end{flushleft}
+
+\begin{flushleft}
+and the date itself inserted in the text with
+\end{flushleft}
+
+\begin{flushleft}
+\texttt{\textbackslash today}
+\end{flushleft}
+
+This will add the date the document was compiled in \textsc{yyyy-mm-dd} format so it will look like 2020-09-19. The format can be changed with the \texttt{useregional} option. This will set the date format so that it matches the language specified when \texttt{babel} was loaded. The \texttt{babel} example above specifies Australian English and will format the timestamp to \textsc{dd mm yyyy}. To add the day of the week, add the \texttt{showdow} option:
+
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage[useregional, showdow]\{datetime2\}}
+\end{flushleft}
+
+
+The \texttt{fontenc} package gives access to the glyphs of language. This is done through what LaTeX refers to as encodings. The default, and LaTeX's original encoding option, is \texttt{OT1}. This gives access to glyphs for the English alphabet. Unfortunately, this encoding doesn’t allow hyphenation of accented characters that appear in non-English latin alphabets. If the document is in English this doesn’t matter, but if the document contains glyphs from other latin alphabets, the encoding should be changed to \texttt{T1}. This has a wider range of glyphs. LaTeX provides encodings for a range of languages: Cyrillic, African Latin, Vietnamese, Greek, Armenian etc. If text for languages in alphabets other than latin are included in your document, encodings for these will have to be loaded as well. For this, see Mittelbach, et al (2016).
+
+TS1 is a coding that gives access to symbols. This can be loaded at the same time as the font encoding(s). The required encodings are specified in options. To load both T1 and TS1 encodings:
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage[TS1, T1]\{fontenc\}}
+\end{flushleft}
+
+LaTeX's default setting for text alignment is justified with both edges of the text block aligned evenly. If the text block should be left aligned with a ragged right side, \texttt{ragged2e} will format the text as this for the entire document with the \texttt{document} option. To use this package, two additional packages should be present on your LaTeX installation. These are \texttt{everysel} and \texttt{footmisc}. The following loads \texttt{ragged2e} and sets the document text alignment to left aligned with a ragged right side:
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage[document]{ragged2e}}
+\end{flushleft}
+
+The next line loads the font for the document. If it is not defined, it will default to Computer Modern, which is LaTeX's original font. LaTeX provides a wide range of fonts with an option to install more if required. This example loads Latin Modern with the package name \texttt{lmodern}.
+
+
+\begin{flushleft}
+ \texttt{\textbackslash usepackage\{lmodern\}}
+\end{flushleft}
+
+
+Table 4 contains a short font sampler and package names. A wide range of fonts is available. The TeX User Group maintains the LaTeX font catalogue. See the Resources section for a link to this.
+
+
+
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{lll}
+\hline
+Font Name & Package Name & Sample Text \\
+\hline
+Avant Garde & \texttt{avant} & \fontfamily{pag}\selectfont Lorem ipsum dolor sit amet \\
+Bookman & \texttt{bookman} & \fontfamily{pbk}\selectfont Lorem ipsum dolor sit amet \\
+Charter & \texttt{charter} & \fontfamily{bch}\selectfont Lorem ipsum dolor sit amet \\
+Courier & \texttt{courier} & \fontfamily{pcr}\selectfont Lorem ipsum dolor sit amet \\
+Computer Modern & \texttt{cmodern} & \fontfamily{cmr}\selectfont Lorem ipsum dolor sit amet \\
+Helvetica & \texttt{helvet} & \fontfamily{phv}\selectfont Lorem ipsum dolor sit amet \\
+Latin Modern & \texttt{lmodern} & \fontfamily{lmr}\selectfont Lorem ipsum dolor sit amet \\
+New Century Schoolbook & \texttt{newcent} & \fontfamily{pnc}\selectfont Lorem ipsum dolor sit amet \\
+Palatino & \texttt{mathpazo} & \fontfamily{ppl}\selectfont Lorem ipsum dolor sit amet \\
+Times New Roman & \texttt{mathptmx} & \fontfamily{ptm}\selectfont Lorem ipsum dolor sit amet \\
+Utopia & \texttt{utopia} & \fontfamily{put}\selectfont Lorem ipsum dolor sit amet \\
+\hline
+\end{tabular}
+\caption{A short font sampler}
+\end{center}
+\end{table}
+
+
+Margins can be adjusted from the defaults with the \texttt{geometry} package. The left, right, top, and bottom margins can all be specified with this, and an allowance made for binding if the document is to be bound. It accepts units in millimetres, centimetres, points, and inches (mm, cm, pt, in). The options are listed in Table 5.
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{ll}
+\hline
+Option & Comment \\
+\hline
+\texttt{left} & Left Margin \\
+\texttt{right} & Right Margin \\
+\texttt{top} & Top Margin \\
+\texttt{bottom} & Bottom Margin \\
+\texttt{bindingoffset} & Add space for binding \\
+\texttt{headheight} & Changes the size of the header \\
+\hline
+\end{tabular}
+\caption{Geometry options}
+\end{center}
+\end{table}
+
+
+If headers and footers are contained in the document, LaTeX may sometimes return an error message to say that the headheight is too small. This can be corrected with the \texttt{\textbackslash headheight} option. For this document I have set the headheight to $1.5\times$ the point size of the text for a headheight of 18pt. The header is designed to hold a single line of text, but can be adjusted to accommodate multiple lines. The following code sets the left margin at 1.5 inches, the right margin at 1 inch, the top margin at 1 inch, the bottom margin at 1.75 inches and the height for the header to 18 point:
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage[left=1.5in, right=1.0in, top=1.0in, bottom=1.75in,
+headheight=18pt]\{geometry\}}
+\end{flushleft}
+
+The page margins can be changed mid-document with \texttt{\textbackslash newgeometry\{\}}. It reverts to the original settings with\texttt{ \textbackslash restore\{geometry\}}. The \texttt{\textbackslash newgeometry\{\}} command has the same options as those used by geometry in the preamble:
+
+
+\begin{flushleft}
+\texttt{\textbackslash newgeometry\{left=0.5in, right=0.5in, top=0.5in, bottom=0.5in\}}
+\end{flushleft}
+
+This changes the margins to a uniform 0.5 inches. To change it back:
+
+\begin{flushleft}
+\texttt{\textbackslash restore\{geometry\}}
+\end{flushleft}
+
+
+Headers and footers are handled by the \texttt{fancyhdr} package. This package provides header and footer placement to the left, centre and right and customizable lines for both headers and footers. The pagestyle should be changed to fancy if this package is used:
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage\{fancyhdr\} \\
+\textbackslash pagestyle\{fancy\}}
+\end{flushleft}
+
+There are six locations available: left, centre and right headers and footers. The location and contents of each header or footer is specified as:
+
+
+\begin{flushleft}
+\texttt{\textbackslash lhead\{Left Top\} \\
+\textbackslash chead\{Centre Top\} \\
+\textbackslash rhead\{Right Top\} \\
+\textbackslash lfoot\{Bottom Left\} \\
+\textbackslash cfoot\{Bottom Centre\} \\
+\textbackslash rfoot\{Bottom Right\}} \\
+\end{flushleft}
+
+The text of the header or footer is contained between the curly braces. These can contain page numbers and dates generated using \texttt{\textbackslash thepage} and \texttt{\textbackslash today} respectively. Decorative lines can be added to both headers and footers with
+
+\begin{flushleft}
+\texttt{\textbackslash renewcommand{headrulewidth}{0.5pt} \\
+\textbackslash renewcommand{footrulewidth}{0.5pt}}
+\end{flushleft}
+
+This will place lines that are 0.5 points wide beneath the header and above the footer. Line weights can be increased and decreased between 0.0 and 1.0. A line weight of 0.0pt produces no lines.
+
+The following code loads \texttt{fancyhdr} and places a running header or title top left, page numbers top right, today’s date stamp bottom left and decorative lines 0.5 points thick below the footer and above the header:
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage\{fancyhdr\} \\
+\textbackslash pagestyle\{fancy\} \\
+\textbackslash lhead\{Running Header or Title.\} \\
+\textbackslash chead\{\} \\
+\textbackslash rhead\{\textbackslash thepage\} \\
+\textbackslash lfoot\{\textbackslash today\} \\
+\textbackslash cfoot\{\} \\
+\textbackslash rfoot\{\} \\
+\textbackslash renewcommand\{\textbackslash headrulewidth\}\{0.5pt\} \\
+\textbackslash renewcommand\{\textbackslash footrulewidth\}\{0.5pt\}} \\
+\end{flushleft}
+
+
+\clearpage
+
+
+\section{Text}
+
+The body of the text for LaTeX documents is enclosed in the document environment:
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{document\} \\
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus, ultrices in porttitor in, accumsan non quam. Nam consectetur porttitor rhoncus. \\
+\textbackslash end\{document\}} \\
+\end{flushleft}
+
+
+Either a blank line between two sections of text, or \texttt{\textbackslash par}, denotes a paragraph break and \texttt{\textbackslash \textbackslash} starts a new line.
+
+Page breaks can be inserted with, \texttt{\textbackslash newpage} or \texttt{\textbackslash clearpage}. \texttt{\textbackslash clearpage} is preferred if the document contains chapters or sections with tables, figures, or graphics. This will place them at the end of their section if LaTeX is unable to place them in the text.
+
+
+
+\subsection{Fonts and Styles}
+
+The base font and size for LaTeX documents is loaded in the preamble. Font styles, such as \textbf{bold} or \textit{italic} can be changed in the body of the text. A list and their commands are contained in Table 6. These can be changed in two ways. The first is to insert the text in curly braces following a command. This
+
+\begin{flushleft}
+\texttt{\textbackslash textit\{Lorem ipsum dolor sit amet . . .\}}
+\end{flushleft}
+
+\begin{flushleft}
+formats the text between the curly braces in italics as
+\end{flushleft}
+
+\begin{flushleft}
+\textit{Lorem ipsum dolor sit amet . . . }
+\end{flushleft}
+
+
+This is useful for single words or sentences, but for blocks of text an environment is convenient:
+
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{itshape\} \\
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus, ultrices in porttitor in, accumsan non quam. Nam consectetur porttitor rhoncus. Curabitur eu est et leo feugiat auctor vel quis lorem. \\
+\textbackslash end\{itshape\}} \\
+\end{flushleft}
+
+\begin{flushleft}
+This produces:
+\end{flushleft}
+
+\begin{flushleft}
+\begin{itshape}
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus, ultrices in porttitor in, accumsan non quam. Nam consectetur porttitor rhoncus. Curabitur eu est et leo feugiat auctor vel quis lorem.
+\end{itshape}
+\end{flushleft}
+
+
+Fonts can be made larger or smaller from {\tiny Tiny} to {Normal Size} to {\Huge Huge} in a similar way. Table 7 gives commands for resizing fonts.
+
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{lll}
+\hline
+Style & Command & Sample \\
+\hline
+Roman & \texttt{\textbackslash textrm\{\}} & \textrm{Roman} \\
+Sans Serif & \texttt{\textbackslash textsf\{\}} & \textsf{Sans Serif} \\
+Typewriter & \texttt{\textbackslash texttt\{\}} & \texttt{Typewriter} \\
+Italics & \texttt{\textbackslash textit\{\}} & \textit{Italics} \\
+Boldface & \texttt{\textbackslash textbf\{\}} & \textbf{Boldface} \\
+Small Caps & \texttt{\textbackslash textsc\{\}} & \textsc{Small Caps} \\
+Underline & \texttt{\textbackslash underline\{\}} & \underline{Underline} \\
+Emphasis & \texttt{\textbackslash emph\{\}} & \emph{Emphasis} \\
+Slanted & \texttt{\textbackslash textsl\{\}} & \textsl{Slanted} \\
+\hline
+\end{tabular}
+\caption{Text styles}
+\end{center}
+\end{table}
+
+
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{lc}
+\hline
+Command & Sample \\
+\hline
+\texttt{\textbackslash tiny\{\}} & \tiny{Lorem ipsum dolor sit amet} \\
+\texttt{\textbackslash scriptsize\{\}} & \scriptsize{Lorem ipsum dolor sit amet} \\
+\texttt{\textbackslash footnotesize\{\}} & \footnotesize{Lorem ipsum dolor sit amet} \\
+\texttt{\textbackslash small\{\}} & \small{Lorem ipsum dolor sit amet} \\
+\texttt{\textbackslash normalsize\{\}} & \normalsize{Lorem ipsum dolor sit amet} \\
+\texttt{\textbackslash large\{\}} & \large{Lorem ipsum dolor sit amet} \\
+\texttt{\textbackslash Large\{\}} & \Large{Lorem ipsum dolor sit amet} \\
+\texttt{\textbackslash LARGE\{\}} & \LARGE{Lorem ipsum dolor sit amet} \\
+\texttt{\textbackslash huge\{\}} & \huge{Lorem ipsum dolor sit amet} \\
+\texttt{\textbackslash Huge\{\}} & \Huge{Lorem ipsum dolor sit amet} \\
+\hline
+\end{tabular}
+\caption{Font sizes}
+\end{center}
+\end{table}
+
+
+
+If \texttt{xcolor} is loaded, fonts, font backgrounds and pages can be re-coloured. \texttt{\{\textbackslash color\{Col- orName\} Text\}} changes the colour of text inside the curly braces. To change it to red:
+
+
+\begin{flushleft}
+\texttt{\{\textbackslash color\{red\} Lorem ipsum dolor sit amet, consectetur adipiscing elit.\}}
+\end{flushleft}
+
+
+\begin{flushleft}
+produces:
+\end{flushleft}
+
+
+\begin{flushleft}
+{\color {red} Lorem ipsum dolor sit amet, consectetur adipiscing elit.}\\
+\end{flushleft}
+
+
+\begin{flushleft}
+\texttt{\textbackslash colorbox\{\}} changes the background colour, in this case to Sea Green:
+\end{flushleft}
+
+
+\begin{flushleft}
+\texttt{{\textbackslash colorbox\{SeaGreen\}\{Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet\}\}}}
+\end{flushleft}
+
+
+\begin{flushleft}
+produces
+\end{flushleft}
+
+
+\begin{flushleft}
+{\colorbox {SeaGreen}{Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet}}
+\end{flushleft}
+
+
+\begin{flushleft}
+Both can be changed by specifying the background colour and the text colour:
+\end{flushleft}
+
+
+\begin{flushleft}
+\texttt{\textbackslash colorbox\{SkyBlue\}\textbackslash color\{Red\}\{Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet\}}
+\end{flushleft}
+
+
+\begin{flushleft}
+produces:
+\end{flushleft}
+
+
+\begin{flushleft}
+\colorbox{SkyBlue}{\color{Red} Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet}
+\end{flushleft}
+
+
+
+\subsection{Special Characters}
+
+
+The following symbols are used by LaTeX as part of it's programming instructions so require marking up if they are to be placed in a document as text:
+
+\begin{center}
+\{ \} \% \& \$ \_ \# \textbackslash \~{} \^{} \\
+\end{center}
+
+
+These and the commands to produce them along with a range of other common symbols are in Table 8.
+
+Quotation marks are produced by using the \texttt{\textasciigrave} and \texttt{\textquotesingle} keys or \texttt{\textbackslash textquoteleft} and \texttt{\textbackslash textquoteright}: \texttt{\textasciigrave Word'} produces `Word'. For double quotes, use two of each or \texttt{\textbackslash textquotedblleft and \textbackslash textquotedblright} : \texttt{\textasciigrave \textasciigrave Word''} produces ``Word''. The \texttt{\textasciigrave} key is located at the top left of the keyboard below the \texttt{esc} key. The \texttt{\textquotesingle} symbol is the usual single quotation mark. The \textquotedbl\ key on the keyboard is not used. Three dashes are available: the hyphen (\texttt{\textminus} produces -: `The syllables of hyphenate are hy-phen-ate') the en dash for ranges (\texttt{\textminus \textminus} produces --: 1939--45) and the em dash for punctuation (\texttt{\textminus \textminus \textminus} produces ---: `Your profundities --- My truisms').
+
+
+\begin{table}
+\begin{center}
+\begin{tabular}{llll}
+\hline
+Symbol & Command & Symbol & Command \\
+\hline
+\{ & \texttt{\textbackslash \{ } & --- & \texttt{\textminus \textminus \textminus or \textbackslash textemdash} \\
+
+\} & \texttt{\textbackslash \}} & \textasciigrave & \small \texttt{\textbackslash asciigrave} \\
+
+\% & \texttt{\textbackslash \%} & \textasciiacute & \texttt{\textbackslash textasciiacute} \\
+
+\& & \texttt{\textbackslash \& } & \textasciibreve & \texttt{\textbackslash textasciibreve} \\
+
+\$ & \texttt{\textbackslash \$ or \textbackslash textdollar} & \textbullet & \texttt{\textbackslash textbullet} \\
+
+\_ & \texttt{\textbackslash \_} & \textopenbullet & \texttt{\textbackslash textopenbullet} \\
+
+\# & \texttt{\textbackslash \#} & \textellipsis & \texttt{\textbackslash textellipsis} \\
+
+\textbackslash & \texttt{\textbackslash textbackslash} & \textasteriskcentered & \texttt{\textbackslash textasteriskcentered} \\
+
+\~{} & \texttt{\textbackslash \textasciitilde\{\} } & \textdagger & \texttt{\textbackslash textdagger} \\
+
+\^{} & \texttt{\textbackslash \textasciicircum\{\} } & \textdaggerdbl & \texttt{\textbackslash textdaggerdbl} \\
+
+\textquoteleft & \texttt{\textbackslash textquoteleft or \textasciigrave} & \textparagraph & \texttt{\textbackslash textparagraph} \\
+
+\textquoteright & \texttt{\textbackslash textquoteright or \textquotesingle} & \textsection & \texttt{\textbackslash textsection} \\
+
+\textquotedblleft & \texttt{\textbackslash textquotedblleft or \textasciigrave \textasciigrave} & \texttildelow & \texttt{\textbackslash texttildelow} \\
+
+\textquotedblright & \texttt{\textbackslash textquotedblright or \textquotesingle \textquotesingle} & \textasciitilde & \texttt{\textbackslash textasciitilde} \\
+
+-- & \texttt{\textminus \textminus or \textbackslash textendash} &
+\textperiodcentered & \texttt{\textbackslash textperiodcentered} \\
+
+\textsterling & \texttt{\textbackslash textsterling} & \texteuro & \texttt{\textbackslash texteuro} \\
+
+\textcent & \texttt{\textbackslash textcent} & \textyen & \texttt{\textbackslash textyen} \\
+
+\textdegree & \texttt{\textbackslash textdegree} & \textcelsius & \texttt{\textbackslash textcelsius} \\
+
+\textcopyleft & \texttt{\textbackslash textcopyleft} & \texttrademark & \texttt{\textbackslash texttrademark} \\
+
+\texttimes & \texttt{\textbackslash texttimes} & \textdiv & \texttt{\textbackslash textdiv} \\
+
+\textminus & \texttt{\textbackslash textminus} & \textgreater & \texttt{\textbackslash textgreater} \\
+
+\textless & \texttt{\textbackslash textless} & \textcopyright & \texttt{\textbackslash textcopyright} \\
+
+\hline
+\end{tabular}
+\caption{Special characters and some common symbols}
+\end{center}
+\end{table}
+
+This list is a very small sample of the symbols available in LaTeX. Scott Pakin maintains `The Comprehensive LaTeX Symbol List' which provides a list of over 18,000 symbols. This list is freely available from \textsc{ctan}. A link is provided in the Reference section.
+
+
+\subsection{Accents and Non-Latin Glyphs}
+
+Most glyphs that have diacritics in latin alphabets, such as German \"{A} \"{a}; \"{O} \"{o}, \"{U} \"{u}, Spanish \~{n}, Polish \k{A} \k{a}, \'{C} \'{c}, \k{E} \k{e}, \'{N} \'{n}, etc can be represented by using the commands in Table 9. LaTeX also provides non-latin glyphs for the alphabets that have them, such as the German Eszett \ss\ and Scandinavian O-Slash \O\ or \o.\ These can be produced by the commands in Table 10. Table 11 contains commands for some punctuation marks such as the guillemots, Spanish \textexclamdown\ and \textquestiondown\ and base quotes \quotedblbase.\ Some of these glyphs combine with the following word automatically so it can be challenging to represent them as single letters if this is required. The code \texttt{\textbackslash ss is a German letter} might compile as `\ss is a German letter'. This may be fixed by inserting a \texttt{\textbackslash} after \texttt{\textbackslash ss}: \texttt{\textbackslash ss\textbackslash\ is a German letter} compiles as `\ss\ is a German letter'.
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{lll}
+\hline
+Diacritic & Code & Example \\
+\hline
+Acute & \texttt{\textbackslash \'{}\{\}} & {\Large \'{a}} \\
+Breve & \texttt{\textbackslash u\{\}} & {\Large \u{a}} \\
+Caron / Ha\v{c}ek & \texttt{\textbackslash v\{\}} & {\Large \v{a}} \\
+Cedilla & \texttt{\textbackslash c\{\}} & {\Large \c{a}} \\
+Circumflex & \texttt{\textbackslash \^{}\{\}} & {\Large \^{a}} \\
+Dot & \texttt{\textbackslash .\{\}} & {\Large \.{a}} \\
+Grave & \texttt{\textbackslash \textquotesingle\{\}} & {\Large \`{a}} \\
+Hungarian Umlaut & \texttt{\textbackslash H\{\}} & {\Large \H{o}} \\
+Macron & \texttt{\textbackslash =\{\}} & {\Large \={a}} \\
+Ogonek & \texttt{\textbackslash k\{\}} & {\large \k{a}} \\
+Tilde & \texttt{\textbackslash $\sim$\{\}} & {\Large \~{a}} \\
+Umlaut & \texttt{\textbackslash "\{\}} & {\Large \"{a}} \\
+\hline
+\end{tabular}
+\caption{Common diacritics}
+\end{center}
+\end{table}
+
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{lll}
+\hline
+Name & Upper Case & Lower Case \\
+\hline
+\textbf{German} & & \\
+Eszett & & \texttt{\textbackslash ss} \ss \\
+& & \\
+\textbf{Polish} & & \\
+Barred L & \texttt{\textbackslash L} \L & \texttt{\textbackslash l} \l \\
+& & \\
+\textbf{Scandinavian} & &\\
+Ash & \texttt{\textbackslash AE} \AE & \texttt{\textbackslash ae} \ae \\
+Eth & \texttt{\textbackslash dh} \DH & \texttt{\textbackslash dh} \dh \\
+OE ligature & \texttt{\textbackslash OE} \OE & \texttt{\textbackslash oe} \oe \\
+O-Slash & \texttt{\textbackslash O} \O & \texttt{\textbackslash o} \o \\
+Ring-A & \texttt{\textbackslash r\{A\}} \r{A} & \texttt{\textbackslash r\{a\}} \r{a} \\
+Thorn & \texttt{\textbackslash TH} \TH & \texttt{\textbackslash th} \th \\
+\hline
+\end{tabular}
+\caption{Some non-latin alphabetical glyphs}
+\end{center}
+\end{table}
+
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{lll}
+\hline
+Name & Symbol & Command \\
+\hline
+Double Guillemot: Left & \guillemetleft & \texttt{\textbackslash guillemetleft} \\
+Double Guillemot: Right & \guillemetright & \texttt{\textbackslash guillemetright} \\
+Single Guillemot: Left & \guilsinglleft & \texttt{\textbackslash guilsinglleft} \\
+Single Guillemot: Right & \guilsinglright & \texttt{\textbackslash guilsinglright} \\
+Exclamation Down & \textexclamdown & \texttt{\textbackslash textexclamdown} \\
+Question Mark Down & \textquestiondown & \texttt{\textbackslash textquestiondown} \\
+Base quote: Double & \quotedblbase & \texttt{\textbackslash quotedblbase} \\
+Base Quote: Single & \quotesinglbase & \texttt{\textbackslash quotesinglbase} \\
+Elipsis & \textellipsis & \texttt{\textbackslash textellipsis} \\
+\hline
+\end{tabular}
+\caption{Punctuation marks}
+\end{center}
+\end{table}
+
+
+\clearpage
+
+
+\section{Body}
+
+
+\subsection{Sectioning}
+
+Sectioning is the division of a document into parts, chapters, sections, subsections, subsubsections, paragraphs, and subparagraphs. These divisions are available for all LaTeX document classes, apart from letter. Chapters are not available for article class documents. Sectioning commands have the same format as text formatting commands: \texttt{\textbackslash SectionType\{SectionTitle\}}. LaTeX numbers them automatically and the text of the \texttt{SectionTitle} will appear in the Table of Contents. The following creates two sections, each with two subsections:
+
+
+\begin{flushleft}
+\texttt{\textbackslash section\{Section 1\}} \\
+\texttt{\textbackslash subsection\{1A\}} \\
+\texttt{\textbackslash subsection\{1B\}} \\
+
+\texttt{\textbackslash section\{Section 2\}} \\
+\texttt{\textbackslash subsection\{2A\}} \\
+\texttt{\textbackslash subsection\{2B\}} \\
+\end{flushleft}
+
+
+\subsection{Environments}
+
+Environments are used in the body of the document to define a particular behaviour. These range from abstracts, tables, and figures, lists and sections of text with differing justification. LaTeX environments are enclosed with \texttt{\textbackslash begin\{EnvironmentName\}} and \texttt{\textbackslash end\{EnvironmentName\}}. A short list of environments is in Table 12:
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{EnvironmentName\} \\
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus, ultrices in porttitor in, accumsan non quam. Nam consectetur porttitor rhoncus.\\
+\textbackslash end\{EnvironmentName\} \\}
+\end{flushleft}
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{ll}
+\hline
+Environment & Description\\
+\hline
+abstract & Text of a document’s abstract. \\
+centre & Centred text. \\
+flushleft & Left aligned text. \\
+flushright & Right aligned text. \\
+description & Labelled lists. \\
+enumerate & Numbered lists. \\
+itemize & Bulleted lists. \\
+quotation & Include quotes. \\
+verbatim & Text in typewriter font that that will appear exactly as typed. \\
+table & Floating tables. \\
+figure & Floating figures. \\
+\hline
+\end{tabular}
+\caption{Environment options}
+\end{center}
+\end{table}
+
+
+The verbatim environment prints the entered text in a typewriter font with no formatting. If the text isn't broken with a \texttt{<return>}, it produces text in one long line which may run across the page, into the right-hand margin and then off the page entirely. The first 100 digits of $\pi$ may appear on your editor as
+
+
+\begin{verbatim}
+The first 100 digits of pi:
+3.14159265358979323846264338327950288419716939937510582097494459
+23078164062862089986280348253421170679
+\end{verbatim}
+
+
+\begin{flushleft}
+but when the document is compiled, it produces:
+\end{flushleft}
+
+\begin{verbatim}
+The first 100 digits of pi:
+3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
+\end{verbatim}
+
+This can be fixed by breaking the text into lengths that don't cross into the margins. In this example, it is broken into 25-digit sections with a \textbackslash \textbackslash to signal the end of a line:
+
+
+\begin{verbatim}
+The first 100 digits of pi: \\
+3.141592653589793238462643 \\
+38327950288419716939937510 \\
+58209749445923078164062862 \\
+089986280348253421170679 \\
+\end{verbatim}
+
+
+\begin{flushleft}
+This produces:
+\end{flushleft}
+
+\begin{flushleft}
+The first 100 digits of pi: \\
+3.141592653589793238462643 \\
+38327950288419716939937510 \\
+58209749445923078164062862 \\
+089986280348253421170679 \\
+\end{flushleft}
+
+
+
+\subsection{Lists}
+
+Lists may be bulleted or numbered and are created with the \texttt{itemize} and \texttt{enumerate} environments respectively. List items are specified with \texttt{\textbackslash item Item Text}. For a bulleted list:
+
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{itemize\} \\
+\textbackslash item Item 1 \\
+\textbackslash item Item 2 \\
+\textbackslash item Item 3 \\
+\textbackslash end\{itemize\}}
+\end{flushleft}
+
+\begin{flushleft}
+produces:
+\end{flushleft}
+
+\begin{itemize}
+\item Item 1
+\item Item 2
+\item Item 3
+\end{itemize}
+
+
+The symbol denoting each item in a bulleted list can be changed by adding an option after each \texttt{\textbackslash item} command in square brackets:
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{itemize\} \\
+\textbackslash item[--] Item 1 \\
+\textbackslash item[\textbackslash textasteriskcentered] Item 2 \\
+\textbackslash item[\textbackslash textdagger] Item 3 \\
+\textbackslash end\{itemize\}}
+\end{flushleft}
+
+\begin{flushleft}
+produces:
+\end{flushleft}
+
+\begin{itemize}
+\item[--] Item 1
+\item[\textasteriskcentered] Item 2
+\item[\textdagger] Item 3
+\end{itemize}
+
+
+Numbered lists are created by the enumerate environment:
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{enumerate\} \\
+\textbackslash item Item 1 \\
+\textbackslash item Item 2 \\
+\textbackslash item Item 3 \\
+\textbackslash end\{enumerate\} \\}
+\end{flushleft}
+
+\begin{flushleft}
+produces:
+\end{flushleft}
+
+\begin{enumerate}
+\item Item 1
+\item Item 2
+\item Item 3
+\end{enumerate}
+
+
+
+Lists can be nested with additional enumerate commands. Each sub-category is contained within its own enumerate environment.
+
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{enumerate\} \\
+\textbackslash item Item 1 \\
+\textbackslash begin\{enumerate\} \\
+\textbackslash item Item A \\
+\textbackslash item Item B \\
+\textbackslash item item C \\
+\textbackslash end\{enumerate\} \\
+\textbackslash item Item 2 \\
+\textbackslash item Item 3 \\
+\textbackslash end\{enumerate\} \\}
+\end{flushleft}
+
+
+\begin{flushleft}
+produces:
+\end{flushleft}
+
+
+\begin{enumerate}
+\item Item 1
+\begin{enumerate}
+\item Item A
+\item Item B
+\item Item C
+\end{enumerate}
+\item Item 2
+\item Item 3
+\end{enumerate}
+
+
+
+
+
+\subsection{Tables and Figures}
+
+Tables and figures are placed inside their own environments. LaTeX places them so that they don’t break across pages. Because their location can vary from the location specified by typesetters, they are referred to as floats. Using \texttt{\textbackslash clearpage} at the end of each section places any outstanding floats at the end of the section before the new one starts.
+
+
+
+\subsubsection{Tables}
+Tables are placed within the \texttt{table} environment. A caption can be added with \texttt{\textbackslash caption \{Caption Text\}} just before \texttt{\textbackslash end\{table\}} so that it appears below the table. LaTeX numbers them automatically and the caption will appear in the List of Tables.
+
+Tables consist of three nested environments: \texttt{table}, \texttt{table alignment} and \texttt{tabular}. After \texttt{\textbackslash begin\{table\}}, comes the table’s alignment on the page. This can be \texttt{centre}, \texttt{flushleft} or \texttt{flushright}. The table's contents and formatting instructions are contained in the \texttt{tabular} environment. Instructions relating to the number of columns, their alignment and if there are vertical lines separating the columns are on the same line as \texttt{\textbackslash begin\{tabular\}} in curly braces. The alignment commands are \texttt{l} = left aligned, \texttt{c} = centred and \texttt{r} = right aligned. Vertical lines are added with a \texttt{|}. This key is located on the keyboard below \texttt{backspace}.
+
+The code below shows the three nesting levels for a table with four columns with column 1 left aligned, columns two and three centred and column 4 right aligned. Vertical lines separate columns 1--2, 2--3 and 3--4.
+
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{table\} }\\
+\texttt{\textbackslash begin\{center\}} \\
+\texttt{\textbackslash begin\{tabular\}{l|c|c|r}} \\
+\bigskip
+\texttt{. . . Table Contents . . . }\\
+\bigskip
+\texttt{\textbackslash end\{tabular\}} \\
+\texttt{\textbackslash caption\{Caption text\}} \\
+\texttt{\textbackslash end\{center\}} \\
+\texttt{\textbackslash end\{table\}} \\
+\end{flushleft}
+
+
+The data for the table is placed inside the \texttt{tabular} environment. Each cell is separated with an \texttt{\&} and the end of each row is specified with \texttt{\textbackslash \textbackslash}. The following example creates a table with four columns and four rows. The first row contains the column headings with horizontal lines above and below it with another horizontal line at the bottom of the table. These lines are added with \texttt{\textbackslash hline}. Table 13 shows the compiled output.
+
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{table\}} \\
+\texttt{\textbackslash begin\{center\}} \\
+\texttt{\textbackslash begin\{tabular\}\{l|c|c|r\}} \\
+\texttt{\textbackslash hline} \\
+\texttt{Column 1 \& Column 2 \& Column 3 \& Column 4 \textbackslash \textbackslash} \\
+\texttt{\textbackslash hline} \\
+\texttt{Row 1 \& Text 2 \& Text 3 \& 3.157 \textbackslash \textbackslash} \\
+\texttt{Row 2 \& Text 2 \& Text 3 \& 14.930 \textbackslash \textbackslash} \\
+\texttt{Row 3 \& Text 2 \& Text 3 \& 0.720 \textbackslash \textbackslash} \\
+\texttt{\textbackslash hline} \\
+\texttt{\textbackslash end\{tabular\}} \\
+\texttt{\textbackslash caption\{Example Table.\}} \\
+\texttt{\textbackslash end\{center\}} \\
+\texttt{\textbackslash end\{table\}} \\
+\end{flushleft}
+
+
+
+
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{l|c|c|r}
+\hline
+Column 1 & Column 2 & Column 3 & Column 4 \\
+\hline
+Row 1 & Text 2 & Text 3 & 3.157 \\
+Row 2 & Text 2 & Text 3 & 14.930 \\
+Row 3 & Text 2 & Text 3 & 0.720 \\
+\hline
+\end{tabular}
+\caption{Sample table}
+\end{center}
+\end{table}
+
+
+\subsubsection{Figures}
+
+The first step in importing graphic files is to place the file in the project directory so that LaTeX can find it. Graphics are placed within documents inside the \texttt{figure} environment. The placement of the figure on the page can be: \texttt{centre}, \texttt{flushleft} or \texttt{flushright}.
+
+The code below loads a graphic file named \texttt{Drawing} as a centred graphic in the \texttt{figure} environment with a caption. The caption text will appear as the figure title in the List of Figures in the front matter. \texttt{\textbackslash includegraphics\{\}} tells LaTeX the name of the graphic file to load and \texttt{scale} specifies whether to reduce or enlarge: 1.0 is original size, 0.5 is half size and 2.0 is double. In this case, the file size is reduced to 50\% of the original which is about 10cm square.
+
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{figure\}} \\
+\texttt{\textbackslash center} \\
+\texttt{\textbackslash includegraphics[scale=0.5]\{Drawing.pdf\}} \\
+\texttt{\textbackslash caption\{Spiral\}} \\
+\texttt{\textbackslash end\{figure\}} \\
+\end{flushleft}
+
+
+\begin{flushleft}
+produces:
+\end{flushleft}
+
+
+\begin{figure}
+\center
+\includegraphics[scale=0.5]{Drawing.eps}
+\caption{Spiral}
+\end{figure}
+
+
+LaTeX works with a quite limited range of graphic formats. Documents in postscript format can only contain graphics in postscript (\texttt{ps}) or encapsulated postscript (\texttt{eps}) formats. These are vector formats. Postscript is the `gold standard' for printed documents but unfortunately, postscript only works with whole pages. \texttt{eps} works with graphics of any size so this is the preferred format for graphics that are smaller than this. Documents in \textsc{pdf} format created by \textsc{pdf}LaTeX can contain graphics in \texttt{pdf}, \texttt{png}, \texttt{jpeg} or \texttt{jbig2} formats. If the file is in a different format, it will have to be converted to one of these.
+
+There are two types of graphic formats: vector and raster. Vector formats, such as postscript (\texttt{ps}), encapsulated postscript (\texttt{eps}) and Portable Document Format (\texttt{pdf}), are based on geometric concepts such as points, lines, and curves. Vector format file sizes are relatively small because the file contains only the instructions for the points, lines and curves that make up the graphic. It is most often used for line art, such as diagrams, graphs, 3D models, etc. It has the advantage that it can be upsampled or downsampled (enlarged or shrunk) without any loss of quality.
+
+Raster graphics are made up of pixels. Each pixel has a value relating to its individual colour attached to it. They are produced by digital cameras, scanners, etc and the file sizes are relatively large. These formats cannot be manipulated, that is resized, rotated, etc without losing information which lowers quality. Any image processing should be completed before they are inserted into a document and the image sized to the dimensions that it will be printed at.
+
+If the document is to be printed professionally and it includes raster graphics, it is worth consulting the printers for their requirements. This may include specific file formats, resolution, which is often 300ppi, a colour space, often cmyk or rgb, and colour depth which may be restricted to 8bit.
+
+
+\clearpage
+
+
+\subsection{Page Numbering}
+The default page numbering in LaTeX is Arabic numerals which begin on the first page. Table 14 shows the available styles:
+
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{lll}
+\hline
+Style & Numeral Type & Example Text \\
+\hline
+\texttt{arabic} & Arabic numerals & 1, 2, 3, 4, 5 \\
+\texttt{roman} & Lower-case Roman numerals & i, ii, iii, iv, v \\
+\texttt{Roman} & Upper-case Roman numerals & I, II, III, IV, V \\
+\texttt{alph} & Lower-case letters & a, b, c, d, e, f \\
+\texttt{Alph} & Upper-case letters & A, B, C, D, E, F \\
+\hline
+\end{tabular}
+\caption{Page numbering options}
+\end{center}
+\end{table}
+
+
+
+
+If the page numbering for the document is to be other than arabic, it can be specified after \texttt{\textbackslash begin\{document\}} with \texttt{\textbackslash pagenumbering\{StyleName\}}:
+
+\begin{flushleft}
+\texttt{\textbackslash documentclass[a4paper]\{article\}} \\
+\bigskip
+\texttt{. . . \\}
+\bigskip
+\texttt{\textbackslash begin\{document\}} \\
+\texttt{\textbackslash pagenumbering\{StyleName\}} \\
+\bigskip
+\texttt{Document Text} \\
+\bigskip
+\texttt{\textbackslash end\{document\}} \\
+\end{flushleft}
+
+It is possible to have two styles in a document, for instance lower case Roman numerals for the front matter including the index, Table of Contents, List of Figures, etc, and Arabic numerals for the remainder of the text.
+
+This is handled with \texttt{\textbackslash pagenumbering\{StyleName\}}. At the beginning of the front matter, insert \texttt{\textbackslash pagenumbering\{roman\}} and when the main matter of the document begins, insert \texttt{\textbackslash pagenumbering\{arabic\}}. If the title page is to be un-numbered, insert \texttt{\textbackslash thispagestyle\{empty\}} following \texttt{\textbackslash maketitle}.
+
+The following creates an article class document with an un-numbered title page containing an abstract, a Table of Contents, List of Figures and List of Tables on separate pages with Roman numerals and the body text in Arabic numerals.
+
+\begin{flushleft}
+\texttt{\textbackslash documentclass[a4paper]\{article\}} \\
+\texttt{\textbackslash title\{The Lost Secrets of \textbackslash LaTeXe\}} \\
+\texttt{\textbackslash author\{Anonymous\}} \\
+
+\texttt{\textbackslash begin\{document\}} \\
+\texttt{\textbackslash maketitle} \\
+\texttt{\textbackslash thispagestyle\{empty\}} \\
+\texttt{\textbackslash begin\{abstract\}} \\
+\texttt{Abstract text.} \\
+\texttt{\textbackslash end\{abstract\}} \\
+\texttt{\textbackslash clearpage} \\
+\texttt{\textbackslash pagenumbering\{roman\}} \\
+\texttt{\textbackslash tableofcontents} \\
+\texttt{\textbackslash clearpage} \\
+\texttt{\textbackslash listoffigures} \\
+\texttt{\textbackslash clearpage} \\
+\texttt{\textbackslash listoftables} \\
+\texttt{\textbackslash clearpage} \\
+\texttt{\textbackslash pagenumbering\{arabic\}} \\
+
+\texttt{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus, ultrices in porttitor in, accumsan non quam. Nam consectetur porttitor rhoncus . . . } \\
+
+\texttt{\textbackslash end\{document\}} \\
+\end{flushleft}
+
+To change the page numbering counter, use \texttt{\textbackslash setcounter\{page\}\{PageNumber\}}.
+
+\begin{flushleft}
+\texttt{\textbackslash pagenumbering\{arabic\}} \\
+\texttt{\textbackslash setcounter\{page\}\{5\}} \\
+\end{flushleft}
+
+This changes the page numbering to Arabic and begins the page count at page 5.
+
+
+\clearpage
+
+
+\section{Mathematics in LaTeX}
+
+One of LaTeX’s strengths is its facilities for mathematical equations. This is done by either activating math mode, or by using the \texttt{equation} or \texttt{displaymath} environments.
+
+Math mode is activated by enclosing a mathematical expression within a pair of \texttt{\$}. This is especially useful when an equation is set within text such as when you need to include mathematics, such as the results of a statistical test, in a report:
+
+
+\begin{flushleft}
+\texttt{... main effect for the interaction between the factors was significant \$(F(2,125) = 3.146, p < 0.05, \textbackslash omega\^{}2 = 0.032)\$, though the practical significance ...}
+\end{flushleft}
+
+
+\begin{flushleft}
+produces
+\end{flushleft}
+
+
+\begin{flushleft}
+. . . main effect for the interaction between the factors was significant $(F(2,125) = 3.146, p < 0.05, \omega^2 = 0.032)$, though the practical significance . . .
+\end{flushleft}
+
+\texttt{\^{}} and \texttt{\_} produce superscripts and subscripts respectively, and fractions can be typeset with \texttt{\$\textbackslash frac\{Numerator\}\{Denominator\}\$}. Three quarters is \texttt{\$\textbackslash frac\{3\}\{4\}\$}: $\frac{3}{4}$ and square roots are \texttt{\$\textbackslash sqrt\{16\}\$}: $\sqrt{16}$. Special characters can be created with diacritics: \texttt{\$\textbackslash bar\{X\}\$} produces $\bar{X}$ and \texttt{\$\textbackslash hat\{Y\}\$} produces $\hat{Y}$.
+
+Summation notation is available with the \texttt{\$\textbackslash sum\$} command which produces the Greek letter $\sum$. The \texttt{\textbackslash limits} command places upper and lower limits. The lower limit of summation is defined with a subscript and the upper limit of summation is defined with a superscript: \texttt{\$\textbackslash sum \textbackslash limits\_\{i=1\}\^{}\{n\}\$} produces $\sum\limits_{i=1}^{n}$. Elements can be added with \texttt{\$x\_i = x\_1 + x\_2 + x\_3 \textbackslash ldots x\_n\$}. This produces
+
+\begin{displaymath}
+\sum\limits_{i=1}^{n}x_i = x_1 + x_2 + x_3 \ldots x_n
+\end{displaymath}
+
+Some common mathematical symbols and the commands to produce them are shown in Table 15. LaTeX comes with Greek letters in upper and lowercase fonts. It provides all the lower-case letters and some of the upper-case letters. Pakin (2021) recommends that upper case Latin glyphs be used for the missing Greek upper-case letters. A list of these and their commands are in Table 16.
+
+
+\begin{table}
+\begin{center}
+\begin{tabular}{ll}
+\hline
+$a \times b + c - d \div e$ & \texttt{a \textbackslash times b + c - d \textbackslash div e} \\
+$a < b > c$ & \texttt{a < b > c} \\
+$a^2 + b^2 = c^2$ & \texttt{a\^{}2 + b\^{}2 = c\^{}2} \\
+$y - y_1 = m(x - x_1)$ & \texttt{y - y\_1 = m(x - x\_1)} \\
+$f'$ & \texttt{f'} \\
+$n!$ & \texttt{n!} \\
+$\frac{a}{b}$ & \texttt{\textbackslash frac\{a\}\{b\}} \\
+$a \choose b$ & \texttt{a \textbackslash choose b} \\
+$\sqrt a$ & \texttt{\textbackslash sqrt a} \\
+$\root n \of {a}$ & \texttt{\textbackslash root n \textbackslash of \{a\}} \\
+$\overbrace{abc}$ & \texttt{\textbackslash overbrace\{\}} \\
+$\underbrace{abc}$ & \texttt{\textbackslash underbrace\{\}} \\
+$\sum$ & \texttt{\textbackslash sum} \\
+$\sum\limits_{i=0}^{\infty}$ & \texttt{\textbackslash sum \textbackslash limits \_\{i=0\}\{\textbackslash infty\} }\\
+\hline
+\end{tabular}
+\caption{Some common mathematical symbols}
+\end{center}
+\end{table}
+
+
+
+\begin{table}
+\begin{center}
+\begin{tabular}{llllllllll}
+\hline
+$\Gamma$ & \texttt{\textbackslash Gamma} & $\Delta$ & \texttt{\textbackslash Delta} & $\Theta$ & \texttt{\textbackslash Theta} & $\Lambda$ & \texttt{\textbackslash Lambda} & $\Xi$ & \texttt{\textbackslash Xi} \\
+
+$\Pi$ & \texttt{\textbackslash Pi} & $\Sigma$ & \texttt{\textbackslash Sigma} & $\Upsilon$ & \texttt{\textbackslash Upsilon} & $\Phi$ & \texttt{\textbackslash Phi} & $\Psi$ & \texttt{\textbackslash Psi} \\
+
+$\Omega$ & \texttt{\textbackslash Omega} \\
+
+$\alpha$ & \texttt{\textbackslash alpha} & $\beta$ & \texttt{\textbackslash beta} & $\gamma$ & \texttt{\textbackslash gamma} & $\delta$ & \texttt{\textbackslash delta} & $\epsilon$ & \texttt{\textbackslash epsilon} \\
+
+$\zeta$ & \texttt{\textbackslash zeta} & $\eta$ & \texttt{\textbackslash eta} & $\theta$ & \texttt{\textbackslash theta} & $\iota$ & \texttt{\textbackslash iota} & $\kappa$ & \texttt{\textbackslash kappa} \\
+
+$\lambda$ & \texttt{\textbackslash lambda} & $\mu$ & \texttt{\textbackslash mu} & $\nu$& \texttt{\textbackslash nu} & $\xi$& \texttt{\textbackslash xi} & $\pi$& \texttt{\textbackslash pi} \\
+
+$\rho$ & \texttt{\textbackslash rho} & $\sigma$ & \texttt{\textbackslash sigma} & $\tau$ & \texttt{\textbackslash tau} & $\upsilon$ & \texttt{\textbackslash upsilon} & $\phi$ & \texttt{\textbackslash phi} \\
+
+$\chi$ & \texttt{\textbackslash chi} & $\psi$ & \texttt{\textbackslash psi} & $\omega$ & \texttt{\textbackslash omega} \\
+
+\hline
+\end{tabular}
+\caption{Upper and lowercase Greek letters}
+\end{center}
+\end{table}
+
+
+Both \texttt{equation} and \texttt{displaymath} environments print one-line equations. The difference between them is that formulae set with \texttt{equation} are numbered:
+
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{equation\}} \\
+\texttt{\textbackslash bar\{X\} = \textbackslash frac\{\textbackslash Sigma X\}\{n\}} \\
+\texttt{\textbackslash end\{equation\}} \\
+\end{flushleft}
+
+
+\begin{equation}
+\bar{X} = \frac{\Sigma X}{n}
+\end{equation}
+
+
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{displaymath\}} \\
+\texttt{\textbackslash bar\{X\} = \textbackslash frac\{\textbackslash Sigma X\}\{n\}} \\
+\texttt{\textbackslash end\{displaymath\}} \\
+\end{flushleft}
+
+
+
+\begin{displaymath}
+\bar{X} = \frac{\Sigma X}{n}
+\end{displaymath}
+
+This is a very short preview of LaTeX's mathematical capabilities. It has extensive facilities for matrices and functions and symbols and diacritics. For documentation on mathematics and symbols in LaTeX, see Berry (2021) and for a comprehensive list of symbols, see Pakin (2021).
+
+
+\clearpage
+
+
+\section{Front Matter}
+
+\subsection{Title Pages}
+
+Title pages are defined in the final part of the preamble with \texttt{\textbackslash title\{\}}, \texttt{\textbackslash author\{\}} and \texttt{\textbackslash date\{\}}. The current date can be placed inside \texttt{\textbackslash date\{\}} with \texttt{\textbackslash today}, or a date can be entered manually. The title page is created with \texttt{\textbackslash maketitle} which follows \texttt{\textbackslash begin\{document\}}:
+
+\begin{flushleft}
+\texttt{\textbackslash documentclass[a4paper]\{article\}} \\
+
+\texttt{\textbackslash title\{The Lost Secrets of \textbackslash LaTeXe\}} \\
+\texttt{\textbackslash author\{Herodotus\}} \\
+\texttt{\textbackslash date\{\textbackslash today\}} \\
+
+\texttt{\textbackslash begin\{document\}} \\
+\texttt{\textbackslash maketitle} \\
+
+\texttt{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus, ultrices in porttitor in, accumsan non quam. Nam consectetur porttitor rhoncus . . . }
+
+\texttt{\textbackslash end\{document\}}
+\end{flushleft}
+
+
+\subsection{The Abstract}
+
+Abstracts are created by the abstract environment:
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{abstract\}} \\
+
+\texttt{Lorem ipsum dolor sit amet . . . }
+
+\texttt{\textbackslash end\{abstract\}} \\
+\end{flushleft}
+
+
+The abstract can appear on the title page or on a page of its own by inserting pagebreaks following \texttt{\textbackslash maketitle} and after the end of the abstract environment. This example places the abstract on a page of its own after the title page:
+
+
+\begin{flushleft}
+\texttt{\textbackslash documentclass[a4paper]\{article\}} \\
+
+\texttt{\textbackslash title\{The Lost Secrets of \textbackslash LaTeXe\}} \\
+\texttt{\textbackslash author\{Herodotus\}} \\
+\texttt{\textbackslash date\{\textbackslash today\}} \\
+
+\texttt{\textbackslash begin\{document\}} \\
+\texttt{\textbackslash maketitle }\\
+\texttt{\textbackslash clearpage} \\
+\texttt{\textbackslash begin\{abstract\}} \\
+\texttt{Lorem ipsum dolor sit amet . . .} \\
+\texttt{\textbackslash end\{abstract\}} \\
+
+\texttt{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus, ultrices in porttitor in, accumsan non quam. Nam consectetur porttitor rhoncus . . . }
+
+
+\texttt{\textbackslash end\{document\}} \\
+\end{flushleft}
+
+
+
+\subsection{Table of Contents, List of Figures and List of Tables.}
+
+The Table of Contents, List of Figures and List of Tables are inserted with:
+
+\begin{flushleft}
+\texttt{\textbackslash tableofcontents} \\
+
+\texttt{\textbackslash listoffigures} \\
+
+\texttt{\textbackslash listoftables} \\
+\end{flushleft}
+
+A page break after each command will place them on separate pages. LaTeX will generate these automatically and number them when the document is compiled from the sectioning commands and the figure and table captions.
+
+The following creates a document with a title page containing the title and abstract, a Table of Contents, List of Figures and List of Tables. These are placed on separate pages and numbered in Roman numerals, with the body of the text in Arabic numerals. It is double spaced with a ragged right margin. Page breaks are specified with \texttt{\textbackslash clearpage}:
+
+\begin{flushleft}
+\texttt{\textbackslash documentclass[a4paper]\{article\}} \\
+
+\texttt{\textbackslash title\{The Lost Secrets of \textbackslash LaTeXe\}} \\
+\texttt{\textbackslash author\{Herodotus\}} \\
+\texttt{\textbackslash date\{\textbackslash today\}} \\
+
+\texttt{\textbackslash begin\{document\}} \\
+\texttt{\textbackslash maketitle} \\
+\texttt{\textbackslash doublespacing} \\
+
+\texttt{\textbackslash begin\{abstract\}} \\
+
+\texttt{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus, ultrices in porttitor in, accumsan non quam. Nam consectetur porttitor rhoncus . . . }
+
+\texttt{\textbackslash end\{abstract\}} \\
+\texttt{\textbackslash thispagestyle\{empty\}} \\
+\texttt{\textbackslash clearpage} \\
+\texttt{\textbackslash pagenumbering\{roman\}} \\
+\texttt{\textbackslash tableofcontents} \\
+\texttt{\textbackslash clearpage} \\
+\texttt{\textbackslash listoffigures} \\
+\texttt{\textbackslash clearpage} \\
+\texttt{\textbackslash listoftables} \\
+\texttt{\textbackslash clearpage} \\
+\texttt{\textbackslash pagenumbering\{arabic\}} \\
+
+\texttt{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus, ultrices in porttitor in, accumsan non quam. Nam consectetur porttitor rhoncus . . . }
+
+\texttt{\textbackslash end\{document\}} \\
+
+\end{flushleft}
+
+
+\clearpage
+
+
+\section{End Matter}
+
+
+\subsection{References}
+A reference list allows readers to verify sources used by scholars, gives information about the type of source, and allows readers to locate them. Referencing is a fundamental requirement of scholarly writing. In LaTeX, these may be placed in the text manually or generated automatically.
+
+
+\subsubsection{The Olde Fashioned Way}
+References can be inserted into a document manually for referencing systems such as MLA, Chicago, Vancouver, and APA styles. A reference list can be added in the appropriate place in the document with \texttt{\textbackslash section\{title\}} command, and the references listed below this manually. Footnotes can be created by placing a \texttt{\textbackslash footnote\{Your Text\}} at the appropriate location in the text. When the document is compiled, the location is numbered with a superscript, and \texttt{Your Text} appears at the bottom of the page. Doing this by hand can be quite laborious and painstaking but it has the advantage that it will match any style requirement.
+
+
+\subsubsection{Automatically Generated References: Bib\LaTeX}
+LaTeX has facilities to generate references and reference lists automatically. BibLaTeX is a modern package for managing references and a wide range of packages with reference styles are available for it from \textsc{ctan}.
+
+BibLaTeX requires that several packages be present on your LaTeX installation. Not all of them may be present so it is worth checking. These are: \texttt{e-TeX}, \texttt{etoolbox}, \texttt{kvoptions}, \texttt{logreq}, \texttt{pdftexcmds v0.27 or above}, \texttt{keyval}, \texttt{ifthen}, \texttt{url}, \texttt{xpatch}. Recommended packages are \texttt{babel v3.9r or above}, or \texttt{polyglossia} and \texttt{csquotes}. These recommended packages provide facilities for languages other than American English and should be loaded before \texttt{biblatex}. \texttt{biber} is also required as this processes and sorts the reference list during the document's compilation.
+
+The first step in using LaTeX's automated reference system is to create a reference database for the project. This contains a list of primary, secondary, and tertiary sources used in the document in \texttt{.bib} format and is saved to the project directory so that LaTeX can find it when the document is compiled. LaTeX's format for entries for books and articles is this:
+
+\begin{verbatim}
+ @book{Paper10,
+ author = {A Paper and F Pen and B L K Ink},
+ title = {Our Book},
+ publisher = {First Authors Press},
+ year = {2010},
+ address = {Booktown}
+ }
+
+ @article{Kliker12,
+ author = {G Kliker and L Flash},
+ title = {Photographing Critics},
+ Journal = {The Journal of Critical Photography},
+ Year = {2012},
+ Volume = {12},
+ pages = {50-60}
+ }
+\end{verbatim}
+
+The standard reference types are \texttt{article}, \texttt{book}, \texttt{booklet}, \texttt{conference}, \texttt{inbook}, \texttt{incollection}, \texttt{inproceedings}, \texttt{manual}, \texttt{mastersthesis}, \texttt{misc}, \texttt{phdthesis}, \texttt{proceedings}, \texttt{techreport} and \texttt{unpublished}. This list is saved in \texttt{.bib} format.
+
+All bibliographical entries contain a unique key. This is contained in the first line. It can be anything, but the first author's surname and year of publication is memorable. If the database contains more than one publication by the same author(s) in the same year, they can be uniquely identified by adding a letter: Paper10a, Paper10b, Paper10c. This key is used to identify specific entries in the bibliography for use as identifiers in the text when automatic citation generators are used.
+
+A short list of common referencing styles and their packages is listed in Table 17. These can be installed if they are missing with LaTeX's Console. Additional information on these styles including limitations and incompatibilities is available in each package's documentation.
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{ll}
+\hline
+Reference Style & Package Name \\
+\hline
+American Psychological Association, 7th Edition & \texttt{biblatex-apa} \\
+Chicago Manual of Style, 17th Edition & \texttt{biblatex-chicago} \\
+MLA Handbook for Writers of Research Papers, 9th Edition & \texttt{biblatex-mla} \\
+Vancouver Style & \texttt{vancouver} \\
+\hline
+\end{tabular}
+\caption{BibLaTeX citations styles}
+\end{center}
+\end{table}
+
+
+\texttt{biblatex} is loaded in the preamble along with the required citation style and the name of the reference database. Required packages that are not automatically loaded, such as \texttt{babel} and \texttt{csquotes}, should be loaded with \texttt{\textbackslash usepackage{}} prior to \texttt{biblatex}. The required style is specified as an option in square brackets:
+
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage[style=apa]{biblatex}}
+\end{flushleft}
+
+
+\begin{flushleft}
+loads the American Psychological Association, 7th Edition style. \texttt{vancouver} loads the Vancouver style and \texttt{mla} loads the MLA style. There is no need to use the entire package name.
+\end{flushleft}
+
+The code below loads \texttt{biblatex}, specifies the name of the reference database with \texttt{\textbackslash addbibresource\{Databasename.bib\}} and places the reference list on a new page:
+
+
+\begin{verbatim}
+\usepackage{babel}
+\usepackage{csquotes}
+\usepackage[style=CitationStyle]{biblatex}
+\addbibresource{DatabaseName.bib}
+\begin{document}
+
+Document Text.
+
+\clearpage
+\nocite{*}
+\printbibliography
+\end{document}
+\end{verbatim}
+
+
+The \texttt{biblatex-chicago} style package is an exception to this. This package is loaded in place of \texttt{biblatex}, and the format is defined in options. This can be any of BibLaTeX's standard formats: \texttt{numeric}, \texttt{alphabetic}, \texttt{authordate} and \texttt{authortitle}. The following loads \texttt{biblatex-chicago} with the \texttt{authordate} option:
+
+
+\begin{verbatim}
+\usepackage[authordate]{biblatex-chicago}
+\end{verbatim}
+
+
+The reference list is placed inside the document environment at the desired location in the text with \texttt{\textbackslash printbibliography}. An optional command is \texttt{\textbackslash nocite\{\}}. This allows items that have not been explicitly referred to in the text, but are in the bibliographical database, to be included in the reference list. To include a specific item, it's unique key should be placed inside the curly brackets: \texttt{\textbackslash nocite\{ItemKey\}}. To include all the items in the bibliography, use a \texttt{\textasteriskcentered: \textbackslash nocite\{\textasteriskcentered\}}.
+
+Citations are placed in the text with \texttt{\textbackslash cite\{\}} or \texttt{\textbackslash parencite\{\}} with the reference key placed between curly braces. \texttt{\textbackslash cite\{Kliker12\}} produces a reference that is something like Kliker and Flash (2012). \texttt{\textbackslash parencite\{Kliker12\}} produces a citation in parentheses (Kliker and Flash, 2012).
+
+When documents with BibLaTeX citations are compiled, the citation processing package \texttt{biber} must also be run to process and sort the citations and reference list.
+
+Referencing styles are regularly revised, new ones appear, and institutions and publications may have their own versions of these. If an automated referencing system is used, the documentation should be consulted for shortcomings and possible incompatibilities with style requirements.
+
+
+
+\subsection{Appendices}
+
+Appendices can be added to documents with the \texttt{appendix} package. This is loaded in the preamble with
+
+\begin{verbatim}
+\usepackage{appendix}
+\end{verbatim}
+
+Options for this package are listed in Table 18:
+
+
+\begin{table}
+\small
+\begin{center}
+\begin{tabular}{ll}
+\hline
+\texttt{toc} & Includes a title in the Table of Contents prior to listing the appendices \\
+\texttt{page} & Places a title prior to the beginning of the appendices \\
+\texttt{title} & Adds the name `Appendix' to each appendix title \\
+\texttt{titletoc} & Does the same to each appendix title in the Table of Contents \\
+\texttt{header} & Does the same for each page header \\
+\hline
+\end{tabular}
+\caption{Options for package appendix}
+\end{center}
+\end{table}
+
+
+The appendices themselves are placed inside the appendix environment and are sectioned in the same way as the document text:
+
+\begin{flushleft}
+\texttt{\textbackslash begin\{appendices\}} \\
+\texttt{\textbackslash section\{Appendix 1\}} \\
+\texttt{\textbackslash section\{Appendix 2\}} \\
+\texttt{\textbackslash end\{appendices\}} \\
+\end{flushleft}
+
+To begin the appendices on a new page, and to place each new appendix on a new page, insert a page break before the appendix’s environment and the beginning of a new appendix.
+
+
+\clearpage
+
+
+\section{Compiling Documents}
+
+\subsection{Postscript Format}
+
+When the text is marked up, it must be compiled to produce a readable document. LaTeX can produce postscript and \textsc{pdf} files. Postscript is the `Gold Standard’ for printed documents and LaTeX produces these without any special commands in the preamble. These files are compiled by running LaTeX multiple times to resolve the front and back matter, tables, and lists, and if the document contains references created through BibLaTeX, Biber will also have to be run to sort and resolve these. The following scheme is suggested for documents that contain BibLaTeX references. \texttt{biber} can be omitted if they are not present.
+
+
+\begin{center}
+\texttt{latex} \\
+\texttt{biber} \\
+\texttt{latex} \\
+\texttt{latex} \\
+\end{center}
+
+This can be done through an editor’s \textsc{gui} interface. To do this in TeXstudio, go to the Menu: \\
+
+\begin{flushleft}
+\texttt{Tools $\rightarrow$ Commands $\rightarrow$ LaTeX} \\
+\end{flushleft}
+
+\begin{flushleft}
+In Kile: \\
+\end{flushleft}
+
+\begin{flushleft}
+\texttt{Build $\rightarrow$ Compile $\rightarrow$ LaTeX} \\
+\end{flushleft}
+
+If the document contains BibLaTeX references, \texttt{biber} is in the same menu. \\
+
+This creates a Device Independent (\texttt{.dvi}) file. This intermediate file is then converted to postscript. In TeXstudio: \\
+
+
+\begin{flushleft}
+\texttt{Tools $\rightarrow$ Commands $\rightarrow$ DVI->PS} \\
+\end{flushleft}
+
+\begin{flushleft}
+In Kile: \\
+\end{flushleft}
+
+\begin{flushleft}
+\texttt{Build $\rightarrow$ Convert $\rightarrow$ DVItoPS} \\
+\end{flushleft}
+
+
+LaTeX saves the resulting files to the project directory. \texttt{dvi} files can be viewed with \textsc{yap} (Yet Another Previewer), which comes with ProTeX. Click on the dvi file to activate it. Postscript files can be viewed with GSView.
+
+\subsection{\textsc{pdf} Format}
+
+\texttt{dvi} and postscript files can be converted to \textsc{pdf} format if required using the \texttt{DVI->PDF} or \texttt{PS->PDF} options in TeXstudio or the \texttt{DVItoPDF} or \texttt{PStoPDF} options in Kile. These will not contain any hyperlinks and there will be no metadata attached to the file. \textsc{pdf}LaTeX supports these features so is the recommended way to produce \textsc{pdf} files.
+
+Hypertext links can be inserted into \textsc{pdf} documents with the \texttt{hyperref} package. This automatically turns all internal references, such as the table of contents and lists of tables and figures, cross references, and citations into active hyperlinks. Clicking on the link will take you to the appropriate place in the text. This should be the last package loaded in the preamble.
+
+By default, text with hyperlinks appear framed in a colour depending on the type of link: citations in green, \textsc{url}'s in magenta and links in red, etc. This can be changed to coloured text by adding the \texttt{colorlinks=true} option. As with the default colours, this has different colours for each type of link. The \texttt{allcolors} option changes all links to a single colour. This colour can be any in the \texttt{xcolor} option nominated when \texttt{xcolor} was loaded in the preamble. The following code loads \texttt{hyperref} with hyperlinks being flagged with text coloured blue:
+
+
+\begin{flushleft}
+\texttt{\textbackslash usepackage[pdftex, colorlinks=true, allcolours=blue]\{hyperref\}} \\
+\end{flushleft}
+
+
+It is worth specifying a backend driver for this package, in this case, \texttt{pdftex}. This helps configure \texttt{hyperref} to the compiler used for the document. In the case of \textsc{pdf} files, \textsc{pdf}LaTeX.
+
+Links to external web pages can be created in the text with \texttt{\textbackslash url\{WebAddress\}}. The following code will create a link to \textsc{ctan}'s homepage at \texttt{www.ctan.org}:
+
+\begin{flushleft}
+\texttt{\textbackslash url\{www.ctan.org\}}
+\end{flushleft}
+
+
+The file metadata can be edited with \texttt{\textbackslash hypersetup\{pdfinfo=\{ . . .\}\}}. This contains information regarding the title, author, subject, creation date, modification date and keywords. It can be seen by accessing the document's properties. The following code provides only title, author, subject and keywords. It omits the creation date and modification date, so \textsc{pdf}LaTeX will automatically fill these fields with the current date:
+
+\begin{flushleft}
+\texttt{\textbackslash hypersetup\{pdfinfo=\{} \\
+\texttt{Title=\{The Lost Secrets of LaTeX2e\},} \\
+\texttt{Author=\{Herodotus\},} \\
+\texttt{Subject=\{LaTeX2e\},} \\
+\texttt{Keywords=\{PDFD; Latex; Guide\}} \\
+\texttt{\}\}} \\
+
+\end{flushleft}
+
+The creation date and modification date fields can be specified if required. The format is \texttt{\textsc{yyyymmddhhmmss}}: \texttt{\textsc{yyyy}} = year, \texttt{\textsc{mm}} = month, \texttt{\textsc{hh}} = hour, \texttt{\textsc{mm}} = minute and \texttt{\textsc{ss}} = second.
+
+As with postscript documents, \textsc{pdf}LaTeX will have to be run multiple times to resolve the front and back matter, tables, hyperlinks, etc.
+
+
+
+\clearpage
+
+
+\section{References}
+
+\begin{flushleft}
+Berry, K (2021) \LaTeXe: An Unofficial Reference Manual. Retrieved from: \\
+\texttt{\url{www.latexref.xyz/dev/latex2e.pdf}} \\
+\bigskip
+Carlisle, D.P. (2021). Packages in the `graphics’ bundle. Retrieved from: \\ \texttt{\url{www.ctan.org/pkg/graphicx}} \\
+\bigskip
+Clawson, J. (2021). biblatex-mla MLA Style Using Biblatex, Version 2.0. Retrieved from: \\ \texttt{\url{www.ctan.org/pkg/biblatex-mla}} \\
+\bigskip
+Fussner, D. (2021). The biblatex-chicago package: Style files for biblatex, Version 2.2. Retrieved from: \\ \texttt{\url{www.ctan.org/pkg/biblatex-chicago}} \\
+\bigskip
+Goosens, M., Mittelbach, F., Rahtz, S., Roegel, D. and Voss, H. (2008) \textit{The LaTeX Graphics Companion}. 2nd Edition. Boston: Addison-Wesley. \\
+\bigskip
+Kern, U. (2021).Extending LATEX’s color facilities: the xcolor package v2.13. Retrieved from: \\ \texttt{\url{www.ctan.org/pkg/xcolor}} \\
+\bigskip
+Kime, P. (2021). APA BibLaTeX Style. Citation and References macros for BibLaTeX, Version 9.15. Retrieved from: \\ \texttt{\url{www.ctan.org/pkg/biblatex-apa}} \\
+\bigskip
+Kime, P., Wemheuer, M., Lehman, P. (2020) The biblatex Package. Programmable Bibliographies and Citations. Retrieved from: \\
+\texttt{\url{www.ctan.org/pkg/biblatex}} \\
+\bigskip
+Lamport, L. (1986) \textit{LaTeX: A Document Preparation System}. 2nd Edition. Boston: Addison-Wesley.\\
+\bigskip
+Mittelbach, F., Fairbairns, R., Lemberg, W. and the LaTeX Project Team (2016). LaTeX font encodings. Retrieved from: \\
+\texttt{\url{www.ctan.org/pkg/encguide}} \\
+\bigskip
+Mittelbach, F. and Goosens, M. (2004). \textit{The LaTeX Companion}. 2nd Edition. Boston: Addison-Wesley.\\
+\bigskip
+Mori, L.F. (2007). Tables in LaTeX2e: Packages and Methods. \textit{The PracTeX Journal}, 1, 1-38.\\
+\bigskip
+Pakin, S., (2021). \textit{The Comprehensive LaTeX Symbol List}. Retrieved from: \\ \texttt{\url{www.ctan.org/pkg/comprehensive}}\\
+\bigskip
+Th\'{a}nh, H.T., Rahtz, S., Hagen, H., Henkel, H., Schroder, M. and Berry, K. (2021) \textit{The pdfTeX User Manual}. Revision 849. Retrieved from: \\
+\texttt{\url{www.ctan.org/pkg/pdftex}} \\
+\bigskip
+International Committee of Medical Journal Editors (2021). Recommendations for the Conduct, Reporting, Editing, and Publication of Scholarly Work in Medical Journals. Retrieved from: \\ \texttt{\url{http://icmje.org/icmje-recommendations.pdf}} \\
+
+
+\end{flushleft}
+
+
+\clearpage
+
+
+\begin{appendices}
+
+\section{Some Additional \LaTeXe Facilities}
+
+LaTeX has a much wider range of functionality than described in this document. Some add-on packages enhance existing facilities and others support music, presentations, and line drawings. Some of these are outlined in this Appendix.
+
+
+\paragraph{Languages}
+LaTeX has facilities for a wide range of modern languages and supports non-latin alphabets, such as Cyrrilic, and Logosyllabary, Syllabary, Abjad and Abugida writing systems. It also supports a range of extinct languages such a Phonecian, Egyptian Hieroglyphics, Linear B and Runic and provides symbols for phonetics.
+
+
+\paragraph{AMS-LaTeX}
+AMS Maths is a production of the American Mathematical Society. It provides a range of enhanced mathematical facilities and enhancements including for the LaTeX's standard document classes.
+
+
+\paragraph{Beamer}
+Beamer produces presentations. It is a document class that is loaded in the preamble. It is compatible with \textsc{pdf}LaTeX and can create slides and handouts in \textsc{pdf} and supports overlays and hyperlinks.
+
+
+\paragraph{PSTricks}
+PSTricks creates line drawings. It can draw mathematical functions, diagrams, and pictures. It creates postscript output, but it is possible to create \textsc{pdf} output with the \texttt{pdftricks} package.
+
+
+\paragraph{Music}
+A range of LaTeX packages support music. It can produce sheet music and sections of scores can be inserted into texts with \texttt{musixtex}. Songbooks can be created with the \texttt{songs} or \texttt{songbook} packages, \texttt{guitar}, \texttt{guitarchordschemes} and \texttt{guitartabs} support the guitar, \texttt{bagpipe} supports bagpipe music and gregorian chant is possible with \texttt{gregoriotex}.
+
+
+
+
+\clearpage
+
+
+
+\section{Resources}
+
+There are many resources for LaTeX. A short list of helpful texts along with documentation for the packages used in this document are in the reference list. In addition to this, there are significant online resources that are regularly updated.
+
+
+\paragraph{The Comprehensive \TeX Archive Network}
+This is the home of \LaTeXe\ and contains distributions, additional packages, and documentation. The `Starting out with \TeX, \LaTeX, and friends' page is a good place to start.
+
+\begin{flushleft}
+\texttt{\url{www.ctan.org/starter}}
+\end{flushleft}
+
+
+\paragraph{The TeX Users Group}
+The \TeX Users Group (\textsc{tug}) is a not-for-profit group interested in \TeX. Their website has an informative page for those new to LaTeX: `Getting started with TeX, LaTeX, and friends'. This contains information on installing TeX and LaTeX, links to documentation and sample documents.
+
+
+\begin{flushleft}
+\texttt{\url{http://tug.org/begin.html}}
+\end{flushleft}
+
+\textsc{tug} also hosts the `\LaTeX Font Catalogue'. This is a comprehensive list and sampler of freely available fonts for latin alphabets and documentation on how to use them.
+
+\begin{flushleft}
+\texttt{\url{http://tug.org/FontCatalogue/ }}
+\end{flushleft}
+
+
+\paragraph{The \TeX faq }
+The \TeX faq addresses questions about \TeX with informative answers on a wide variety of topics.
+
+\begin{flushleft}
+\texttt{\url{http://texfaq.org}}
+\end{flushleft}
+
+
+\clearpage
+
+
+\section{A Sample Script for a Postscript Document}
+
+\begin{verbatim}
+% Document Type
+\documentclass[12pt, a4paper]{article}
+
+% Line Spacing
+\usepackage{setspace}
+
+% Graphic management
+\usepackage{graphicx}
+
+% Colour Support with a colour palette from dvipsnames
+\usepackage[dvipsnames]{xcolor}
+
+% Hyphenation
+\usepackage[french, ngerman, australian]{babel}
+\usepackage{hyphenat}
+\hyphenation{}
+
+% Date formatting
+\usepackage[useregional, showdow]{datetime2}
+
+% Font and encoding
+\usepackage[TS1, T1]{fontenc}
+\usepackage{lmodern}
+
+% Page margins
+\usepackage[left=1.5in, right=1.0in, top=1.0in, bottom=1.75in,
+headheight=18pt]{geometry}
+
+% Headers and footers
+\usepackage{fancyhdr}
+\pagestyle{fancy}
+\lhead{Running Header or Title.}
+\chead{}
+\rhead{\thepage}
+\lfoot{\today}
+\cfoot{}
+\rfoot{}
+\renewcommand{\headrulewidth}{0.5pt}
+\renewcommand{\footrulewidth}{0.5pt}
+
+% The document title
+\title{The Lost Secrets of \LaTeXe}
+% The author(s)
+\author{Herodotus}
+
+\begin{document}
+% Create the title and abstract on the front page with no headers or
+% footers
+\maketitle
+\thispagestyle{empty}
+
+% Write the abstract
+\begin{abstract}
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus,
+ultrices in port titor in, accumsan non quam. Nam consectetur porttitor
+rhoncus. Curabitur eu est et leo feugiat auctor vel quis lorem.
+\end{abstract}
+
+% Create a new page for the Table of Contents and begin numbering the
+% pages in lower case Roman numerals for the front matter.
+\clearpage
+\pagenumbering{roman}
+\tableofcontents
+
+% Create a new page for the List of Figures
+\clearpage
+\listoffigures
+
+% Create a new page for the List of Tables
+\clearpage
+\listoftables
+
+% Create a new page to begin the text of the document and begin numbering
+% thepages in Arabic numerals.
+\clearpage
+\pagenumbering{arabic}
+
+% Define line spacing
+\doublespacing
+% Page Numbering
+\pagenumbering{arabic}
+
+
+% Beginning of the text.
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus,
+ultrices in porttitor in, accumsan non quam. Nam consectetur porttitor
+rhoncus. Curabitur eu est et leo feugiat auctor vel quis lorem. Ut et
+ligula dolor, sit amet consequat lorem. Aliquam porta eros sed velit
+imperdiet egestas. Maecenas tempus eros ut diam ullamcorper id dictum
+liberotempor. Donec quis augue quis magna condimentum lobortis. Quisque
+imperdiet ipsum vel magna viverra rutrum. Cras viverra molestie urna,
+vitae vestibulum turpis varius id.
+
+Vestibulum mollis, arcu iaculis bibendum varius, velit sapien blandit
+metus, ac posuere lorem nulla ac dolor. Maecenas urna elit, tincidunt in
+dapibus nec, vehicula eu dui. Duis lacinia fringilla massa. Cum sociis
+natoque penatibus et magnis dis parturient montes, nasceturridiculus mus.
+Ut consequat ultricies est, non rhoncus mauris congue porta.
+
+% End of the Text
+
+\end{document}
+
+\end{verbatim}
+\clearpage
+
+
+
+\section{GNU Free Documentation License}
+
+{\footnotesize
+\begin{center}
+
+Version 1.2, November 2002
+
+
+Copyright \copyright 2000,2001,2002 Free Software Foundation, Inc.
+
+\bigskip
+
+51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\bigskip
+
+Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+\end{center}
+
+
+\begin{center}
+Preamble
+\end{center}
+
+The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially.
+
+Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
+
+We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
+
+
+\begin{center}
+1. APPLICABILITY AND DEFINITIONS
+\end{center}
+
+This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The \textbf{"Document"}, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as \textbf{"you"}. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.
+
+A \textbf{"Modified Version"} of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
+
+A \textbf{"Secondary Section"} is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
+
+The \textbf{"Invariant Sections"} are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.
+
+The \textbf{"Cover Texts"} are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A \textbf{"Transparent"} copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called \textbf{"Opaque"}.
+
+Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.
+
+The \textbf{"Title Page"} means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
+
+A section \textbf{"Entitled XYZ"} means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as \textbf{"Acknowledgements"}, \textbf{"Dedications"}, \textbf{"Endorsements"}, or \textbf{"History"}.) To \textbf{"Preserve the Title"} of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.
+
+
+\begin{center}
+2. VERBATIM COPYING
+\end{center}
+
+You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and you may publicly display copies.
+
+
+\begin{center}
+3. COPYING IN QUANTITY
+\end{center}
+
+
+If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
+
+If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
+
+It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
+
+
+\begin{center}
+4. MODIFICATIONS
+\end{center}
+
+You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
+
+\begin{itemize}
+\item[A.]
+Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
+
+\item[B.]
+List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.
+
+\item[C.]
+State on the Title page the name of the publisher of the Modified Version, as the publisher.
+
+\item[D.]
+Preserve all the copyright notices of the Document.
+
+\item[E.]
+Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
+
+\item[F.]
+Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
+
+\item[G.]
+Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.
+
+\item[H.]
+Include an unaltered copy of this License.
+
+\item[I.]
+Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
+
+\item[J.]
+Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
+
+\item[K.]
+For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
+
+\item[L.]
+Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
+
+\item[M.]
+Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version.
+
+\item[N.]
+Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section.
+
+\item[O.]
+Preserve any Warranty Disclaimers.
+\end{itemize}
+
+If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
+
+
+\begin{center}
+5. COMBINING DOCUMENTS
+\end{center}
+
+
+You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements".
+
+\begin{center}
+6. COLLECTIONS OF DOCUMENTS
+\end{center}
+
+You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
+
+
+\begin{center}
+7. AGGREGATION WITH INDEPENDENT WORKS
+\end{center}
+
+
+A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.
+
+
+\begin{center}
+8. TRANSLATION
+\end{center}
+
+
+Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.
+
+
+\begin{center}
+9. TERMINATION
+\end{center}
+
+
+You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
+
+
+\begin{center}
+10. FUTURE REVISIONS OF THIS LICENSE
+\end{center}
+
+
+The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.
+
+Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.
+
+
+\begin{center}
+ADDENDUM: How to use this License for your documents
+\end{center}
+
+To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:
+
+\bigskip
+\begin{quote}
+Copyright \copyright YEAR YOUR NAME.\\
+Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
+\end{quote}
+\bigskip
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this:
+
+\bigskip
+\begin{quote}
+with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+\end{quote}
+\bigskip
+
+If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.
+
+If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.
+
+}
+
+\end{appendices}
+
+
+\end{document}
+
+
+
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md
index 187f8a43cd..d3ae57ada4 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md
@@ -1 +1 @@
-Fix frame numbering on frames when both `noframenumbering` and `allowframebreaks` options are used.
+Use Fira font also for math.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
index 2e6f3c2d04..a131b97bb8 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
@@ -1,4 +1,4 @@
-# Focus v3.2.0
+# Focus v3.3.0
A presentation theme for LaTeX Beamer that aims at a clean and minimalist design,
so to minimize distractions and put the focus directly on the content.
@@ -117,5 +117,6 @@ additions and modifications (in alphabetical order):
- [max](https://github.com/imntl)
- [MonsieurPi](https://github.com/MonsieurPi)
- [SFr682k](https://github.com/SFr682k)
+- [Zortaniac](https://github.com/Zortaniac)
A more detailed contribution list is found [here](https://github.com/elauksap/focus-beamertheme/graphs/contributors).
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
index edd9ca40d5..f61fec9585 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
@@ -278,7 +278,7 @@
% Enable noframenumbering option.
\define@key{beamerframe}{noframenumbering}[true]{%
- \setbeamertemplate{footline}[none]%
+ \setbeamertemplate{footline}[noframenumbering]%
\setlength{\focus@pbar@height}{0cm}%
\focus@calculatefootheight%
}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
index 195d850f45..9bd962a9c7 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
@@ -19,7 +19,7 @@
% along with beamerthemefocus. If not, see <http://www.gnu.org/licenses/>.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerthemefocus}[2022/02/21 v3.2.0 Focus Beamer theme]
+\ProvidesPackage{beamerthemefocus}[2022/03/09 v3.3.0 Focus Beamer theme]
\mode<presentation>
@@ -44,11 +44,17 @@
\if@focus@loadfirafonts
\RequirePackage[T1]{fontenc}
- \PassOptionsToPackage{type1}{FiraSans}
- \PassOptionsToPackage{type1}{FiraMono}
-
+ \PassOptionsToPackage{sfdefault}{FiraSans}
\RequirePackage{FiraSans}
+
\RequirePackage{FiraMono}
+
+ \RequirePackage{firamath-otf}
+ \unimathsetup{
+ math-style = ISO,
+ bold-style = ISO,
+ mathrm = sym
+ }
\fi
\usecolortheme{focus}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
index 83f1c44e30..6a81ce1763 100644..100755
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
index c696f525f6..616b1765b7 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
@@ -1,3 +1,6 @@
+% !TeX TS-program = xelatex
+% !BIB TS-program = bibtex
+
% Full instructions available at:
% https://github.com/elauksap/focus-beamertheme
@@ -41,14 +44,15 @@
\end{frame}
\begin{frame}{Typesetting and Math}
- The packages \texttt{inputenc} and \texttt{FiraSans}\footnote{\url{https://fonts.google.com/specimen/Fira+Sans}}\textsuperscript{,}\footnote{\url{http://mozilla.github.io/Fira/}} are used to properly set the main fonts.
+ The packages \texttt{fontenc} and \texttt{FiraSans}\footnote{\url{https://fonts.google.com/specimen/Fira+Sans}}\textsuperscript{,}\footnote{\url{http://mozilla.github.io/Fira/}} are used to properly set the main fonts.
\vfill
This theme provides styling commands to typeset \emph{emphasized}, \alert{alerted}, \textbf{bold}, \textcolor{example}{example text}, \dots
\vfill
\texttt{FiraSans} also provides support for mathematical symbols:
- \begin{equation*}
- e^{i\pi} + 1 = 0.
- \end{equation*}
+ \begin{align*}
+ e^{i\pi} + 1 & = 0, \\
+ \int_{-\infty}^\infty e^{-x^2}\,\mathrm{d}x & = \sqrt{\pi}.
+ \end{align*}
\end{frame}
\section{Section 2}
@@ -138,7 +142,6 @@
\end{frame}
\begin{frame}{Backup frame}
- \usebeamercolor[fg]{normal text}
This is a backup frame, useful to include additional material for questions from the audience.
\vfill
The package \texttt{appendixnumberbeamer} is used not to number appendix frames.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
index fe8629e8a7..fdd037fc98 100644..100755
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
Binary files differ
diff --git a/macros/latex/contrib/dtxdescribe/README.txt b/macros/latex/contrib/dtxdescribe/README.txt
index ec9337e57f..51eb6dca27 100644
--- a/macros/latex/contrib/dtxdescribe/README.txt
+++ b/macros/latex/contrib/dtxdescribe/README.txt
@@ -1,7 +1,7 @@
The LaTeX dtxdescribe package
Describe additional object types in dtx source files.
-v1.03 — 2012/02/01
+v1.04 — 2022/02/01
Copyright 2016–2022 Brian Dunn — www.BDTechConcepts.com
LaTeX Project Public License, version 1.3
diff --git a/macros/latex/contrib/dtxdescribe/dtxdescribe.dtx b/macros/latex/contrib/dtxdescribe/dtxdescribe.dtx
index 0f12529663..be6a1e613d 100644
--- a/macros/latex/contrib/dtxdescribe/dtxdescribe.dtx
+++ b/macros/latex/contrib/dtxdescribe/dtxdescribe.dtx
@@ -17,7 +17,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{dtxdescribe}
-%<package> [2022/02/01 v1.03 Describe additional object types in source files.]
+%<package> [2022/02/01 v1.04 Describe additional object types in source files.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -170,7 +170,7 @@ Keywords={LaTeX, dtx, source, DescribeMacro}%
%<*package>
% \fi
%
-% \CheckSum{1211}
+% \CheckSum{0}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -194,6 +194,8 @@ Keywords={LaTeX, dtx, source, DescribeMacro}%
% \changes{v1.01}{2019/03/22}{\ 2019/03/22}
% \changes{v1.02}{2019/07/16}{\ 2019/07/16}
% \changes{v1.03}{2022/02/01}{\ 2022/02/01}
+% \changes{v1.04}{2022/02/01}{\ 2022/02/01}
+% \changes{v1.04}{2022/02/01}{\ Corrected copyright date.}
diff --git a/macros/latex/contrib/dtxdescribe/dtxdescribe.pdf b/macros/latex/contrib/dtxdescribe/dtxdescribe.pdf
index 28847b413e..fc29deedad 100644
--- a/macros/latex/contrib/dtxdescribe/dtxdescribe.pdf
+++ b/macros/latex/contrib/dtxdescribe/dtxdescribe.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 54cc922175..660f3e6375 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2022/03/08}{1.642}
+\ProvidesExplClass{easybook}{2022/03/08}{1.643}
{Easily typesetting Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -303,7 +303,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2022/03/08}{1.642}
+\ProvidesExplPackage{easybase}{2022/03/08}{1.643}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -447,18 +447,21 @@
}
}
-\eb_seq_map_inline:nn
+\seq_set_from_clist:Nn \l__eb_module_paths_seq
{
style,subfont,spread,
- refset,bibset,thmset,
- geoset,hdrset,tocset,list
+ bibset,thmset,tocset,
+ hdrset,refset,geoset,float
}
+\seq_map_inline:Nn \l__eb_module_paths_seq
{
\ctex_define:n { #1 .meta:nn = { ctex/#1 } {##1} }
\cs_new_protected:cpn { eb#1 } ##1 { \ctex_set:nn {#1} {##1} }
}
-\eb_seq_map_inline:nn
- { style,subfont,spread,bibset,thmset,hdrset,tocset }
+\bool_until_do:nn
+ { \int_compare_p:nNn { \seq_count:N \l__eb_module_paths_seq } < { 8 } }
+ { \seq_pop_right:NN \l__eb_module_paths_seq \l_tmpa_tl }
+\seq_map_inline:Nn \l__eb_module_paths_seq
{
\msg_new:nnn { easybase } { deprecated-#1 }
{
@@ -1196,193 +1199,6 @@
\cs_new:Npn \eb@footmisc@ifvoid #1#2#3 { \ifvoid #1#2\else #3\fi }
\cs_set:Npn \thempfootnote { \int_to_alph:n { \c@mpfootnote } }
-\contentsuse{lstlisting}{lol}
-\seq_put_left:Nn \c__ctex_headings_seq { chapter }
-\seq_put_right:Nn \c__ctex_headings_seq { figure }
-\seq_put_right:Nn \c__ctex_headings_seq { table }
-\seq_put_right:Nn \c__ctex_headings_seq { lstlisting }
-\seq_remove_duplicates:N \c__ctex_headings_seq
-\ctex_define:n { lstlisting/#1 .meta:nn = { ctex/#1 } {##1} }
-\ctex_define:n { figure/#1 .meta:nn = { ctex/#1 } {##1} }
-\ctex_define:n { table/#1 .meta:nn = { ctex/#1 } {##1} }
-\ctex_define:n { list/#1 .meta:nn = { ctex/#1 } {##1} }
-\cs_new_protected:Npn \eb_toc_entry_if_hang:n #1
- {
- \bool_if:NTF \l__eb_toc_entry_hang_bool
- { \contentspush }
- { \use:n }
- {
- \bool_if:NTF \l__eb_toc_number_color_bool
- { \textcolor{ctex@toc@number} }
- { \use:n }
- { \thecontentslabel }
- \tl_use:c { l__eb_toc_#1_after_tl }
- }
- }
-\cs_new_protected:Npn \RegisterTocName #1
- {
- \ctex_define:n
- {
- #1/tocformat .tl_set:c = l__eb_toc_#1_format_tl,
- #1/tocformat+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
- #1/tocformat~+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
- #1/tocindent .dim_set:c = l__eb_toc_#1_indent_dim,
- #1/tocrule .tl_set:c = l__eb_toc_#1_rule_tl,
- #1/tocafter .tl_set:c = l__eb_toc_#1_after_tl,
- #1/tocbelow .tl_set:c = l__eb_toc_#1_below_tl
- }
- \titlecontents{#1}
- [\dim_use:c { l__eb_toc_#1_indent_dim }]
- {\tl_use:c { l__eb_toc_#1_format_tl }}
- {\eb_toc_entry_if_hang:n {#1}}{}
- {\tl_use:c { l__eb_toc_#1_rule_tl }}
- [\tl_use:c { l__eb_toc_#1_below_tl }]
- }
-\seq_map_function:NN
-\c__ctex_headings_seq \RegisterTocName
-\eb_seq_map_inline:nn
- { figure,table,lstlisting }
- {
- \ctex_define:n
- {
- #1/between .tl_set:c = l__eb_toc_#1_between_hook_tl,
- #1/tocline .cs_set:cp = { eb@tocline@#1 } ##1##2,
- }
- }
-\eb_seq_map_inline:nn
- {
- tocformat,tocformat+,tocformat~+,
- tocindent,tocrule,tocline,tocafter,between
- }
- {
- \ctex_define:n
- {
- list/#1 .meta:n =
- {
- figure/#1 = ##1,table/#1 = ##1,
- lstlisting/#1 = ##1
- }
- }
- }
-\eb_seq_map_inline:nn
- { tocafter,tocindent,tocrule }
- {
- \ctex_define:nn { tocset }
- {
- #1-every .code:n =
- {
- \ctex_set:n
- {
- part/#1 = ##1,chapter/#1 = ##1,
- section/#1 = ##1,subsection/#1 = ##1,
- list/#1 = ##1
- }
- }
- }
- }
-
-\ctex_define:nn { tocset }
- {
- lolskip .skip_set:N = \eb@toc@lol@skip,
- lolskip .initial:n = 10pt,
- between .tl_set:N = \l__eb_toc_main_between_hook_tl,
- between .initial:n = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-1pc} },
- bibetween .tl_set:N = \l__eb_toc_bimain_between_hook_tl,
- bibetween .initial:n = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-1pc} },
- dotalign .bool_set:N = \l__eb_toc_dot_align_bool,
- dotalign .default:n = true,
- dotalign .initial:n = true,
- hang .bool_set:N = \l__eb_toc_entry_hang_bool,
- hang .default:n = true,
- hang .initial:n = true,
- pagenumwd .code:n = \contentsmargin{#1},
- pagenumwd .initial:n = 1.55em,
- unknown .code:n = \eb_msg_deprecated_option:n { tocset }
- }
-\NewDocumentCommand{\tocrule}{st-O{0.7pc}d()mO{}}
- {
- \normalsize\normalfont
- \titlerule*[#3]{\IfValueTF{#4}{\scalebox{#4}{#5}}{#5}}#6
- \bgroup
- \IfBooleanF{#2}
- {
- \IfBooleanTF{#1}
- {\thecontentspage}
- {
- \bool_if:NTF \l__eb_toc_dot_align_bool
- { \contentspage }
- { \thecontentspage }
- }
- }
- \egroup
- }
-\cs_new:Npn \p@numberline { \protect\numberline }
-\cs_new:Npn \listnumberline #1
- { \p@numberline{\use:c { #1name }~\use:c { the#1 }} }
-\ctex_set:n
- {
- part =
- {
- tocformat = \addvspace{1pc}\sffamily\large,
- tocindent = 0em,
- tocrule = \tocrule{}[\bfseries],
- tocline = \CTEXnumberline{#1}#2
- },
- chapter =
- {
- tocformat = \addvspace{1pc}\sffamily,
- tocindent = 0em,
- tocrule = \tocrule{$\cdot$}[\bfseries],
- tocline = \CTEXnumberline{#1}#2
- },
- section =
- {
- tocformat = \bool_if:NF \l__eb_class_mode_book_bool { \sffamily },
- tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 1.5em } { 0em },
- tocrule =
- {
- \bool_if:NTF \l__eb_class_mode_book_bool
- { \tocrule{$\cdot$} }
- { \tocrule{$\cdot$}[\bfseries] }
- }
- },
- subsection =
- {
- tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 3.8em } { 1.4em },
- tocrule = \tocrule{$\cdot$}
- },
- list =
- {
- tocindent = 0em,
- tocrule = \tocrule{$\cdot$},
- between = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-10pt} }
- },
- table/tocline = \listnumberline{table}#2,
- figure/tocline = \listnumberline{figure}#2,
- lstlisting/tocline = \listnumberline{lstlisting}#2,
- tocset/tocafter-every = \hspace{1em}
- }
-\prop_new:N \l__eb_list_label_entry_prop
-\prop_set_from_keyval:Nn \l__eb_list_label_entry_prop
- {
- figure = \eb@tocline@figure,
- table = \eb@tocline@table
- }
-\cs_gset:Npn \caption@@@addcontentsline #1#2#3#4
- {
- \addcontentsline{#1}{#2}
- {\prop_item:Nn \l__eb_list_label_entry_prop {#2}{#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}}
- }
-
\newcounter{bichapter}
\newcounter{bisection}[bichapter]
\newcounter{bisubsection}[bisection]
@@ -1394,14 +1210,13 @@
\use:c { p@#1 } { the#1 }
}
}
-\NewDocumentCommand{\counteruse}{soD(){arabic}mO{.}d()}
+\NewDocumentCommand{\counteruse}{sO{arabic}D(){.}mod()}
{
\IfBooleanF{#1}{\stepcounter{#4}}
- \IfValueT{#6}{\setcounter{#4}{#6}}
\tl_set:cn { theeb@#4 }
{
- \IfValueT{#2}{\use:c { the#2 }#5}
- \use:c {#3}{#4}
+ \IfValueT{#5}{\use:c { the#5 }#3}
+ \use:c {#2}{#4}
}
\tl_use:c { theeb@#4 }
\eb_current_label:n { eb@#4 }
@@ -1415,7 +1230,6 @@
\cs_set:Npn \thebisection { \eb_section_counter_prefix:n { bi } }
\cs_set:Npn \thebisubsection { \thebisection.\@arabic\c@bisubsection }
\cs_set:Npn \thesection { \eb_section_counter_prefix:n { } }
-
\contentsuse{}{tec}
\tl_new:N \eb@before@addbitoc@hook
\NewDocumentCommand{\BeforeAddBitoc}{sm}
@@ -1491,7 +1305,7 @@
}
\tl_new:N \eb@bitoc@title
-\keys_define:nn { eb/listoc }
+\keys_define:nn { eb/floattoc }
{
level .tl_set:N = \eb@toc@title@level,
level .initial:n =
@@ -1526,11 +1340,13 @@
plan .initial:n = cn,
columns .meta:n = { multoc = #1 },
title .code:n = \eb_assign_toc_title:n {#1},
- bilist .tl_gset:N = \g__eb_bilist_permute_value_tl
+ bilist .tl_gset:N = \g__eb_bilist_permute_value_tl,
+ name .tl_set:N = \l__eb_print_index_name_tl,
+ name .initial:n = \imki@jobname
}
\bool_if:NTF \l__eb_class_mode_book_bool
- { \keys_define:nn { } { eb/listoc .inherit:n = ctex/chapter } }
- { \keys_define:nn { } { eb/listoc .inherit:n = ctex/section } }
+ { \keys_define:nn { } { eb/floattoc .inherit:n = ctex/chapter } }
+ { \keys_define:nn { } { eb/floattoc .inherit:n = ctex/section } }
\NewDocumentCommand{\eb_assign_toc_title:n}
{>{\SplitArgument{1}{,}}m}
{\eb_assign_toc_title_judge:nn #1}
@@ -1541,13 +1357,7 @@
{ \tl_clear:N \eb@bitoc@title }
{ \tl_set:Nn \eb@bitoc@title {#2} }
}
-\cs_new_protected:Npn \eb_biber_toc_title:n #1
- {
- \bool_if:NTF \l__eb_class_mode_book_bool
- { \bichapter*{#1}{\eb@bib@bitoc@title} }
- { \bisection*{#1}{\eb@bib@bitoc@title} }
- \sectionmark{#1}
- }
+\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 }
@@ -1568,29 +1378,60 @@
\IfBooleanF{#1}
{\eb@toc@title@level{\eb@toc@title}{\eb@bitoc@title}}
}
-\cs_new_protected:Npn \eb_toc_list_parse:nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \eb_toc_float_list_parse:nnnnn #1#2#3#4#5
{
\group_begin:
\tl_set_eq:Nc \eb@toc@title { list#4name }
- \IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}}
+ \IfValueT{#3}{\keys_set:nn { eb/floattoc } {#3}}
\eb_toc_title_level_cmd:n {#1}
\eb_toc_if_title_between_hook:nn {#1} {#4}
\eb_toc_start_multi_column_ext:n {#5}
\group_end:
}
-\cs_new_protected:Npn \eb_list_content_cmd_set:nn #1#2
+\cs_new:Npn \listnumberline #1
+ {
+ \protect\numberline
+ {
+ \exp_args:Nnv
+ \use:c { p@#1 } { the#1 }
+ }
+ }
+\cs_new_protected:Npn \DeclareFloatList #1#2
{
\exp_args:Nc \DeclareDocumentCommand { listof#1s }{st+o}
- {\eb_toc_list_parse:nnnnn {##1} {##2} {##3} {#1} {#2}}
+ {\eb_toc_float_list_parse:nnnnn {##1} {##2} {##3} {#1} {#2}}
+ \ctex_define:n
+ {
+ #1/##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
+ }
+ \prop_put_from_keyval:Nn \l__eb_toc_float_label_prop
+ { #1 = \use:c { eb@tocline@#1 } }
}
-\eb_seq_map_inline:nn
+\DeclareFloatList{table}{lot}
+\DeclareFloatList{figure}{lof}
+\DeclareFloatList{lstlisting}{lol}
+\cs_gset:Npn \caption@@@addcontentsline #1#2#3#4
{
- { figure } { lof },
- { table } { lot },
- { lstlisting } { lol }
+ \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}
+ }
+ }
+\ctex_patch_cmd:Nnn \lst@MakeCaption
+ {
+ \addcontentsline{lol}{lstlisting}
+ {\protect\numberline{\thelstlisting}\lst@@caption}
+ }
+ {
+ \addcontentsline{lol}{lstlisting}
+ {\eb@tocline@lstlisting{\thelstlisting}{\lst@@caption}}
}
- { \eb_list_content_cmd_set:nn #1 }
-\cs_set_eq:NN \listoflistings \listoflstlistings
\ctex_define:n
{
bicontentsname .tl_set:N = \bicontentsname,
@@ -1607,7 +1448,7 @@
{ \chapter* }
{ \section* }
}
- \IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}}
+ \IfValueT{#3}{\keys_set:nn { eb/floattoc } {#3}}
\bool_if:NT \l__eb_toc_plan_cn_bool
{
\IfBooleanF{#1}{\eb@toc@title@level{\eb@toc@title}{}}
@@ -1623,22 +1464,169 @@
\group_end:
}
+\contentsuse{lstlisting}{lol}
+\seq_put_left:Nn \c__ctex_headings_seq { chapter }
+\seq_put_right:Nn \c__ctex_headings_seq { table }
+\seq_put_right:Nn \c__ctex_headings_seq { figure }
+\seq_put_right:Nn \c__ctex_headings_seq { lstlisting }
+\seq_remove_duplicates:N \c__ctex_headings_seq
+\cs_new_protected:Npn \eb_toc_entry_if_hang:n #1
+ {
+ \bool_if:NTF \l__eb_toc_entry_hang_bool
+ { \contentspush }
+ { \use:n }
+ {
+ \bool_if:NTF \l__eb_toc_number_color_bool
+ { \textcolor{ctex@toc@number} }
+ { \use:n }
+ { \thecontentslabel }
+ \tl_use:c { l__eb_toc_#1_after_tl }
+ }
+ }
+\cs_new_protected:Npn \RegisterTocName #1
+ {
+ \ctex_define:n
+ {
+ #1/tocformat .tl_set:c = l__eb_toc_#1_format_tl,
+ #1/tocformat+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
+ #1/tocformat~+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
+ #1/tocindent .dim_set:c = l__eb_toc_#1_indent_dim,
+ #1/tocrule .tl_set:c = l__eb_toc_#1_rule_tl,
+ #1/tocafter .tl_set:c = l__eb_toc_#1_after_tl,
+ #1/tocbelow .tl_set:c = l__eb_toc_#1_below_tl
+ }
+ \titlecontents{#1}
+ [\dim_use:c { l__eb_toc_#1_indent_dim }]
+ {\tl_use:c { l__eb_toc_#1_format_tl }}
+ {\eb_toc_entry_if_hang:n {#1}}{}
+ {\tl_use:c { l__eb_toc_#1_rule_tl }}
+ [\tl_use:c { l__eb_toc_#1_below_tl }]
+ }
+\seq_map_function:NN
+\c__ctex_headings_seq \RegisterTocName
+\eb_seq_map_inline:nn
+ {
+ tocformat,tocformat+,tocformat~+,
+ tocindent,tocrule,tocline,tocafter,between
+ }
+ {
+ \ctex_define:n
+ {
+ float/#1 .meta:n =
+ {
+ figure/#1 = ##1,table/#1 = ##1,
+ lstlisting/#1 = ##1
+ }
+ }
+ }
+\eb_seq_map_inline:nn
+ { tocafter,tocindent,tocrule }
+ {
+ \ctex_define:nn { tocset }
+ {
+ #1-every .code:n =
+ {
+ \ctex_set:n
+ {
+ part/#1 = ##1,chapter/#1 = ##1,
+ section/#1 = ##1,subsection/#1 = ##1,
+ float/#1 = ##1
+ }
+ }
+ }
+ }
+\ctex_define:nn { tocset }
+ {
+ lolskip .skip_set:N = \eb@toc@lol@skip,
+ lolskip .initial:n = 10pt,
+ between .tl_set:N = \l__eb_toc_main_between_hook_tl,
+ between .initial:n = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-1pc} },
+ bibetween .tl_set:N = \l__eb_toc_bimain_between_hook_tl,
+ bibetween .initial:n = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-1pc} },
+ dotalign .bool_set:N = \l__eb_toc_dot_align_bool,
+ dotalign .default:n = true,
+ dotalign .initial:n = true,
+ hang .bool_set:N = \l__eb_toc_entry_hang_bool,
+ hang .default:n = true,
+ hang .initial:n = true,
+ pagenumwd .code:n = \contentsmargin{#1},
+ pagenumwd .initial:n = 1.55em,
+ unknown .code:n = \eb_msg_deprecated_option:n { tocset }
+ }
+\NewDocumentCommand{\tocrule}{st-O{0.7pc}d()mO{}}
+ {
+ \normalsize\normalfont
+ \titlerule*[#3]{\IfValueTF{#4}{\scalebox{#4}{#5}}{#5}}#6
+ \bgroup
+ \IfBooleanF{#2}
+ {
+ \IfBooleanTF{#1}
+ {\thecontentspage}
+ {
+ \bool_if:NTF \l__eb_toc_dot_align_bool
+ { \contentspage }
+ { \thecontentspage }
+ }
+ }
+ \egroup
+ }
+\ctex_set:n
+ {
+ part =
+ {
+ tocformat = \addvspace{1pc}\sffamily\large,
+ tocindent = 0em,
+ tocrule = \tocrule{}[\bfseries],
+ tocline = \CTEXnumberline{#1}#2
+ },
+ chapter =
+ {
+ tocformat = \addvspace{1pc}\sffamily,
+ tocindent = 0em,
+ tocrule = \tocrule{$\cdot$}[\bfseries],
+ tocline = \CTEXnumberline{#1}#2
+ },
+ section =
+ {
+ tocformat = \bool_if:NF \l__eb_class_mode_book_bool { \sffamily },
+ tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 1.5em } { 0em },
+ tocrule =
+ {
+ \bool_if:NTF \l__eb_class_mode_book_bool
+ { \tocrule{$\cdot$} }
+ { \tocrule{$\cdot$}[\bfseries] }
+ }
+ },
+ subsection =
+ {
+ tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 3.8em } { 1.4em },
+ tocrule = \tocrule{$\cdot$}
+ },
+ float =
+ {
+ tocindent = 0em,
+ tocrule = \tocrule{$\cdot$},
+ between = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-10pt} }
+ },
+ tocset/tocafter-every = \hspace{1em}
+ }
+
\ctex_at_end_package:nn { imakeidx }
{
\makeindex
- \RenewDocumentCommand{\printindex}{st+oD(){\imki@jobname}}
+ \RenewDocumentCommand{\printindex}{st+od()}
{
\group_begin:
\tl_set_eq:NN \eb@toc@title \indexname
\cs_set_eq:NN \imki@indexlevel \use_none:n
\setkeys{imkiindex}{noclearpage}
- \IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}}
+ \IfValueT{#3}{\keys_set:nn { eb/floattoc } {#3}}
\cs_set_protected:Npn \imki@indexheaders
{
\eb_toc_title_level_cmd:n {#1}
\cs_set_eq:NN \thispagestyle \use_none:n
}
- \imki@putindex{#4}
+ \imki@putindex{\l__eb_print_index_name_tl}
\group_end:
}
}
@@ -1690,9 +1678,9 @@
\ctex_define:nn { subfont }
{
- caption-table .tl_set:N = \l__eb_subfont_cap_table_tl,
- caption-figure .tl_set:N = \l__eb_subfont_cap_figure_tl,
- caption-listing .tl_set:N = \l__eb_subfont_cap_listing_tl,
+ caption-table .tl_set:N = \l__eb_subfont_caption_table_tl,
+ caption-figure .tl_set:N = \l__eb_subfont_caption_figure_tl,
+ caption-listing .tl_set:N = \l__eb_subfont_caption_listing_tl,
caption-every .meta:n =
{
caption-table = #1,caption-figure = #1,
@@ -1709,16 +1697,16 @@
\str_case:nnF {#1}
{
{ table }
- { \tl_put_right:Nn \l__eb_subfont_cap_table_tl {#2} }
+ { \tl_put_right:Nn \l__eb_subfont_caption_table_tl {#2} }
{ figure }
- { \tl_put_right:Nn \l__eb_subfont_cap_figure_tl {#2} }
+ { \tl_put_right:Nn \l__eb_subfont_caption_figure_tl {#2} }
{ listing }
- { \tl_put_right:Nn \l__eb_subfont_cap_listing_tl {#2} }
+ { \tl_put_right:Nn \l__eb_subfont_caption_listing_tl {#2} }
{ every }
{
- \tl_put_right:Nn \l__eb_subfont_cap_table_tl {#2}
- \tl_put_right:Nn \l__eb_subfont_cap_figure_tl {#2}
- \tl_put_right:Nn \l__eb_subfont_cap_listing_tl {#2}
+ \tl_put_right:Nn \l__eb_subfont_caption_table_tl {#2}
+ \tl_put_right:Nn \l__eb_subfont_caption_figure_tl {#2}
+ \tl_put_right:Nn \l__eb_subfont_caption_listing_tl {#2}
}
}
{ \tl_put_right:cn { l__eb_subfont_#1_tl } {#2} }
@@ -1738,9 +1726,9 @@
math .initial:n = 1.354,
footnote .fp_set:N = \l__eb_spread_footnote_fp,
footnote .initial:n = 1.2,
- caption-table .fp_set:N = \l__eb_spread_cap_table_fp,
- caption-figure .fp_set:N = \l__eb_spread_cap_figure_fp,
- caption-listing .fp_set:N = \l__eb_spread_cap_listing_fp,
+ caption-table .fp_set:N = \l__eb_spread_caption_table_fp,
+ caption-figure .fp_set:N = \l__eb_spread_caption_figure_fp,
+ caption-listing .fp_set:N = \l__eb_spread_caption_listing_fp,
caption-every .meta:n =
{
caption-table = #1,caption-figure = #1,
@@ -1761,8 +1749,8 @@
{
\DeclareCaptionFont{eb@#1@font}
{
- \setspread{\fp_use:c { l__eb_spread_cap_#1_fp }}
- \tl_use:c { l__eb_subfont_cap_#1_tl }
+ \setspread{\fp_use:c { l__eb_spread_caption_#1_fp }}
+ \tl_use:c { l__eb_subfont_caption_#1_tl }
}
}
\captionsetup
@@ -2043,7 +2031,7 @@
{
\group_begin:
\tl_set_eq:NN \eb@toc@title \bibname
- \IfValueT{##3}{ \keys_set:nn { eb/listoc } {##3} }
+ \IfValueT{##3}{ \keys_set:nn { eb/floattoc } {##3} }
\cs_set_protected:Npn \bibsection
{
\eb_toc_title_level_cmd:n {##1}
@@ -2059,6 +2047,13 @@
}
\cs_new_protected:Npn \eb_put_biblatex:n #1
{ \PassOptionsToPackage{#1}{biblatex} }
+\cs_new_protected:Npn \eb_biber_toc_title:n #1
+ {
+ \bool_if:NTF \l__eb_class_mode_book_bool
+ { \bichapter*{#1}{\eb@bib@bitoc@title} }
+ { \bisection*{#1}{\eb@bib@bitoc@title} }
+ \sectionmark{#1}
+ }
\cs_new_protected:Npn \eb_biber_biblatex_set:
{
\str_case:VnF \l__eb_bib_both_style_tl
@@ -2317,7 +2312,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2022/03/08}{1.642}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2022/03/08}{1.643}
{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 e17b80e4c5..fe31a2f561 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 20fd6cbb52..ae9ecb96b5 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -21,7 +21,7 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v1.642,
+ version = v1.643,
date = 2022/03/08,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
@@ -322,7 +322,7 @@
\command{backmatter}
后记区命令。页码格式与编号保持不变,章标题不编号。
\command{cleardoublepage}[\oarg{页面风格}]\Default{empty}
- 清双页命令可以确保下一页文本总在奇数页开始,在奇数页使用它会产生空白偶数页。文区命令 \cs{frontmatter} 和 \cs{mainmatter} 会用到清双页命令,在启用文类选项 \option*{openright} 时标题命令 \cs*{part} 和 \cs*{chapter} 也会用到清双页命令。
+ 清双页命令可以确保下一页文本总在奇数页开始,在奇数页使用它会产生空白偶数页。文区命令 \cs{frontmatter} 和 \cs{mainmatter} 会用到清双页命令,在启用文类选项 \option*{openright} 时标题命令 \cs*{part} 和 \cs*{chapter} 也会默认用到清双页命令。
\command{blankpagestyle}[\marg{页面风格}]
多出空白页的 \meta{页面风格} 用空白页面风格命令 \cs{blankpagestyle} 全局指定,或使用清双页命令的可选参数局部指定。空白页默认的风格为 \code{empty},即空的页眉页脚。
\end{commands}
@@ -793,7 +793,7 @@
模块 \module*{hdrset} 还可以灵活调整脚注编号和内容的格式。格式主要包括脚注标记的编号类型、字体、附加符号、对齐方式和缩进距离等,以及脚注内容的首行缩进、行距和字体等。基本思想是默认脚注和自定义编号脚注标记的格式分离,两种类型脚注各自正文和内容的标记又共享格式,默认脚注中正文和内容标记的编号类型分离。
\begin{options}
\keychoice{footnotetype}{hang,default,flush,bottom}\Module{hdrset}\Default{hang}
- 脚注的类型。悬挂缩进 \code{hang} 是默认值,\code{default} 是原始的类型,\code{flush} 使脚注内容标记位于脚注首行边缘外侧并右对齐。在一些浮动体排版的情况下,脚注可能位于页面中间,\code{bottom} 使脚注始终位于页面底端。其中 \code{bottom} 是复合选项,可以与前三种类型重复或复合使用:
+ 脚注的类型。悬挂缩进 \code{hang} 是默认值,\code{default} 是原始的类型,\code{flush} 使脚注内容标记位于脚注首行边缘外侧并右对齐。当存在浮动环境排版时,脚注可能位于页面中间,\code{bottom} 使脚注始终位于页面底端。其中 \code{bottom} 是复合选项,可以与前三种类型重复或复合使用:
\begin{ctexexam}
\ebhdrset{footnotetype = default,footnotetype = bottom}
\ebhdrset{footnotetype = {hang,bottom}}
@@ -892,7 +892,7 @@
\subsection{目录样式}
\label{subsec:catalog style}
-模块 \module*{tocset} 将使用 \pkg*{titletoc} 宏包处理目录样式。模块或扩展包括了 \module*{part}、\module*{chapter}、\module*{section}、\module*{subsection}、\module*{figure}、\module*{table} 和 \module*{lstlisting} 二级路径,而使用 \module*{list} 路径可以统一设置图片、表格和代码目录的样式。选项前带有 \ding{73} 符号表示支持所有相应\textbf{条目名}的路径,其它选项则处于 \module*{tocset} 路径下。目前支持标准的论文目录样式,更复杂的样式可以查看 \pkg*{titletoc} 的相关用法。
+模块 \module*{tocset} 将使用 \pkg*{titletoc} 宏包处理目录样式。默认包括 \module*{part}、\module*{chapter}、\module*{section}、\module*{subsection}、\module*{figure}、\module*{table} 和 \module*{lstlisting} 二级路径,而使用 \module*{float} 路径可以统一设置图片、表格和代码目录的样式。选项前带有 \ding{73} 符号表示支持所有相应\textbf{条目名}的路径,其它选项则处于 \module*{tocset} 一级路径下。目前支持标准的论文目录样式,更复杂的样式可以查看 \pkg*{titletoc} 的相关用法。
\begin{options}
\keyval{tocformat}{条目格式}\dtag\smodule{tocset}%
目录中各级别条目的格式。可以设置条目字体和加入垂直间距等,垂直间距最好使用防止垂直间距重合的 \cs*{addvspace} 命令。
@@ -902,12 +902,16 @@
目录条目左边的缩进距离,通常标题级别越低缩进越大。
\keyval{tocrule}{引导线命令}\dtag
引导线选项 \option{tocrule} 中一般可以使用基于 \cs*{xleaders} 命令的 \cs{tocrule} 绘制引导线。
+ \begin{commands}
+ \command{tocrule}[\sarg\harg\oarg{引导点间距}\darg{放大因子}\marg{引导点}\oarg{页码格式}]
+ 生成目录引导线的命令,需要在引导线选项 \option{tocrule} 中使用。带有星号的命令与 \keyis{dotalign}{false} 效果相同。带有 \harg{} 号的命令不添加引导线后的目录页码。\meta{引导点间距} 需带有长度单位,\meta{放大因子} 为 \meta{引导点} 的放大倍数。\meta{页码格式} 的代码位于页码前面,可以设置页码字体和距离等,最后一个命令可以带有一个参数为页码编号。
+ \end{commands}
\keyval{tocafter}{距离命令}\dtag\Default{\cs*{hspace}\Marg{1em}}
目录条目编号与标题间的代码,默认为插入 \code{1em} 横向距离。
\keyval{tocbelow}{距离命令}\dtag\newtag%
在目录条目下方执行的代码,可以插入垂直距离等命令。
\keyval{tocline}{条目定义}\dtag[\textcolor{red}{\ding{73}}]
- 这个选项扩展了图片、表格或代码题注在目录文件中的定义。选项中参数 \code{\#1} 代表相应题注编号 \cs*{the}\meta{计数器} 的值,参数 \code{\#2} 代表相应题注内容。
+ 这个选项在章节标题基础上扩展了浮动环境的题注在目录文件中的定义。选项中参数 \code{\#1} 代表相应题注编号 \cs*{the}\meta{计数器} 的值,参数 \code{\#2} 代表相应题注内容。
\begin{ctexexam}
\ctexset
{
@@ -924,14 +928,23 @@
\begin{commands}
\command{RegisterTocName}[\marg{条目名}]\newtag%
- 给 \meta{条目名} 注册上述设置目录样式的选项,选项前有红色的符号 \textcolor{red}{\ding{73}} 表示目前在注册后不可用。
+ 给名称为 \meta{条目名} 的浮动环境注册设置目录样式的选项,选项前有符号 \ding{73} 表示在注册后可用。
\command{contentsuse}[\marg{条目名}\marg{扩展名}]
- 激活名为 \meta{条目名} 的目录条目定制功能,它使用的目录文件后缀为 \meta{扩展名}。需要在激活条目后再使用命令 \cs{RegisterTocName} 注册选项。
- \command{tocrule}[\sarg\harg\oarg{引导点间距}\darg{放大因子}\marg{引导点}\oarg{页码格式}]
- 生成目录引导线的命令,需要在引导线选项 \option{tocrule} 中使用。带有星号的命令会使当前级别的目录引导线右端与页码相连而不是对齐。带有 \harg{} 号的命令不添加引导线后的目录页码。\meta{引导点间距} 需带有长度单位,\meta{放大因子} 不带单位,为 \meta{引导点} 的放大倍数,\meta{引导点} 一般为英文句号或 \cs*{cdot} 中心点符号。\meta{页码格式} 的代码位于页码前面,可以设置页码字体和距离等,最后一个命令可以带有一个参数为页码编号。
+ 激活名称为 \meta{条目名} 的浮动环境目录定制功能,它使用的目录文件后缀为 \meta{扩展名}。需要在激活条目后再使用命令 \cs{RegisterTocName} 注册选项。
+ \command{DeclareFloatList}[\marg{条目名}\marg{扩展名}]\newtag%
+ 声明一个新的 \cs*{listof}\meta{条目名}\code{\textcolor{cs}{s}} 的浮动环境目录命令,并且支持\ref{sec:document command} 中图表目录命令的机制。使用这个命令要确保将条目加入目录的机制已经存在,推荐搭配 \pkg*{newfloat} 宏包创建新的浮动环境。选项前有符号 \textcolor{red}{\ding{73}} 表示在声明后可用。下面举一个声明算法目录的例子:
+ \begin{ctexexam}
+ \usepackage{newfloat}
+ \DeclareFloatingEnvironment[
+ fileext = loa,
+ listname = 算法清单
+ ]{algorithm}
+ \DeclareFloatList{algorithm}{loa}
+ \listofalgorithms[multoc] % 在正文中输出双栏算法目录
+ \end{ctexexam}
\command{listnumberline}[\marg{条目名}]
- 在图片、表格或代码目录中插入条目编号的命令,默认包含与题注名相同的标签名。其中 \meta{条目名} 需要显示指定,即为 \code{figure}、\code{table} 或 \code{lstlisting}。关于命令的用法可见\ref{exam:list command usage}。
- \begin{ctexexam}[labelref = exam:list command usage]
+ 在图表等浮动环境目录中插入条目标签和编号,默认标签可以由格式命令 \cs{labelformat} 设置。注意其中 \meta{条目名} 需要用对应名称\textbf{显示指定}。
+ \begin{ctexexam}
\ctexset
{
figure/tocline = \listnumberline{figure}#2,
@@ -945,8 +958,8 @@
悬挂缩进选项 \option{hang} 使目录条目为悬挂缩进形式。缩进距离为条目编号及其与标题间距的长度和。这个选项对所有条目名同时生效。
\keyval{lolskip}{弹性长度}\Default{10pt}
代码目录中每章第一个条目上方增加的垂直距离。与 \CTeX 的表格和图片目录中每章间的条目距离选项 \option*{lotskip} 和 \option*{lofskip} 类似,在 \cls*{article} 模式中此选项失效。
- \keyval{between}{代码钩子}
- 目录标题与内容间的钩子(作用于标题下方间距之后),一般插入负的垂直距离代码用于抵消目录首行额外的垂直间距。一级路径此选项对应文档主目录的钩子,二级路径为 \module*{figure}、\module*{table} 和 \module*{lstlisting},或者用位于 \module*{list} 路径的此选项统一设置相应类型目录的钩子。
+ \keyval{between}{代码钩子}\dtag[\textcolor{red}{\ding{73}}]
+ 目录标题与内容间的钩子(作用于标题下方间距之后),一般插入负的垂直距离代码用于抵消目录首行额外的垂直间距。一级路径此选项对应文档主目录的钩子,二级路径为浮动环境的 \meta{条目名}。
\keyval{bibetween}{代码钩子}\newtag%
与选项 \option{between} 类似,是位于一级路径的英文文档主目录(如果启用)代码钩子。
\keybool{dotalign}\Default{true}
@@ -1140,13 +1153,13 @@
\subsection{计数器}
\begin{commands}\noitemsep
\command{newcounter}[\marg{计数器}\oarg{父计数器}]\default{}
- \command{counteruse}[\sarg\oarg{父计数器}\darg{编号}\marg{计数器}\oarg{分隔符}\darg{整数}]
- 命令 \cs{newcounter} 是 \LaTeX 自带的创建计数器命令,计数器值输出命令 \cs{counteruse} 以一定的格式使用由它创建的计数器,将会以 \cs*{the}\meta{父计数器}\meta{分隔符}\cs*{the}\meta{计数器} 输出这种计数器的值。命令 \cs{counteruse} 仅具有\textbf{输出功能},并不会改变计数器原有的绑定关系。默认每使用一次命令 \meta{计数器} 的值增加1,带有星号的命令使 \meta{计数器} 值保持不变,\meta{计数器} 的值也可以设为指定的 \meta{整数}。计数器的 \meta{编号} 为 \code{arabic} 或 \code{alph} 等计数形式。
+ \command{counteruse}[\sarg\oarg{编号}\darg{分隔符}\marg{计数器}\oarg{父计数器}]
+ 命令 \cs{newcounter} 是 \LaTeX 自带的创建计数器命令,计数器值输出命令 \cs{counteruse} 将会以 \cs*{the}\meta{父计数器}\meta{分隔符}\cs*{the}\meta{计数器} 形式输出这种计数器的值。命令 \cs{counteruse} 仅具有\textbf{输出功能},并不会改变计数器原有的绑定关系。默认每使用一次命令 \meta{计数器} 的值增加1,带有星号参数的命令使 \meta{计数器} 的值保持不变。计数器的 \meta{编号} 为 \code{arabic} 或 \code{alph} 等计数形式。
在一定的场合下可能用到 \cs{counteruse} 命令,比如通过新建快捷命令在一些位置使用定理环境的计数器,使用 \cs{labelformat} 设置计数器的标签引用需添加 \code{eb@}:
\begin{ctexexam}
\labelformat{eb@theorem}{定理#1}
- \newcommand{\theoremhead}[1]{定理\counteruse[chapter]{theorem}\hspace{1em}#1}
+ \newcommand{\theoremhead}[1]{定理\counteruse{theorem}[chapter]\hspace{1em}#1}
\theoremhead{定理内容}\label{thm:theorem}
\end{ctexexam}
\command{counterwithin}[\sarg\oarg{格式}\marg{计数器}\marg{父计数器}]
@@ -1162,7 +1175,7 @@
\subsection{标签引用}
\begin{commands}
\command{labelformat}[\marg{计数器}\marg{标签引用格式}]
- 标签格式命令 \cs{labelformat} 可以设置标签引用格式,\meta{标签引用格式} 中 \code{\#1} 代表 \cs*{the}\meta{计数器},可以设置引用序号的前缀和后缀。也可以使用 \pkg*{cleveref} 宏包提供更强大的标签功能。
+ 标签格式命令 \cs{labelformat} 可以设置标签引用格式。\meta{标签引用格式} 中 \code{\#1} 代表 \cs*{the}\meta{计数器},可以设置引用序号的前缀和后缀。也可以使用 \pkg*{cleveref} 宏包提供更强大的标签功能。
\command{AtEndPreamble}[\marg{钩子代码}]
导言区末尾的钩子命令。为了保证兼容性 \pkg*{hyperref} 宏包被设计在导言区末尾载入,一些情况下需要合适的钩子在 \pkg*{hyperref} 后方执行 \meta{钩子代码},例如载入 \pkg*{cleveref} 宏包。
\begin{ctexexam}
@@ -1182,7 +1195,7 @@
\command{caption}[\sarg\oarg{目录标题}\marg{标题}]\default{}
\command{captionof}[\sarg\marg{条目名}\oarg{目录标题}\marg{标题}]\default{}
\command{bicaption}[\sarg\oarg{目录中文标题}\marg{中文标题}\oarg{目录英文标题}\marg{英文标题}]
- 题注命令 \cs{caption} 用于在图表上下方插入题注,需要在浮动体环境 \env*{figure} 和 \env*{table} 中使用。在浮动环境外可以使用 \cs{captionof} 命令,第一个参数指定条目名。可以搭配 \pkg*{newfloat} 宏包创建更多类型的浮动环境并设置相应题注。\cs{bicaption} 命令可以实现中英文双语题注,需要在导言区载入 \pkg*{bicaption} 宏包,具体用法见说明文档。
+ 题注命令 \cs{caption} 用于在图表上下方插入题注,需要在浮动环境 \env*{figure} 和 \env*{table} 中使用。在浮动环境外可以使用 \cs{captionof} 命令,第一个参数指定条目名。可以搭配 \pkg*{newfloat} 宏包创建更多类型的浮动环境并设置相应题注。\cs{bicaption} 命令可以实现中英文双语题注,需要在导言区载入 \pkg*{bicaption} 宏包,具体用法见说明文档。
\end{commands}
\subsection{化学式}
@@ -1237,13 +1250,17 @@
\subsection{索引}
\begin{commands}
\command*{indexsetup}[\marg{键值列表}]
- \pkg*{imakeidx} 宏包增强了索引的功能,这是它的的接口命令,用于设置索引表的整体格式。
+ \pkg*{imakeidx} 宏包增强了索引的功能。这是它的的接口命令,用于设置索引表的整体格式。
\command*{index}[\oarg{索引名}\marg{标签}]
- 索引标签命令 \cs*{index} 的 \meta{索引名} 与索引打印命令 \cs{printindex} 一致,可以存在多个索引表。
+ 索引标签命令 \cs*{index} 的 \meta{索引名} 与索引输出命令 \cs{printindex} 一致,可以存在多个索引表。
\command*{makeindex}[\oarg{键值列表}]
使用 \cs*{makeindex} 命令开启索引收集。这个命令可以重复使用打印多个索引表,以不同的 \meta{索引名} 作为区分,如果仅打印一个索引表就没必要再使用。
- \command{printindex}[\sarg\oarg{键值列表}\darg{索引名}]
- 现在索引表生成命令 \cs{printindex} 被重新定义,\meta{键值列表} 中的选项与\ref{sec:document command} 其它目录命令相同,但是原本接口命令 \cs*{indexsetup} 的部分选项失效。
+ \command{printindex}[\sarg\oarg{键值列表}]
+ 现在索引表生成命令 \cs{printindex} 被重新定义。\meta{键值列表} 中的选项与\ref{sec:document command} 其它目录命令相同,但是原本接口命令 \cs*{indexsetup} 的部分选项失效。
+ \begin{options}
+ \keyval{name}{索引名}
+ 指定输出名为 \meta{索引名} 的索引表,如果只使用一个索引表则默认为项目文件名不需要指定。
+ \end{options}
\end{commands}
\subsection{边注}
@@ -1301,6 +1318,7 @@
\item 增加英文主文档目录钩子选项 \option{bibetween}。
\end{version}
\shortversion{v = 1.638,date = 2022/03/04,changes = 增加目录条目样式选项注册命令 \cs{RegisterTocName}。}
+ \shortversion{v = 1.643,date = 2022/03/08,changes = 增加浮动环境目录声明命令 \cs{DeclareFloatList} 配合 \pkg*{caption} 宏包。}
\end{changelog}
\nocite{*}
diff --git a/macros/latex/contrib/lwarp/README.txt b/macros/latex/contrib/lwarp/README.txt
index 5b687de6c9..c1143fa2bc 100644
--- a/macros/latex/contrib/lwarp/README.txt
+++ b/macros/latex/contrib/lwarp/README.txt
@@ -1,5 +1,5 @@
-LaTeX lwarp package v0.903 README.txt
+LaTeX lwarp package v0.904 README.txt
Files included are:
diff --git a/macros/latex/contrib/lwarp/lwarp.dtx b/macros/latex/contrib/lwarp/lwarp.dtx
index 9800198020..38e6532986 100644
--- a/macros/latex/contrib/lwarp/lwarp.dtx
+++ b/macros/latex/contrib/lwarp/lwarp.dtx
@@ -16,7 +16,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{lwarp}
-%<package> [2022/02/01 v0.903 Allows LaTeX to directly produce HTML5 output.]
+%<package> [2022/03/09 v0.904 Allows LaTeX to directly produce HTML5 output.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -1272,6 +1272,25 @@ seamlessly integrating with the rest of the \HTML\ output, including any math
appearing in non-\MathJax\ \SVG\ output.
\end{enumerate}
+\subsubsection{\MathJax\ rendering options}
+
+\trouble[fonts]{mathjax=\MathJax>font}
+\trouble{mathjax=\MathJax>rendering}
+\trouble{font>mathjax=\MathJax}
+\gindex{mathjax=\MathJax>rendering}
+\gindex{mathjax=\MathJax>font}
+\gindex{font>mathjax=\MathJax}
+
+\MathJax\ v3 may render using \acro{chtml} or \SVG.
+\SVG\ display renders italic characters correctly.
+To select \SVG\ rendering, right-click on some math,
+and select
+\begin{UIdisplay}
+Math Settings $\to$ Math Renderer $\to$ SVG
+\end{UIdisplay}
+
+Wait a moment for the math to rerender.
+
\subsubsection{Customizing \MathJax}
\label{sec:limitscustomizemathjax}
\gindex{mathjax=\MathJax>custom functions}
@@ -2887,37 +2906,47 @@ For wrapped figures, overhang and number of lines are ignored.
}
\newcommand{\limitssiunitx}{%
-\pkg{sunitx} v3 is not yet supported. For now, specify version 2:
-\trouble[v3 not yet!]{siunitx=\pkg{siunitx}>v3}
-\begin{sourcedisplay}
-\cs{usepackage}\{siunitx\}\textred{[=v2]}
-\end{sourcedisplay}
-This may be also be necessary before loading other packages which also use \pkg{siunitx},
-such as \pkg{chemmacros}.
+\pkg{siunitx} is well supported by \pkg{lwarp}.
+
+\paragraph{Limitations} Some general limitations:
Due to \prog{pdftotext} limitations, fraction output is replaced by symbol
\margintag{fractions}
output for \optn{per-mode} and \optn{quotient-mode}.
-Some units will require that the expression be placed inside math mode.
-\trouble[math mode required]{siunitx=\pkg{siunitx}}
+\cs{cancel} is not currently supported for \pkg{siunitx} v3.
-Tabular \texttt{S} and {s} columns are rendered as simple \texttt{c} columns.
+Negative values are not automatically colored.
+
+% Some units will require that the expression be placed inside math mode.
+% \trouble[math mode required]{siunitx=\pkg{siunitx}}
+
+Tabular \texttt{S} and {s} columns are rendered as simple \texttt{c} columns,
+although key settings will be set.
\trouble[\env{tabular}]{siunitx=\pkg{siunitx}>tabular S and s columns}
-These may be replaced by \texttt{c} columns with each cell contained in
-\cs{num} or \cs{si}.
-
-For math mode with \SVG\ display, the original \pkg{siunitx} code is used while
-generating the \SVG\ image.
-For text mode, \pkg{lwarp} uses an emulation which provides a very effective
-\HTML\ interpretation of \pkg{siunitx}.
-For math expressions while using \MathJax,
-\trouble{siunitx=\pkg{siunitx}>mathjax=\MathJax}
-\trouble[MathJax]{mathjax=\MathJax>siunitx=\pkg{siunitx}}
-a limited emulation is used.
-Most functions work reasonably well, but many options cannot be emulated.
-Complicated parsing such as for \cs{ang} is not supported.
-The result usually looks fine, and otherwise is enough to get the meaning across.
+If using scientific notation, \optn{table-format},
+\optn{table-align-uncertainty}, \optn{drop-exponent}, etc..
+use \cs{tablenum} for each cell.
+This is especially required for \optn{drop-exponent},
+\trouble[\optn{drop-exponent}]{siunitx=\pkg{siunitx}>drop-exponent=\optn{drop-exponent}}
+without which the value will be shown incorrectly.
+
+\optn{table-auto-round} is ignored.
+\trouble[\optn{table-auto-round}]{siunitx=\pkg{siunitx}>table-auto-round=\optn{table-auto-roound}}
+
+\paragraph{Math rendering} Math may be rendered in several ways in the same document:
+
+\begin{description}
+\item [For math mode with \SVG\ display:] The original \pkg{siunitx} code is used while
+ generating the \SVG\ image.
+
+\item [For \HTML\ text mode:] \pkg{lwarp} uses \pkg{siunitx} code patched for \HTML,
+ and simplified units.
+
+\item [For math expressions while using \MathJax:] A limited emulation is used.
+ Most functions work reasonably well, but many options cannot be emulated.
+ The result usually looks fine, and otherwise is enough to get the meaning across.
+\end{description}
% \pkg{lwarp}'s \MathJax\ emulation for \pkg{siunitx} is meant to be a
% stop-gap measure until an extension is included in \MathJax.
@@ -2928,15 +2957,58 @@ The result usually looks fine, and otherwise is enough to get the meaning across
% See \cs{MathJaxFilename} to select a custom \MathJax\ script, but \pkg{lwarp}'s
% emulation would have to be diabled as well.
-Document modifications required for \MathJax:
+\paragraph{Custom units} \pkg{siunitx} allows customized units:
+
+\DescribeMacro{\DeclareSIUnit} \marg{name} \marg{definition}
+
+ \cs{DeclareSIUnit} declares a version of the unit for the print version.
+ This is also used when the unit is printed in \SVG\ math
+ or a \env{lateximage}.
+ It is also used for \HTML\ if an \HTML-specific version is not defined
+ with \cs{HTMLDeclareSIUnit}.
+\begin{sourcedisplay}
+\cs{DeclareSIUnit}\cs{myunit}\{\cs{ensuremath}\{\cs{text}\{m\}\_{}y\}\}
+\end{sourcedisplay}
+
+\DescribeMacro{\HTMLDeclareSIUnit} \marg{name} \marg{definition}
+
+ Use this after the print unit has been defined.
+\trouble[v3 only!]{siunitx=\pkg{siunitx}>\cs{HTMLDeclareSIUnit}}
+ For \pkg{siunitx} v3,
+ \cs{HTMLDeclareSIUnit} declares a simplified version of the unit for \HTML,
+ for example if the print-mode unit uses \TeX\ boxes or \cs{ensuremath}:
+\begin{sourcedisplay}
+\cs{HTMLDeclareSIUnit}\cs{myunit}\{\cs{text}\{m\}\cs{textsubscript}\{\cs{textit}\{y\}\}\}
+\end{sourcedisplay}
+
+It is also possible to provide a custom unit for \MathJax:
+\begin{sourcedisplay}
+\cs{CustomizeMathJax}\{\cs{newcommand}\{\cs{myunit}\}\{\cs{text}\{m\}\_{}y\}\}
+\end{sourcedisplay}
+
+\paragraph{Predefined units} Most units work as-is with \HTML.
+For the following units, \pkg{lwarp} has already set \cs{HTMLDeclareSIUnit}:
+\cs{celsius}, \cs{arcminute}, \cs{arcsecond}, \cs{elementarycharge},
+\cs{clight}, \cs{bohr}, \cs{electronmass}, \cs{hartree}, \cs{planckbar}.
+
+\paragraph{Document modifications required for \MathJax}
+\trouble{siunitx=\pkg{siunitx}>mathjax=\MathJax}
+\trouble[MathJax]{mathjax=\MathJax>siunitx=\pkg{siunitx}}
\begin{itemize}
\item Place \cs{sisetup} in the preamble before \texttt{\cs{begin}\{document\}}.
\watchout[\cs{sisetup}]
Changes made later may be ignored, especially with \MathJax.
The \MathJax\ emulation also ignores most macro options.
+\item Complex numbers are displayed as entered,
+ \watchout[complex numbers]
+ ignoring \optn{output-complex-root}.
\item Custom units may be added with \cs{CustomizeMathJax}.
\margintag{custom units}
- See the \pkg{lwarp-siunitx} code for examples.
+ For example, from \pkg{lwarp-common-mathjax-siunitx}:
+ \begin{sourcedisplay}
+ \cs{CustomizeMathJax}\{\cs{newcommand}\{\cs{hartree}\}\{\cs{mathit}\{E\}\_{}\{\cs{mathrm}\{h\}\}\}\} \\
+ \cs{CustomizeMathJax}\{\cs{newcommand}\{\cs{angstrom}\}\{\cs{mathrm}\{\cs{unicode}\{x212B\}\}\}\}
+ \end{sourcedisplay}
\item Units work better using \texttt{\textasciitilde} between units
\watchout[unit spacing]
instead of using periods.
@@ -2949,6 +3021,8 @@ Document modifications required for \MathJax:
Single units do not require braces.
\item For \cs{numlist}, the argument is printed as text as-is,
so use space between semicolons for improved readability.
+\item If using \optn{parse-numbers = false}, also use \cs{num} or \cs{qty}.
+ \watchout[\texttt{Missing \$\ inserted}]{siunitx=\pkg{siunitx}>Missing \$\ inserted.}
\end{itemize}
Also see \nameref{sec:limitsmathjax}, \cref{sec:limitsmathjax}.
@@ -3172,7 +3246,7 @@ This boolean may be tested by the user for later use.
%<*package>
% \fi
%
-% \CheckSum{54471}
+% \CheckSum{55400}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -3318,6 +3392,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.902}{2021/10/01}{\ 2021/10/01}
% \changes{v0.903}{2021/12/23}{Now uses \cs{IfPackageLoadedTF}, etc.}
% \changes{v0.903}{2022/02/01}{\ 2022/02/01}
+% \changes{v0.904}{2022/03/09}{\ 2022/03/09}
@@ -3552,6 +3627,16 @@ This boolean may be tested by the user for later use.
%
% \begin{description}
% \needspace{2\baselineskip}
+% \item[v0.904:] Added \pkg{siunitx} v3.
+% \begin{itemize}
+% \item Fixed \HTML\ tags inside non-Latin text.
+% \item \MathJax\ now defaults to \SVG\ rendering.
+% \item Added \pkg{siunitx} v3. Updated \pkg{siunitx-v2}.
+% See \cref{sec:limitssiunitx} for limitations.
+% \item Updated \pkg{caption}, \pkg{chemmacros}, \pkg{fbox}, \pkg{hyperref},
+% \pkg{multicol}, \pkg{wrapfig2}.
+% \end{itemize}
+% \needspace{2\baselineskip}
% \item[v0.903:] Various updates and improvements.
% \begin{itemize}
% \item Error if \prog{pdftotext} not available.
@@ -12050,21 +12135,46 @@ This boolean may be tested by the user for later use.
%
% \changes{v0.25}{2017/03/22}{Docs: Testing \pkg{lwarp}.}
%
+% Compiling \filenm{lwarp.ins} generates all the \filenm{*.sty} files for \pkg{lwarp}.
+% It can be useful to create additional \filenm{*.ins} files to be able to
+% recompile only the pieces which have changed.
+%
+% For example,
+% \margintag{compiling individual packages}
+% to be able to recompile the \pkg{lwarp} core alone,
+% \DescribeFile{core.ins}
+% copy \filenm{lwarp.ins} to \filenm{core.ins},
+% then modify \filenm{core.ins} to only compile:
+% \begin{sourceverb}
+% \generate{
+% \file{lwarp.sty}{\from{lwarp.dtx}{package}}
+% }
+% \end{sourceverb}
+%
+% For individual packages, create \filenm{packagename.ins}, set to compile only:
+% \begin{sourceverb}
+% \generate{
+% \file{lwarp-packagename.sty}{\from{lwarp.dtx}{packagename}}
+% }
+% \end{sourceverb}
+%
% When changes have been made, test the print output before testing the
% \HTML. The print output compiles faster, and any errors in the printed
% version will be easier to figure out than the \HTML\ version.
%
-% Remember that the configuration files are only rewritten when compiling the
+% Remember that the configuration files
+% \margintag{compiling \CSS\ and other generated files}
+% are only rewritten when compiling the
% printed version of the document.
%
% \changes{v0.57}{2018/05/28}{Docs: Recompiling \prog{lwarpmk} or \CSS\ files.}
% When changing the source to \prog{lwarpmk} or a \CSS\ file in \filenm{lwarp.dtx}:
% \begin{enumerate}
% \item Change the source in \filenm{lwarp.dtx}.
-% \item |pdflatex lwarp.ins|
+% \item |pdflatex lwarp.ins| -or- |pdflatex core.ins|
% \item |pdflatex lwarp.dtx|
% \item If modifying \prog{lwarpmk} the new version should now be active.
-% \item If modifying \CSS\ files:
+% \item If modifying \CSS\ files or other files generated by \pkg{lwarp}:
% \begin{enumerate}
% \item For the document, |lwarpmk print| to update the \CSS\ files
% in the project.
@@ -13650,6 +13760,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{lips}
\LWR@loadafter{listings}
\LWR@loadafter{listliketab}
+\LWR@loadafter{lltjp-siunitx}
\LWR@loadafter{lltjp-tascmac}
\LWR@loadafter{longtable}
\LWR@loadafter{lpic}
@@ -18114,7 +18225,7 @@ span.textnormal, div.textnormal {
font-variant: normal;
font-variant-numeric: normal ;
font-family: "DejaVu Serif", "Bitstream Vera Serif",
- "Lucida Bright", Georgia, serif;
+ "Lucida Bright", Georgia, serif;
}
span.textmd, div.textmd { font-weight: normal; }
@@ -20541,6 +20652,8 @@ page_compositor "."
% \changes{v0.891}{2020/09/07}{File: \filenm{lwarp_mathjax.txt}: Renamed \filenm{tagformat} extension.}
% \changes{v0.892}{2020/09/26}{File: \filenm{lwarp_mathjax.txt}: Added \cs{left} \Slash \cs{right} delimiters.}
% \changes{v0.895}{2021/01/13}{File: \filenm{lwarp_mathjax.txt}: Added \cs{ifblank}, \cs{ifstrequal} macros.}
+% \changes{v0.904}{2022/02/21}{File: \filenm{lwarp_mathjax.txt}: Added \cs{gsub} macro.}
+% \changes{v0.904}{2022/02/25}{File: \filenm{lwarp_mathjax.txt}: Defaults to \SVG\ instead of \acro{chtml}.}
% ^^A *lwarp_mathjax.txt
%
% \codeconfig
@@ -20593,12 +20706,13 @@ MathJax = {
}
// Create the command map for:
- // \ifstar, \ifnextchar, \ifblank, \ifstrequal, \seteqnumber
+ // \ifstar, \ifnextchar, \ifblank, \ifstrequal, \gsub, \seteqnumber
new CommandMap('Lwarp-macros', {
ifstar: 'IfstarFunction',
ifnextchar: 'IfnextcharFunction',
ifblank: 'IfblankFunction',
ifstrequal: 'IfstrequalFunction',
+ gsubstitute: 'GsubstituteFunction',
seteqnumber: 'SeteqnumberFunction'
}, {
// This function implements an ifstar macro.
@@ -20641,6 +20755,15 @@ MathJax = {
useArgument(parser, isequal ? resultequal : resultnotequal);
},
+ // This function implements a gsub macro.
+ GsubstituteFunction(parser, name) {
+ const gsubfirst = parser.GetArgument(name);
+ const gsubsecond = parser.GetArgument(name);
+ const gsubthird = parser.GetArgument(name);
+ let gsubresult=gsubfirst.replace(gsubsecond, gsubthird);
+ useArgument(parser, gsubresult);
+ },
+
// This function modifies the equation numbers.
SeteqnumberFunction(parser, name) {
// Get the macro parameters
@@ -20741,7 +20864,7 @@ MathJax = {
<script
id="MathJax-script"
- src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"
+ src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"
></script>
\end{filecontents*}
% \end{Verbatim}% for syntax highlighting
@@ -20878,7 +21001,7 @@ MathJax = {
-- Copyright 2016-2022 Brian Dunn
-printversion = "v0.903"
+printversion = "v0.904"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
@@ -22233,7 +22356,6 @@ end -- not --version
% \end{macrocode}
% \end{macro}
-
% \DescribeBoolean{LWR@mathmacro} True if currently defining math macros.
% Used to disable \SVG\ math hashing and \MathJax\ math contents while
% defining a macro using inline math.
@@ -22269,6 +22391,30 @@ end -- not --version
% \end{macrocode}
+% \codehtml
+% \begin{macrocode}
+\begin{warpHTML}
+% \end{macrocode}
+
+% A definition for |&| in case it is referred to after
+% \cs{StartDefiningTabulars} but outside a \env{tabular}.
+% \changes{v0.904}{2022/03/03}{Warn if \& outside \env{tabular}.}
+% \begin{macrocode}
+\StartDefiningTabulars
+\protected\gdef&{%
+ \PackageWarning{lwarp}{%
+ An ampersand is being used inside a tabular\MessageBreak
+ }%
+}%
+\StopDefiningTabulars
+% \end{macrocode}
+
+% \begin{macrocode}
+\end{warpHTML}
+% \end{macrocode}
+
+
+
% \section{Localizing dynamic math}
% \label{sec:localizingdynamicmath}
% \trouble{SVG image>math incorrect>dymamic}
@@ -22353,21 +22499,69 @@ end -- not --version
% \end{macrocode}
% \HTML\ Unicode entities:
+
% \begin{macrocode}
\let\LWR@origampersand\&
% \end{macrocode}
+
+
+% \begin{macro}{\LWR@fontfortags} \marg{macro name}
+%
+% Forces roman TT font for \HTML\ tags.
+% \changes{v0.904}{2022/03/02}{Improved font control.}
+% \begin{macrocode}
+\newrobustcmd*{\LWR@fontfortags}[1]{%
+ \ifmmode%
+ \PackageError{lwarp}%
+ {%
+ An HTML tag was generated inside math.\MessageBreak
+ This should never occur.\MessageBreak
+ Something is broken in Lwarp%
+ }%
+ {(Using #1.)}%
+ \else%
+% \end{macrocode}
+%
+% Used by \pkg{ltjtbook}, \pkg{platex}, and related.
+% \begin{macrocode}
+ \ifdef{\romanencoding}%
+ {%
+ \romanencoding{\encodingdefault}%
+ }%
+ {%
+% \end{macrocode}
+%
+% Used by \pkg{babel}:
+% \begin{macrocode}
+ \ifdef{\latintext}
+ {\latintext}
+ {\fontencoding\encodingdefault}%
+ }%
+ \LWR@print@normalfont%
+ \LWR@origttfamily%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}
+
% \begin{macro}{\HTMLentity} \marg{entitytag}
+%
+% \cs{protect} is in case the tag appears in \TOC, \LOF, \LOT.
+%
+% \changes{v0.904}{2022/02/19}{Improved font control.}
% \begin{macrocode}
\newcommand*{\HTMLentity}[1]{%
% \LWR@traceinfo{HTMLentity \detokenize{#1}}%
-\begingroup%
-\LWR@hook@processingtags%
-\LWR@origampersand#1;%
-\endgroup%
+ \begingroup%
+ \LWR@hook@processingtags%
+ \LWR@fontfortags{HTMLentity}%
+ \protect\LWR@origampersand\LWR@isolate{#1};%
+ \endgroup%
% \LWR@traceinfo{HTMLentity done}%
}
% \end{macrocode}
% \end{macro}
+
% \begin{macro}{\HTMLunicode} \marg{hex\_unicode}
% \begin{macrocode}
\newcommand*{\HTMLunicode}[1]{\HTMLentity{\LWR@origpound{}x#1}}
@@ -23221,13 +23415,15 @@ end -- not --version
% Break ligatures and use upright apostrophes in \HTML\ tags.
%
% \cs{protect} is in case the tag appears in \TOC, \LOF, \LOT.
+%
% \changes{v0.85}{2020/04/30}{Fix: Added print macros for \pkg{fontspec}.}
+% \changes{v0.904}{2022/02/19}{Improved font control.}
% \begin{macrocode}
\newcommand*{\LWR@htmltagc}[1]{%
\LWR@traceinfo{LWR@htmltagc !\detokenize{#1}!}%
\begingroup%
\LWR@hook@processingtags%
- \ifmmode\else\protect\LWR@print@normalfont\protect\LWR@origttfamily\fi%
+ \LWR@fontfortags{LWR@htmltagc}%
\protect\LWR@origtextless%
\LWR@isolate{#1}%
\protect\LWR@origtextgreater%
@@ -23411,7 +23607,7 @@ end -- not --version
% \LWR@traceinfo{LWR@htmlopencomment}%
\begingroup%
\LWR@hook@processingtags%
- \ifmmode\else\protect\LWR@print@normalfont\protect\LWR@origttfamily\fi%
+ \LWR@fontfortags{LWR@htmlopencomment}%
\LWR@print@mbox{\LWR@origtextless{}!-\/-}%
\endgroup%
}
@@ -23420,7 +23616,7 @@ end -- not --version
% \LWR@traceinfo{LWR@htmlclosecomment}%
\begingroup%
\LWR@hook@processingtags%
- \ifmmode\else\protect\LWR@print@normalfont\protect\LWR@origttfamily\fi%
+ \LWR@fontfortags{LWr@htmlclosecomment}%
\LWR@print@mbox{-\/-\LWR@origtextgreater}%
\endgroup%
}
@@ -30949,22 +31145,7 @@ end -- not --version
% \subsection{Parsing `w' columns}
%
-% \begin{macro}{\LWR@parsewcolumn} \marg{this column type}
-% The width will be ignored.
-%
-% The arguments to the column type are absorbed by \cs{LWR@columntype@<char>},
-% defined by \cs{LWR@modifycolumntype}.
-%
-% The argument is ignored,
-% but provided for compatibility with \cs{LWR@parsenormalcolumn}.
-%
-% \begin{macrocode}
-\newcommand*{\LWR@parsewcolumn}[1]{%
- \LWR@columnspeclookahead{1}%
- \expandafter\LWR@parsenormalcolumn\expandafter{\LWR@strresulttwo}%
-}
-% \end{macrocode}
-% \end{macro}
+% |W| and |w| columns are handled via \pkg{array} with \cs{HTMLnewcolumntype}.
% \subsection{Parsing '*' columns}
@@ -31204,14 +31385,6 @@ end -- not --version
\LWR@modifycolumntype{b}{1}{LWR@parsenormalcolumn}
{LWR@printmccoltype@normal}{LWR@printmccoldata@paragraph}
% \end{macrocode}
-% \changes{v0.56}{2018/05/10}{Added \pkg{array} \texttt{W} column.}
-% \begin{macrocode}
-\LWR@modifycolumntype{w}{2}{LWR@parsewcolumn}
- {LWR@printmccoltype@normal}{LWR@printmccoldata@normal}
-
-\LWR@modifycolumntype{W}{2}{LWR@parsewcolumn}
- {LWR@printmccoltype@normal}{LWR@printmccoldata@normal}
-% \end{macrocode}
% A star column:
% \begin{macrocode}
\LWR@modifycolumntype{*}{2}{LWR@parsestarcolumn}
@@ -31220,7 +31393,11 @@ end -- not --version
%
%
%
-% \begin{macro}{\HTMLnewcolumntype} \marg{col type} \oarg{num args} \marg{replacement text}
+% \begin{macro}{\HTMLnewcolumntype}
+% \marg{col type}
+% \oarg{num args}
+% \oarg{optional arg}
+% \marg{replacement text}
%
% A user-level macro to creates an \HTML\ version
% of the replacement text for the column type.
@@ -31233,11 +31410,20 @@ end -- not --version
% \end{sourceverb}
%
% \changes{v0.901}{2021/08/17}{Improved \cs{newcolumntype} emulation.}
+% \changes{v0.904}{2022/03/05}{Added optional arg.}
% \begin{macrocode}
-\NewDocumentCommand{\HTMLnewcolumntype}{m O{0} m}{%
- \expandafter\newcommand\expandafter*%
- \csname LWR@HTML@NC@rewrite@#1\endcsname[#2]{\NC@find #3}%
- \LWR@formatted{NC@rewrite@#1}%
+\NewDocumentCommand{\HTMLnewcolumntype}{m O{0} o m}{%
+ \IfValueTF{#3}
+ {
+ \expandafter\newcommand\expandafter*%
+ \csname LWR@HTML@NC@rewrite@#1\endcsname[#2][#3]{\NC@find #4}%
+ \LWR@formatted{NC@rewrite@#1}%
+ }
+ {
+ \expandafter\newcommand\expandafter*%
+ \csname LWR@HTML@NC@rewrite@#1\endcsname[#2]{\NC@find #4}%
+ \LWR@formatted{NC@rewrite@#1}%
+ }
}
% \end{macrocode}
% \end{macro}
@@ -31252,7 +31438,7 @@ end -- not --version
% \end{macrocode}
%
% \begin{macrocode}
-\NewDocumentCommand{\HTMLnewcolumntype}{m O{0} m}{}
+\NewDocumentCommand{\HTMLnewcolumntype}{m O{0} o m}{}
% \end{macrocode}
%
% \begin{macrocode}
@@ -37483,8 +37669,8 @@ end -- not --version
\renewcommand*{\$}{%
\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}%
- {\LWR@origtextdollar}%
- {\HTMLunicode{00024}}%
+ {\LWR@origtextdollar}%
+ {\HTMLunicode{00024}}%
}
% \end{macrocode}
@@ -40075,7 +40261,8 @@ end -- not --version
% \label{sec:siunitx}
% \DescribePackage{siunitx}
-% The \pkg{lwarp} core passes a few options to \pkg{siunitx}.
+
+% A few \HTML\ unit equivalents are defined here.
% \limitssiunitx
%
@@ -40090,6 +40277,7 @@ end -- not --version
% Options for siunitx:
% \changes{v0.50}{2018/02/24}{\pkg{siunitx}: Improved units.}
% \changes{v0.897}{2021/05/23}{\pkg{siunitx}: Rollback for v2.}
+% \changes{v0.904}{2022/02/19}{\pkg{siunitx}: Added v3.}
% \begin{macrocode}
\newrobustcmd{\LWR@siunitx@textcelsius}{\HTMLentity{deg}C}
\newrobustcmd{\LWR@siunitx@textdegree}{\HTMLentity{deg}}
@@ -40104,15 +40292,6 @@ end -- not --version
\renewrobustcmd{\LWR@siunitx@textdblprime}{\text{\ensuremath{^{\prime\prime}}}}%
\renewrobustcmd{\LWR@siunitx@textplanckbar}{\text{\ensuremath{\hbar}}}%
}
-
-\PassOptionsToPackage{
- detect-mode=true,
- per-mode=symbol, % fraction is not seen by pdftotext
- text-celsius = {\LWR@siunitx@textcelsius},
- text-degree = {\LWR@siunitx@textdegree},
- text-arcminute = {\LWR@siunitx@textprime} ,
- text-arcsecond = {\LWR@siunitx@textdblprime} ,
-}{siunitx-v2}
% \end{macrocode}
% \begin{macrocode}
@@ -40120,7 +40299,14 @@ end -- not --version
% \end{macrocode}
-
+% \codeprint
+%
+% The print version of \cs{HTMLDeclareSIUnit}.
+% \begin{macrocode}
+\begin{warpprint}
+\NewDocumentCommand{\HTMLDeclareSIUnit}{o +m m}{}
+\end{warpprint}
+% \end{macrocode}
% \section{Graphics print-mode modifications}
@@ -41570,14 +41756,19 @@ color:\LWR@origpound\LWR@tempcolor%
% \begin{macro}{\textnormal} \marg{text}
% \changes{v0.902}{2021/09/28}{Reduce nested spans.}
+% \changes{v0.904}{2022/03/02}{Improved.}
% \begin{macrocode}
\DeclareRobustCommand{\LWR@HTML@textnormal}[1]{%
-% \textmd{\textrm{\textup{#1}}}%
\LWR@HTML@mdseries%
\LWR@HTML@rmfamily%
\LWR@HTML@upshape%
+ \LWR@HTML@ulcshape%
\InlineClass(%
- font-weight:normal; font-family:serif; font-style:normal
+ font-weight: normal;
+ font-family: serif;
+ font-style: normal;
+ font-variant: normal;
+ font-variant-numeric: normal ;
){textnormal}{#1}%
}
@@ -41632,6 +41823,7 @@ color:\LWR@origpound\LWR@tempcolor%
% \changes{v0.48}{2018/02/02}{Added. Improves font control.}
% \changes{v0.56}{2018/04/27}{Added \attribute{span.textbf}, etc.}
% \changes{v0.62}{2018/11/15}{Tracks depth to avoid nesting repeated font changes.}
+% \changes{v0.904}{2022/03/02}{Uses \optn{textnormal} if possible.}
% \begin{macrocode}
\newcounter{LWR@textcurrentfontdepth}
\setcounter{LWR@textcurrentfontdepth}{0}
@@ -41645,13 +41837,22 @@ color:\LWR@origpound\LWR@tempcolor%
}%
{%
\addtocounter{LWR@textcurrentfontdepth}{1}%
- \InlineClass{%
- text\LWR@f@family\LWR@origtilde{}%
- text\LWR@f@series\LWR@origtilde{}%
- text\LWR@f@shape\LWR@origtilde{}%
- text\LWR@f@shapecaps%
+ \ifboolexpr{%
+ test {\ifdefstring{\LWR@f@family}{rm}} and
+ test {\ifdefstring{\LWR@f@series}{md}} and
+ test {\ifdefstring{\LWR@f@shape}{up}} and
+ test {\ifdefstring{\LWR@f@shapecaps}{ulc}}
+ }%
+ {\InlineClass{textnormal}{#1}}%
+ {%
+ \InlineClass{%
+ text\LWR@f@family\LWR@origtilde{}%
+ text\LWR@f@series\LWR@origtilde{}%
+ text\LWR@f@shape\LWR@origtilde{}%
+ text\LWR@f@shapecaps%
+ }%
+ {#1}%
}%
- {#1}%
\addtocounter{LWR@textcurrentfontdepth}{-1}%
}%
}
@@ -42000,13 +42201,16 @@ color:\LWR@origpound\LWR@tempcolor%
%
% \begin{macro}{\LWR@tempcolor}
% \begin{macro}{\LWR@tempcolortwo}
+% \begin{macro}{\LWR@tempcolorthree}
% The color converted to \HTML\ colorspace.
% \begin{macrocode}
\newcommand*{\LWR@tempcolor}{}
\newcommand*{\LWR@tempcolortwo}{}
+\newcommand*{\LWR@tempcolorthree}{}
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
%
%
% \begin{macro}{\LWR@findcurrenttextcolor}
@@ -44970,13 +45174,13 @@ color:\LWR@origpound\LWR@tempcolor%
\LetLtxMacro\LWR@origmake@df@tag@@@\make@df@tag@@@
\renewcommand*{\make@df@tag@@}[1]{%
-\LWR@remembertag{#1}%
-\LWR@origmake@df@tag@@{#1}%
+ \LWR@remembertag{#1}%
+ \LWR@origmake@df@tag@@{#1}%
}
\renewcommand*{\make@df@tag@@@}[1]{%
-\LWR@remembertag{#1}%
-\LWR@origmake@df@tag@@@{#1}%
+ \LWR@remembertag{#1}%
+ \LWR@origmake@df@tag@@@{#1}%
}
}% not mathjax
@@ -45881,6 +46085,7 @@ color:\LWR@origpound\LWR@tempcolor%
%
% Provide simplified column types for \HTML:
% \changes{v0.901}{2021/08/12}{\pkg{array}: Improved \cs{newcolumntype} emulation.}
+% \changes{v0.904}{2022/03/05}{\pkg{array}: Improved \texttt{W} and \texttt{w} processing.}
% \begin{macrocode}
\HTMLnewcolumntype{w}[2]{#1}
\HTMLnewcolumntype{W}[2]{#1}
@@ -48670,6 +48875,7 @@ color:\LWR@origpound\LWR@tempcolor%
%
% \changes{v0.44}{2017/11/16}{\pkg{cancel}: Added.}
% \changes{v0.87}{2020/06/02}{\pkg{cancel}: Now uses \MathJax\ v3 extension.}
+% \changes{v0.904}{2022/03/08}{\pkg{cancel}: Now \cs{LWR@formatted}.}
%
% \codehtml
%
@@ -48681,17 +48887,6 @@ color:\LWR@origpound\LWR@tempcolor%
%
%
% \cs{cancelto} is math-only, so is used as-is.
-% \begin{macrocode}
-\LetLtxMacro\LWR@origcancel\cancel
-\LetLtxMacro\LWR@origbcancel\bcancel
-\LetLtxMacro\LWR@origxcancel\xcancel
-
-\appto\LWR@restoreorigformatting{%
-\LetLtxMacro\cancel\LWR@origcancel%
-\LetLtxMacro\bcancel\LWR@origbcancel%
-\LetLtxMacro\xcancel\LWR@origxcancel%
-}
-% \end{macrocode}
% \begin{noindmacro}{\LWR@cancelcolor}
@@ -48709,7 +48904,7 @@ color:\LWR@origpound\LWR@tempcolor%
% \begin{noindmacro}{\cancel} \marg{text}
% \begin{macrocode}
-\DeclareRobustCommand{\cancel}[1]{%
+\DeclareRobustCommand{\LWR@HTML@cancel}[1]{%
\begingroup%
\CancelColor%
\LWR@findcurrenttextcolor%
@@ -48718,6 +48913,7 @@ color:\LWR@origpound\LWR@tempcolor%
{text-decoration:line-through}%
\endgroup%
}
+\LWR@formatted{cancel}%
\LetLtxMacro\bcancel\cancel
\LetLtxMacro\xcancel\cancel
@@ -48898,6 +49094,19 @@ s%
% \end{macrocode}
+% \changes{v0.904}{2022/03/04}{\pkg{caption}: Added \cs{captiontext}.}
+% \begin{macrocode}
+\long\def\caption@@@text#1#2#3[#4]#5{%
+ \begin{BlockClass}{figurecaption}% lwarp
+ \begingroup
+ #3{\csname c@#1\endcsname #4\relax}%
+ #2{\caption@fnum{#1}}{#5}%
+ \endgroup%
+ \end{BlockClass}% lwarp
+}
+% \end{macrocode}
+
+
% Updates for late patches for \pkg{scrextend}:
% \changes{v0.88}{2020/07/15}{\pkg{caption}, \pkg{scrextend}: Fixed \cs{caption*}.}
% \begin{macrocode}
@@ -49102,7 +49311,16 @@ s%
\renewcommand{\caption@@make@}[2]{%
\caption@stepthecounter%
\caption@beginhook%
+% \caption@box\hsize{%
+% \caption@singlelinecheck{\caption@slc{#1}{#2}\caption@singleline\caption@multiline}{\caption@multiline}%
+% \caption@calcmargin
+% \caption@make@leftmargin
+% \caption@make@parbox{%
+% \caption@make@indention
\caption@@@make{#1}{#2}%
+% }
+% \caption@make@rightmargin
+% }%
\caption@endhook%
}
% \end{macrocode}
@@ -49990,7 +50208,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackagePass{chemformula}[2019/10/13]
+\LWR@ProvidesPackagePass{chemformula}[2022/01/23]
% \end{macrocode}
% \begin{macrocode}
@@ -50400,7 +50618,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackagePass{chemmacros}[2017/08/28]
+\LWR@ProvidesPackagePass{chemmacros}[2022/02/13]
% \end{macrocode}
%
% \SVG\ file hashing assumes that the relevent options are constant for the entire document.
@@ -50437,22 +50655,45 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
% \subsection{Code}
%
%
+% \begin{macrocode}
+\ExplSyntaxOn
+% \end{macrocode}
+%
+%
+% \subsection{Loading packages}
+%
+% Also accept the \pkg{lwarp} version:
+% \changes{v0.904}{2022/03/03}{\pkg{chemmacros}: Accept \pkg{lwarp} version of pkgs.}
+% \begin{macrocode}
+\prg_set_conditional:Npnn \chemmacros_if_package_loaded:n #1 {p,T,F,TF}
+ {
+ \cs_if_exist:cTF {ver@#1.sty}
+ { \prg_return_true: }
+ {
+ \cs_if_exist:cTF {ver@lwarp-#1.sty}
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+ }
+% \end{macrocode}
+%
+% Nullify \pkg{hyperref} detection:
+% \changes{v0.904}{2022/03/03}{\pkg{chemmacros}: Nullify \pkg{hyperref} detection.}
+% \begin{macrocode}
+\hook_gput_code:nnn {begindocument/end} {chemmacros}
+ {
+ \bool_set_false:N \l__chemmacros_hyperref_bool
+ }
+% \end{macrocode}
+%
+%
+%
% \subsection{Loading modules}
%
% Patching \pkg{chemmacros} modules must be done \cs{AtBeginDocument},
% since modules are invoked by the user in the preamble, and each patch is
% only done if the module is loaded.
%
-% \begin{macrocode}
-\ExplSyntaxOn
-
-\newcommand{\@ifchemmacrosmoduleloaded}[1]{%
-\@ifl@aded{\c__chemmacros_module_extension_tl}{\c__chemmacros_module_prefix_tl.#1}%
-}
-
-\ExplSyntaxOff
-% \end{macrocode}
-%
%
% \subsection{New environments}
% \label{sec:chemmacroshtmlenvs}
@@ -50484,17 +50725,12 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
% \end{noindenvironment}
%
%
-% \begin{macrocode}
-\ExplSyntaxOn
-% \end{macrocode}
-%
-%
% \subsection{Acid-base}
%
% \changes{v0.903}{2021/12/18}{\pkg{chemmacros}: Improved alt tag sanitization.}
% \begin{macrocode}
\AtBeginDocument{
-\@ifchemmacrosmoduleloaded{acid-base}{
+\chemmacros_module_if_loaded:nTF{{acid-base}}{
\PackageInfo{lwarp}{Patching~chemmacros~module~acid-base}
\cs_gset_protected:Npn \chemmacros_p:n #1
@@ -50526,7 +50762,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}pH}{chemmacros}{
- \chemmacros_p:n { \chemmacros_chemformula:n {H} }
+ \chemmacros_p:n { \chemmacros_formula:n {H} }
}
\endgroup
}
@@ -50535,7 +50771,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}pOH}{chemmacros}{
- \chemmacros_p:n { \chemmacros_chemformula:n {OH} }
+ \chemmacros_p:n { \chemmacros_formula:n {OH} }
}
\endgroup
}
@@ -50598,7 +50834,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
\endgroup
}
-}{}% \@ifchemmacrosmoduleloaded
+}{}% module loaded
}% AtBeginDocument
% \end{macrocode}
%
@@ -50607,7 +50843,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
%
% \begin{macrocode}
\AtBeginDocument{
-\@ifchemmacrosmoduleloaded{charges}{
+\chemmacros_module_if_loaded:nTF{{charges}}{
\PackageInfo{lwarp}{Patching~chemmacros~module~charges}
\cs_gset_protected:Npn \fplus {
@@ -50625,7 +50861,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
\endgroup
}
-}{}% \@ifchemmacrosmoduleloaded
+}{}% Module loaded.
}% AtBeginDocument
% \end{macrocode}
%
@@ -50634,16 +50870,16 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
%
% \begin{macrocode}
\AtBeginDocument{
-\@ifchemmacrosmoduleloaded{nomenclature}{
+\chemmacros_module_if_loaded:nTF{{nomenclature}}{
\PackageInfo{lwarp}{Patching~chemmacros~module~nomenclature}
\cs_gset_protected:Npn \chemmacros_charge:n #1
{
\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}
- {\chemmacros_chemformula:n { {}^{#1} }}
+ {\chemmacros_formula:n { {}^{#1} }}
{
\ifmmode
- {\chemmacros_chemformula:n { {}^{#1} }}
+ {\chemmacros_formula:n { {}^{#1} }}
\else
{ \textsuperscript{\ensuremath{#1}} }
\fi
@@ -50663,7 +50899,6 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
% ^^A \RenewChemIUPAC \chemprime { \HTMLunicode{2032} }
%
% \begin{macrocode}
-\ChemCompatibilityFrom{5.8}
\cs_gset_protected:Npn \__chemmacros_cip:n #1
{
\tl_set:Nn \l__chemmacros_tmpa_tl {#1}
@@ -50680,7 +50915,6 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
}}% lwarp
}
}
-\EndChemCompatibility
% \end{macrocode}
%
% \begin{macrocode}
@@ -50706,9 +50940,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
\chemmacros_coordination_symbol:nnnn
{ \l__chemmacros_coord_use_hyphen_bool }
{
- \chemmacros_if_compatibility:nnTF {>} {5.7}
{ \c_true_bool }
- { \c_false_bool }
}
{ \chemeta }
{#1}
@@ -50724,9 +50956,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
\chemmacros_coordination_symbol:nnnn
{ \l__chemmacros_coord_use_hyphen_bool }
{
- \chemmacros_if_compatibility:nnTF {>} {5.7}
{ \c_true_bool }
- { \c_false_bool }
}
{ \chemkappa }
{#1}
@@ -50747,7 +50977,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
}
\endgroup
}
-}{}% \@ifchemmacrosmoduleloaded
+}{}% Module loaded.
}% AtBeginDocument
% \end{macrocode}
%
@@ -50756,7 +50986,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
%
% \begin{macrocode}
\AtBeginDocument{
-\@ifchemmacrosmoduleloaded{particles}{
+\chemmacros_module_if_loaded:nTF{{particles}}{
\PackageInfo{lwarp}{Patching~chemmacros~module~particles}
\cs_gset_protected:Npn \chemmacros_declare_nucleophile:Nn #1#2
@@ -50766,11 +50996,10 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
\bool_if:NTF \l__chemmacros_nucleophile_elpair_bool
{
\chemmacros_elpair:n { #2 }
- \chemmacros_if_compatibility:nnT {>=} {5.3}
{ \skip_horizontal:N \l__chemmacros_nucleophile_dim }
- \chemmacros_chemformula:n { {}^{-} }
+ \chemmacros_formula:n { {}^{-} }
}
- { \chemmacros_chemformula:n { #2^{-} } }
+ { \chemmacros_formula:n { #2^{-} } }
}
\DeclareDocumentCommand #1 {o}
{%
@@ -50787,7 +51016,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
\RenewChemNucleophile \Nuc {Nu}
\RenewChemNucleophile \ba {ba}
-}{}% \@ifchemmacrosmoduleloaded
+}{}% Module loaded.
}% AtBeginDocument
% \end{macrocode}
%
@@ -50796,7 +51025,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
%
% \begin{macrocode}
\AtBeginDocument{
-\@ifchemmacrosmoduleloaded{phases}{
+\chemmacros_module_if_loaded:nTF{{phases}}{
\PackageInfo{lwarp}{Patching~chemmacros~module~phases}
\cs_undefine:N \chemmacros_phase:n
@@ -50824,7 +51053,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
}
}
-}{}% \@ifchemmacrosmoduleloaded
+}{}% Module loaded.
}% AtBeginDocument
% \end{macrocode}
%
@@ -50832,7 +51061,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
%
% \begin{macrocode}
\AtBeginDocument{
-\@ifchemmacrosmoduleloaded{mechanisms}{
+\chemmacros_module_if_loaded:nTF{{mechanisms}}{
\PackageInfo{lwarp}{Patching~chemmacros~module~mechanisms}
\chemmacros_define_keys:nn {textmechanisms}
@@ -50944,15 +51173,18 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
}%
}
-}{}% \@ifchemmacrosmoduleloaded
+}{}% Module loaded.
}% AtBeginDocument
% \end{macrocode}
%
+%
% \subsection{Newman}
%
+% There are so many options that it is hard to hash these images for reuse.
+%
% \begin{macrocode}
\AtBeginDocument{
-\@ifchemmacrosmoduleloaded{newman}{
+\chemmacros_module_if_loaded:nTF{{newman}}{
\PackageInfo{lwarp}{Patching~chemmacros~module~newman}
\RenewDocumentCommand \newman {od()m}%
@@ -50969,7 +51201,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
\end{lateximage}
}%
-}{}% \@ifchemmacrosmoduleloaded
+}{}% Module loaded.
}% AtBeginDocument
% \end{macrocode}
%
@@ -50978,7 +51210,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
% \changes{v0.903}{2021/12/18}{\pkg{chemmacros}: Improved alt tag sanitization.}
% \begin{macrocode}
\AtBeginDocument{
-\@ifchemmacrosmoduleloaded{orbital}{
+\chemmacros_module_if_loaded:nTF{{orbital}}{
\PackageInfo{lwarp}{Patching~chemmacros~module~orbital}
\RenewDocumentCommand \orbital {om}
@@ -51006,7 +51238,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
\end{lateximage}
}
-}{}% \@ifchemmacrosmoduleloaded
+}{}% Module loaded.
}% AtBeginDocument
% \end{macrocode}
%
@@ -51017,12 +51249,17 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
% \fqquad \marg{chem} \marg{math} \marg{args number} \marg{argument list (\{\#2\}\{\#3\}...)}
% \begin{macrocode}
\AtBeginDocument{
-\@ifchemmacrosmoduleloaded{reactions}{
+\chemmacros_module_if_loaded:nTF{{reactions}}{
\PackageInfo{lwarp}{Patching~chemmacros~module~reactions}
-\cs_gset_protected:Npn \chemmacros_declare_reaction_env:nnnn #1#2#3#4
+% #1: chem
+% #2: math
+% #3: args number
+% #4: argument list ({#2}{#3}...)
+\cs_gset_protected:Npn \__chemmacros_declare_reaction_env:nnnn #1#2#3#4
{
- \exp_args:Nnx \DeclareDocumentEnvironment {#1} { O{} \prg_replicate:nn {#3+0} {m} }
+ \exp_args:Nnx \DeclareDocumentEnvironment {#1}
+ { \int_compare:nT { #3+0 = 0 } {!} O{} \prg_replicate:nn {#3+0} {m} }
{
\boolfalse{mathjax}% lwarp
\ifdefvoid{\LWR@ThisAltText}{% lwarp
@@ -51030,13 +51267,15 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
}{}% lwarp
\chemmacros_add_reaction_description:n {##1}
\__chemmacros_begin_reaction:
- \chemmacros_reaction_read:nnw {#2} {#4}
+ \__chemmacros_reaction_read:nnw {#2} {#4}
}
{
\__chemmacros_end_reaction:
\gdef\LWR@ThisAltText{}% lwarp
+ \ignorespacesafterend
}
}
+
\cs_generate_variant:Nn \chemmacros_declare_reaction_env:nnnn {nnnV}
\RenewChemReaction {reaction} {equation}
@@ -51044,18 +51283,191 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
\RenewChemReaction {reactions} {align}
\RenewChemReaction {reactions*} {align*}
-}{}% \@ifchemmacrosmoduleloaded
+}{}% Module loaded.
}% AtBeginDocument
% \end{macrocode}
% \end{noindmacro}
%
%
+% \subsection{Reactants}
+%
+% Recompiled for tabular ampersand processing,
+% with the only change being \cs{StartDefiningTabulars}.
+% \cs{xpatchcmd} does not work here.
+%
+% \begin{macrocode}
+\StartDefiningTabulars% lwarp
+
+% #1: star: include ID in table
+\RenewDocumentCommand \printreactants {s}
+ {
+ \group_begin:
+ \chemmacros_set_keys:nn {reactants} { switch = false }
+ \int_step_variable:nNn
+ { \seq_count:N \g_chemnum_initiated_compounds_seq }
+ \l__chemmacros_reactants_tmpa_tl
+ {
+ \seq_put_right:Nx
+ \l__chemmacros_reactants_tmpa_seq
+ {
+ \chemnum_cmpd:nnne { \c_false_bool } { \c_true_bool } {}
+ {
+ \seq_item:NV
+ \g_chemnum_initiated_compounds_seq
+ \l__chemmacros_reactants_tmpa_tl
+ }
+ &
+ \bool_if:nT {#1}
+ {
+ \seq_item:NV
+ \g_chemnum_initiated_compounds_seq
+ \l__chemmacros_reactants_tmpa_tl
+ &
+ }
+ % TODO: expl3-command ??
+ \solvent
+ {
+ \seq_item:NV
+ \g_chemnum_initiated_compounds_seq
+ \l__chemmacros_reactants_tmpa_tl
+ }
+ \tabularnewline
+ }
+ \tl_set:Nx
+ \l__chemmacros_reactants_tmpb_tl
+ {
+ \seq_item:NV
+ \g_chemnum_initiated_compounds_seq
+ \l__chemmacros_reactants_tmpa_tl
+ }
+ \chemmacros_reactants_list_subreactant:Vn
+ \l__chemmacros_reactants_tmpb_tl
+ {#1}
+ }
+ % TODO: longtable ?
+ % table customizable?
+ % first draft of two styles
+ \par
+ \noindent
+ \bool_if:NTF \l__chemmacros_reactants_printreactants_style_bool
+ {
+ \str_case:Vn \l__chemmacros_reactants_printreactants_style_str
+ {
+ {xltabular}
+ {
+ \chemmacros_if_package_loaded:nTF {xltabular}
+ {
+ \bool_if:nTF {#1}
+ {
+ \begin {xltabular}
+ { \textwidth }
+ { @{}ll>{\raggedright\arraybackslash}X@{} }
+ }
+ {
+ \begin {xltabular}
+ { \textwidth }
+ { @{}l>{\raggedright\arraybackslash}X@{} }
+ }
+ \seq_use:Nn \l__chemmacros_reactants_tmpa_seq { }
+ \end{xltabular}
+ }
+ {
+ \msg_expandable_error:nnnn
+ {chemmacros}
+ {package-not-loaded}
+ { \printreactants }
+ {xltabular}
+ }
+ }
+ {longtable}
+ {
+ \chemmacros_if_package_loaded:nTF {longtable}
+ {
+ \bool_if:nTF {#1}
+ {
+ \begin {longtable}[l]
+ { @{}ll>{\raggedright\arraybackslash}p{0.6\textwidth}@{} }
+ }
+ {
+ \begin {longtable}[l]
+ { @{}l>{\raggedright\arraybackslash}p{0.9\textwidth}@{} }
+ }
+ \seq_use:Nn \l__chemmacros_reactants_tmpa_seq { }
+ \end{longtable}
+ }
+ {
+ \msg_expandable_error:nnnn
+ {chemmacros}
+ {package-not-loaded}
+ { \printreactants }
+ {longtable}
+ }
+ }
+ }
+ }
+ {
+ \msg_warning:nn {chemmacros} {missing-printreactants-style}
+ }
+ \group_end:
+ }
+
+% #1: full ID
+% #2: star, include ID in table
+\cs_gset_protected:Npn \chemmacros_reactants_list_subreactant:nn #1#2
+ {
+ \chemnum_if_subcompounds:nT {#1}
+ {
+ \int_step_variable:nNn
+ { \chemnum_count_subcompounds:n {#1} }
+ \l__chemmacros_reactants_tmpa_tl
+ {
+ \seq_put_right:Nx
+ \l__chemmacros_reactants_tmpa_seq
+ {
+ \chemnum_cmpd:nnne { \c_false_bool } { \c_true_bool } {}
+ {
+ \exp_not:n {#1}
+ \exp_not:V \l_chemnum_compound_separator_tl
+ \chemnum_get_subcompound:nV
+ {#1}
+ \l__chemmacros_reactants_tmpa_tl
+ }
+ &
+ \bool_if:nT {#2}
+ {
+ #1
+ \l_chemnum_compound_separator_tl
+ \chemnum_get_subcompound:nV
+ {#1}
+ \l__chemmacros_reactants_tmpa_tl
+ &
+ }
+ % TODO: expl3-command ??
+ \solvent
+ {
+ #1
+ \l_chemnum_compound_separator_tl
+ \chemnum_get_subcompound:nV
+ {#1}
+ \l__chemmacros_reactants_tmpa_tl
+ }
+ \tabularnewline
+ }
+ }
+ }
+ }
+\cs_generate_variant:Nn \chemmacros_reactants_list_subreactant:nn {V}
+
+\StopDefiningTabulars% lwarp
+% \end{macrocode}
+%
+%
% \subsection{Redox}
%
% \changes{v0.903}{2021/12/18}{\pkg{chemmacros}: Improved alt tag sanitization.}
% \begin{macrocode}
\AtBeginDocument{
-\@ifchemmacrosmoduleloaded{redox}{
+\chemmacros_module_if_loaded:nTF{{redox}}{
\PackageInfo{lwarp}{Patching~chemmacros~module~redox}
\NewDocumentCommand \LWR@chemmacros@ox { s m >{\SplitArgument{1}{,}}m }
@@ -51086,7 +51498,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
{
\LWR@subsingledollar*{% yes hash
\textbackslash{}%
- ox*%
+ ox%
\{%
\LWR@HTMLsanitizedetokenized{\detokenize{#3}}%
\}% alt
@@ -51099,7 +51511,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
\endgroup
}
-}{}% \@ifchemmacrosmoduleloaded
+}{}% Module loaded.
}% AtBeginDocument
% \end{macrocode}
%
@@ -51108,7 +51520,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
% Fix for \pkg{chemmacros} as of v5.8b, when using \pkg{newfloat} and \pkg{babel}:
% \begin{macrocode}
\AtBeginDocument{
-\@ifchemmacrosmoduleloaded{scheme}{
+\chemmacros_module_if_loaded:nTF{{scheme}}{
\PackageInfo{lwarp}{Patching~chemmacros~module~scheme}
\ifdefstring{\schemename}{los}{
@@ -51117,7 +51529,7 @@ name = \chemmacros_translate:n {scheme-name}
}
}{}
-}{}% \@ifchemmacrosmoduleloaded
+}{}% Module loaded.
}% AtBeginDocument
% \end{macrocode}
%
@@ -51125,28 +51537,9 @@ name = \chemmacros_translate:n {scheme-name}
%
% \begin{macrocode}
\AtBeginDocument{
-\@ifchemmacrosmoduleloaded{spectroscopy}{
+\chemmacros_module_if_loaded:nTF{{spectroscopy}}{
\PackageInfo{lwarp}{Patching~chemmacros~module~spectroscopy}
-\ChemCompatibilityTo{5.8}
-\cs_gset_protected:Npn \__chemmacros_nmr_base:nn #1#2
- {
- \tl_if_blank:VF \g__chemmacros_nmr_element_coupled_tl
- {
- \tl_put_left:Nn \g__chemmacros_nmr_element_coupled_tl { \{ }
- \tl_put_right:Nn \g__chemmacros_nmr_element_coupled_tl { \} }
- }
- \tl_put_left:Nn \g__chemmacros_nmr_element_coupled_tl {#2}
-% \chemmacros_chemformula:n { ^{#1} }
- \textsuperscript{#1}
- \bool_if:NTF \l__chemmacros_nmr_parse_bool
- { \chemformula_ch:nV {} \g__chemmacros_nmr_element_coupled_tl }
- { \chemmacros_chemformula:V \g__chemmacros_nmr_element_coupled_tl }
- \tl_use:N \l__chemmacros_nmr_element_method_connector_tl
- \tl_use:N \l__chemmacros_nmr_method_tl
- }
-\EndChemCompatibility
-\ChemCompatibilityFrom{5.8}
\cs_gset_protected:Npn \__chemmacros_nmr_base:nn #1#2
{
\group_begin:
@@ -51157,24 +51550,23 @@ name = \chemmacros_translate:n {scheme-name}
\tl_put_right:Nn \g__chemmacros_nmr_element_coupled_tl { \} }
}
\tl_put_left:Nn \g__chemmacros_nmr_element_coupled_tl {#2}
-% \chemmacros_chemformula:n { ^{#1} }
+% \chemmacros_formula:n { ^{#1} }
\textsuperscript{#1}
\tl_if_blank:VF \g__chemmacros_nmr_element_coupled_tl
{
\bool_if:NTF \l__chemmacros_nmr_parse_bool
{ \chemformula_ch:nV {} \g__chemmacros_nmr_element_coupled_tl }
- { \chemmacros_chemformula:V \g__chemmacros_nmr_element_coupled_tl }
+ { \chemmacros_formula:V \g__chemmacros_nmr_element_coupled_tl }
}
\tl_use:N \l__chemmacros_nmr_element_method_connector_tl
\tl_use:N \l__chemmacros_nmr_method_tl
\group_end:
}
-\EndChemCompatibility
\cs_gset_protected:Npn \chemmacros_nmr_position:n #1
{
- \chemmacros_chemformula:x
+ \chemmacros_formula:x
{
\exp_not:V \g__chemmacros_nmr_element_tl
\bool_if:NF \l__chemmacros_nmr_position_side_bool
@@ -51209,7 +51601,7 @@ name = \chemmacros_translate:n {scheme-name}
\textsubscript% lwarp
{
\l__chemmacros_nmr_coupling_nuclei_pre_tl
- \chemmacros_chemformula:n {#2}
+ \chemmacros_formula:n {#2}
\l__chemmacros_nmr_coupling_nuclei_post_tl
}
}
@@ -51218,7 +51610,7 @@ name = \chemmacros_translate:n {scheme-name}
\tl_set:Nn \l__chemmacros_nmr_coupling_nuclei_tl
{
\l__chemmacros_nmr_coupling_nuclei_pre_tl
- \chemmacros_chemformula:n {#2}
+ \chemmacros_formula:n {#2}
\l__chemmacros_nmr_coupling_nuclei_post_tl
}
}
@@ -51281,7 +51673,7 @@ name = \chemmacros_translate:n {scheme-name}
\bool_if:NT \l__chemmacros_nmr_comma_bool
{ , ~ }
\bool_if:NT \l__chemmacros_nmr_solvent_bool
- { \chemmacros_chemformula:n {#4} }
+ { \chemmacros_formula:n {#4} }
\bool_if:NT \l__chemmacros_nmr_delimiters_bool
{ ) }
\tl_if_blank:nT {#1} {:~}
@@ -51353,26 +51745,33 @@ name = \chemmacros_translate:n {scheme-name}
\IfBooleanF {#1} { \bool_if:NT \l__chemmacros_nmr_use_equal_bool { ~ = } }
}
-}{}% \@ifchemmacrosmoduleloaded
+}{}% Module loaded.
}% AtBeginDocument
% \end{macrocode}
%
+%
% \subsection{Thermodynamics}
%
% \changes{v0.903}{2021/12/18}{\pkg{chemmacros}: Improved alt tag sanitization.}
% \begin{macrocode}
\AtBeginDocument{
-\@ifchemmacrosmoduleloaded{thermodynamics}{
+\chemmacros_module_if_loaded:nTF{{thermodynamics}}{
\PackageInfo{lwarp}{Patching~chemmacros~module~thermodynamics}
-\cs_gset_protected:Npn \chemmacros_state:nn #1#2
+\cs_gset_protected:Npn \chemmacros_state:nnnnnn #1#2#3#4#5#6
{
\group_begin:
- \boolfalse{mathjax}
- \chemmacros_set_keys:nn {thermodynamics} {#1}
+ \chemmacros_set_keys:ne {thermodynamics}
+ {
+ \exp_not:n {#1} ,
+ \tl_if_novalue:nF {#2} { subscript-left = \exp_not:n {#2} , }
+ \tl_if_novalue:nF {#3} { superscript-left = \exp_not:n {#3} , }
+ \tl_if_novalue:nF {#5} { subscript-right = \exp_not:n {#5} , }
+ \tl_if_novalue:nF {#6} { superscript-right = \exp_not:n {#6} }
+ }
\LWR@subsingledollar*{% yes hashing
\textbackslash{}state%
- \{\LWR@HTMLsanitizedetokenized{\detokenize{#2}}\}% alt
+ \{\LWR@HTMLsanitizedetokenized{\detokenize{#4}}\}% alt
}{%
chemmacros_state% add'l hashing
#1% options
@@ -51382,36 +51781,37 @@ name = \chemmacros_translate:n {scheme-name}
RSB \tl_use:N \l__chemmacros_state_sb_right_tl
}
{
- \LWR@origensuredmath{
- \chemmacros_text:V \l__chemmacros_state_pre_tl
- \c_math_superscript_token
- { \chemmacros_text:V \l__chemmacros_state_sp_left_tl }
+ \LWR@origensuredmath
+ {
+ \chemmacros_text:V \l__chemmacros_state_pre_tl
+ \c_math_superscript_token
+ { \chemmacros_text:V \l__chemmacros_state_sp_left_tl }
% \end{macrocode}
% Only add the subscripts if they are being used.
% This avoids causing an incorrect depth, as the empty subscript will be
% measured by \TeX\ but cropped out by \prog{pdfcrop}.
% \begin{macrocode}
- \tl_if_empty:NTF \l__chemmacros_state_sb_left_tl
- {}
- {
- \c_math_subscript_token
- { \chemmacros_text:V \l__chemmacros_state_sb_left_tl }
- }
- #2
- \c_math_superscript_token
- { \chemmacros_text:V \l__chemmacros_state_sp_right_tl }
- \tl_if_empty:NTF \l__chemmacros_state_sb_right_tl
- {}
- {
- \c_math_subscript_token
- { \chemmacros_text:V \l__chemmacros_state_sb_right_tl }
- }
- \chemmacros_text:V \l__chemmacros_state_post_tl
- }
+ \tl_if_empty:NTF \l__chemmacros_state_sb_left_tl
+ {}
+ {
+ \c_math_subscript_token
+ { \chemmacros_text:V \l__chemmacros_state_sb_left_tl }
+ }
+ #4
+ \c_math_superscript_token
+ { \chemmacros_text:V \l__chemmacros_state_sp_right_tl }
+ \tl_if_empty:NTF \l__chemmacros_state_sb_right_tl
+ {}
+ {
+ \c_math_subscript_token
+ { \chemmacros_text:V \l__chemmacros_state_sb_right_tl }
+ }
+ \chemmacros_text:V \l__chemmacros_state_post_tl
+ }
}
\group_end:
}
-\cs_generate_variant:Nn \chemmacros_state:nn { nV }
+\cs_generate_variant:Nn \chemmacros_state:nnnnnn { nVVVVV }
\cs_gset_protected:Npn \chemmacros_declare_state:Nn #1#2
{
@@ -51435,17 +51835,26 @@ name = \chemmacros_translate:n {scheme-name}
\DeclareDocumentCommand #1 { sO{}D(){}m }
{
\group_begin:
- \chemmacros_set_keys:xn
+ \chemmacros_set_keys:en
{thermodynamics/\chemmacros_remove_backslash:N #1}
{#2}
\tl_if_blank:nF {##3}
{
- \chemmacros_set_keys:nx {thermodynamics}
+ \chemmacros_set_keys:ne {thermodynamics}
{ subscript-\l__chemmacros_state_sb_pos_tl = \exp_not:n {##3} }
}
- \chemmacros_state:nV {##2} \l__chemmacros_state_symbol_tl
+% \LWR@origensuredmath
+% {
+ \chemmacros_state:nVVVVV
+ {##2}
+ \c_novalue_tl
+ \c_novalue_tl
+ \l__chemmacros_state_symbol_tl
+ \c_novalue_tl
+ \c_novalue_tl
\chemmacros_set_keys_groups:nnn {thermodynamics} {variables} {##2}
- \IfBooleanF {##1} { = ~ \SI {##4} { \l__chemmacros_state_unit_tl } }
+ \IfBooleanF {##1} { = \qty {##4} { \l__chemmacros_state_unit_tl } }
+% }
\group_end:
}
}
@@ -51457,7 +51866,7 @@ name = \chemmacros_translate:n {scheme-name}
\RenewChemState \entropy { symbol = S , unit = \joule\per\kelvin\per\mole , pre = }
\RenewChemState \gibbs { symbol = G , unit = \kilo\joule\per\mole }
-}{}% \@ifchemmacrosmoduleloaded
+}{}% Module loaded.
}% AtBeginDocument
% \end{macrocode}
%
@@ -56593,7 +57002,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackagePass{fbox}[2020/06/22]
+\LWR@ProvidesPackagePass{fbox}[2022/02/20]
% \end{macrocode}
%
% This will be \cs{LWR@formatted} when \cs{AtBeginDocument}:
@@ -56607,19 +57016,26 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% \end{macrocode}
%
% \begin{noindmacro}{LWR@fboxpkg@border}
-% \marg{1: top \Slash bottom \Slash left \Slash right} \marg{2: padding, or empty}
+% \marg{1: top \Slash bottom \Slash left \Slash right}
+% \marg{2: t \Slash b \Slash l \Slash r}
+% \marg{3: padding, or empty}
%
% Accumulates \HTML\ styles for border, and padding if given:
+% \changes{v0.904}{2022/03/05}{\pkg{fbox}: Added border colors.}
% \begin{macrocode}
-\newcommand*{\LWR@fboxpkg@border}[2]{%
+\newcommand*{\LWR@fboxpkg@border}[3]{%
+ \colorlet{LWR@border@color}{\csuse{fbox@#2color}}%
+ \protect\convertcolorspec{named}{LWR@border@color}{HTML}\LWR@tempbordercolor\relax%
\appto\LWR@tempone{%
border-#1: % space
\LWR@printlength{\LWR@atleastonept} % space
- solid \LWR@origpound\LWR@tempcolor ;\LWR@indentHTML
+ solid \LWR@origpound%
}%
- \ifblank{#2}{}{%
+ \expandafter\appto\expandafter\LWR@tempone\expandafter{\LWR@tempbordercolor}%
+ \appto\LWR@tempone{ ;\LWR@indentHTML}%
+ \ifblank{#3}{}{%
\appto\LWR@tempone{%
- padding-#1: \LWR@printlength{#2} ;\LWR@indentHTML
+ padding-#1: \LWR@printlength{#3} ;\LWR@indentHTML
}%
}%
}
@@ -56671,20 +57087,21 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% \end{macrocode}
%
% Per the original to decode the borders, in a new way:
+% \changes{v0.904}{2022/03/05}{\pkg{fbox}: Added border colors.}
% \begin{macrocode}
\ifnum\the\@tempcntb>8\relax
- \advance\@tempcntb by -8
- \LWR@fboxpkg@border{top}{\fbox@@sep}%
+ \advance\@tempcntb by -8\relax
+ \LWR@fboxpkg@border{top}{t}{\fbox@@sep}%
\fi
\ifnum\@tempcntb>3
- \advance\@tempcntb by -4
- \LWR@fboxpkg@border{left}{}%
+ \advance\@tempcntb by -4\relax
+ \LWR@fboxpkg@border{left}{l}{}%
\fi
- \ifnum\@tempcntb>1
- \LWR@fboxpkg@border{right}{}%
+ \ifnum\@tempcntb>1\relax
+ \LWR@fboxpkg@border{right}{r}{}%
\fi
\ifodd\@tempcntb
- \LWR@fboxpkg@border{bottom}{\fbox@@sep}%
+ \LWR@fboxpkg@border{bottom}{b}{\fbox@@sep}%
\fi
% \end{macrocode}
%
@@ -61736,6 +62153,21 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \end{macrocode}
+% No application for \pkg{lwarp}:
+% \changes{v0.904}{2022/03/04}{\pkg{hyperref}: Added \cs{HyperDest*}.}
+% \begin{macrocode}
+\newcommand*{\HyperDestNameFilter}[1]{#1}
+\newcommand*{\HyperDestLabelReplace}[1]{#1}
+\newcommand*{\HyperDestRename}[2]{}
+% \end{macrocode}
+
+% No application for \pkg{lwarp}:
+% \changes{v0.904}{2022/03/04}{\pkg{hyperref}: Added \cs{hyperget}.}
+% \begin{macrocode}
+\newcommand*{\hyperget}[2]{}
+% \end{macrocode}
+
+
% \begin{noindmacro}{\hyperimage} \marg{URL} \marg{alt text}
%
@@ -65566,6 +65998,70 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
%
% \iffalse
+%<*lltjp-siunitx>
+% \fi
+%
+% \part{lwarp-lltjp-siunitx.sty}
+%
+% \section{lltjp-siunitx}
+%
+% \credits{The Lua\TeX-ja project team}
+%
+% \DescribePackage{lltjp-siunitx}
+% \pkg{lltjp-siunitx} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.904}{2022/03/08}{\pkg{lltjp-siunitx}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{lltjp-siunitx}% 2021-10-31, no date assigned in file
+% \end{macrocode}
+%
+% This is the \pkg{siunitx} v3 file, as patched by \pkg{lltjp-siunitx}.
+%
+% \begin{macrocode}
+\ExplSyntaxOn
+
+\cs_set_protected:Npn \siunitx_print_text:n #1
+ {
+ \text
+ {
+ \ltj@allalchar % <--- LuaTeX-ja
+ \bool_if:NT \l__siunitx_print_text_family_bool
+ { \fontfamily { \familydefault } }
+ \bool_if:NT \l__siunitx_print_text_series_bool
+ { \fontseries { \seriesdefault } }
+ \bool_if:NT \l__siunitx_print_text_shape_bool
+ { \fontshape { \shapedefault } }
+ \bool_lazy_any:nT
+ {
+ { \l__siunitx_print_text_family_bool }
+ { \l__siunitx_print_text_series_bool }
+ { \l__siunitx_print_text_shape_bool }
+ }
+ { \selectfont }
+ \tl_use:N \l__siunitx_print_text_font_tl
+ \exp_args:NnV \tl_if_head_eq_meaning:nNTF {#1} \l_siunitx_unit_fraction_tl
+ {
+ \__siunitx_print_text_fraction:Nnn #1
+ }
+ {
+ \__siunitx_print_text_replace:n {#1}
+ }
+ }
+ }
+
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% \iffalse
+%</lltjp-siunitx>
+% \fi
+%
+%
+%
+% \iffalse
%<*lltjp-tascmac>
% \fi
%
@@ -70079,7 +70575,7 @@ background:
% \codehtml
% \begin{macrocode}
-\LWR@ProvidesPackageDrop{multicol}[2018/12/27]
+\LWR@ProvidesPackageDrop{multicol}[2021/10/28]
% \end{macrocode}
% Multicols are converted into a 1--3 column display, browser-supported.
@@ -70120,8 +70616,10 @@ background:
% \end{noindenvironment}
% Emulated null functions which are not used in \HTML:
+% \changes{v0.904}{2022/02/07}{\pkg{multicol}: Added \cs{newcolumn}.}
% \begin{macrocode}
\newcommand*{\columnbreak}{}
+\newcommand*{\newcolumn}{}
\newcommand*{\RLmulticolcolumns}{}
\newcommand*{\LRmulticolcolumns}{}
@@ -79352,20 +79850,13 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \credits{Joseph Wright}
%
% \DescribePackage{siunitx}
-% \pkg{siunitx-v2} is patched for use by \pkg{lwarp},
+% \pkg{siunitx} is patched for use by \pkg{lwarp},
% and is emulated for \MathJax.
%
-% Use as:
-% \begin{sourceverb}
-% \usepackage{siunitx}[=v2]
-% \end{sourceverb}
-%
-% \pkg{siunitx} v3 is not yet supported.
-% \watchout
-%
% ^^A \limitssiunitx
%
% \changes{v0.897}{2021/05/23}{\pkg{siunitx}: Rollback for v2.}
+% \changes{v0.904}{2022/02/19}{\pkg{siunitx}: Added v3.}
%
% \codehtml
%
@@ -79377,19 +79868,542 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\DeclareRelease{v2}{2010-05-23}{lwarp-siunitx-v2.sty}
\DeclareCurrentRelease{}{2021-05-17}
-\PackageWarningNoLine{lwarp}
+\RequirePackage{xcolor}% for \convertcolorspec
+
+\LWR@ProvidesPackagePass{siunitx}[2022-02-15]
+
+\ExplSyntaxOn
+% \end{macrocode}
+
+% ^^A May be of use to try to create color for negative values:
+% ^^A
+% ^^A % \cs_set_protected:Npn \__siunitx_number_parse_sign_aux:Nw #1#2 \q_stop
+% ^^A % {
+% ^^A % \tl_if_in:NnTF \l_siunitx_number_input_sign_tl {#1}
+% ^^A % {
+% ^^A % \tl_set:Nn \l__siunitx_number_arg_tl {#2}
+% ^^A % \bool_lazy_and:nnTF
+% ^^A % { \token_if_eq_charcode_p:NN #1 + }
+% ^^A % { ! \l__siunitx_number_explicit_plus_bool }
+% ^^A % { \tl_set:Nn \l__siunitx_number_parsed_tl { { } } }
+% ^^A % { \tl_set:Nn \l__siunitx_number_parsed_tl { {#1} } }
+% ^^A %
+% ^^A % % If #! is { - } then is a negative number
+% ^^A %
+% ^^A % }
+% ^^A % { \tl_set:Nn \l__siunitx_number_parsed_tl { { } } }
+% ^^A % \tl_if_empty:NTF \l__siunitx_number_arg_tl
+% ^^A % { \tl_clear:N \l__siunitx_number_parsed_tl }
+% ^^A % { \__siunitx_number_parse_exponent: }
+% ^^A % }
+% ^^A %
+% ^^A %
+% ^^A % \cs_set_protected:Npn \siunitx_print_number:n #1
+% ^^A % {
+% ^^A % \__siunitx_print_aux:nn { number } {#1}
+% ^^A % }
+
+
+
+
+% \begin{macrocode}
+\cs_set_protected:Npn \siunitx_number_format:nN #1#2
+ {
+ \group_begin:
+ \bool_if:NTF \l_siunitx_number_parse_bool
+ {
+ \siunitx_number_parse:nN {#1} \l__siunitx_number_parsed_tl
+ \siunitx_number_process:NN \l__siunitx_number_parsed_tl \l__siunitx_number_parsed_tl
+ \tl_set:Nx \l__siunitx_number_outputted_tl
+ { \siunitx_number_output:N \l__siunitx_number_parsed_tl }
+ }
+ {
+ \tl_set:Nn \l__siunitx_number_outputted_tl
+ {
+ \LWR@subsingledollar{% lwarp
+ \textbackslash( % space
+ \LWR@HTMLsanitizedetokenized{%
+ \detokenize{#1}%
+ } \textbackslash)% lwarp
+ }%
+ {siunitx unparsed}%
+ {\ensuremath{#1}}% lwarp
+ }
+ }
+ \exp_args:NNNV \group_end:
+ \tl_set:Nn #2 \l__siunitx_number_outputted_tl
+ }
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+\cs_set_protected:Npn \__siunitx_compound_unparsed:n #1
+ {
+ \tl_if_blank:nF {#1}
+ { \seq_put_right:Nn \l__siunitx_compound_tmp_seq
+ {
+ \LWR@subsingledollar{% lwarp
+ \textbackslash( % space
+ \LWR@HTMLsanitizedetokenized{%
+ \detokenize{#1}%
+ } \textbackslash)% lwarp
+ }%
+ {siunitx unparsed}%
+ {\ensuremath{#1}}% lwarp
+ }
+ }
+ }
+% \end{macrocode}
+%
+%
+% If not in a \env{lateximage}, always use text mode.
+% Ignore current text font if resetting text family, series, and shape.
+% \begin{macrocode}
+\cs_set_protected:Npn \__siunitx_print_aux:nn #1#2
+ {
+ \tl_if_empty:cTF { l__siunitx_print_ #1 _color_tl }
+ { \use:n }
+ { \exp_args:Nv \textcolor { l__siunitx_print_ #1 _color_tl } }
+ {
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% lwarp
+ {
+ \use:c
+ {
+ siunitx_print_
+ \tl_use:c { l__siunitx_print_ #1 _mode_tl } :n
+ }
+ {#2}
+ }
+ {
+ \bool_lazy_all:nTF% lwarp
+ {
+ {\l__siunitx_print_text_family_bool}
+ {\l__siunitx_print_text_series_bool}
+ {\l__siunitx_print_text_shape_bool}
+ }
+ {% No font control if reset-text-family/series/shape
+ \use:c
+ {
+ siunitx_print_% lwarp
+ text% lwarp
+ :n% lwarp
+ }% lwarp
+ {#2}% lwarp
+ }
+ {
+ \LWR@textcurrentfont{% lwarp
+ \use:c
+ {
+ siunitx_print_% lwarp
+ text% lwarp
+ :n% lwarp
+ }% lwarp
+ {#2}% lwarp
+ }
+ }
+ }
+ }
+ }
+% \end{macrocode}
+%
+%
+% To determine whether to make a complex root be italic or upright,
+% \cs{l\_\_siunitx\_complex\_output\_root\_tl} is compared to
+% \cs{LWR@siunitx@complexrm<i/j>}, and the \CSS\ style is set appropriately.
+% \begin{macrocode}
+\newcommand*{\LWR@siunitx@complexrootstyle}{textrm}
+
+\newcommand*{\LWR@siunitx@complexrmi}{\mathrm{i}}
+\newcommand*{\LWR@siunitx@complexrmj}{\mathrm{j}}
+
+\newcommand*{\LWR@siunitx@setcomplexroot}{%
+ \renewcommand*{\LWR@siunitx@complexrootstyle}{textit}%
+ \ifdefequal{\l__siunitx_complex_output_root_tl}{\LWR@siunitx@complexrmi}%
+ {\renewcommand*{\LWR@siunitx@complexrootstyle}{textrm}}%
+ {}%
+ \ifdefequal{\l__siunitx_complex_output_root_tl}{\LWR@siunitx@complexrmj}%
+ {\renewcommand*{\LWR@siunitx@complexrootstyle}{textrm}}%
+ {}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_set_protected:Npn \__siunitx_complex_format_auxii:n #1
+ {
+ \LWR@siunitx@setcomplexroot% lwarp
+ \__siunitx_complex_format_units:n {#1}
+ \tl_if_empty:NF \l__siunitx_complex_real_tl
+ { \exp_after:wN \__siunitx_complex_drop_exponent:nnnnnnn \l__siunitx_complex_real_tl }
+ \exp_after:wN \__siunitx_complex_format_sign:nnnnnnn \l__siunitx_complex_img_tl
+ \tl_set:Nx \l__siunitx_complex_tmp_tl
+ { \siunitx_number_output:NN \l__siunitx_complex_img_tl \q_nil }
+ \exp_after:wN \__siunitx_complex_extract_exponent:w \l__siunitx_complex_tmp_tl \q_stop
+ \tl_set:Nx \l__siunitx_complex_tmp_tl
+ {
+ \bool_lazy_or:nnTF
+ {
+ \bool_lazy_and_p:nn
+ { \l_siunitx_number_bracket_ambiguous_bool }
+ { ! \tl_if_empty_p:N \l__siunitx_complex_exp_tl }
+ }
+ {
+ ! \bool_lazy_any_p:n
+ {
+ { \tl_if_blank_p:n {#1} }
+ { \tl_if_empty_p:N \l__siunitx_complex_real_tl }
+ { \tl_if_empty_p:N \l__siunitx_complex_img_tl }
+ }
+ }
+ { \__siunitx_complex_format_bracket:n }
+ { \use:n }
+ {
+ \siunitx_number_output:N \l__siunitx_complex_real_tl
+ \exp_not:V \l__siunitx_complex_sign_tl
+ \bool_if:NF \l__siunitx_complex_root_after_bool
+ {
+ \InlineClass{\LWR@siunitx@complexrootstyle}% lwarp
+ {
+ \exp_not:V \l__siunitx_complex_output_root_tl
+ }
+ }
+ \exp_not:V \l__siunitx_complex_tmp_tl
+ \bool_if:NT \l__siunitx_complex_root_after_bool
+ {
+ \InlineClass{\LWR@siunitx@complexrootstyle}% lwarp
+ {
+ \exp_not:V \l__siunitx_complex_output_root_tl
+ }
+ }
+ }
+ \exp_not:V \l__siunitx_complex_exp_tl
+ }
+ }
+% \end{macrocode}
+%
+%
+% \marg{1: deg/min/sec character}
+% \marg{2: ?}
+% \marg{3: ?}
+% \marg{4: integer part of angle}
+% \marg{5: decimal point character}
+% \marg{6: decimal part of angle}
+% \marg{7: ?}
+% \marg{8: ?}
+%
+% If not in a \env{lateximage}, print a simplified verison
+% without the box measurement things which conflict with \pkg{lwarp}:
+% \begin{macrocode}
+\cs_set_protected:Npn \__siunitx_angle_arc_print_auxii:nw
+ #1#2 \q_nil #3 \q_nil #4 \q_nil #5 \q_nil #6 \q_nil #7 \q_nil #8 \q_stop
+ {
+ \mode_if_math:TF
+ { \bool_set_true:N \l__siunitx_angle_tmp_bool }
+ { \bool_set_false:N \l__siunitx_angle_tmp_bool }
+ \siunitx_print_number:n {#2#3#4}
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% lwarp
+ {% lwarp
+ \tl_if_blank:nTF {#6}
+ { \__siunitx_angle_arc_print_auxvi:n {#1} }
+ {
+ \hbox_set:Nn \l__siunitx_angle_marker_box
+ {
+ \__siunitx_angle_arc_print_auxiii:n
+ { \siunitx_print_number:n {#5} }
+ }
+ \hbox_set:Nn \l__siunitx_angle_unit_box
+ {
+ \__siunitx_angle_arc_print_auxiii:n
+ {
+ \siunitx_unit_format:nN {#1} \l__siunitx_angle_tmp_tl
+ \siunitx_print_unit:V \l__siunitx_angle_tmp_tl
+ \skip_horizontal:n { -\scriptspace }
+ }
+ }
+ \dim_compare:nNnTF { \box_wd:N \l__siunitx_angle_marker_box } >
+ { \box_wd:N \l__siunitx_angle_unit_box }
+ {
+ \__siunitx_angle_arc_print_auxiv:NN
+ \l__siunitx_angle_marker_box
+ \l__siunitx_angle_unit_box
+ }
+ {
+ \__siunitx_angle_arc_print_auxiv:NN
+ \l__siunitx_angle_unit_box
+ \l__siunitx_angle_marker_box
+ }
+ \hbox_set_to_wd:Nnn \l__siunitx_angle_marker_box
+ \l__siunitx_angle_tmp_dim
+ {
+ \hbox_overlap_right:n
+ { \box_use_drop:N \l__siunitx_angle_marker_box }
+ \hbox_overlap_right:n
+ { \box_use_drop:N \l__siunitx_angle_unit_box }
+ \tex_hfil:D
+ }
+ \box_use:N \l__siunitx_angle_marker_box
+ \skip_horizontal:N \scriptspace
+ \siunitx_print_number:n {#6}
+ }
+ }%
+% \end{macrocode}
+%
+% \marg{1: deg/min/sec character}
+% \marg{2: ?}
+% \marg{3: ?}
+% \marg{4: integer part of angle}
+% \marg{5: decimal point character}
+% \marg{6: decimal part of angle}
+% \marg{7: ?}
+% \marg{8: ?}
+% \begin{macrocode}
+ {% lwarp: not in a lateximage, simplify for HTML
+ \tl_if_blank:nTF {#6}
+ { \__siunitx_angle_arc_print_auxvi:n {#1} }
+ {
+ \__siunitx_angle_arc_print_auxiii:n
+ {
+ \siunitx_print_number:n {#5}
+ }
+ \__siunitx_angle_arc_print_auxiii:n
+ {
+ \siunitx_unit_format:nN {#1} \l__siunitx_angle_tmp_tl
+ \siunitx_print_unit:V \l__siunitx_angle_tmp_tl
+ }
+ \siunitx_print_number:n {#6}
+ }
+ }% lwarp
+ }
+% \end{macrocode}
+%
+% If not in a \env{lateximage}, print a simple inline fraction,
+% avoiding the use of \SVG\ math:
+% \begin{macrocode}
+\cs_set_protected:Npn \__siunitx_print_text_fraction:Nnn #1#2#3
+ {
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% lwarp
+ {%
+ \ensuremath
+ {
+ #1
+ { \mbox { \__siunitx_print_text_replace:n {#2} } }
+ { \mbox { \__siunitx_print_text_replace:n {#3} } }
+ }
+ }%
+ {% lwarp
+ { \mbox { \__siunitx_print_text_replace:n {#2} } }% lwarp
+ /% lwarp
+ { \mbox { \__siunitx_print_text_replace:n {#3} } }% lwarp
+ }% lwarp
+ }
+% \end{macrocode}
+%
+% If not in a \env{lateximage}, print a \cs{textsubscript}:
+% \begin{macrocode}
+\cs_set_protected:Npn \__siunitx_unit_format_qualifier_subscript:
+ {
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% lwarp
{%
- **************\MessageBreak
- Siunitx version 3 is not yet supported by Lwarp.\MessageBreak
- V2 emulation is used here.\MessageBreak
- **************
+ \__siunitx_unit_format_font:
+ \tl_set:Nx \l__siunitx_unit_part_tl
+ {
+ \c__siunitx_unit_math_subscript_tl
+ {
+ \exp_not:V \l_siunitx_unit_font_tl
+ { \exp_not:V \l__siunitx_unit_part_tl }
+ }
+ }
}
+ {% lwarp simplified for HTML:
+ \__siunitx_unit_format_font:
+ \tl_set:Nx \l__siunitx_unit_part_tl
+ {
+ \textsubscript
+ {
+ \exp_not:V \l_siunitx_unit_font_tl
+ { \exp_not:V \l__siunitx_unit_part_tl }
+ }
+ }
+ }
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_set_protected:Npn \siunitx_quantity:nn #1#2
+ {
+ \group_begin:
+ \siunitx_unit_options_apply:n {#2}
+ \tl_if_blank:nTF {#1}
+ {
+ \siunitx_unit_format:nN {#2} \l__siunitx_quantity_unit_tl
+ \siunitx_print_unit:V \l__siunitx_quantity_unit_tl
+ }
+ {
+ \bool_if:NTF \l_siunitx_number_parse_bool
+ { \__siunitx_quantity_parsed:nn {#1} {#2} }
+ {
+ \tl_set:Nn \l__siunitx_quantity_number_tl {
+ \LWR@subsingledollar{% lwarp
+ \textbackslash( % space
+ \LWR@HTMLsanitizedetokenized{%
+ \detokenize{#1}%
+ } \textbackslash)% lwarp
+ }%
+ {siunitx unparsed}%
+ {\ensuremath{#1}}% lwarp
+ }
+ \siunitx_unit_format:nN {#2} \l__siunitx_quantity_unit_tl
+ \siunitx_quantity_print:VV
+ \l__siunitx_quantity_number_tl \l__siunitx_quantity_unit_tl
+ }
+ }
+ \group_end:
+ }
+% \end{macrocode}
+%
-\RequirePackage{xcolor}% for \convertcolorspec
+% ^^A *88* \cancel
+%
+% \cs{cancel} for \HTML\ does not work yet.
+% \begin{macrocode}
+\newcommand*{\LWR@siunitx@nocancel}[1]{%
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}%
+ {\cancel{#1}}% SVG
+ {#1}% HTML
+}
-% \LWR@ProvidesPackagePass{siunitx}[2021-05-21]
+\AtBeginDocument{
+\__siunitx_unit_set_symbolic:Npnn \cancel
+ { }
+% { \__siunitx_unit_parse_special:n { \cancel } }
+ { \__siunitx_unit_parse_special:n { \LWR@siunitx@nocancel } }% lwarp
+}
+% \end{macrocode}
+%
+%
+% For \HTML, use a simple unaligned \cs{num}:
+% \begin{macrocode}
+\newcommand{\LWR@HTML@tablenum}[2][]{\num[#1]{#2}}
+\LWR@formatted{tablenum}
+% \end{macrocode}
+%
+%
+% For \HTML, the |S| column is simplified to a |c| column.
+% Keys are set locally, allowing \optn{drop-exponent}, etc.
+% \begin{macrocode}
+\AtBeginDocument{
+\HTMLnewcolumntype{S}[1][]{>{\begingroup\sisetup{#1}}c<{\endgroup}}
+}
+% \end{macrocode}
+%
+%
+% To define simplified units for \HTML:
+%
+% \begin{macro}{\HTMLDeclareSIUnit} \oarg{options} \marg{name} \marg{definition}
+% \begin{macrocode}
+\NewDocumentCommand{\HTMLDeclareSIUnit}{o +m m}
+{
+ \ifcsdef{ __siunitx_unit_ \token_to_str:N #2 :w }
+ {}
+ {
+ \PackageError{lwarp}
+ {%
+ First~use\MessageBreak
+ \space\space\protect\DeclareSIUnit{
+ \token_to_str:N#2}{...}\MessageBreak
+ before~using\MessageBreak
+ \space\space\protect\HTMLDeclareSIUnit{
+ \token_to_str:N#2}{...}%
+ }
+ {%
+ See~the~Lwarp~manual~section~about~special~cases,~
+ regarding~siunitx.%
+ }
+ }
+ \csNewCommandCopycs
+ { __orig_siunitx_unit_ \token_to_str:N #2 :w }
+ { __siunitx_unit_ \token_to_str:N #2 :w }
+ \DeclareSIUnit[#1]{#2}
+ {
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}
+ {\csuse{ __orig_siunitx_unit_ \token_to_str:N #2 :w }}
+ {#3}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
+
+% \HTML\ versions for existing units:
+% \begin{macrocode}
+\AtBeginDocument{
+\HTMLDeclareSIUnit\celsius{\LWR@siunitx@textcelsius}
+\HTMLDeclareSIUnit\arcminute{\LWR@siunitx@textprime}
+\HTMLDeclareSIUnit\arcsecond{\LWR@siunitx@textdblprime}
+\HTMLDeclareSIUnit\elementarycharge{\textit{e}}
+%
+\HTMLDeclareSIUnit\clight{\text{\textit{c}\textsubscript{0}}}
+\HTMLDeclareSIUnit\bohr{\text{\textit{a}\textsubscript{0}}}
+\HTMLDeclareSIUnit\electronmass{\text{\textit{m}\textsubscript{e}}}
+\HTMLDeclareSIUnit\hartree{\text{\textit{E}\textsubscript{h}}}
+\HTMLDeclareSIUnit\planckbar{\LWR@siunitx@textplanckbar}
+}% \AtBeginDocument
+% \end{macrocode}
+%
+
+
+
+% Initial options:
+% \begin{macrocode}
+\AtBeginDocument{
+\sisetup{
+ per-mode=symbol, % fraction is not seen by pdftotext
+ angle-symbol-degree = {\LWR@siunitx@textdegree},
+ angle-symbol-minute = {\LWR@siunitx@textprime} ,
+ angle-symbol-second = {\LWR@siunitx@textdblprime} ,
+}
+}
+% \end{macrocode}
+%
+%
+% Load late paches for \pkg{lltjp-siunitx}:
+% \begin{macrocode}
+\AtBeginDocument{
+\ifdef{\ltj@allalchar}
+ {\LWR@origRequirePackage{lwarp-lltjp-siunitx}}
+ {}
+}
+% \end{macrocode}
+%
+%
+% For \MathJax:
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-siunitx}
-\RequirePackage{siunitx-v2}
+\CustomizeMathJax{\let\unit\si}
+\CustomizeMathJax{\let\qty\SI}
+\CustomizeMathJax{\let\qtylist\SIlist}
+\CustomizeMathJax{\let\qtyrange\SIrange}
+\CustomizeMathJax{\let\numproduct\num}
+\CustomizeMathJax{\let\qtyproduct\SI}
+\CustomizeMathJax{\let\complexnum\num}
+\CustomizeMathJax{\newcommand{\complexqty}[3][]{(\complexnum{#2})\si{#3}}}
+% \end{macrocode}
+%
+% Pass \optn{range-phrase} to \pkg{common-mathjax-siunitx}:
+% \changes{v0.904}{2022/02/28}{\pkg{siunitx}, \MathJax: Use \optn{range-phrase}.}
+% \begin{macrocode}
+\ExplSyntaxOn
+\AtBeginDocument{
+\edef\LWR@siunitx@rangephrase{\l_siunitx_range_phrase_tl}
+\expandafter\CustomizeMathJax\expandafter{%
+ \expandafter\def\expandafter\LWRsiunitxrangephrase%
+ \expandafter{\LWR@siunitx@rangephrase}%
+}
+}
+\ExplSyntaxOff
% \end{macrocode}
% \iffalse
@@ -79421,16 +80435,17 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \changes{v0.38}{2017/08/26}{\pkg{siunitx}: Removed from \pkg{lwarp} core.}
% \changes{v0.50}{2018/10/23}{\pkg{siunitx}: Fix: Loads \pkg{xcolor}.}
% \changes{v0.897}{2021/05/23}{\pkg{siunitx-v2}: Rollback for v2.}
+% \changes{v0.904}{2022/02/26}{\pkg{siunitx-v2}: Updated to v2.8e.}
%
% \codehtml
%
% \begin{macrocode}
\RequirePackage{xcolor}% for \convertcolorspec
-\LWR@ProvidesPackagePass{siunitx-v2}[2021-04-17]
+\LWR@ProvidesPackagePass{siunitx}[=v2]% 2021-04-17
% \end{macrocode}
-% \changes{v0.50}{2018/02/24}{\pkg{siunitx}: Improved units.}
+% \changes{v0.50}{2018/02/24}{\pkg{siunitx-v2}: Improved units.}
% \begin{macrocode}
\AtBeginDocument{% in case textcomp was not loaded
\DeclareSIUnit\bohr{\textit{a}\textsubscript{0}}
@@ -79443,11 +80458,11 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \end{macrocode}
% Support the |S| and |s| column types:
-% \changes{v0.901}{2021/08/18}{\pkg{siunitx}: Improved \cs{newcolumntype} emulation.}
+% \changes{v0.901}{2021/08/18}{\pkg{siunitx-v2}: Improved \cs{newcolumntype} emulation.}
% \begin{macrocode}
\AtBeginDocument{
-\HTMLnewcolumntype{S}{c}
-\HTMLnewcolumntype{s}{c}
+\HTMLnewcolumntype{S}[1][]{>{\begingroup\sisetup{#1}}c<{\endgroup}}
+\HTMLnewcolumntype{s}[1][]{>{\begingroup\sisetup{#1}}c<{\endgroup}}
}
% \end{macrocode}
@@ -79457,17 +80472,45 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% Similar for \cs{mbox}.
% \SVG\ math is created explicitly when necessary, using \cs{LWR@subsingledollar}.
%
-% \changes{v0.42}{2017/10/16}{\pkg{siunitx}: Improved \cs{ensuremath}.}
-% \changes{v0.48}{2018/02/13}{\pkg{siunitx}: Improved \SVG\ math.}
+% \changes{v0.42}{2017/10/16}{\pkg{siunitx-v2}: Improved \cs{ensuremath}.}
+% \changes{v0.48}{2018/02/13}{\pkg{siunitx-v2}: Improved \SVG\ math.}
% \begin{macrocode}
\ExplSyntaxOn
%
% \end{macrocode}
+%
+% Modified to use the print version of \cs{@ensuredmath} to avoid
+% having a \env{lateximage} each time.
+% \begin{macrocode}
+\AtBeginDocument{
+\cs_set_protected:Npn \__siunitx_print_text:
+ {
+ \LetLtxMacro\@ensuredmath\LWR@origensuredmath% lwarp
+ \tl_replace_all:Nnn \l__siunitx_print_arg_tl { - }
+ { \textminus }
+ \__siunitx_print_text_aux:
+ \tl_replace_all:Nnn \l__siunitx_print_arg_tl { \mp }
+ { \ensuremath { \mp } }
+ \tl_remove_all:Nn \l__siunitx_print_arg_tl { \mathord }
+ \cs_set_eq:NN \PrintSubscript \__siunitx_print_text_sub:n
+ \cs_set_eq:NN \PrintSuperscript \__siunitx_print_text_super:n
+ \__siunitx_print_text_aux:NnN
+ _ { math_subscript } \__siunitx_print_text_sub:n
+ _ { active } \__siunitx_print_text_sub:n
+ ^ { math_superscript } \__siunitx_print_text_super:n
+ ^ { active } \__siunitx_print_text_super:n
+ \q_recursion_tail ? ?
+ \q_recursion_stop
+ \l__siunitx_print_arg_tl
+ }
+}
+% \end{macrocode}
+%
% Modified to set set \HTML\ \cs{textcolor} if not black:
-% \changes{v0.48}{2018/02/14}{\pkg{siunitx}: Improved color output.}
+% \changes{v0.48}{2018/02/14}{\pkg{siunitx-v2}: Improved color output.}
% \begin{macrocode}
-\cs_set_protected:Npn \__siunitx_print_aux:
+\cs_new_protected:Npn \LWR@HTML@__siunitx_print_aux:
{
\text
{
@@ -79505,13 +80548,14 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
}
}
}
+\LWR@formatted{__siunitx_print_aux:}
-\cs_set_protected:Npn \__siunitx_set_math_fam:n #1 {
+\cs_new_protected:Npn \LWR@HTML@__siunitx_set_math_fam:n #1 {
\group_begin:
- \LetLtxMacro\@ensuredmath\LWR@origensuredmath% lwarp
- \LetLtxMacro\mbox\LWR@print@mbox% lwarp
- \hbox_set:Nn \l__siunitx_tmp_box
- {
+% \LetLtxMacro\@ensuredmath\LWR@origensuredmath% lwarp
+% \LetLtxMacro\mbox\LWR@print@mbox% lwarp
+% \hbox_set:Nn \l__siunitx_tmp_box
+% {
\ensuremath
{
\use:c { math #1 }
@@ -79519,15 +80563,14 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\int_const:cn { c__siunitx_math #1 _int } { \fam }
}
}
- }
+% }
\group_end:
}
+\LWR@formatted{__siunitx_set_math_fam:n}
-\cs_set_protected:Npn \__siunitx_combined_output:n #1 {
+\cs_new_protected:Npn \LWR@HTML@__siunitx_combined_output:n #1 {
%
\group_begin:% lwarp
- \LetLtxMacro\@ensuredmath\LWR@origensuredmath% lwarp
- \LetLtxMacro\mbox\LWR@print@mbox% lwarp
\bool_if:NTF \l__siunitx_number_parse_bool
{
\tl_clear:N \l__siunitx_number_out_tl
@@ -79537,39 +80580,43 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
{
% \end{macrocode}
% For |parse-numbers=false|:
-% \changes{v0.48}{2018/02/14}{\pkg{siunitx}: Improved \SVG\ math.}
-% \changes{v0.50}{2018/02/24}{\pkg{siunitx}: Improved \SVG\ math \attribute{alt} tags.}
-% \changes{v0.79}{2020/01/21}{\pkg{siunitx}: Improved \MathJax.}
-% \changes{v0.903}{2021/12/18}{\pkg{siunitx}: Improved alt tag sanitization.}
+% \changes{v0.48}{2018/02/14}{\pkg{siunitx-v2}: Improved \SVG\ math.}
+% \changes{v0.50}{2018/02/24}{\pkg{siunitx-v2}: Improved \SVG\ math \attribute{alt} tags.}
+% \changes{v0.79}{2020/01/21}{\pkg{siunitx-v2}: Improved \MathJax.}
+% \changes{v0.903}{2021/12/18}{\pkg{siunitx-v2}: Improved alt tag sanitization.}
% \begin{macrocode}
\__siunitx_unit_output_pre_print:
\begingroup% lwarp
\boolfalse{mathjax}% lwarp
% \__siunitx_print:nn { number } { \ensuremath {#1} }
- \LWR@subsingledollar{% lwarp
+ \LWR@subsingledollar% lwarp
+ {% alt text
\textbackslash( % space
\LWR@HTMLsanitizedetokenized{%
\detokenize{#1}%
} \textbackslash)% lwarp
- }{siunitx}{%
- \__siunitx_print:nn { number } {%
- \LWR@origensuredmath{#1}%
- }%
- }% lwarp
+ }
+ {siunitx}% addl hashing
+ {%
+ \__siunitx_print:nn { number } {%
+ \LWR@origensuredmath{#1}%
+ }%
+ }% lwarp
\endgroup% lwarp
\__siunitx_unit_output_print:
}
\group_end:% lwarp
%
}
+\LWR@formatted{__siunitx_combined_output:n}
% \end{macrocode}
%
%
% For |parse-numbers=false|:
-% \changes{v0.79}{2020/01/21}{\pkg{siunitx}: Improved \MathJax.}
-% \changes{v0.903}{2021/12/18}{\pkg{siunitx}: Improved alt tag sanitization.}
+% \changes{v0.79}{2020/01/21}{\pkg{siunitx-v2}: Improved \MathJax.}
+% \changes{v0.903}{2021/12/18}{\pkg{siunitx-v2}: Improved alt tag sanitization.}
% \begin{macrocode}
-\cs_set_protected:Npn \__siunitx_range_numbers_aux:n #1
+\cs_new_protected:Npn \LWR@HTML@__siunitx_range_numbers_aux:n #1
{
\bool_if:NTF \l__siunitx_number_parse_bool
{
@@ -79583,29 +80630,33 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
{
\__siunitx_unit_output_pre_print:
\begingroup% lwarp
- \boolfalse{mathjax}% lwarp
+ \boolfalse{mathjax}% lwarp
% \__siunitx_print:nn { number } {#1}
- \LWR@subsingledollar{% lwarp
- \textbackslash( % space
- \LWR@HTMLsanitizedetokenized{%
- \detokenize{#1}%
- } \textbackslash)% lwarp
- }{siunitx}{%
- \__siunitx_print:nn { number } {%
- \LWR@origensuredmath{#1}%
- } % lwarp
- }% lwarp
- \endgroup% lwarp
+ \LWR@subsingledollar% lwarp
+ {% alt text
+ \textbackslash( % space
+ \LWR@HTMLsanitizedetokenized{%
+ \detokenize{#1}%
+ } \textbackslash)% lwarp
+ }%
+ {siunitx}% addl hashing
+ {%
+ \__siunitx_print:nn { number } {%
+ \LWR@origensuredmath{#1}%
+ } % lwarp
+ }% lwarp
+ \endgroup% lwarp
\__siunitx_unit_output_print:
}
}
+\LWR@formatted{__siunitx_range_numbers_aux:n}
% \end{macrocode}
%
% For |parse-numbers=false|:
-% \changes{v0.79}{2020/01/21}{\pkg{siunitx}: Improved \MathJax.}
-% \changes{v0.903}{2021/12/18}{\pkg{siunitx}: Improved alt tag sanitization.}
+% \changes{v0.79}{2020/01/21}{\pkg{siunitx-v2}: Improved \MathJax.}
+% \changes{v0.903}{2021/12/18}{\pkg{siunitx-v2}: Improved alt tag sanitization.}
% \begin{macrocode}
-\cs_set_protected:Npn \__siunitx_angle_print_direct_aux:nn #1#2 {
+\cs_new_protected:Npn \LWR@HTML@__siunitx_angle_print_direct_aux:nn #1#2 {
\tl_if_empty:nF {#1}
{
\tl_set:Nn \l__siunitx_unit_tl {#2}
@@ -79617,7 +80668,9 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\LWR@HTMLsanitizedetokenized{%
\detokenize{#1}%
} \textbackslash)% lwarp
- }{siunitx}{%
+ }%
+ {siunitx}%
+ {%
\__siunitx_print:nn { number } {
\LWR@origensuredmath{#1}%
}% lwarp
@@ -79626,13 +80679,14 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\__siunitx_unit_output_print:
}
}
+\LWR@formatted{__siunitx_angle_print_direct_aux:nn}
%
% \end{macrocode}
%
% For quotients, the fraction code is replaced by the symbol code:
-% \changes{v0.48}{2018/02/14}{\pkg{siunitx}: Changes fraction to symbol.}
+% \changes{v0.48}{2018/02/14}{\pkg{siunitx-v2}: Changes fraction to symbol.}
% \begin{macrocode}
-\cs_set_protected:Npn \__siunitx_number_output_quotient_fraction: {
+\cs_new_protected:Npn \LWR@HTML@__siunitx_number_output_quotient_fraction: {
\bool_set_true:N \l__siunitx_number_compound_bool
\__siunitx_number_output_quotient_aux_i:
\tl_set_eq:NN \l__siunitx_number_out_tl
@@ -79642,12 +80696,13 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\l__siunitx_number_denominator_tl
\__siunitx_number_output_single_aux:
}
+\LWR@formatted{__siunitx_number_output_quotient_fraction:}
% \end{macrocode}
%
% For units, the fraction code is replaced by the symbol code:
-% \changes{v0.48}{2018/02/14}{\pkg{siunitx}: Changes fraction to symbol.}
+% \changes{v0.48}{2018/02/14}{\pkg{siunitx-v2}: Changes fraction to symbol.}
% \begin{macrocode}
-\cs_set_protected:Npn \__siunitx_unit_format_fraction_fraction: {
+\cs_new_protected:Npn \LWR@HTML@__siunitx_unit_format_fraction_fraction: {
\__siunitx_unit_format_fraction_symbol_aux:
\int_compare:nNnT { \l__siunitx_unit_denominator_int } > { 1 }
{
@@ -79661,11 +80716,12 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\tl_put_right:NV \l__siunitx_unit_tl \l__siunitx_per_symbol_tl
\tl_put_right:NV \l__siunitx_unit_tl \l__siunitx_unit_denominator_tl
}
+\LWR@formatted{__siunitx_unit_format_fraction_fraction:}
% \end{macrocode}
%
-% \changes{v0.50}{2018/02/24}{\pkg{siunitx}: Improved units.}
+% \changes{v0.50}{2018/02/24}{\pkg{siunitx-v2}: Improved units.}
% \begin{macrocode}
-\cs_set_protected:Npn \__siunitx_angle_print_astronomy_aux: {
+\cs_new_protected:Npn \LWR@HTML@__siunitx_angle_print_astronomy_aux: {
\prop_get:NnNT \l__siunitx_number_out_prop { mantissa-integer }
\l__siunitx_tmpa_tl
{ \__siunitx_print:nV { number } \l__siunitx_tmpa_tl }
@@ -79693,111 +80749,350 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
{ \__siunitx_angle_print_astronomy_unit: }
}% lateximage
{% not a lateximage
- \__siunitx_print:nV { unit } \l__siunitx_unit_tl
\__siunitx_print:nn { number } { { \l__siunitx_output_decimal_tl } }
+ \__siunitx_print:nV { unit } \l__siunitx_unit_tl
}% not a lateximage
\prop_get:NnNT \l__siunitx_number_out_prop { mantissa-decimal }
\l__siunitx_tmpa_tl
{ \__siunitx_print:nV { number } \l__siunitx_tmpa_tl }
}
+\LWR@formatted{__siunitx_angle_print_astronomy_aux:}
% \end{macrocode}
%
-% \changes{v0.79}{2020/01/20}{\pkg{siunitx}: Fix: \cs{square}, \cs{cubed}.}
+% \changes{v0.79}{2020/01/20}{\pkg{siunitx-v2}: Fix: \cs{square}, \cs{cubed}.}
% \begin{macrocode}
-\cs_set_protected:Npn \__siunitx_textsuperscript:n #1 {\textsuperscript{#1}}
+\cs_new_protected:Npn \LWR@HTML@__siunitx_textsuperscript:n #1 {\textsuperscript{#1}}
+\LWR@formatted{__siunitx_textsuperscript:n}
+
+\cs_new_eq:NN \LWR@HTML@__siunitx_print_text_super:n \textsuperscript
+\LWR@formatted{__siunitx_print_text_super:n}
+
+\cs_new_eq:NN \LWR@HTML@__siunitx_print_text_sub:n \textsubscript
+\LWR@formatted{__siunitx_print_text_sub:n}
% \end{macrocode}
-%
-% \begin{noindmacro}{\num} \oarg{options} \marg{value}
+
+
+% \cs{LWR@origenduresmath} is added here in case the user asks for \cs{mathrm}, etc.
+% for \optn{output-exponent-marker}.
% \begin{macrocode}
-\RenewDocumentCommand \num { o m } {
- \leavevmode
- \group_begin:% lwarp
- \LetLtxMacro\@ensuredmath\LWR@origensuredmath% lwarp
- \LetLtxMacro\mbox\LWR@print@mbox% lwarp
- \bool_set_false:N \l__siunitx_font_set_bool
- \IfNoValueF {#1}
- { \keys_set:nn { siunitx } {#1} }
- \__siunitx_number_output:n {#2}
- \group_end:% lwarp
+\cs_new_protected:Npn \LWR@HTML@__siunitx_number_format_final_exponent: {
+ \prop_get:NnN \l__siunitx_number_out_prop { exponent }
+ \l__siunitx_tmpa_tl
+ \tl_if_empty:NTF \l__siunitx_output_exponent_tl
+ {
+ \tl_set:Nx \l__siunitx_tmpa_tl
+ { ^ { \exp_not:V \l__siunitx_tmpa_tl } }
+ \tl_put_left:NV \l__siunitx_tmpa_tl \l__siunitx_exponent_base_tl
+ }
+ {
+ \tl_set:Nx \l__siunitx_tmpa_tl
+ {
+ \LWR@origensuredmath{% lwarp
+ \exp_not:V \l__siunitx_output_exponent_tl
+ }% lwarp
+ \exp_not:N \mathord
+ \exp_not:V \l__siunitx_tmpa_tl
+ }
+ }
+ \prop_put:NnV \l__siunitx_number_out_prop { exponent-result }
+ \l__siunitx_tmpa_tl
}
+\LWR@formatted{__siunitx_number_format_final_exponent:}
% \end{macrocode}
-% \end{noindmacro}
-%
-% \begin{noindmacro}{\numrange} \oarg{options} \marg{value1} \marg{value2}
+
+
+% \cs{LWR@origensuredmath} is added here to avoid using an image for the exponent product.
% \begin{macrocode}
-\RenewDocumentCommand \numrange { o m m } {
- \leavevmode
- \group_begin:% lwarp
- \LetLtxMacro\@ensuredmath\LWR@origensuredmath% lwarp
- \LetLtxMacro\mbox\LWR@print@mbox% lwarp
- \bool_set_false:N \l__siunitx_font_set_bool
- \IfNoValueF {#1}
- { \keys_set:nn { siunitx } {#1} }
- \__siunitx_range_numbers:nn {#2} {#3}
- \group_end:% lwarp
+\cs_new_protected:Npn \LWR@HTML@__siunitx_number_format_final_combined: {
+ \__siunitx_number_format_brackets:n { mantissa }
+ \prop_get:NnN \l__siunitx_number_out_prop { mantissa-result }
+ \l__siunitx_tmpa_tl
+ \tl_if_empty:NT \l__siunitx_output_exponent_tl
+ {
+ \tl_put_right:Nx \l__siunitx_tmpa_tl
+ {
+ \exp_not:N \LWR@origensuredmath% lwarp
+ {
+ \bool_if:NTF \l__siunitx_tight_bool
+ { { \exp_not:V \l__siunitx_exponent_product_tl } }
+ { { } \exp_not:V \l__siunitx_exponent_product_tl { } }
+ }
+ }
+ }
+ \prop_get:NnN \l__siunitx_number_out_prop { exponent-result }
+ \l__siunitx_tmpb_tl
+ \tl_put_right:NV \l__siunitx_tmpa_tl \l__siunitx_tmpb_tl
+ \prop_put:NnV \l__siunitx_number_out_prop { result }
+ \l__siunitx_tmpa_tl
+ \prop_put:Nnn \l__siunitx_number_out_prop
+ { result-bracket-exponent } { true }
}
+\LWR@formatted{__siunitx_number_format_final_combined:}
% \end{macrocode}
-% \end{noindmacro}
-%
-% \begin{noindmacro}{\ang} \marg{options} \marg{angle}
+
+
+% \cs{LWR@origensuredmath} is added here to avoid using an image for the exponent product.
% \begin{macrocode}
-\RenewDocumentCommand \ang { o > { \SplitArgument { 2 } { ; } } m } {
- \group_begin:% lwarp
- \LetLtxMacro\@ensuredmath\LWR@origensuredmath% lwarp
- \LetLtxMacro\mbox\LWR@print@mbox% lwarp
- \IfNoValueF {#1}
- { \keys_set:nn { siunitx } {#1} }
- \__siunitx_angle_output:nnn #2
- \group_end:% lwarp
+\cs_new_protected:Npn \LWR@HTML@__siunitx_number_output_parts_aux: {
+ \bool_if:NTF \l__siunitx_multi_repeat_bool
+ {
+ \prop_if_in:NnT \l__siunitx_number_out_prop { mantissa-result }
+ {
+ \__siunitx_number_output_parts_aux:n { mantissa }
+ \__siunitx_number_output_parts_aux:n { complex }
+ }
+ \prop_get:NnNT \l__siunitx_number_out_prop { exponent-result }
+ \l__siunitx_tmpa_tl
+ {
+ \prop_if_in:NnT \l__siunitx_number_out_prop { mantissa-result }
+ {
+ \tl_put_left:Nx \l__siunitx_tmpa_tl
+ {
+ \exp_not:N \LWR@origensuredmath
+ {
+ \bool_if:NTF \l__siunitx_tight_bool
+ { { \exp_not:V \l__siunitx_exponent_product_tl } }
+ { { } \exp_not:V \l__siunitx_exponent_product_tl { } }
+ }
+ }
+ \prop_put:NnV \l__siunitx_number_out_prop { exponent }
+ \l__siunitx_tmpa_tl
+ }
+ \__siunitx_number_output_parts_print:n { exponent }
+ }
+ }
+ { \__siunitx_number_output_single: }
}
+\LWR@formatted{__siunitx_number_output_parts_aux:}
% \end{macrocode}
-% \end{noindmacro}
-%
-% \begin{noindmacro}{\si} \marg{options} \marg{unit}
+
+
+% \cs{LWR@origensuredmath} is added here to avoid using an image for the exponent product.
% \begin{macrocode}
-\RenewDocumentCommand \si { o m } {
- \leavevmode
- \group_begin:% lwarp
- \LetLtxMacro\@ensuredmath\LWR@origensuredmath% lwarp
- \LetLtxMacro\mbox\LWR@print@mbox% lwarp
- \bool_set_false:N \l__siunitx_font_set_bool
- \IfNoValueTF {#1}
- { \__siunitx_unit_output:nn {#2} { } }
+\cs_new_protected:Npn \LWR@HTML@__siunitx_unit_output_print: {
+ \int_compare:nNnF { \l__siunitx_unit_prefix_int } = { 0 }
+ {
+ \tl_set:Nx \l__siunitx_tmpa_tl
+ {
+ \bool_if:NTF \l__siunitx_tight_bool
+ {
+ \exp_not:N \LWR@origensuredmath% lwarp
+ { { \exp_not:V \l__siunitx_exponent_product_tl } }
+ }
+ {
+ \exp_not:N \LWR@origensuredmath% lwarp
+ { { } \exp_not:V \l__siunitx_exponent_product_tl { } }
+ }
+ \int_use:N \l__siunitx_unit_prefix_base_int
+ ^ { \int_use:N \l__siunitx_unit_prefix_int }
+ }
+ \__siunitx_print:nV { number } \l__siunitx_tmpa_tl
+ }
+ \tl_if_empty:NF \l__siunitx_unit_tl
+ {
+ \__siunitx_unit_output_number_sep:
+ \__siunitx_print:nV { unit } \l__siunitx_unit_tl
+ }
+}
+\LWR@formatted{__siunitx_unit_output_print:}
+% \end{macrocode}
+
+
+% \cs{LWR@origensuredmath} is added here to avoid using an image for the exponent product.
+% \begin{macrocode}
+\cs_new_protected:Npn \LWR@HTML@__siunitx_range_exponent:
+ {
+ \bool_if:NT \l__siunitx_process_fixed_bool
+ {
+ \tl_set_eq:NN \l__siunitx_tmpa_tl \l__siunitx_exponent_product_tl
+ \bool_if:NT \l__siunitx_tight_bool
+ {
+ \tl_set:Nx \l__siunitx_tmpa_tl
+ { \exp_not:N \mathord \exp_not:o \l__siunitx_tmpa_tl }
+ }
+ \tl_set:Nx \l__siunitx_tmpa_tl
+ {
+ \exp_not:N \LWR@origensuredmath {% lwarp
+ { } \exp_not:o \l__siunitx_tmpa_tl { }
+ }
+ 10 \exp_not:N \PrintSuperscript
+ { \int_use:N \l__siunitx_process_fixed_int }
+ }
+ \__siunitx_print:nV { number } \l__siunitx_tmpa_tl
+ }
+ }
+\LWR@formatted{__siunitx_range_exponent:}
+% \end{macrocode}
+
+
+% \cs{LWR@origensuredmath} is added here to avoid using an image for the exponent product.
+% \begin{macrocode}
+\cs_new_protected:Npn \LWR@HTML@__siunitx_table_print_S_reserved_exponent_product:
+ {
+ \tl_set_eq:NN \l__siunitx_tmpb_tl \l__siunitx_exponent_product_tl
+ \bool_if:NT \l__siunitx_tight_bool
+ {
+ \tl_set:Nx \l__siunitx_tmpb_tl
+ { \exp_not:N \mathord \exp_not:o \l__siunitx_tmpb_tl }
+ }
+ \tl_set:Nx \l__siunitx_tmpa_tl
{
- \keys_set:nn { siunitx } {#1}
- \__siunitx_unit_output:nn {#2} {#1}
+ \exp_not:N \LWR@origensuredmath { { } \exp_not:o \l__siunitx_tmpb_tl { } }
+ \exp_not:o \l__siunitx_tmpa_tl
}
- \group_end:% lwarp
+ }
+\LWR@formatted{__siunitx_table_print_S_reserved_exponent_product:}
+% \end{macrocode}
+
+
+% \cs{LWR@origensuredmath} is added here to avoid using an image for the output product.
+% \begin{macrocode}
+\cs_new_protected:Npn \LWR@HTML@__siunitx_number_output_product_aux: {
+ \bool_set_true:N \l__siunitx_number_compound_bool
+ \__siunitx_number_preprocess:V \l__siunitx_number_arg_tl
+ \bool_if:NF \l__siunitx_error_bool
+ {
+ \tl_if_empty:NTF \l__siunitx_number_multi_tl
+ { \__siunitx_number_output_parse_aux: }
+ { \__siunitx_number_output_quotient: }
+ \tl_if_empty:NF \l__siunitx_number_next_tl
+ {
+ \bool_if:NTF \l__siunitx_tight_bool
+ {
+ \__siunitx_print:nn { number }
+ { \LWR@origensuredmath { \l__siunitx_output_product_tl } }
+ }
+ {
+ \__siunitx_print:nn { number }
+ { \LWR@origensuredmath { { } \l__siunitx_output_product_tl { } } }
+ }
+ \__siunitx_number_output_parse:V \l__siunitx_number_next_tl
+ }
+ }
}
+\LWR@formatted{__siunitx_number_output_product_aux:}
% \end{macrocode}
-% \end{noindmacro}
-%
-%
-% \begin{noindmacro}{\SIrange} \oarg{options} \marg{value1} \marg{value2} \marg{unit}
+
+
+% Used to detect the math font.
% \begin{macrocode}
-\RenewDocumentCommand{\SIrange}{o m m m}
-{%
- \leavevmode
- \group_begin:% lwarp
- \LetLtxMacro\@ensuredmath\LWR@origensuredmath% lwarp
- \LetLtxMacro\mbox\LWR@print@mbox% lwarp
- \bool_set_false:N \l__siunitx_font_set_bool
- \IfNoValueTF {#1}
- { \__siunitx_range_unit:nnnn {#4} { } {#2} {#3} }
+\cs_set_protected:Npn \__siunitx_set_math_fam:n #1 {
+ \group_begin:
+ \hbox_set:Nn \l__siunitx_tmp_box
{
- \keys_set:nn { siunitx } {#1}
- \__siunitx_range_unit:nnnn {#4} {#1} {#2} {#3}
+ \LWR@origensuredmath% lwarp
+ {
+ \use:c { math #1 }
+ {
+ \int_const:cn { c__siunitx_math #1 _int } { \fam }
+ }
+ }
}
- \group_end:% lwarp
+ \group_end:
}
% \end{macrocode}
-% \end{noindmacro}
-%
+
+% Force \cs{text}:
+% \changes{v0.904}{2022/02/26}{\pkg{siunitx-v2}: Improved range phrase.}
+% \begin{macrocode}
+\cs_set_protected:Npn \__siunitx_range_numbers:nn #1#2
+ {
+ \__siunitx_range_numbers_aux:n {#1}
+ \text{\l__siunitx_range_phrase_tl}% lwarp
+ \__siunitx_range_numbers_aux:n {#2}
+ }
+% \end{macrocode}
+
+
+% Force \cs{text}:
+% \changes{v0.904}{2022/02/26}{\pkg{siunitx-v2}: Improved range phrase.}
+% \begin{macrocode}
+\cs_set_protected:Npn \__siunitx_range_unit:nnnn #1#2#3#4 {
+ \__siunitx_unit_parse_options:nn {#1} {#2}
+ \bool_if:NTF \l__siunitx_range_repeat_bool
+ {
+ \__siunitx_unit_in:nn {#1} {#2}
+ \__siunitx_range_numbers_aux:n {#3}
+ \text{\l__siunitx_range_phrase_tl}% lwarp
+ \__siunitx_range_numbers_aux:n {#4}
+ }
+ {
+ \bool_if:NT \l__siunitx_process_fixed_bool
+ { \bool_set_true:N \l__siunitx_process_drop_exponent_bool }
+ \bool_if:NT \l__siunitx_range_brackets_bool
+ { \__siunitx_print:nV { number } \l__siunitx_bracket_open_tl }
+ \__siunitx_range_numbers:nn {#3} {#4}
+ \bool_if:NT \l__siunitx_range_brackets_bool
+ { \__siunitx_print:nV { number } \l__siunitx_bracket_close_tl }
+ \__siunitx_range_exponent:
+ \__siunitx_unit_output_number_sep:
+ \__siunitx_unit_output:nn {#1} {#2}
+ }
+}
+% \end{macrocode}
+
+
% \begin{macrocode}
\ExplSyntaxOff
% \end{macrocode}
+% \begin{macrocode}
+\AtBeginDocument{
+\sisetup{
+ detect-mode=true,
+ per-mode=symbol, % fraction is not seen by pdftotext
+ text-celsius = {\LWR@siunitx@textcelsius},
+ text-degree = {\LWR@siunitx@textdegree},
+ text-arcminute = {\LWR@siunitx@textprime} ,
+ text-arcsecond = {\LWR@siunitx@textdblprime} ,
+}
+}
+% \end{macrocode}
+
+
+% \begin{macrocode}
+\LWR@origRequirePackage{lwarp-common-mathjax-siunitx}
+% \end{macrocode}
+
+
+% Passing \optn{range-phrase} to \pkg{common-mathjax-siunitx} does not
+% seem to work with v2 using \pkg{translator} as it does with v3 using \pkg{translations}.
+% The \optn{range-phrase} therefore is set to an en-dash.
+% \changes{v0.904}{2022/02/28}{\pkg{siunitx-v2}, \MathJax: Use \optn{range-phrase}.}
+% \begin{macrocode}
+\AtBeginDocument{
+\CustomizeMathJax{\def\LWRsiunitxrangephrase{\unicode{x2013}}}
+}
+% \end{macrocode}
+
+
+% \iffalse
+%</siunitx-v2>
+% \fi
+
+
+
+
+%
+% \iffalse
+%<*common-mathjax-siunitx>
+% \fi
+%
+% \part{lwarp-common-mathjax-siunitx.sty}
+
+% \section{common-mathjax-siunitx}
+%
+% \credits{Joseph Wright}
+%
+% \DescribePackage{common-mathjax-siunitx}
+% \pkg{common-mathjax-siunitx} adds \MathJax\ for \pkg{siunitx} and \pkg{siunitx-v2}.
+%
+% \changes{v0.904}{2022/02/21}{\pkg{common-mathjax-siunitx}: Factored from \pkg{siunitx-v2}.}
+%
+% \codehtml
+%
+%
% For \MathJax.
% \margintag{\MathJax}
%
@@ -79841,9 +81136,11 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% of the arguments of each macro when used, and
% the final argument of each collects any extra unused delimiters.
%
-% The number is split by powers (|E|, |e|, |D|, |d|), then by dimensions (|x|),
-% then by plus and minus (|+|, |-|, |+-|), then into pieces before and after the decimal
-% point.
+% The number is split by dimensions (|x|),
+% then by powers (|E|, |e|, |D|, |d|),
+% then by plus \Slash minus (|+-|, \cs{pm}),
+% then by plus and minus (|+|, |-|),
+% then into pieces before and after the decimal point or decimal comma.
%
% \changes{v0.895}{2021/01/14}{\pkg{siunitx}, \MathJax:
% \cs{num} sci notation, multiples, +-, decimals, comma.}
@@ -79861,6 +81158,12 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\ExplSyntaxOff
% \end{macrocode}
%
+% Any units which must be distributed across multiple dimensions:
+% \begin{macrocode}
+\CustomizeMathJax{\def\LWRsiunitxdistribunit{}}
+% \end{macrocode}
+%
+%
% \pkg{siunitx} accepts either commas or periods as decimal points.
% \cs{LWRsiunitxprintdecimal} splits its input by periods then commas,
% parsing out before and after sections to print on either side of the decimal point.
@@ -79882,7 +81185,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\ifblank{#1}{0}{\mathrm{#1}}%
% \end{macrocode}
%
-% If something is after the decimal comma, print the decimal comma and the fraction:
+% If something is after the decimal comma, print the decimal and the fraction:
% \begin{macrocode}
\ifblank{#2}%
{}%
@@ -79901,7 +81204,6 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\ifblank{#2}%
{}%
{%
-% {.}%
{\LWRsiunitxdecimal}%
\LWRsiunitxprintdecimalsubtwo#2,,\LWRsiunitxENDTWO%
}%
@@ -79916,7 +81218,9 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \begin{macrocode}
\CustomizeMathJax{\def\LWRsiunitxnumplus#1+#2+#3\LWRsiunitxEND{%
\ifblank{#2}%
- {\LWRsiunitxprintdecimal{#1}}% no plus
+ {%
+ \LWRsiunitxprintdecimal{#1}%
+ }% no plus
{%
\ifblank{#1}%
{\LWRsiunitxprintdecimal{#2}}% leading plus, ignore
@@ -79926,6 +81230,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\LWRsiunitxprintdecimal{#2}%
}%
}%
+ \LWRsiunitxdistribunit%
}}
% \end{macrocode}
%
@@ -79938,42 +81243,36 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\ifblank{#1}{}{\LWRsiunitxprintdecimal{#1}}%
\unicode{x02212}% mathematical minus sign
\LWRsiunitxprintdecimal{#2}%
+ \LWRsiunitxdistribunit%
}%
}}
% \end{macrocode}
%
-% The following splits by |+-|
+% The following splits by |\pm|
+% \changes{v0.904}{2022/02/28}{\pkg{siunitx}, \MathJax: Fixed \cs{pm}.}
% \begin{macrocode}
-\CustomizeMathJax{\def\LWRsiunitxnumpm#1+-#2+-#3\LWRsiunitxEND{%
+\CustomizeMathJax{\def\LWRsiunitxnumpmmacro#1\pm#2\pm#3\LWRsiunitxEND{%
\ifblank{#2}%
{\LWRsiunitxnumminus#1---\LWRsiunitxEND}%
{%
\LWRsiunitxprintdecimal{#1}%
\unicode{x0B1}% \pm
\LWRsiunitxprintdecimal{#2}%
+ \LWRsiunitxdistribunit%
}%
}}
% \end{macrocode}
%
-% The following splits by |x|
+% The following splits by |+-|
% \begin{macrocode}
-\CustomizeMathJax{\def\LWRsiunitxnumx#1x#2x#3x#4\LWRsiunitxEND{%
+\CustomizeMathJax{\def\LWRsiunitxnumpm#1+-#2+-#3\LWRsiunitxEND{%
\ifblank{#2}%
- {\LWRsiunitxnumpm#1+-+-\LWRsiunitxEND}%
+ {\LWRsiunitxnumpmmacro#1\pm\pm\pm\LWRsiunitxEND}%
{%
- \ifblank{#3}%
- {%
- \LWRsiunitxprintdecimal{#1}%
- \times%
- \LWRsiunitxprintdecimal{#2}%
- }%
- {%
- \LWRsiunitxprintdecimal{#1}%
- \times%
- \LWRsiunitxprintdecimal{#2}%
- \times%
- \LWRsiunitxprintdecimal{#3}%
- }%
+ \LWRsiunitxprintdecimal{#1}%
+ \unicode{x0B1}% \pm
+ \LWRsiunitxprintdecimal{#2}%
+ \LWRsiunitxdistribunit%
}%
}}
% \end{macrocode}
@@ -79991,7 +81290,8 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
{-}%
{\LWRsiunitxprintdecimal{#1}\times}%
}%
- 10^{\LWRsiunitxprintdecimal{#2}}
+ 10^{\LWRsiunitxprintdecimal{#2}}%
+ \LWRsiunitxdistribunit%
}}
% \end{macrocode}
%
@@ -80000,7 +81300,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \begin{macrocode}
\CustomizeMathJax{\def\LWRsiunitxnumD#1D#2D#3\LWRsiunitxEND{%
\ifblank{#2}%
- {\LWRsiunitxnumx#1xxxxx\LWRsiunitxEND}%
+ {\LWRsiunitxnumpm#1+-+-\LWRsiunitxEND}%
{\mathrm{\LWRsiunitxnumscientific{#1}{#2}}}%
}}
% \end{macrocode}
@@ -80032,16 +81332,50 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
}}
% \end{macrocode}
%
+%
+% The following splits by |x|
+% \changes{v0.904}{2022/02/28}{\pkg{siunitx}, \MathJax: Split by \texttt{x} before \texttt{e}.}
+% \begin{macrocode}
+\CustomizeMathJax{\def\LWRsiunitxnumx#1x#2x#3x#4\LWRsiunitxEND{%
+ \ifblank{#2}%
+ {\LWRsiunitxnume#1eee\LWRsiunitxEND}%
+ {%
+ \ifblank{#3}%
+ {%
+ \LWRsiunitxnume#1eee\LWRsiunitxEND%
+ \times%
+ \LWRsiunitxnume#2eee\LWRsiunitxEND%
+ }%
+ {%
+ \LWRsiunitxnume#1eee\LWRsiunitxEND%
+ \times%
+ \LWRsiunitxnume#2eee\LWRsiunitxEND%
+ \times%
+ \LWRsiunitxnume#3eee\LWRsiunitxEND%
+ }%
+ }%
+}}
+% \end{macrocode}
+%
+%
% \changes{v0.903}{2021/12/10}{\pkg{siunitx}, \MathJax: Improved decimal commas.}
% \begin{macrocode}
-\CustomizeMathJax{\newcommand{\num}[2][]{\LWRsiunitxnume#2eee\LWRsiunitxEND}}
+\CustomizeMathJax{\newcommand{\num}[2][]{%
+ \LWRsiunitxnumx#2xxxxx\LWRsiunitxEND%
+}}
% \end{macrocode}
% \end{noindmacro}
%
%
% \begin{noindmacro}{\si} \oarg{options} \marg{unit}
+%
+% |~| is converted to a thin space.
+% Not able to convert period to thin space because the period might be in
+% \cs{raiseto}, for example.
% \begin{macrocode}
-\CustomizeMathJax{\newcommand{\si}[2][]{\mathrm{#2}}}
+\CustomizeMathJax{\newcommand{\si}[2][]{%
+ \mathrm{\gsubstitute{#2}{~}{\,}}%
+}}
% \end{macrocode}
% \end{noindmacro}
%
@@ -80051,11 +81385,15 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \changes{v0.895}{2021/01/14}{\pkg{siunitx}: \MathJax: \cs{SI} prefix parsing.}
% \begin{macrocode}
\CustomizeMathJax{\def\LWRsiunitxSIopt#1[#2]#3{%
- {#2}\num{#1}{#3}%
+ \def\LWRsiunitxdistribunit{\,\si{#3}}%
+ {#2}\num{#1}%
+ \def\LWRsiunitxdistribunit{}%
}}
\CustomizeMathJax{\newcommand{\LWRsiunitxSI}[2]{%
- \num{#1}\,{#2}%
+ \def\LWRsiunitxdistribunit{\,\si{#2}}%
+ \num{#1}%
+ \def\LWRsiunitxdistribunit{}%
}}
% \end{macrocode}
%
@@ -80083,8 +81421,11 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \cs{numrange} should only be used in text mode.
% If used in \MathJax\ math, an en-dash is used instead of the \optn{range-phrase}.
% \changes{v0.89}{2020/08/02}{\pkg{siunitx}: Unicode for endash.}
+% \changes{v0.904}{2022/02/28}{\pkg{siunitx}, \MathJax: Use \optn{range-phrase}.}
% \begin{macrocode}
-\CustomizeMathJax{\newcommand{\numrange}[3][]{\num{#2}\,\unicode{x2013}\,\num{#3}}}
+\CustomizeMathJax{\newcommand{\numrange}[3][]{%
+ \num{#2}\ \LWRsiunitxrangephrase\ \num{#3}%
+}}
% \end{macrocode}
% \end{noindmacro}
%
@@ -80094,13 +81435,16 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% If used in \MathJax, a simple emulation is provided.
% \changes{v0.903}{2021/12/10}{\pkg{siunitx}: \MathJax: Improved \cs{SIlist}.}
% \begin{macrocode}
-\CustomizeMathJax{\newcommand{\SIlist}[3][]{\text{#2}\,#3}}
+\CustomizeMathJax{\newcommand{\SIlist}[3][]{\text{#2}\,\si{#3}}}
% \end{macrocode}
% \end{noindmacro}
%
% \begin{noindmacro}{\SIrange} \oarg{options} \marg{value1} \marg{value2} \marg{unit}
+% \changes{v0.904}{2022/02/28}{\pkg{siunitx}, \MathJax: Use \optn{range-phrase}.}
% \begin{macrocode}
-\CustomizeMathJax{\newcommand{\SIrange}[4][]{\num{#2}\,#4\,\unicode{x2013}\,\num{#3}\,#4}}
+\CustomizeMathJax{\newcommand{\SIrange}[4][]{%
+ \num{#2}\,#4\ \LWRsiunitxrangephrase\ \num{#3}\,#4%
+}}
% \end{macrocode}
% \end{noindmacro}
%
@@ -80331,14 +81675,13 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\CustomizeMathJax{\newcommand{\yobi}{\mathrm{Yi}}}
\end{warpMathJax}
% \end{macrocode}
-
+%
% \iffalse
-%</siunitx-v2>
+%</common-mathjax-siunitx>
% \fi
%
%
%
-%
% \iffalse
%<*skmath>
% \fi
@@ -89412,7 +90755,27 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \codehtml
% \begin{macrocode}
-\LWR@ProvidesPackageDrop{wrapfig2}[2021-12-21]
+\@ifpackageloaded{color}{}{%
+ \@ifpackageloaded{xcolor}{}{\LWR@origRequirePackage{xcolor}}%
+ }
+
+\RequirePackage{float}
+
+\IfPackageLoadedWithOptionsTF{wrapfig2}{WFold}
+{}% v4.0
+{% v5+
+ \floatstyle{plain}
+ \ifcsname chapter\endcsname
+ \newfloat{text}{tbp}{lotx}[chapter]
+ \else
+ \newfloat{text}{tbp}{lotx}
+ \fi
+ \floatname{text}{Text}
+% \let\WF@text@caption\float@caption
+}
+
+
+\LWR@ProvidesPackageDrop{wrapfig2}[2022-02-16]
\LWR@origRequirePackage{lwarp-wrapfig}
% \end{macrocode}
@@ -89436,17 +90799,113 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\endLWR@BlockClassWP%
\end{LWR@setvirtualpage}%
}
+% \end{macrocode}
+%
+% \changes{v0.904}{2022/02/09}{\pkg{wrapfig2}: Update to v5.0.}
+% \begin{macrocode}
+\IfPackageLoadedWithOptionsTF{wrapfig2}{WFold}
+{% v4.0:
+ \NewDocumentEnvironment{wraptext}%
+ {O{l} D||{0.5\columnwidth} D<>{0} D(){figure}}%
+ {%
+ \wrapfloat{#4}[]{#1}[]{#2}%
+ \tcolorbox%
+ }
+ {%
+ \endtcolorbox%
+ \endwrapfloat%
+ \ignorespaces%
+ }
+}{}
-\NewDocumentEnvironment{wraptext}%
- {O{l} D||{0.5\columnwidth} D<>{0} D(){figure}}%
-{%
- \wrapfloat{#4}[]{#1}[]{#2}%
- \tcolorbox%
-}
-{%
- \endtcolorbox%
- \endwrapfloat%
- \ignorespaces%
+\IfPackageLoadedWithOptionsTF{wrapfig2}{WFfive}
+{% v5
+ \definecolor{WFbackground}{rgb}{0.95,0.95,0.95}
+ \definecolor{WFframe}{rgb}{0.1,0.1,0.1}
+ \colorlet{WFtext}{black}
+ \def\SetWFbgd#1{\colorlet{WFbackground}{#1}}
+ \def\SetWFfrm#1{\colorlet{WFframe}{#1}}
+ \def\SetWFtxt#1{\colorlet{WFtext}{#1}}
+ \def\WFsplitdimens#1,#2!{\fboxrule=#1\relax\fboxsep=#2\relax}
+
+ \NewDocumentEnvironment{wraptext}{O{0} m O{0pt} G{0.5\columnwidth}}
+ {%
+ \wrapfloat{text}[]{#2}[]{#4}%
+ }
+ {%
+ \endwrapfloat%
+ \ignorespaces%
+ }
+
+ \NewDocumentCommand\includeframedtext{O{\insertwidth} m O{1pt,1ex} o}%
+ {%
+ \WFsplitdimens #3!
+ \convertcolorspec{named}{WFtext}{HTML}\LWR@tempcolor%
+ \LWR@HTML@fcolorboxBlock%
+ [named]{WFframe}[named]{WFbackground}{#2}%
+ (%
+ color:\ \LWR@origpound\LWR@tempcolor ; %
+ border-radius:\ 1ex%
+ )%
+ }
+}{% v6+
+ \RequirePackage{xkeyval}
+
+ \definecolor{WFbackground}{rgb}{0.95,0.95,0.95}
+ \definecolor{WFframe}{rgb}{0.1,0.1,0.1}
+ \colorlet{WFtext}{black}
+ \def\SetWFbgd#1{\colorlet{WFbackground}{#1}}
+ \def\SetWFfrm#1{\colorlet{WFframe}{#1}}
+ \def\SetWFtxt#1{\colorlet{WFtext}{#1}}
+ \def\WFsplitdimens#1,#2!{\fboxrule=#1\relax\fboxsep=#2\relax}
+
+ \newlength{\LWR@wrapfigtwo@radius}
+ \setlength{\LWR@wrapfigtwo@radius}{1ex}
+
+ \DeclareOptionX<wraptext>{scalefactor}[0.8]{%
+% \def\WFscalefactor{#1}%
+ }
+ \DeclareOptionX<wraptext>{fboxrule}[1pt]{\fboxrule=#1}
+ \DeclareOptionX<wraptext>{fboxsep}[1ex]{\fboxsep=#1}
+ \DeclareOptionX<wraptext>{framecolor}[WFframe]{\SetWFfrm{#1}}
+ \DeclareOptionX<wraptext>{backgroundcolor}[WFbackground]{\SetWFbgd{#1}}
+ \DeclareOptionX<wraptext>{textcolor}[WFtext]{\SetWFtxt{#1}}
+ \DeclareOptionX<wraptext>{fontstyle}[\normalfont]{#1}
+ \DeclareOptionX<wraptext>{radius}[\fboxsep]{%
+ \setlength{\LWR@wrapfigtwo@radius}{#1}%
+ }
+ \DeclareOptionX<wraptext>{insertionwidth}[0.5\columnwidth]{%
+% \insertwidth=#1%
+ }
+
+ \DeclareOptionX*{\PackageWarning{wrapfig2}{`\CurrentOption' ignored}}
+
+ \ExecuteOptionsX<wraptext>{scalefactor, fboxrule, fboxsep, framecolor,
+ backgroundcolor, textcolor, fontstyle, radius, insertionwidth}
+
+ \ProcessOptionsX*
+
+ \NewDocumentEnvironment{wraptext}{O{0} m O{0pt} G{0.5\columnwidth}}
+ {%
+ \wrapfloat{text}[]{#2}[]{#4}%
+ }
+ {%
+ \endwrapfloat%
+ \ignorespaces%
+ }
+
+ \NewDocumentCommand\includeframedtext{O{\insertwidth} m O{} o}
+ {%
+ \ExecuteOptionsX<wraptext>{#3}% executes possible key=value options
+ \convertcolorspec{named}{WFtext}{HTML}\LWR@tempcolor%
+ \LWR@HTML@fcolorboxBlock%
+ [named]{WFframe}[named]{WFbackground}%
+ {\LWR@textcurrentfont{#2}}%
+ (%
+ color:\ \LWR@origpound\LWR@tempcolor ; %
+ border-radius:\ \LWR@printlength{\LWR@wrapfigtwo@radius}%
+ )%
+ }
}
% \end{macrocode}
@@ -89695,7 +91154,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\LWR@traceinfo{LWR@findcurrenttextcolor}%
\protect\colorlet{LWR@current@color}{.}%
\LWR@traceinfo{LWR@findcurrenttextcolor B}%
- \protect\convertcolorspec{named}{LWR@current@color}{HTML}\LWR@tempcolor%
+ \protect\convertcolorspec{named}{LWR@current@color}{HTML}\LWR@tempcolor\relax%
\LWR@traceinfo{LWR@findcurrenttextcolor: done}%
}
% \end{macrocode}
@@ -89781,7 +91240,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \subsection{\HTML\ border}
%
% \begin{noindmacro}{\LWR@borderpadding} \marg{colorstyle} \marg{color}
-% Prints the \HTML\ attributes for a black border and padding.
+% Prints the \HTML\ attributes for a color border and padding.
%
% \cs{LWR@forceminwidth} must be used first in order to set the border width.
%
@@ -89958,14 +91417,16 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \label{sec:fcolorboxBlock}
% \begin{macro}{\fcolorboxBlock}
% \oarg{framemodel} \marg{framecolor} \oarg{boxmodel} \marg{boxcolor} \marg{text}
+% \parg{add'l \HTML\ style}
%
% Converted into a framed \HTML\ hex background color span.
%
% A background color of |none| creates a colored frame without a background color.
%
% \changes{v0.892}{2020/10/05}{\pkg{xcolor}: Fixed second optional arg.}
+% \changes{v0.904}{2022/02/09}{\pkg{xcolor}: Added optional \HTML\ style.}
% \begin{macrocode}
-\NewDocumentCommand{\LWR@HTML@fcolorboxBlock}{O{named} m O{#1} m +m}{%
+\NewDocumentCommand{\LWR@HTML@fcolorboxBlock}{O{named} m O{#1} m +m d()}{%
\LWR@traceinfo{HTML fcolorboxBlock #2 #4}%
\begingroup%
\LWR@hook@processingtags%
@@ -89980,6 +91441,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
{% no background color
\begin{BlockClass}[%
\LWR@borderpadding{#1}{#2}%
+ \IfValueT{#6}{ ; #6}%
]{fcolorboxBlock}
#5
\end{BlockClass}%
@@ -89989,6 +91451,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\begin{BlockClass}[%
background:\LWR@origpound\LWR@tempcolortwo\ ; %
\LWR@borderpadding{#1}{#2}%
+ \IfValueT{#6}{ ; #6}%
]{fcolorboxBlock}
#5
\end{BlockClass}%
diff --git a/macros/latex/contrib/lwarp/lwarp.ins b/macros/latex/contrib/lwarp/lwarp.ins
index 936ebf198b..e8aed5153e 100644
--- a/macros/latex/contrib/lwarp/lwarp.ins
+++ b/macros/latex/contrib/lwarp/lwarp.ins
@@ -286,6 +286,7 @@ version 2005/12/01 or later.
\file{lwarp-listings.sty}{\from{lwarp.dtx}{listings}}
\file{lwarp-listliketab.sty}{\from{lwarp.dtx}{listliketab}}
\file{lwarp-lltjext.sty}{\from{lwarp.dtx}{lltjext}}
+\file{lwarp-lltjp-siunitx.sty}{\from{lwarp.dtx}{lltjp-siunitx}}
\file{lwarp-lltjp-tascmac.sty}{\from{lwarp.dtx}{lltjp-tascmac}}
\file{lwarp-longtable.sty}{\from{lwarp.dtx}{longtable}}
\file{lwarp-lpic.sty}{\from{lwarp.dtx}{lpic}}
diff --git a/macros/latex/contrib/lwarp/lwarp.pdf b/macros/latex/contrib/lwarp/lwarp.pdf
index a9286ae0f9..d1495eac7f 100644
--- a/macros/latex/contrib/lwarp/lwarp.pdf
+++ b/macros/latex/contrib/lwarp/lwarp.pdf
Binary files differ
diff --git a/macros/latex/contrib/lwarp/lwarpmk.lua b/macros/latex/contrib/lwarp/lwarpmk.lua
index b0d9a1c6f4..1cb169c65c 100755
--- a/macros/latex/contrib/lwarp/lwarpmk.lua
+++ b/macros/latex/contrib/lwarp/lwarpmk.lua
@@ -2,7 +2,7 @@
-- Copyright 2016-2022 Brian Dunn
-printversion = "v0.903"
+printversion = "v0.904"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
diff --git a/macros/latex/contrib/messagepassing/README.md b/macros/latex/contrib/messagepassing/README.md
new file mode 100644
index 0000000000..4af22705d4
--- /dev/null
+++ b/macros/latex/contrib/messagepassing/README.md
@@ -0,0 +1,28 @@
+# The `messagepassing` package
+
+This package provides an environement and commands to easily draw diagrams to represent communication protocols using message passing among processes.
+
+Processes are represented as horizontal (or vertical) lines, and communications as arrows between lines. The package also provides multiple macros to decorate those diagrams, for instance to annotate the diagram, to add crashes to the processes, checkpoints, etc..
+
+The package works on top of tikz, which makes it easy to add ad-hoc items using regular tikz commands.
+To use it, run the following commands:
+
+```
+$ latex messagepassing.ins
+$ pdflatex messagepassing.dtx
+```
+
+The first command generates the file messagepassing.sty that should be placed in the same folder than your main document. The second command generates the file messagepassing.pdf (you may require multiple runs to adjust internal references), which is the documentation for the package.
+
+
+## License
+
+This package is provided under the terms of the LaTeX Project Public License, version 1.3 or later.
+
+## Author
+
+The initial author of this package is Martin Vassor.
+
+## Related packages
+
+ - [msc](https://www.ctan.org/pkg/msc): used to typeset message sequence diagrams, according to the Recommendation Z.120 of the International Telecommunication Union;
diff --git a/macros/latex/contrib/messagepassing/messagepassing.dtx b/macros/latex/contrib/messagepassing/messagepassing.dtx
new file mode 100644
index 0000000000..3811f558a5
--- /dev/null
+++ b/macros/latex/contrib/messagepassing/messagepassing.dtx
@@ -0,0 +1,861 @@
+% \iffalse meta-comment
+% Copyright (C) 2022 by Martin Vassor
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% \fi
+
+% \iffalse
+%<package> \NeedsTeXFormat{LaTeX2e}
+%<package> \ProvidesPackage{messagepassing}[2022/02/18 v1.0 A package to draw message passing diagrams]
+%<package> \RequirePackage{tikz}
+%<package> \usetikzlibrary{quotes, calc, arrows.meta}
+%<package> \RequirePackage{xparse}
+%<package> \RequirePackage{float}
+%
+
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{messagepassing}
+\usepackage[hidelinks]{hyperref}
+\usepackage{xspace}
+\usepackage[super]{nth}
+\usepackage{subcaption}
+\usepackage{listings}
+\lstset{
+ language=[LaTeX]{TeX},
+}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{messagepassing.dtx}
+\end{document}
+%</driver>
+% \fi
+
+% \CheckSum{0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \changes{v1.0}{2022/02/18}{Initial version for publication}
+%
+% \GetFileInfo{messagepassing.sty}
+%
+% \title{The \textsf{messagepassing} package\thanks{This document
+% corresponds to \textsf{messagepassing}~\fileversion,
+% dated \filedate.}}
+% \author{Martin Vassor\\ \texttt{bromind+ctan@gresille.org}}
+%
+%
+% \maketitle
+% \tableofcontents
+% \newcommand{\TikZ}{Ti\textit{k}Z\xspace}
+
+% \section{Introduction}
+% This package provides an environment and associated macros to easily draw
+% message passing diagrams. For instance, Execution.~\ref{mp:ex1} shows the capabilities offered
+% by the package.
+%
+% \begin{messagepassing}[][An example of message passing][h][mp:ex1]
+% \newprocesswithlength{p}{9}
+% \newprocesswithlength{q}{9}
+% \newprocesswithlength{r}{5}
+% \crash{r}{5}{k}
+%
+% \checkpoint{p}{0}{c_p^0}
+% \checkpoint{q}{0}{c_q^0}
+% \checkpoint{r}{0}{c_r^0}
+% \checkpoint{p}{4}{c_p^1}
+%
+% \stateinterval{p}{0}{si_p^0}
+% \stateinterval{q}{0}{si_q^0}
+% \stateinterval{r}{0}{si_r^0}
+%
+% \sendwithstateinterval{p}{1}{q}{2}{si_q^1}
+% \sendwithstateinterval{r}{3}{q}{4}{si_q^2}
+% \sendwithstateintervalandname{q}{5}{p}{6}{si_p^1}{\(m\)}
+% \sendoutofband{q}{5}{r}{6}{\(m_\mathrm{copy}\)}
+% \stateinterval{r}{6}{si_r^0}
+% \restart{r}{6}{3}
+%
+% \annotate{r}{8}{restart}
+% \annotatexplicit{p}{8}{\(1+1=2\)}{note}
+%
+% \colouredbox{p}{q}{7}{9}{Protocol}
+%
+% \drawtimeline{9}
+% \end{messagepassing}
+
+%
+% \section{Usage}
+% \subsection{Loading the package}
+% The package accepts two options: \verb+vertical+ and \verb+annotatevertical+.
+% If the former is set, executions will be drawn with time going from top to
+% bottom, instead of from left to right. Doing so, almost all
+% labels\footnote{Annotations are not rotated, unless explicitly asked.} are
+% rotated as well. If, \emph{in addition}, \verb+annotatevertical+ is set, then
+% annotations (including named of colouredboxes) are rotated as well.
+
+% \subsection{Basic usage}
+% \subsubsection{Creating a diagram.}
+
+% \DescribeEnv{messagepassing} A diagram can easily be created using the
+% |messagepassing| environment. The syntax is:
+% |\begin{messagepassing}| \oarg{tikz} \oarg{caption} \oarg{placement}
+% \oarg{label}.
+% The first optional argument (\emph{tikz}) contains arguments that are passed
+% to the underlying tikz environment. The second argument (\emph{caption}) has
+% two effect: if set, it turns the diagram into a floating figure, and the
+% content of the argument is the caption of the floating figure. The third
+% argument (\emph{placement}) is the placement option of the figure, the default
+% is |p|. Finally, the fourth option (\emph{label}) is the label used to
+% reference the figure.
+%
+% For instance, the diagram in Figure~\ref{mp:ex1} is created with the following
+% commands:
+% \begin{verbatim}
+% \begin{messagepassing}[][An example of message passing][h][mp:ex1]
+% % ...
+% \end{messagepassing}
+% \end{verbatim}
+
+% \paragraph{Setting up the diagram.}
+% When created, the diagram is empty. Before actually writing the message
+% exchanges, we have to set up a few things: set whether we want a timeline (and
+% if it is the case, of which length), and set the number of processes with
+% their names, etc.
+% \subparagraph{Creating a new process.}
+% Each process is characterised by its name.
+% \DescribeMacro{\newprocess} The simplest macro to create a new process is then
+% |\newprocess| \marg{name}, where \marg{name} is the name of the process (resp.
+% \(p\), \(q\), and \(r\) in Figure~\ref{mp:ex1}).
+%
+% In addition, we often draw a horizontal\footnote{By default, the line is vertical if
+% the option |vertical| is used.} line that represent the running process.
+% Although this line can be manually
+% added\footnote{|processlength|\marg{process}\marg{length}
+% creates a line of length \emph{length} for process \emph{process}.}, we also
+% provide a simple macro that performs both actions:
+% \DescribeMacro{\newprocesswithlength}
+% |\newprocesswithlength|\marg{name}\marg{length}.
+%
+% An other alternative is to name the state in which the process starts (in
+% Fig~\ref{mp:ex1}, we call those states \(si\) as \emph{state intervals}).
+% Again, this can be achieved using individual commands, but we also provide
+% \DescribeMacro{\newprocesswithstateinterval}
+% |\newprocesswithstateinterval|\marg{name}\marg{state name}.
+%
+% Finally, an other way to create a process is to create a process that
+% (eventually) fails, which is represented by the process' line terminating
+% early with a cross. For that, we provide \DescribeMacro{\newprocesswithcrash}
+% |\newprocesswithcrash|\marg{name}\marg{length}\marg{crash coordinate name}.
+% The first two arguments are similar to |\newprocesswithlength|, and the latter
+% one is used to provide a name for the coordinate where the crash occurs. This
+% name can later be used to place nodes.
+%
+% Of course, we can imagine other combinations (e.g. a process with a length and
+% a state interval). We do not provide individual commands for each combination,
+% but the can be easily achieved using separate commands.
+%
+% As an example, the processes of Fig.~\ref{mp:ex1} are created as follows.
+% \begin{verbatim}
+% \newprocesswithlength{p}{9}
+% \newprocesswithlength{q}{9}
+% \newprocesswithlength{r}{5}
+% \end{verbatim}
+%
+% \subparagraph{Setting up a timeline.}
+% An other setup action consists in setting up (if wanted) the timeline. Notice
+% that this can be done \emph{at any place} in the diagram. To do so, simply use
+% the command \DescribeMacro{\drawtimeline}|\drawtimeline|\marg{length}, where
+% \emph{length} is the length of the desired timeline.
+
+% \subsubsection{Populating the run.}
+% Now that we have some processes, we have to populate the diagram with some
+% actions.
+%
+% \paragraph{Basic message.}
+% The most basic action is to send a message. For that, we provide the command
+% \DescribeMacro{\send} |\send|\marg{sender}\marg{send
+% time}\marg{receiver}\marg{receive time}. The sender and receiver are
+% identified with their names, and the sending and receiving times are given
+% according to their timestamp\footnote{Notice that nothing prevents sending
+% messages in the past, simply set a receiving time before the sending time.}.
+%
+% In addition, we can label the arrow with the message that is sent with
+% \DescribeMacro{\sendwithname}
+% |\sendwithname|\marg{sender}\marg{send time}\marg{receiver}\marg{receive
+% time}\marg{label}.
+% For instance, in Figure~\ref{fig:ex_msg}, we use |\send{p}{1}{q}{2}|.
+%
+% Finally, we sometimes distinguish \emph{out-of-band} messages, e.g. messages
+% that do not carry informations, but that are for instance used for metadata,
+% etc.. We provide the macro
+% \DescribeMacro{\sendoutofband}|\sendoutofband|\marg{sender}\marg{send time}\marg{receiver}\marg{receive
+% time}\marg{label}, which behaves similarly to |\sendwithname|, but prints the
+% message in an other colour.
+%
+% \begin{figure}
+% \centering
+% \begin{minipage}{.35\textwidth}
+% \begin{messagepassing}
+% \newprocesswithlength{p}{4}
+% \newprocesswithlength{q}{4}
+% \send{p}{1}{q}{2}
+% \sendwithname{p}{2}{q}{3}{msg}
+% \end{messagepassing}
+% \end{minipage}
+% ~
+% \begin{minipage}{.60\textwidth}
+% \iffalse
+%<*example>
+% \fi
+% \begin{lstlisting}
+\begin{messagepassing}
+ \newprocesswithlength{p}{4}
+ \newprocesswithlength{q}{4}
+ \send{p}{1}{q}{2}
+ \sendwithname{p}{2}{q}{3}{msg}
+\end{messagepassing}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+% \end{minipage}
+% \caption{A very simple protocol with a single message exchanged.}
+% \label{fig:ex_msg}
+% \end{figure}
+%
+%
+
+% \paragraph{Process crash and restore.}
+% The crash of a process can be represented using
+% \DescribeMacro{\crash}
+% |\crash|\marg{process name}\marg{time}\marg{crash name}. The argument \emph{process name}
+% is the name of the process that crashes, and \emph{crash name} is used to give
+% a name to the crash. Naming the crash is useful for coordinates (see below).
+% Finally, \emph{time} specifies when the crash occurs. Notice that this does
+% not modify the timeline: it simply adds a crash token at the specified
+% coordinate. This means that (i) then timeline has to stop at the crash's time;
+% and (ii) it has to be restarted after. To stop the timeline, simply take the
+% crash into account when setting the initial timeline. To restart the timeline,
+% we provide the command
+% \DescribeMacro{\restart}|\restart|\marg{name}\marg{date}\marg{duration}.
+% \emph{name} specifies which process is to be restarted; \emph{date} specifies
+% when the process should be restarted, and \emph{duration} specifies how long
+% the process shoud be alive (i.e. what is the length of the timeline) after the
+% restart.
+% \begin{figure}
+% \centering
+% \begin{minipage}{.35\textwidth}
+% \begin{messagepassing}
+% \newprocesswithlength{p}{4}
+% \newprocesswithlength{q}{2}
+% \send{p}{1}{q}{2}
+% \crash{q}{2}{crash}
+% \restart{q}{3}{1}
+% \end{messagepassing}
+% \end{minipage}
+% ~
+% \begin{minipage}{.60\textwidth}
+% \iffalse
+%<*example>
+% \fi
+% \begin{lstlisting}
+ \begin{messagepassing}
+ \newprocesswithlength{p}{4}
+ \newprocesswithlength{q}{2}
+ \send{p}{1}{q}{2}
+ \crash{q}{2}{crash}
+ \restart{q}{3}{1}
+ \end{messagepassing}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+% \end{minipage}
+% \caption{A protocol with a crashed process.}
+% \end{figure}
+%
+
+% \paragraph{Tokens on the run}
+%
+% The package also proposes two kinds of tokens that can be added on protocols'
+% lines. The first one is a \emph{checkpoint} (i.e. a state that is saved
+% somewhere) and the second is used to denote the begining of a \emph{state
+% interval} (a state interval denotes a period in which a process only performs
+% deterministic events). The former are denoted with a small black rectangle,
+% while the later is denoted with a vertical line. Although those two tokens are
+% intended for the usage mentionned above, we encourage users to use them for
+% other usages if need be.
+%
+% A checkpoint can be added with
+% \DescribeMacro{\checkpoint}|\checkpoint|\marg{process}\marg{time}\marg{name},
+% where \emph{process} is the name of the process which takes a checkpoint,
+% \emph{time} is the the time at which the checkpoint is taken, and \emph{name}
+% is the name of the checkpoint, that is printed next to it, and can be used as
+% a coordinate. Notice that the name is printed in a math environment, as we
+% expect most checkpoints names to be indexed, e.g.\(c_1\), \(c_2\), etc.
+% To have more control on the printed name, or if the proposed name is not a
+% valid coordinate name, we offer a variant
+% \DescribeMacro{\checkpointspecial}|\checkpointspecial|\marg{process}\marg{time}\marg{name}\marg{label},
+% where \emph{name} is the name of the coordinate of the checkpoint, and
+% \emph{label} is the label to be printed. Notice that, in that case, the label
+% is printed as is, i.e. not typeset as maths.
+
+%
+% A state interval can be added similarly with the command
+% \DescribeMacro{\stateinterval}|\stateinterval|
+% \marg{process}\marg{time}\marg{name}.
+%
+% For the sake of completeness, if you need the name of the coordinate and the
+% displayed label to be different (e.g. if the label can not be the name of a
+% coordinate, for whatever reason), we also provide the command
+% \DescribeMacro{\stateintervalspecial}
+% |\stateintervalspecial|\marg{process}\marg{time}\marg{name}\marg{label}, in
+% which \emph{name} is the name of the created coordinate, and \emph{label} is
+% the label attached to the state interval.
+
+% \begin{figure}
+% \centering
+% \begin{minipage}{.35\textwidth}
+% \begin{messagepassing}
+% \newprocesswithlength{q}{2}
+% \checkpoint{q}{1}{c_1}
+% \crash{q}{2}{crash}
+% \restart{q}{3}{1}
+% \end{messagepassing}
+% \end{minipage}
+% ~
+% \begin{minipage}{.60\textwidth}
+% \iffalse
+%<*example>
+% \fi
+% \begin{lstlisting}
+ \begin{messagepassing}
+ \newprocesswithlength{q}{2}
+ \checkpoint{q}{1}{c_1}
+ \crash{q}{2}{crash}
+ \restart{q}{3}{1}
+ \end{messagepassing}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+% \end{minipage}
+% \caption{A protocol with a checkpoint.}
+% \end{figure}
+
+% \paragraph{Grey boxes}
+%
+% In Execution~\ref{mp:ex1}, we created a light-red box between processes \(p\)
+% and \(q\), from time \(7\) to \(9\), to indicate that they perform a given
+% protocol that we don't detail further. We call such boxes (which can be used for a lot
+% of other purposes) \emph{colouredboxes}, and they
+% can be added with \DescribeMacro{\colouredbox} |\colouredbox|\marg{first
+% process}\marg{second process}\marg{start time}\marg{end time}\marg{label}.
+% This creates a box that spans between \emph{first process} and \emph{second
+% process}, from \emph{start time} to \emph{end time}, with the label
+% \emph{label} printed.
+%
+% Notice that there are no technical restrictions to adding messages on top of a
+% box, typically to highlight a specific part of a larger execution.
+
+% \paragraph{Annotations}
+% Finally, it is possible to add annotations on the diagram. To do so, we
+% provide the macro
+% \DescribeMacro{\annotate}|\annotate|\marg{process}\marg{time}\marg{text} which
+% adds an annotation with \emph{text} over the timeline of the given
+% \emph{process} at time \emph{time}. This also creates a coordinate at the
+% annotation time, which name is the content of the annotation (i.e.\
+% \emph{text}). If \emph{text} is not a valid coordinate name, then the
+% alternative \DescribeMacro{\annotatexplicit}
+% |\annotatexplicit|\marg{process}\marg{time}\marg{text}\marg{name} behaves
+% similarly, except that the coordinate name is explicitly given in argument
+% \emph{name}.
+
+% \subsubsection{Combined commands}
+% The above commands are sufficient to use all primitives offered by the
+% package. In addition, we provide a lot of \emph{combined commands}, which, as
+% the name suggest, have the effect of multiple \emph{simple} commands.
+%
+% \begin{itemize}
+% \item |\newprocesswithlength|\marg{name}\marg{lifetime}: combination of
+% |\newprocess|\marg{name} and |\processlength|\marg{name}\marg{lifetime}
+% \item |\newprocesswithstateinterval|\marg{process name}\marg{state interval
+% name}: combination of |\newprocess|\marg{process name} and
+% |\stateinterval|\marg{process name}\marg{0}\marg{state interval name}
+% \item |\newprocesswithcrash|\marg{process name}\marg{crash time}\marg{crash
+% name}: creates a process \emph{process name} that runs until \emph{crash
+% time}. The crash is named \emph{crash name}.
+% \item |\sendwithstateinterval|\marg{sender}\marg{send
+% time}\marg{receiver}\marg{receive time}\marg{si name}: combines |\send| and
+% |\stateinterval|.
+% \item |\sendwithstateintervalandname|\marg{sender}\marg{send
+% time}\marg{receiver}\marg{receive time}\marg{si name}\marg{message name}:
+% combines |\sendwithname| and |\stateinterval|
+% \end{itemize}
+
+% \subsection{Advanced usage}
+% \subsubsection{Customising colours}
+%
+% Two parts of the package use colours: colouredboxes and out-of-band messages. By
+% default both are shades of red. We provide commands to change that if desired.
+%
+% \DescribeMacro{\colouredboxcolor}|\colouredboxcolor|\marg{colour} changes the colour
+% used for colouredboxes. Notice that this sets both the background colour (which is
+% a light variant of the provided colour) and the text colour (which uses the
+% provided colour).
+%
+% \DescribeMacro{\oobcolor}|\oobcolor|\marg{colour} changes the colour used for
+% out-of-band messages.
+%
+% \subsubsection{Coordinates}
+%
+% \paragraph{\TikZ coordinates.}
+% Message passing diagrams are drawn using \TikZ, which means that one can add
+% arbitrary commands to a diagram. In addition, the package defines useful
+% coordinates to refer to. Execution~\ref{mp:ex2} shows the \TikZ coordinate plan
+% overlayed on top of Execution~\ref{mp:ex1}.
+%
+% On \TikZ \(y\)-axis processes are instanciated one unit apart from each other,
+% in their declaration order.
+% To keep the coordinate system simple, processes expand in the negative (e.g.
+% the first process declared is at coordinate \((0, -1)\), the second at \((0,
+% -2)\), etc.).
+%
+% The \TikZ \(x\)-axis corresponds to the time axis of the diagram. Therefore,
+% e.g. coordinate \((3, -4)\) corresponds to the \nth{3} time step of the
+% \nth{4} process.
+%
+% \paragraph{Named coordinates.}
+% In addition to explicit coordinates explained above, the package names most of
+% the points of interest in the diagram.
+%
+% \subparagraph{Coordinates of processes.}
+% At each process declaration, a coordinate named after the name of the process
+% is created. The coordinate corresponds to the beginning of the corresponding
+% process' timeline (for instance, in Execution~\ref{mp:ex2}, we show coordinate
+% \((\texttt{q})\), that corresponds to the process \(q\)).
+%
+% \subparagraph{Coordinate of states intervals (resp. checkpoints, resp. crashes).}
+% Similarly to processes, each state interval (resp. checkpoint, resp. crashes) creates a
+% coordinate, named after the name of the state interval (resp. checkpoint,
+% resp. crashes), is created. The coordinates refers to the place of the state
+% interval (resp. checkpoint, resp. crashes). For instance, in
+% Execution~\ref{mp:ex2}, we show the coordinates \((\texttt{si\_q\^{}1})\),
+% \((\texttt{c\_p\^{}1})\) and \((\texttt{k})\), that respectively correspond to the state interval
+% \(si_q^1\), the checkpoint \(c_p^1\) and the crash\footnote{The names of
+% crashes are not printed on the figure, although they are internally defined.} \(k\).
+%
+% \subparagraph{Coordinates of annotations.}
+% When an annotation is created, a coordinate is created at the same place, on
+% the process' timeline\footnote{Notice that, using the explicit variant of |annotate|
+% (|annotatexplicit|), the name of the annotation has to be explicitly given.}
+% For instance, in Execution~\ref{mp:ex1}, the annotation \(1+1=2\) is created
+% with the explicit name ``\texttt{note}''. We show the corresponding coordinate in
+% Execution~\ref{mp:ex2}.
+%
+%
+% \begin{messagepassing}[][Showing \TikZ coordinates][h][mp:ex2]
+% \newprocesswithlength{p}{9}
+% \newprocesswithlength{q}{9}
+% \newprocesswithlength{r}{5}
+% \crash{r}{5}{k}
+%
+% \checkpoint{p}{0}{c_p^0}
+% \checkpoint{q}{0}{c_q^0}
+% \checkpoint{r}{0}{c_r^0}
+% \checkpoint{p}{4}{c_p^1}
+%
+% \stateinterval{p}{0}{si_p^0}
+% \stateinterval{q}{0}{si_q^0}
+% \stateinterval{r}{0}{si_r^0}
+%
+% \sendwithstateinterval{p}{1}{q}{2}{si_q^1}
+% \sendwithstateinterval{r}{3}{q}{4}{si_q^2}
+% \sendwithstateintervalandname{q}{5}{p}{6}{si_p^1}{\(m\)}
+% \sendoutofband{q}{5}{r}{6}{\(m_\mathrm{copy}\)}
+% \stateinterval{r}{6}{si_r^0}
+% \restart{r}{6}{3}
+%
+% \annotate{r}{8}{restart}
+% \annotatexplicit{p}{8}{\(1+1=2\)}{note}
+%
+% \colouredbox{p}{q}{7}{9}{Protocol}
+% \drawtimeline{9}
+%
+%
+% \fill[fill=white, opacity=0.8] (-1, 0) rectangle (10, -5);
+%
+% \draw[dotted, gray] (-1,0) grid (10,-5);
+% \draw[->, thick, red] (0, 0) -- (1, 0) node [anchor=south, text=black] {\((1, 0)\)};
+% \draw[->, thick, red] (0, 0) -- (0, -1) node [anchor=east, text=black] {\((0, -1)\)};
+%
+% \draw[fill] (q) circle [radius=.5mm];
+% \node[anchor=east] at (q) {\((\texttt{q})\)};
+%
+% \draw[fill] (si_q^1) circle [radius=.5mm];
+% \node[anchor=east] at (si_q^1) {\((\texttt{si\_q\^{}1})\)};
+%
+% \draw[fill] (c_p^1) circle [radius=.5mm];
+% \node[anchor=east] at (c_p^1) {\((\texttt{c\_p\^{}1})\)};
+%
+% \draw[fill] (k) circle [radius=.5mm];
+% \node[anchor=east] at (k) {\((\texttt{k})\)};
+%
+% \draw[fill] (note) circle [radius=.5mm];
+% \node[anchor=east] at (note) {\((\texttt{note})\)};
+%
+% \end{messagepassing}
+
+% \StopEventually{}
+%
+% \section{Implementation}
+
+% \begin{macrocode}
+\newcounter{processnb}
+\setcounter{processnb}{0}
+\newcounter{maxtime}
+
+\pgfdeclarelayer{background}
+\pgfsetlayers{background,main}
+
+\newfloat{float_messagepassing}{t b h p}{.mp}
+\floatname{float_messagepassing}{Execution}
+
+\newif\ifmp@vertical\mp@verticalfalse
+\DeclareOption{vertical}{
+ \mp@verticaltrue
+}
+\newif\ifmp@annotatevertical\mp@annotateverticalfalse
+\DeclareOption{annotatevertical}{
+ \mp@annotateverticaltrue
+}
+\ProcessOptions\relax
+
+\ifmp@vertical
+ \newcommand{\mp@processnameanchor}{south}
+ \newcommand{\mp@timeticksanchor}{east}
+ \newcommand{\mp@messagelabelanchor}{south}
+ \newcommand{\mp@stateintervalanchor}{north west}
+ \newcommand{\mp@checkpointanchor}{east}
+ \newcommand{\mp@verticalrotation}{270}
+ \ifmp@annotatevertical
+ \newcommand{\mp@annotaterotation}{270}
+ \else
+ \newcommand{\mp@annotaterotation}{0}
+ \fi
+\else
+ \newcommand{\mp@processnameanchor}{east}
+ \newcommand{\mp@timeticksanchor}{north}
+ \newcommand{\mp@messagelabelanchor}{west}
+ \newcommand{\mp@stateintervalanchor}{south west}
+ \newcommand{\mp@checkpointanchor}{north}
+ \newcommand{\mp@verticalrotation}{0}
+ \newcommand{\mp@annotaterotation}{0}
+\fi
+
+\newcommand{\mp@oobcolor}{red}
+\newcommand{\oobcolor}[1]{
+ \renewcommand\mp@oobcolor{#1}
+}
+
+\newcommand{\mp@colouredboxcolor}{red}
+\newcommand{\colouredboxcolor}[1]{
+ \renewcommand\mp@colouredboxcolor{#1}
+}
+
+\newif\iftimeline
+% \end{macrocode}
+%
+
+%\begin{environment}{messagepassing}
+% \begin{macrocode}
+\ExplSyntaxOn
+%% 1st argument: tikz arguments
+%% 2nd argument: Float caption (turns in floating)
+%% 3rd argument: Float placement (`p` by default)
+%% 4th argument: Float label
+ \NewDocumentEnvironment{messagepassing} {o o o o}
+ {
+ \timelinefalse
+ \setcounter{processnb}{0}
+ \IfNoValueTF{#2} {
+ }{
+ \IfNoValueTF{#3}{
+ \begin{float_messagepassing}[p]
+ } {
+ \begin{float_messagepassing}[#3]
+ }
+ \begin{center}
+ }
+ \IfNoValueTF{#1}{
+ \begin{tikzpicture}[rotate=\mp@verticalrotation]
+ } {
+ \begin{tikzpicture}[rotate=\mp@verticalrotation, #1]
+ }
+ }{
+ %% Draw timeline if boolean is true
+ \iftimeline
+ \begin{pgfonlayer}{background}
+ \setcounter{maxtime}{\@maxtime}
+ \addtocounter{maxtime}{-1}
+ \coordinate (maxtime) at (\@maxtime, 0);
+
+ \addtocounter{processnb}{1}
+ \coordinate (timeline) at (0, -\value{processnb});
+ \draw (timeline) node [anchor=\mp@processnameanchor] {{\it time}};
+ \draw[->] (timeline) -- ($(timeline) + (maxtime)$);
+ \foreach \i in {0,...,\value{maxtime}} {
+ \draw ($(timeline) + (\i, 0) + (0, 0.1)$) -- ($(timeline) + (\i, 0) + (0, -0.1)$) node [anchor=\mp@timeticksanchor] {$\i$};
+ }
+ \end{pgfonlayer}
+ \else
+ \fi
+ \end{tikzpicture}
+ \IfNoValueTF{#2} {
+ \linebreak
+ } {
+ \end{center}
+ \caption{#2}
+ \IfNoValueTF{#4} {
+ }{
+ \label{#4}
+ }
+ \end{float_messagepassing}
+ }
+ }
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macrocode}
+%% #1: name
+\newcommand{\newprocess}[1]{
+ \addtocounter{processnb}{1}
+ \coordinate (#1) at (0, -\value{processnb});
+ \draw (#1) node[anchor=\mp@processnameanchor] {$#1$};
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: name
+%% #2: width
+\newcommand{\newprocesswithlength}[2]{
+ \newprocess{#1}
+ \processlength{#1}{#2}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: name
+%% #2: state interval name
+\newcommand{\newprocesswithstateinterval}[2]{
+ \newprocess{#1}
+ \stateinterval{#1}{0}{#2}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: name
+%% #2: width
+%% #3: crash name
+\newcommand{\newprocesswithcrash}[3]{
+ \newprocess{#1}{#2}
+ \crash{#1}{#2}{#3}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: sender's name
+%% #2: send date
+%% #3: receiver's name
+%% #4: receive date
+\newcommand{\send}[4]{
+ \draw[->] (#1) +(#2, 0) -- ($ (#3) +(#4, 0) $);
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: sender's name
+%% #2: send date
+%% #3: receiver's name
+%% #4: receive date
+%% #5: message name
+\newcommand{\sendwithname}[5]{
+ \draw[->] (#1) +(#2, 0) -- ($ (#3) +(#4, 0) $) node[anchor=\mp@messagelabelanchor, pos=0.3] {#5};
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: process name
+%% #2: process width
+\newcommand{\processlength}[2]{
+ \draw (#1) -- +(#2, 0);
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: sender's name
+%% #2: send date
+%% #3: receiver's name
+%% #4: receive date
+%% #5: state interval name
+\newcommand{\sendwithstateinterval}[5] {
+ \send{#1}{#2}{#3}{#4}
+ \stateinterval{#3}{#4}{#5}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: sender's name
+%% #2: send date
+%% #3: receiver's name
+%% #4: receive date
+%% #5: state interval name
+%% #6: message name
+\newcommand{\sendwithstateintervalandname}[6] {
+ \sendwithname{#1}{#2}{#3}{#4}{#6}
+ \stateinterval{#3}{#4}{#5}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: sender's name
+%% #2: send date
+%% #3: receiver's name
+%% #4: receive date
+%% #5: OoB message name
+\newcommand{\sendoutofband}[5]{
+ \draw[->, color=\mp@oobcolor] (#1) +(#2, 0) -- ($ (#3) +(#4, 0) $) node[anchor=\mp@messagelabelanchor, pos=0.3] {#5};
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: process's name
+%% #2: state interval date
+%% #3: state interval name
+\newcommand{\stateinterval}[3] {
+ \stateintervalspecial{#1}{#2}{#3}{#3}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: process's name
+%% #2: state interval date
+%% #3: coordinate name
+%% #4: state interval label
+\newcommand{\stateintervalspecial}[4] {
+ \coordinate (#3) at ($ (#1) +(#2, 0) $);
+ \draw (#3) + (0, 0.1) -- +(0, -0.1) node[anchor=\mp@stateintervalanchor] {$#4$};
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: process's name
+%% #2: checkpoint date
+%% #3: checkpoint name
+\newcommand{\checkpoint}[3]{
+ \coordinate (#3) at ($ (#1) + (#2, 0) $);
+ \fill (#3) + (-0.05, 0.1) rectangle +(0.05, -0.1);
+ \draw (#3) + (0, -0.1) node[anchor=\mp@checkpointanchor] {$#3$};
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: process's name
+%% #2: checkpoint date
+%% #3: checkpoint coordinate name
+%% #4: checkpoint label
+\newcommand{\checkpointspecial}[4]{
+ \coordinate (#3) at ($ (#1) + (#2, 0) $);
+ \fill (#3) + (-0.05, 0.1) rectangle +(0.05, -0.1);
+ \draw (#3) + (0, -0.1) node[anchor=\mp@checkpointanchor] {#4};
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: process's name
+%% #2: crash date
+%% #3: crash name
+\newcommand{\crash}[3]{
+ \coordinate (#3) at ($ (#1) + (#2, 0) $);
+ \draw (#3) + (-0.1, -0.1) -- +(0.1, 0.1);
+ \draw (#3) + (0.1, -0.1) -- +(-0.1, 0.1);
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: process's name
+%% #2: restart date
+%% #3: restart length
+\newcommand{\restart}[3]{
+ \draw (#1) + (#2, 0) -- ($ (#1) + (#2, 0) + (#3, 0) $);
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: first process's name
+%% #2: second process's name
+%% #3: begining of the grey box
+%% #4: end of the grey box
+%% #5: caption
+\newcommand{\colouredbox}[5]{
+ \begin{pgfonlayer}{background}
+ \fill[color=\mp@colouredboxcolor!20] ($(#1) + (#3, 0)$) rectangle ($(#2) + (#4, 0)$) node[midway, color = \mp@colouredboxcolor, rotate=\mp@annotaterotation]{#5};
+ \end{pgfonlayer}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: Timeline length
+\newcommand{\drawtimeline}[1]{
+ \timelinetrue
+ \def\@maxtime{#1}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% #1: process's name
+%% #2: annotation date
+%% #3: annotation
+\newcommand{\annotate}[3]{
+ \annotatexplicit{#1}{#2}{#3}{#3}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%% Same than annotate, but with the coordinate name provided explicitly
+%% #1: process's name
+%% #2: annotation date
+%% #3: annotation
+%% #4: coordinate name
+\newcommand{\annotatexplicit}[4]{
+ \coordinate (#4) at ($ (#1) +(#2, 0.1) $);
+ \draw (#4) node[rotate=\mp@annotaterotation, anchor=south] {#3};
+}
+% \end{macrocode}
diff --git a/macros/latex/contrib/messagepassing/messagepassing.ins b/macros/latex/contrib/messagepassing/messagepassing.ins
new file mode 100644
index 0000000000..750bc28697
--- /dev/null
+++ b/macros/latex/contrib/messagepassing/messagepassing.ins
@@ -0,0 +1,49 @@
+%%
+%% Copyright (C) 2021 by Martin Vassor
+%%
+
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+
+\input docstrip.tex
+\keepsilent
+\usedir{tex/latex/messagepassing}
+\preamble
+This is a generated file.
+Copyright (C) 2022 by Martin Vassor
+
+This file may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in:
+
+ http://www.latex-project.org/lppl.txt
+
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+\endpreamble
+
+\generate{\file{messagepassing.sty}{\from{messagepassing.dtx}{package}}}
+
+\Msg{*********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* following file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space messagepassing.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file grammar.dtx}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*********************************************************}
+\endbatchfile
diff --git a/macros/latex/contrib/messagepassing/messagepassing.pdf b/macros/latex/contrib/messagepassing/messagepassing.pdf
new file mode 100644
index 0000000000..410b4d22ca
--- /dev/null
+++ b/macros/latex/contrib/messagepassing/messagepassing.pdf
Binary files differ
diff --git a/macros/latex/contrib/mhequ/README b/macros/latex/contrib/mhequ/README
index 66890d3eef..ab177e8714 100644
--- a/macros/latex/contrib/mhequ/README
+++ b/macros/latex/contrib/mhequ/README
@@ -1,5 +1,5 @@
mhequ package by Martin Hairer
-Version 1.7 dated 25/08/2015
+Version 1.71 dated 9 March 2022
This package provides an easy way to typeset multilign / multicolumn
equations and to add subequation numbering. See the example and the
diff --git a/macros/latex/contrib/mhequ/example.pdf b/macros/latex/contrib/mhequ/example.pdf
index d6813c2b83..34bdd22f0e 100644
--- a/macros/latex/contrib/mhequ/example.pdf
+++ b/macros/latex/contrib/mhequ/example.pdf
Binary files differ
diff --git a/macros/latex/contrib/mhequ/example.tex b/macros/latex/contrib/mhequ/example.tex
index c0eca63f65..e839a9d89a 100644
--- a/macros/latex/contrib/mhequ/example.tex
+++ b/macros/latex/contrib/mhequ/example.tex
@@ -1,4 +1,5 @@
\documentclass{article}
+\usepackage{amsmath}
\usepackage{mhequ}
\def\eref#1{(\ref{#1})}
@@ -11,25 +12,45 @@
\begin{document}
-\title{Using the mhequ package}
+\title{Using the \texttt{mhequ} package}
\author{Martin Hairer}
-\date{Version 1.7, \today}
+\date{Version 1.71, \today}
\maketitle
\thispagestyle{empty}
-\label{mySec}
+
+This package provides two environments: \texttt{equ} for single-line equations
+and \texttt{equs} for multi-line equations. They behave similarly to the built-in
+\texttt{equation} and \texttt{amsmath}'s \texttt{align} environments and can essentially
+be used as drop-in replacements. The main difference is that equation numbers are
+handled differently: equations are numbered if and only if they have a \verb|\label|,
+so there is no need for starred versions. This also applies to individual lines in
+a multiline equation. Also, the \texttt{equs} environment supports blocks of equation
+with more
+
+Since \texttt{mhequ} redefines the \verb|\tag| and \verb|\intertext| commands, it should
+always be loaded \textit{after} the \texttt{amsmath} package. However, these
+two commands should still behave correctly inside the \texttt{amsmath} environments.
+The rest of this document demonstrates the usage of the \texttt{mhequ} package,
+it is easiest to just read the source code of this document to see how it works.
+See also the description given at the start of the file \texttt{mhequ.sty}.
+
Here is a simple labelled equation:
\begin{equ}[onelab]
- \sum_{i=1}^5 X_i^j X^j_i = y^j \;.
+ e^{i\pi} + 1 = 0 \;.
\end{equ}
Removing or adding the label does not require a change of environment:
\begin{equ}
- \sum_{i=1}^5 X_i^j X^j_i = y^j \;.
+ e^{i\pi} + 1 = 0 \;.
\end{equ}
However, if the option \texttt{numberall} is set, then every single
equation is numbered.
A simple list of equations can be displayed either with one number
per equation
+\begin{align}
+ f(x) &= \sin(x) + 1\;, \label{e:equ1}\\
+ h(x) &= f(x) + g(x) -3\;, \label{e:equ3}
+\end{align}
\begin{equs}
f(x) &= \sin(x) + 1\;, \label{e:equ1}\\
h(x) &= f(x) + g(x) -3\;, \label{e:equ3}
@@ -37,14 +58,15 @@ per equation
or with one number for the whole list
\begin{equs}[e:block]
f(x) &= \sin(x) + 1\;, \\
- h(x) &= f(x) + g(x) -3\;,
+ h(x) &= f(x) + g(x) -3\;.
\end{equs}
-using only a very small modification in the syntax. Of course, it can also have no number at all:
+Of course, it can also have no number at all:
\begin{equs}
f(x) &= \sin(x) + 1\;, \\
h(x) &= f(x) + g(x) -3\;.
\end{equs}
-Let us make a first group:
+The command \verb|\minilab{label_name}| allows us to create a counter for the lines
+in a block of equations.
\minilab{otherlabel}
\begin{equs}
f(x) &= \sin(x) + 1\;, \label{e:f}\\
@@ -53,11 +75,12 @@ Let us make a first group:
\end{equs}
One can refer to the whole block \eref{otherlabel} or to one
line, like \eref{e:f} for example.
-It is possible to use any tag one likes with the \texttt{\string\tag}
+It is possible to use any tag one likes with the \verb|\tag{displayed_tag}|
command
\begin{equ}[mylabel]
- x = y\;. \tag{$\star$}
+ x = y\;, \tag{$\star$}
\end{equ}
+which in this case was used as \verb|\tag{$\star$}|.
Such an equation can be referred to as usual: \eref{mylabel}.
Of course, \texttt{mhequ} can be used in conjunction with the usual \texttt{equation} environment,
but \texttt{mhequ} is great, so why would you want to do this?
@@ -75,7 +98,8 @@ with awkward names:
\intertext{and also (this is some \texttt{\string\intertext})}
x&=y+z &\qquad a&= (b+c)^2 - 5 &\qquad \ell&= m\label{labb}
\end{equs}
-We can even extend the block \eref{otherlabel} much later like
+We can even extend the block \eref{otherlabel} much later
+using the \verb|\minilab{label_name}| command:
\minilab{otherlabel}
\begin{equs}
x&=y+z &\quad x&=y+z &\quad f(x)&= b\label{e:x1}\\
@@ -83,7 +107,7 @@ We can even extend the block \eref{otherlabel} much later like
\multicol{6}{\sin^2 x + \cos^2 x = 1} \label{e:x3}
\end{equs}
It is possible to change the type of subnumbering and to use the
-\texttt{\string\text} command without having to load \texttt{amstext}, like so
+\texttt{\string\text} command without having to load \texttt{amstext}:
\setlabtype{Alph}
\minilab{alab}
\begin{equs}
diff --git a/macros/latex/contrib/mhequ/mhequ.sty b/macros/latex/contrib/mhequ/mhequ.sty
index f1708e4bfc..48f7fd0bfc 100644
--- a/macros/latex/contrib/mhequ/mhequ.sty
+++ b/macros/latex/contrib/mhequ/mhequ.sty
@@ -1,6 +1,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% mhequ.sty v1.7, Copyright 2015 by Martin Hairer
+% mhequ.sty v1.71, Copyright 2022 by Martin Hairer
% This package is public domain. You are strongly encouraged to use
% it and to distribute it further. If you have some contribution to
% it, please let me know!
@@ -160,7 +160,7 @@
\else\refstepcounter{equation}\fi\fi}
\def\@MHputnumber{\if@MHhaslab\@MHstep\if@MHleft\@MHwritelabel\fi%
- \hbox{\rm(\@MHeqno)}%
+ \hbox{\textrm(\@MHeqno)}%
\if@MHleft\else\@MHwritelabel\fi%
\fi\@MHresetlab}
diff --git a/macros/latex/contrib/projlib/ProjLib.ins b/macros/latex/contrib/projlib/ProjLib.ins
deleted file mode 100644
index 014bdd8680..0000000000
--- a/macros/latex/contrib/projlib/ProjLib.ins
+++ /dev/null
@@ -1,72 +0,0 @@
-%%
-%% Copyright (C) 2021 by Jinwen XU
-%%
-%% This file may be distributed and/or modified under the conditions of
-%% the LaTeX Project Public License, either version 1.3c of this license
-%% or (at your option) any later version. The latest version of this
-%% license is in:
-%%
-%% http://www.latex-project.org/lppl.txt
-%%
-
-\input docstrip.tex
-\keepsilent
-\askforoverwritefalse
-
-\begingroup
-\catcode`\^^M=\active%
-\obeyspaces%
-\gdef\copyright{%
-\ds@heading% This is file... generated with the docstrip utility.
-
-Copyright (C) 2021 by Jinwen XU
-
-This is part of the ProjLib Toolkit.
-}%
-\gdef\lppllicense{%
-
-This work may be distributed and/or modified under the conditions of the
-LaTeX Project Public License, either version 1.3c of this license or (at
-your option) any later version. The latest version of this license is in
-
- http://www.latex-project.org/lppl.txt
-
-and version 1.3c or later is part of all distributions of LaTeX version
-2005/12/01 or later.
-}%
-\endgroup
-
-\def\mypreamble{\copyright\lppllicense}
-\usepreamble\mypreamble
-
-\generate{\file{ProjLib.sty}{\from{ProjLib.dtx}{ProjLib}}}
-\generate{\file{PJLauthor.sty}{\from{ProjLib.dtx}{PJLauthor}}}
-\generate{\file{PJLdate.sty}{\from{ProjLib.dtx}{PJLdate}}}
-\generate{\file{PJLdraft.sty}{\from{ProjLib.dtx}{PJLdraft}}}
-\generate{\file{PJLlang.sty}{\from{ProjLib.dtx}{PJLlang}}}
-\generate{\file{PJLlogo.sty}{\from{ProjLib.dtx}{PJLlogo}}}
-\generate{\file{PJLmath.sty}{\from{ProjLib.dtx}{PJLmath}}}
-\generate{\file{PJLpaper.sty}{\from{ProjLib.dtx}{PJLpaper}}}
-\generate{\file{PJLthm.sty}{\from{ProjLib.dtx}{PJLthm}}}
-
-\obeyspaces
-\Msg{*************************************************************}
-\Msg{* *}
-\Msg{* To finish the installation you have to move the following *}
-\Msg{* files into a directory searched by TeX: *}
-\Msg{* *}
-\Msg{* ProjLib.sty *}
-\Msg{* PJLauthor.sty *}
-\Msg{* PJLdate.sty *}
-\Msg{* PJLdraft.sty *}
-\Msg{* PJLlang.sty *}
-\Msg{* PJLlogo.sty *}
-\Msg{* PJLmath.sty *}
-\Msg{* PJLpaper.sty *}
-\Msg{* PJLthm.sty *}
-\Msg{* *}
-\Msg{* Happy TeXing! *}
-\Msg{* *}
-\Msg{*************************************************************}
-
-\endbatchfile
diff --git a/macros/latex/contrib/projlib/ProjLib.sty b/macros/latex/contrib/projlib/ProjLib.sty
new file mode 100644
index 0000000000..0e0cdd3666
--- /dev/null
+++ b/macros/latex/contrib/projlib/ProjLib.sty
@@ -0,0 +1,38 @@
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {ProjLib}
+ {2022/03/09} {}
+ {Collective interface of the ProjLib toolkit}
+
+\keys_define:nn { ProjLib }
+ {
+ , unknown .code:n = {
+ \PassOptionsToPackage { \CurrentOption } { projlib-language }
+ \PassOptionsToPackage { \CurrentOption } { projlib-author }
+ \PassOptionsToPackage { \CurrentOption } { projlib-datetime }
+ \PassOptionsToPackage { \CurrentOption } { projlib-draft }
+ \PassOptionsToPackage { \CurrentOption } { projlib-font }
+ \PassOptionsToPackage { \CurrentOption } { projlib-logo }
+ \PassOptionsToPackage { \CurrentOption } { projlib-math }
+ \PassOptionsToPackage { \CurrentOption } { projlib-paper }
+ \PassOptionsToPackage { \CurrentOption } { projlib-theorem }
+ }
+ }
+\ProcessKeysOptions { ProjLib }
+
+\RequirePackage { projlib-language }
+
+\RequirePackage { projlib-author }
+\RequirePackage { projlib-datetime }
+\RequirePackage { projlib-draft }
+\RequirePackage { projlib-font }
+\RequirePackage { projlib-logo }
+\RequirePackage { projlib-math }
+\RequirePackage { projlib-paper }
+
+\RequirePackage { projlib-theorem }
+
+\endinput
+%%
+%% End of file `ProjLib.sty'.
diff --git a/macros/latex/contrib/projlib/README.md b/macros/latex/contrib/projlib/README.md
index 91c7d4dcfe..3b5a6fbcf8 100644
--- a/macros/latex/contrib/projlib/README.md
+++ b/macros/latex/contrib/projlib/README.md
@@ -2,15 +2,17 @@
# ProjLib Toolkit
-The bundle is dated 2022/02/27
+The bundle is dated 2022/03/09
Old modules are still dated 2021/12/16 and will *not* be modified. When all the new modules are finished, old files shall be removed from this bundle.
## **Important note**
-The whole project is being rewritten with `expl3`. New modules have the name with prefix "projlib-", and they are in many ways better and more powerful than their predecessors. Some basically finished new modules are included in the bundle but are not yet documented. Most importantly, they are not compatible with the old modules, so they cannot appear at the same time in the same document, which, unfortunately, means that (for now) they cannot be used in classes like `einfart` or `lebhart`, etc.
+The whole project is being rewritten with `expl3`. The new modules are basically finished but are not yet documented. They have the names with prefix "projlib-", and they are in many ways better and more powerful than their predecessors. Most importantly, they are not compatible with the old modules, so they cannot appear at the same time in the same document, which, unfortunately, means that (for now) they cannot be used in classes like `einfart` or `lebhart`, etc.
-The newly added modules include:
+The current `ProjLib.sty` is the new `expl3` version, the old one has been renamed to `PJLtoolkit.sty`.
+
+The new modules are:
- projlib-author
- projlib-datetime
- projlib-draft
@@ -19,9 +21,12 @@ The newly added modules include:
- projlib-logo
- projlib-math
- projlib-paper
+- projlib-theorem
When all these modules are finished, the documentation will be updated accordingly.
+Below are the old README.
+
---
> **ProjLib** can be interpreted as "***Proj**ect **Lib**rary*" (in English), or as "***Proj**et **Lib**re*" (in French).
diff --git a/macros/latex/contrib/projlib/old-modules/PJLauthor.sty b/macros/latex/contrib/projlib/old-modules/PJLauthor.sty
new file mode 100644
index 0000000000..67e1dbd76b
--- /dev/null
+++ b/macros/latex/contrib/projlib/old-modules/PJLauthor.sty
@@ -0,0 +1,245 @@
+%%
+%% This is file `PJLauthor.sty',
+%% generated with the docstrip utility.
+
+%% Copyright (C) 2021 by Jinwen XU
+%%
+%% This is part of the ProjLib Toolkit.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c of this license or (at
+%% your option) any later version. The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\ProvidesPackage{PJLauthor}
+ [2021/12/16 Enhanced author information block]
+\RequirePackage{kvoptions}
+\RequirePackage{etoolbox}
+\SetupKeyvalOptions{
+ family = @PJLauthor,
+ prefix = @PJLauthor@,
+}
+\DeclareBoolOption[false]{amsfashion}
+\ProcessKeyvalOptions*\relax
+
+\ifdefined\subjclass\endinput\fi
+
+%%================================
+%% Font and style
+%%================================
+\def\PJLauthor@font@author{\normalsize\normalfont\scshape}
+\def\PJLauthor@font@address{\small\normalfont\itshape}
+\def\PJLauthor@font@curraddr{\small\normalfont\itshape}
+\def\PJLauthor@font@email{\small\normalfont\ttfamily}
+
+%%================================
+%% Lengths
+%%================================
+\newlength{\PJLauthor@length@innersep}
+\setlength{\PJLauthor@length@innersep}{.3\baselineskip}
+\newlength{\PJLauthor@length@sep}
+\setlength{\PJLauthor@length@sep}{.5\baselineskip}
+\newlength{\PJLauthor@length@aftersep}
+\setlength{\PJLauthor@length@aftersep}{.3\baselineskip}
+
+%%================================
+%% The macros
+%%================================
+\newif\if@PJLauthor@affilon
+\renewcommand*{\author}[1]{%
+ \gappto\@author{\phantom{A}\\[-\baselineskip]%
+ \vspace{\PJLauthor@length@sep}%
+ \PJLauthor@font@author{#1}\\\phantom{}
+ \@PJLauthor@affilonfalse}}
+\providecommand*{\address}[1]{%
+ \gappto\@author{\phantom{A}\\[-\baselineskip]%
+ \if@PJLauthor@affilon\else%
+ \vspace{\PJLauthor@length@innersep}%
+ \fi%
+ \@PJLauthor@affilontrue%
+ \PJLauthor@font@address{#1}\\\phantom{}}%
+}
+\providecommand*{\curraddr}[1]{%
+ \gappto\@author{\phantom{A}\\[-\baselineskip]%
+ \if@PJLauthor@affilon\else%
+ \vspace{\PJLauthor@length@innersep}%
+ \fi%
+ \@PJLauthor@affilontrue%
+ \PJLauthor@font@curraddr{#1}\\\phantom{}}%
+}
+\providecommand*{\email}[1]{%
+ \gappto\@author{\phantom{A}\\[-\baselineskip]%
+ \if@PJLauthor@affilon\else%
+ \vspace{\PJLauthor@length@innersep}%
+ \fi%
+ \@PJLauthor@affilontrue%
+ \PJLauthor@font@email{#1}\\\phantom{}}%
+}
+
+%%================================
+%% Adjustment
+%%================================
+\patchcmd{\@maketitle}{\begin{tabular}[t]{c}}{}{}{}
+\patchcmd{\@maketitle}{\end{tabular}}{}{}{}
+\def\@author{}
+\pretocmd{\@maketitle}{%
+ \pretocmd{\@author}{\vspace{-\PJLauthor@length@sep}}{}{\FAIL}%
+ \apptocmd{\@author}{%
+ \vspace{-\baselineskip}%
+ \if@PJLauthor@affilon%
+ \vspace{\PJLauthor@length@aftersep}%
+ \fi%
+ }{}{\FAIL}%
+}{}{\FAIL}
+
+\ifbool{@PJLauthor@amsfashion}{
+
+\RequirePackage{PJLlang}
+\RequirePackage{calc}
+
+\providecommand{\conditionalbfseries}{\bfseries}
+
+\def\keywordsnameEN{\textsc{Key words and phrases}}
+\def\keywordsnameFR{\textsc{Mots et phrases clés}}
+\def\keywordsnameDE{\textsc{Schlüsselwörter und Phrasen}}
+\def\keywordsnameIT{\textsc{Parole e frasi chiave}}
+\def\keywordsnamePT{\textsc{Palavras e frases chave}}
+\def\keywordsnameBR{\textsc{Palavras e frases chave}}
+\def\keywordsnameES{\textsc{Palabras y frases clave}}
+\def\keywordsnameCN{关键词}
+\def\keywordsnameTC{關鍵詞}
+\def\keywordsnameJP{キーワード}
+\def\keywordsnameRU{Ключевые слова и фразы}
+
+\def\PJL@keywords{}
+\providecommand*{\keywords}[1]{\def\PJL@keywords{#1}}
+
+\def\PJL@dedicatory{}
+\providecommand*{\dedicatory}[1]{\def\PJL@dedicatory{#1}}
+
+\AtEndPreamble{
+\let\footnotemark@PJLoriginal\footnotemark%
+\let\footnotemark\relax%
+\let\thanks@PJLoriginal\thanks%
+\newlength\PJL@starlength
+\setlength{\PJL@starlength}{\widthof{*}}
+\newcommand*{\PJL@prethanks}[1]{\thanks@PJLoriginal{\hspace*{-\PJL@starlength}#1}}
+\renewcommand*{\thanks}[1]{%
+ \ifx#1\@empty\else%
+ \apptocmd{\@title}{%
+ \thanks@PJLoriginal{\hspace*{-\PJL@starlength}#1}%
+ }{}{\FAIL}%
+ \fi}
+\let\author@PJLoriginal\author
+\renewcommand{\author}[1]{%
+ \author@PJLoriginal{%
+ \let\footnotemark\footnotemark@PJLoriginal%
+ \let\thanks\thanks@PJLoriginal%
+ #1%
+ \let\footnotemark\relax%
+ }%
+}
+}
+
+\let\abstract@PJLoriginal\abstract%
+\let\endabstract@PJLoriginal\endabstract%
+\newif\if@PJLauthor@maketitle\@PJLauthor@maketitlefalse
+\newif\if@PJLauthor@absbefore\@PJLauthor@absbeforefalse
+\RequirePackage{fancyvrb}
+\providecommand*\protected@iwrite[3]{%
+ \begingroup
+ \let\thepage\relax
+ #2%
+ \let\protect\@unexpandable@protect
+ \edef\reserved@a{\immediate\write#1{#3}}\reserved@a
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+}
+\patchcmd{\FVB@VerbatimOut}
+ {\immediate\write\FV@OutFile}
+ {\protected@iwrite\FV@OutFile{}}
+ {}{}
+\renewenvironment{abstract}{%
+ \VerbatimOut{\jobname.pjlabs}%
+}{
+ \endVerbatimOut%
+ \if@PJLauthor@maketitle%
+ \begin{abstract@PJLoriginal}%
+ \input{\jobname.pjlabs}%
+ \end{abstract@PJLoriginal}%
+ % \ifx\PJL@keywords\@empty\else%
+ % \par\smallskip\noindent{\conditionalbfseries\csname keywordsname\csname\languagename ABBR\endcsname\endcsname.}~\PJL@keywords%
+ % \fi%
+ \else%
+ \global\@PJLauthor@absbeforetrue%
+ \fi%
+}
+
+\AtEndPreamble{%
+\patchcmd{\@maketitle}{\@date}{%
+ \ifx\@date\@empty\vspace{-2\baselineskip}%
+ \else\@date\fi%
+ \ifx\PJL@dedicatory\@empty\else%
+ \ifx\@date\@empty\vspace{2\baselineskip}\fi%
+ \par\vspace{-\parskip}\bigskip%
+ {\itshape\PJL@dedicatory}%
+ \ifx\@date\@empty%
+ \vspace{-1.7\baselineskip}%
+ \vspace{-\parskip}%
+ \fi%
+ \fi%
+}{}{\FAIL}
+\pretocmd{\maketitle}{%
+ \ifx\PJL@keywords\@empty\else%
+ \PJL@prethanks{{\protect\conditionalbfseries%
+ \csname keywordsname\csname\languagename ABBR\endcsname\endcsname.}%
+ ~\PJL@keywords}%
+ \fi}{}{\FAIL}
+\apptocmd{\maketitle}{%
+ \if@PJLauthor@absbefore%
+ \begin{abstract@PJLoriginal}%
+ \input{\jobname.pjlabs}%
+ % \ifx\PJL@keywords\@empty\else%
+ % \par\smallskip\noindent{\conditionalbfseries\csname keywordsname\csname\languagename ABBR\endcsname\endcsname.}~\PJL@keywords%
+ % \fi%
+ \end{abstract@PJLoriginal}%
+ \fi%
+ \global\let\address\relax
+ \global\let\curraddr\relax
+ \global\let\email\relax
+ \global\let\dedicatory\relax
+ \global\let\keywords\relax
+ \global\@PJLauthor@maketitletrue
+}{}{\FAIL}
+}
+
+\newcommand*\subjclass[2][2020]{%
+ \def\@subjclass{#2}%
+ \@ifundefined{subjclassname@#1}{%
+ \ClassWarning{\@currname}{Unknown edition (#1) of Mathematics
+ Subject Classification; using '2020'}%
+ \expandafter\let\expandafter\subjclassname\csname subjclassname@2020\endcsname
+ }{%
+ \expandafter\let\expandafter\subjclassname\csname subjclassname@#1\endcsname
+ }%
+ \PJL@prethanks{{\itshape\subjclassname.}\enspace\@subjclass{}.}
+}
+\@namedef{subjclassname@1991}{%
+ \textup{1991} Mathematics Subject Classification}
+\@namedef{subjclassname@2000}{%
+ \textup{2000} Mathematics Subject Classification}
+\@namedef{subjclassname@2010}{%
+ \textup{2010} Mathematics Subject Classification}
+\@namedef{subjclassname@2020}{%
+ \textup{2020} Mathematics Subject Classification}
+
+}
+
+\endinput
+%%
+%% End of file `PJLauthor.sty'.
diff --git a/macros/latex/contrib/projlib/old-modules/PJLdate.sty b/macros/latex/contrib/projlib/old-modules/PJLdate.sty
new file mode 100644
index 0000000000..783f164e7a
--- /dev/null
+++ b/macros/latex/contrib/projlib/old-modules/PJLdate.sty
@@ -0,0 +1,74 @@
+%%
+%% This is file `PJLdate.sty',
+%% generated with the docstrip utility.
+
+%% Copyright (C) 2021 by Jinwen XU
+%%
+%% This is part of the ProjLib Toolkit.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c of this license or (at
+%% your option) any later version. The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\ProvidesPackage{PJLdate}
+ [2021/12/16 Convert yyyy-mm-dd to normal datetime format]
+\RequirePackage{kvoptions}
+\RequirePackage{etoolbox}
+\SetupKeyvalOptions{
+ family = @PJLdate,
+ prefix = @PJLdate@,
+}
+\DeclareBoolOption[false]{draft}
+\DeclareBoolOption[false]{fast}
+\ProcessKeyvalOptions*\relax
+\if@PJLdate@draft
+ \@PJLdate@fasttrue
+\fi
+\DeclareDocumentCommand{\TheDate}{}{\PJLdate}
+\DeclareDocumentCommand{\PLdate}{}{\PJLdate}
+\if@PJLdate@fast\let\PJLdate\relax\endinput\fi
+
+\RequirePackage{PJLlang}
+
+\robustify\@latex@warning@no@line
+
+\RequirePackage{silence}
+\WarningFilter*{datetime2}{Date-Time Language Module}
+\PassOptionsToPackage{fr-FR,en-US}{datetime2}
+\RequirePackage{datetime2}
+\RequirePackage{zhnumber}
+
+\let\@DTMdate@PJLoriginal\@DTMdate
+\gappto{\PJLlang@langconfig@common}{%
+ \let\@DTMdate\@DTMdate@PJLoriginal%
+}
+\gappto{\PJLlang@langconfig@CN}{%
+ \renewcommand*{\@DTMdate}[1]{%
+ \expandafter\@dtm@parsedate#1\@dtm@endparsedate%
+ \zhdate{\@dtm@year/\@dtm@month/\@dtm@day}%
+ }%
+}
+\gappto{\PJLlang@langconfig@TC}{%
+ \renewcommand*{\@DTMdate}[1]{%
+ \expandafter\@dtm@parsedate#1\@dtm@endparsedate%
+ \zhdate{\@dtm@year/\@dtm@month/\@dtm@day}%
+ }%
+}
+\gappto{\PJLlang@langconfig@JP}{%
+ \renewcommand*{\@DTMdate}[1]{%
+ \expandafter\@dtm@parsedate#1\@dtm@endparsedate%
+ \zhdate{\@dtm@year/\@dtm@month/\@dtm@day}%
+ }%
+}
+
+\providecommand*{\PJLdate}[1]{\DTMdate{#1}}
+
+\endinput
+%%
+%% End of file `PJLdate.sty'.
diff --git a/macros/latex/contrib/projlib/old-modules/PJLdraft.sty b/macros/latex/contrib/projlib/old-modules/PJLdraft.sty
new file mode 100644
index 0000000000..8657326842
--- /dev/null
+++ b/macros/latex/contrib/projlib/old-modules/PJLdraft.sty
@@ -0,0 +1,104 @@
+%%
+%% This is file `PJLdraft.sty',
+%% generated with the docstrip utility.
+
+%% Copyright (C) 2021 by Jinwen XU
+%%
+%% This is part of the ProjLib Toolkit.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c of this license or (at
+%% your option) any later version. The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\ProvidesPackage{PJLdraft}
+ [2021/12/16 Some useful macros for the draft stage]
+\RequirePackage{kvoptions}
+\RequirePackage{etoolbox}
+\SetupKeyvalOptions{
+ family = @PJLdraft,
+ prefix = @PJLdraft@,
+}
+\DeclareBoolOption[false]{draft}
+\DeclareBoolOption[false]{fast}
+\ProcessKeyvalOptions*\relax
+\if@PJLdraft@draft
+ \@PJLdraft@fasttrue
+\fi
+
+\RequirePackage{PJLlang}
+\RequirePackage{xcolor}
+
+\def\dnfFont{\ttfamily}
+\def\needgraphFont{\ttfamily}
+
+\def\dnfTextEN{To be finished}
+\def\needgraphTextEN{A graph is needed here}
+\def\dnfTextFR{Pas encore fini}
+\def\needgraphTextFR{Il manque une image ici}
+\def\dnfTextDE{Nicht beendet}
+\def\needgraphTextDE{Benötigen Sie ein Bild}
+\def\dnfTextIT{Per essere finito}
+\def\needgraphTextIT{Manca un'immagine qui}
+\def\dnfTextPT{Não terminou}
+\def\needgraphTextPT{Precisa de uma foto aqui}
+\def\dnfTextBR{Não terminou}
+\def\needgraphTextBR{Precisa de uma foto aqui}
+\def\dnfTextES{Estar terminado}
+\def\needgraphTextES{Falta una imagen aquí}
+\def\dnfTextCN{这里尚未完成}
+\def\needgraphTextCN{这里需要一张图片}
+\def\dnfTextTC{這裡尚未完成}
+\def\needgraphTextTC{這裡需要一張圖片}
+\def\dnfTextJP{終わってない}
+\def\needgraphTextJP{まだ画像が必要です}
+\def\dnfTextRU{Не закончен}
+\def\needgraphTextRU{Еще нужна картинка}
+
+\definecolor{dnfColor}{RGB}{21,122,20}
+\definecolor{needgraphColor}{RGB}{70,130,180}
+
+\if@PJLdraft@fast
+ \newcommand{\plainBox}[2][-paper]{\textcolor{#1}{%
+ \setlength{\fboxsep}{1.5pt}%
+ \setlength{\fboxrule}{1.2pt}%
+ \fbox{#2}}}
+\else
+ \PassOptionsToPackage{many}{tcolorbox}
+ \RequirePackage{tcolorbox}
+ \newtcbox{\plainBox}[1][-paper]{enhanced jigsaw,%
+ on line, arc = 1.2pt, outer arc = 1pt,breakable,%
+ colframe = #1,colupper=#1,opacityback=0,%
+ boxsep = 1pt,boxrule = 1.2pt,%
+ left = 1pt, right = 1pt, top = 0pt, bottom = 0pt,%
+ }
+\fi
+
+\newcounter{dnfcnt}
+\newcounter{needgraphcnt}
+
+\NewDocumentCommand{\dnf}{d<>}{%
+ \noindent\plainBox[dnfColor]%
+ {\normalfont\dnfFont\bfseries\small%
+ \csname dnfText\csname\languagename ABBR\endcsname\endcsname%
+ \stepcounter{dnfcnt}~\#\thednfcnt%
+ \IfNoValueF{#1}{\,: #1}}%
+}
+\NewDocumentCommand{\needgraph}{d<>}{%
+ \begin{center}%
+ \plainBox[needgraphColor]%
+ {\normalfont\needgraphFont\bfseries\small%
+ \csname needgraphText\csname\languagename ABBR\endcsname\endcsname%
+ \stepcounter{needgraphcnt}~\#\theneedgraphcnt%
+ \IfNoValueF{#1}{\,: #1}}%
+ \end{center}%
+}
+
+\endinput
+%%
+%% End of file `PJLdraft.sty'.
diff --git a/macros/latex/contrib/projlib/old-modules/PJLlang.sty b/macros/latex/contrib/projlib/old-modules/PJLlang.sty
new file mode 100644
index 0000000000..9470226adb
--- /dev/null
+++ b/macros/latex/contrib/projlib/old-modules/PJLlang.sty
@@ -0,0 +1,358 @@
+%%
+%% This is file `PJLlang.sty',
+%% generated with the docstrip utility.
+
+%% Copyright (C) 2021 by Jinwen XU
+%%
+%% This is part of the ProjLib Toolkit.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c of this license or (at
+%% your option) any later version. The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\ProvidesPackage{PJLlang}
+ [2021/12/16 Multi-language configuration]
+\RequirePackage{kvoptions}
+\RequirePackage{etoolbox}
+\SetupKeyvalOptions{%
+ family = @PJLlang,
+ prefix = @PJLlang@
+}
+\DeclareBoolOption[false]{polyglossia}
+
+\newif\if@PJLlang@enable@all\@PJLlang@enable@alltrue
+\newif\if@PJLlang@enable@EN\@PJLlang@enable@ENfalse
+\newif\if@PJLlang@enable@FR\@PJLlang@enable@FRfalse
+\newif\if@PJLlang@enable@DE\@PJLlang@enable@DEfalse
+\newif\if@PJLlang@enable@IT\@PJLlang@enable@ITfalse
+\newif\if@PJLlang@enable@PT\@PJLlang@enable@PTfalse
+\newif\if@PJLlang@enable@BR\@PJLlang@enable@BRfalse
+\newif\if@PJLlang@enable@ES\@PJLlang@enable@ESfalse
+\newif\if@PJLlang@enable@CN\@PJLlang@enable@CNfalse
+\newif\if@PJLlang@enable@TC\@PJLlang@enable@TCfalse
+\newif\if@PJLlang@enable@JP\@PJLlang@enable@JPfalse
+\newif\if@PJLlang@enable@RU\@PJLlang@enable@RUfalse
+\def\PJLlang@babeloptions{}
+\DeclareVoidOption{EN}{\@PJLlang@enable@allfalse\@PJLlang@enable@ENtrue\providecommand{\PJLlang@mainlang}{EN}\gpreto{\PJLlang@babeloptions}{,english}}
+\DeclareVoidOption{english}{\@PJLlang@enable@allfalse\@PJLlang@enable@ENtrue\providecommand{\PJLlang@mainlang}{EN}\gpreto{\PJLlang@babeloptions}{,english}}
+\DeclareVoidOption{English}{\@PJLlang@enable@allfalse\@PJLlang@enable@ENtrue\providecommand{\PJLlang@mainlang}{EN}\gpreto{\PJLlang@babeloptions}{,english}}
+\DeclareVoidOption{FR}{\@PJLlang@enable@allfalse\@PJLlang@enable@FRtrue\providecommand{\PJLlang@mainlang}{FR}\gpreto{\PJLlang@babeloptions}{,french}}
+\DeclareVoidOption{french}{\@PJLlang@enable@allfalse\@PJLlang@enable@FRtrue\providecommand{\PJLlang@mainlang}{FR}\gpreto{\PJLlang@babeloptions}{,french}}
+\DeclareVoidOption{French}{\@PJLlang@enable@allfalse\@PJLlang@enable@FRtrue\providecommand{\PJLlang@mainlang}{FR}\gpreto{\PJLlang@babeloptions}{,french}}
+\DeclareVoidOption{DE}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}\gpreto{\PJLlang@babeloptions}{,ngerman}}
+\DeclareVoidOption{german}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}\gpreto{\PJLlang@babeloptions}{,ngerman}}
+\DeclareVoidOption{ngerman}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}\gpreto{\PJLlang@babeloptions}{,ngerman}}
+\DeclareVoidOption{German}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}\gpreto{\PJLlang@babeloptions}{,ngerman}}
+\DeclareVoidOption{IT}{\@PJLlang@enable@allfalse\@PJLlang@enable@ITtrue\providecommand{\PJLlang@mainlang}{IT}\gpreto{\PJLlang@babeloptions}{,italian}}
+\DeclareVoidOption{italian}{\@PJLlang@enable@allfalse\@PJLlang@enable@ITtrue\providecommand{\PJLlang@mainlang}{IT}\gpreto{\PJLlang@babeloptions}{,italian}}
+\DeclareVoidOption{Italian}{\@PJLlang@enable@allfalse\@PJLlang@enable@ITtrue\providecommand{\PJLlang@mainlang}{IT}\gpreto{\PJLlang@babeloptions}{,italian}}
+\DeclareVoidOption{PT}{\@PJLlang@enable@allfalse\@PJLlang@enable@PTtrue\providecommand{\PJLlang@mainlang}{PT}\gpreto{\PJLlang@babeloptions}{,portuguese}}
+\DeclareVoidOption{portuguese}{\@PJLlang@enable@allfalse\@PJLlang@enable@PTtrue\providecommand{\PJLlang@mainlang}{PT}\gpreto{\PJLlang@babeloptions}{,portuguese}}
+\DeclareVoidOption{Portuguese}{\@PJLlang@enable@allfalse\@PJLlang@enable@PTtrue\providecommand{\PJLlang@mainlang}{PT}\gpreto{\PJLlang@babeloptions}{,portuguese}}
+\DeclareVoidOption{BR}{\@PJLlang@enable@allfalse\@PJLlang@enable@BRtrue\providecommand{\PJLlang@mainlang}{BR}\gpreto{\PJLlang@babeloptions}{,brazilian}}
+\DeclareVoidOption{brazilian}{\@PJLlang@enable@allfalse\@PJLlang@enable@BRtrue\providecommand{\PJLlang@mainlang}{BR}\gpreto{\PJLlang@babeloptions}{,brazilian}}
+\DeclareVoidOption{Brazilian}{\@PJLlang@enable@allfalse\@PJLlang@enable@BRtrue\providecommand{\PJLlang@mainlang}{BR}\gpreto{\PJLlang@babeloptions}{,brazilian}}
+\DeclareVoidOption{ES}{\@PJLlang@enable@allfalse\@PJLlang@enable@EStrue\providecommand{\PJLlang@mainlang}{ES}\gpreto{\PJLlang@babeloptions}{,spanish}}
+\DeclareVoidOption{spanish}{\@PJLlang@enable@allfalse\@PJLlang@enable@EStrue\providecommand{\PJLlang@mainlang}{ES}\gpreto{\PJLlang@babeloptions}{,spanish}}
+\DeclareVoidOption{Spanish}{\@PJLlang@enable@allfalse\@PJLlang@enable@EStrue\providecommand{\PJLlang@mainlang}{ES}\gpreto{\PJLlang@babeloptions}{,spanish}}
+\DeclareVoidOption{CN}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
+\DeclareVoidOption{chinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
+\DeclareVoidOption{Chinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
+\DeclareVoidOption{schinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
+\DeclareVoidOption{SChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
+\DeclareVoidOption{simplifiedchinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
+\DeclareVoidOption{SimplifiedChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
+\DeclareVoidOption{TC}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
+\DeclareVoidOption{tchinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
+\DeclareVoidOption{TChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
+\DeclareVoidOption{traditionalchinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
+\DeclareVoidOption{TraditionalChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
+\DeclareVoidOption{JP}{\@PJLlang@enable@allfalse\@PJLlang@enable@JPtrue\providecommand{\PJLlang@mainlang}{JP}\gpreto{\PJLlang@babeloptions}{,japanese}}
+\DeclareVoidOption{japanese}{\@PJLlang@enable@allfalse\@PJLlang@enable@JPtrue\providecommand{\PJLlang@mainlang}{JP}\gpreto{\PJLlang@babeloptions}{,japanese}}
+\DeclareVoidOption{Japanese}{\@PJLlang@enable@allfalse\@PJLlang@enable@JPtrue\providecommand{\PJLlang@mainlang}{JP}\gpreto{\PJLlang@babeloptions}{,japanese}}
+\DeclareVoidOption{RU}{\@PJLlang@enable@allfalse\@PJLlang@enable@RUtrue\providecommand{\PJLlang@mainlang}{RU}\gpreto{\PJLlang@babeloptions}{,russian}}
+\DeclareVoidOption{russian}{\@PJLlang@enable@allfalse\@PJLlang@enable@RUtrue\providecommand{\PJLlang@mainlang}{RU}\gpreto{\PJLlang@babeloptions}{,russian}}
+\DeclareVoidOption{Russian}{\@PJLlang@enable@allfalse\@PJLlang@enable@RUtrue\providecommand{\PJLlang@mainlang}{RU}\gpreto{\PJLlang@babeloptions}{,russian}}
+\ProcessKeyvalOptions*\relax
+
+\ExplSyntaxOn
+\cs_new_protected:cpn { @clearglobaloption } #1
+ {
+ \clist_remove_all:cn { @classoptionslist } { #1 }
+ }
+\ExplSyntaxOff
+
+\@clearglobaloption{chinese}
+\@clearglobaloption{Chinese}
+
+\providecommand{\PJLlang@mainlang}{EN}
+
+\if@PJLlang@enable@all
+ \@PJLlang@enable@ENtrue
+ \@PJLlang@enable@FRtrue
+ \@PJLlang@enable@DEtrue
+ \@PJLlang@enable@ITtrue
+ \@PJLlang@enable@PTtrue
+ \@PJLlang@enable@BRtrue
+ \@PJLlang@enable@EStrue
+ \@PJLlang@enable@CNtrue
+ \@PJLlang@enable@TCtrue
+ \@PJLlang@enable@JPtrue
+ \@PJLlang@enable@RUtrue
+\fi
+
+\newcommand\englishABBR{EN}
+\newcommand\frenchABBR{FR}
+\newcommand\ngermanABBR{DE}
+\newcommand\italianABBR{IT}
+\newcommand\portugueseABBR{PT}
+\newcommand\brazilianABBR{BR}
+\newcommand\spanishABBR{ES}
+\newcommand\schineseABBR{CN}
+\newcommand\tchineseABBR{TC}
+\newcommand\japaneseABBR{JP}
+\newcommand\russianABBR{RU}
+
+\ExplSyntaxOn
+\NewExpandableDocumentCommand{\StrToABBR}{m}
+ {
+ \str_case_e:nn { \str_foldcase:n { #1 } }
+ {
+ {cn} {CN}
+ {chinese} {CN}
+ {schinese} {CN}
+ {simplifiedchinese} {CN}
+ {tc} {TC}
+ {tchinese} {TC}
+ {traditionalchinese} {TC}
+ {jp} {JP}
+ {japanese} {JP}
+ {en} {EN}
+ {english} {EN}
+ {fr} {FR}
+ {french} {FR}
+ {de} {DE}
+ {ngerman} {DE}
+ {it} {IT}
+ {italian} {IT}
+ {pt} {PT}
+ {portuguese} {PT}
+ {br} {BR}
+ {brazilian} {BR}
+ {es} {ES}
+ {spanish} {ES}
+ {german} {DE}
+ {ru} {RU}
+ {russian} {RU}
+ }
+ }
+
+\NewExpandableDocumentCommand{\StrToTYPE}{m}
+ {
+ \str_case_e:nn { \str_foldcase:n { #1 } }
+ {
+ {cn} {CJK}
+ {chinese} {CJK}
+ {schinese} {CJK}
+ {simplifiedchinese} {CJK}
+ {tc} {CJK}
+ {tchinese} {CJK}
+ {traditionalchinese} {CJK}
+ {jp} {CJK}
+ {japanese} {CJK}
+ {en} {Latin}
+ {english} {Latin}
+ {fr} {Latin}
+ {french} {Latin}
+ {de} {Latin}
+ {ngerman} {Latin}
+ {it} {Latin}
+ {italian} {Latin}
+ {pt} {Latin}
+ {portuguese} {Latin}
+ {br} {Latin}
+ {brazilian} {Latin}
+ {es} {Latin}
+ {spanish} {Latin}
+ {german} {Latin}
+ {ru} {Latin}
+ {russian} {Latin}
+ }
+ }
+\ExplSyntaxOff
+
+\RequirePackage{iftex}
+\ifPDFTeX
+\RequirePackage[T1]{fontenc}
+\RequirePackage{inputenc}
+\fi
+
+\if@PJLlang@polyglossia
+ \RequirePackage{polyglossia}
+ \setdefaultlanguage{english}
+ \setotherlanguage[frenchpart=false]{french}
+ \setotherlanguage{ngerman}
+ \setotherlanguage{spanish}
+ \setotherlanguage{portuguese}
+ \setotherlanguage[variant=brazilian]{portuguese}
+ \setotherlanguage{italian}
+ \ifPDFTeX\else
+ \setotherlanguage{russian}
+ \setotherlanguage{japanese}
+ \RequirePackage{silence}
+ \WarningFilter{polyglossia}{Asking to add empty feature to latin font(Script="CJK" to scripttag "")}
+ \fi
+\else
+ \if@PJLlang@enable@all
+ \ifPDFTeX\else
+ \PassOptionsToPackage{japanese,russian}{babel}
+ \fi
+ \PassOptionsToPackage{italian,portuguese,brazilian,spanish,es-notilde,es-noquoting,ngerman,french,english,shorthands=off}{babel}
+ \else
+ \PassOptionsToPackage{\PJLlang@babeloptions}{babel}
+ \fi
+ \PassOptionsToPackage{italian,brazilian,spanish,ngerman,french,english}{cleveref}
+ \RequirePackage{babel}
+ \if@PJLlang@enable@FR
+ \frenchsetup{PartNameFull=false}
+ \fi
+ \if@PJLlang@enable@PT
+ \let\PJL@babelord\ord
+ \let\ord\relax
+ \AtBeginDocument{
+ \@ifundefined{ord}{}
+ {
+ \let\PJL@userord\ord
+ \let\ord\relax
+ \newcommand{\ord}{%
+ \ifmmode\expandafter\PJL@userord\else\expandafter\PJL@babelord\fi%
+ }
+ }
+ }
+ \fi
+
+ \babelprovide{schinese}
+ \babelprovide{tchinese}
+\fi
+
+\let\today@PJLoriginal\today
+\newcommand{\PJLlang@langconfig@common}{%
+ \ifdefined\DTMtoday%
+ \let\today\DTMtoday%
+ \else%
+ \let\today\today@PJLoriginal%
+ \fi%
+}
+
+\newcommand{\PJLlang@langconfig@CN}{%
+ \def\abstractname{摘要}%
+ \def\proofname{证明}%
+ \def\contentsname{目录}%
+ \def\listfigurename{插图}%
+ \def\listtablename{表格}%
+ \def\figurename{图}%
+ \def\tablename{表}%
+ \def\indexname{索引}%
+ \def\appendixname{附录}%
+ \def\refname{参考文献}%
+ \def\bibname{参考文献}%
+ \let\today\zhtoday%
+ \renewcommand{\languagename}{schinese}%
+}
+\newcommand{\PJLlang@langconfig@TC}{%
+ \def\abstractname{摘要}%
+ \def\proofname{證明}%
+ \def\contentsname{目錄}%
+ \def\listfigurename{插圖}%
+ \def\listtablename{表格}%
+ \def\figurename{圖}%
+ \def\tablename{表}%
+ \def\indexname{索引}%
+ \def\appendixname{附錄}%
+ \def\refname{參考文獻}%
+ \def\bibname{參考文獻}%
+ \let\today\zhtoday%
+ \renewcommand{\languagename}{tchinese}%
+}
+\newcommand{\PJLlang@langconfig@JP}{%
+ \selectlanguage{japanese}%
+}
+\newcommand{\PJLlang@langconfig@EN}{%
+ \selectlanguage{english}%
+}
+\newcommand{\PJLlang@langconfig@FR}{%
+ \selectlanguage{french}%
+ \def\frenchpartname{Partie}%
+}
+\newcommand{\PJLlang@langconfig@DE}{%
+ \selectlanguage{ngerman}%
+}
+\newcommand{\PJLlang@langconfig@IT}{%
+ \selectlanguage{italian}%
+}
+\newcommand{\PJLlang@langconfig@PT}{%
+ \selectlanguage{portuguese}%
+}
+\newcommand{\PJLlang@langconfig@BR}{%
+ \selectlanguage{brazilian}%
+}
+\newcommand{\PJLlang@langconfig@ES}{%
+ \selectlanguage{spanish}%
+}
+\newcommand{\PJLlang@langconfig@RU}{%
+ \selectlanguage{russian}%
+}
+
+\NewDocumentCommand\AddLanguageSetting{d()m}{%
+\IfNoValueTF{#1}%
+ {\gappto{\PJLlang@langconfig@common}{#2}}%
+ {\expandafter\gappto\expandafter{\csname PJLlang@langconfig@\StrToABBR{#1}\endcsname}{#2}}%
+}
+
+\RequirePackage{setspace}
+\def\PJL@config@linespacing{\setstretch{1.00}}
+\def\PJL@config@CJKlinespacing{\onehalfspacing}
+\newcommand{\PJLsetlinespacing}[1]{\renewcommand{\PJL@config@linespacing}{#1}}
+\newcommand{\PJLsetCJKlinespacing}[1]{\renewcommand{\PJL@config@CJKlinespacing}{#1}}
+\@ifclassloaded{beamer}{
+ \def\PJL@config@parindent{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{0em}}}
+ \def\PJL@config@CJKparindent{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{0em}}}
+}{
+ \def\PJL@config@parindent{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{1.5em}}}
+ \def\PJL@config@CJKparindent{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{2em}}}
+}
+\newcommand{\PJLsetparindent}[1]{\renewcommand{\PJL@config@parindent}{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{#1}}}}
+\newcommand{\PJLsetCJKparindent}[1]{\renewcommand{\PJL@config@CJKparindent}{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{#1}}}}
+\def\PJL@config@CJK{\PJL@config@CJKlinespacing\PJL@config@CJKparindent}
+\def\PJL@config@Latin{\PJL@config@linespacing\PJL@config@parindent}
+\NewDocumentCommand{\UseLanguageCORE}{m}{%
+ \PJLlang@langconfig@common%
+ \csname PJL@config@\StrToTYPE{#1}\endcsname%
+ \csname PJLlang@langconfig@\StrToABBR{#1}\endcsname%
+}
+\NewDocumentCommand{\UseLanguage}{m}{%
+ \ifx\@onlypreamble\@notprerr%
+ \UseLanguageCORE{#1}%
+ \else%
+ \AfterEndPreamble{\UseLanguageCORE{#1}}%
+ \fi%
+}
+\NewDocumentCommand{\UseOtherLanguage}{mm}{%
+\begingroup\begingroup%
+ \PJLlang@langconfig@common%
+ \csname PJLlang@langconfig@\StrToABBR{#1}\endcsname%
+ #2%
+\endgroup\endgroup%
+}
+
+\expandafter\UseLanguage\expandafter{\PJLlang@mainlang}
+
+\endinput
+%%
+%% End of file `PJLlang.sty'.
diff --git a/macros/latex/contrib/projlib/old-modules/PJLlogo.sty b/macros/latex/contrib/projlib/old-modules/PJLlogo.sty
new file mode 100644
index 0000000000..7d24239fdc
--- /dev/null
+++ b/macros/latex/contrib/projlib/old-modules/PJLlogo.sty
@@ -0,0 +1,72 @@
+%%
+%% This is file `PJLlogo.sty',
+%% generated with the docstrip utility.
+
+%% Copyright (C) 2021 by Jinwen XU
+%%
+%% This is part of the ProjLib Toolkit.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c of this license or (at
+%% your option) any later version. The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\ProvidesPackage{PJLlogo}
+ [2021/12/16 The ProjLib logo]
+\RequirePackage{kvoptions}
+\RequirePackage{etoolbox}
+\SetupKeyvalOptions{
+ family = @PJLlogo,
+ prefix = @PJLlogo@,
+}
+\DeclareBoolOption[false]{draft}
+\DeclareBoolOption[false]{fast}
+\ProcessKeyvalOptions*\relax
+\if@PJLlogo@draft
+ \@PJLlogo@fasttrue
+\fi
+\if@PJLlogo@fast\def\ProjLib{{\normalfont ProjLib}}\endinput\fi
+
+\RequirePackage{xcolor}
+\RequirePackage{graphicx}
+\ifdefined\fontspec
+ \newfontface{\PJLlogo@font}{LinBiolinum_R.otf}
+\else
+ \RequirePackage[T1]{fontenc}
+ \newcommand{\PJLlogo@font}{\fontfamily{LinuxBiolinumT-TLF}\selectfont}
+\fi
+
+\newcommand{\PJLSigmaJ}{%
+ \vbox{\offinterlineskip
+ \ialign{%
+ \hfil##\hfil\cr
+ \hidewidth\hskip0.15ex\scalebox{0.4}{\rotatebox{-10}{\usefont{U}{zeur}{b}{n}\symbol{"06}}}\hidewidth\cr
+ \noalign{\kern0.15ex}
+ \j\cr
+ }%
+ }%
+}
+
+\newcommand{\ProjLib@generic}[1]{%
+ \begingroup
+ \normalfont\PJLlogo@font
+ \textcolor{blue!60!cyan}{P}%
+ \textcolor{blue!45!cyan}{r}%
+ \textcolor{blue!30!cyan}{o}%
+ \textcolor{green!70!black}{#1}%
+ \textcolor{red!20!yellow}{L}%
+ \textcolor{red!40!yellow}{i}%
+ \textcolor{red!60!yellow}{b}%
+ \endgroup
+}
+\DeclareRobustCommand*{\ProjLib}{\ProjLib@generic{\PJLSigmaJ}}
+\DeclareRobustCommand*{\ProjLibText}{\ProjLib@generic{j}}
+
+\endinput
+%%
+%% End of file `PJLlogo.sty'.
diff --git a/macros/latex/contrib/projlib/old-modules/PJLmath.sty b/macros/latex/contrib/projlib/old-modules/PJLmath.sty
new file mode 100644
index 0000000000..3bd389ef50
--- /dev/null
+++ b/macros/latex/contrib/projlib/old-modules/PJLmath.sty
@@ -0,0 +1,315 @@
+%%
+%% This is file `PJLmath.sty',
+%% generated with the docstrip utility.
+
+%% Copyright (C) 2021 by Jinwen XU
+%%
+%% This is part of the ProjLib Toolkit.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c of this license or (at
+%% your option) any later version. The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\ProvidesPackage{PJLmath}
+ [2021/12/16 Useful math macros and shortcuts]
+\RequirePackage{kvoptions}
+\RequirePackage{etoolbox}
+\RequirePackage{mathtools}
+\RequirePackage{mathrsfs}
+\@ifpackageloaded{unicode-math}{}{\RequirePackage{amssymb}}
+
+%%================================
+%% Shorthands
+%%================================
+\providecommand{\N}{\ensuremath{\mathbb{N}}}
+\providecommand{\Z}{\ensuremath{\mathbb{Z}}}
+\providecommand{\Q}{\ensuremath{\mathbb{Q}}}
+\providecommand{\R}{\ensuremath{\mathbb{R}}}
+\providecommand{\C}{\ensuremath{\mathbb{C}}}
+\providecommand{\F}{\ensuremath{\mathbb{F}}}
+\providecommand{\A}{\ensuremath{\mathbb{A}}}
+
+\providecommand{\bb}[1]{\ensuremath{\mathbb{#1}}}
+\providecommand{\bbA}{\ensuremath{\mathbb{A}}}
+\providecommand{\bbB}{\ensuremath{\mathbb{B}}}
+\providecommand{\bbC}{\ensuremath{\mathbb{C}}}
+\providecommand{\bbD}{\ensuremath{\mathbb{D}}}
+\providecommand{\bbE}{\ensuremath{\mathbb{E}}}
+\providecommand{\bbF}{\ensuremath{\mathbb{F}}}
+\providecommand{\bbG}{\ensuremath{\mathbb{G}}}
+\providecommand{\bbH}{\ensuremath{\mathbb{H}}}
+\providecommand{\bbI}{\ensuremath{\mathbb{I}}}
+\providecommand{\bbJ}{\ensuremath{\mathbb{J}}}
+\providecommand{\bbK}{\ensuremath{\mathbb{K}}}
+\providecommand{\bbL}{\ensuremath{\mathbb{L}}}
+\providecommand{\bbM}{\ensuremath{\mathbb{M}}}
+\providecommand{\bbN}{\ensuremath{\mathbb{N}}}
+\providecommand{\bbO}{\ensuremath{\mathbb{O}}}
+\providecommand{\bbP}{\ensuremath{\mathbb{P}}}
+\providecommand{\bbQ}{\ensuremath{\mathbb{Q}}}
+\providecommand{\bbR}{\ensuremath{\mathbb{R}}}
+\providecommand{\bbS}{\ensuremath{\mathbb{S}}}
+\providecommand{\bbT}{\ensuremath{\mathbb{T}}}
+\providecommand{\bbU}{\ensuremath{\mathbb{U}}}
+\providecommand{\bbV}{\ensuremath{\mathbb{V}}}
+\providecommand{\bbW}{\ensuremath{\mathbb{W}}}
+\providecommand{\bbX}{\ensuremath{\mathbb{X}}}
+\providecommand{\bbY}{\ensuremath{\mathbb{Y}}}
+\providecommand{\bbZ}{\ensuremath{\mathbb{Z}}}
+
+\providecommand{\mc}[1]{\ensuremath{\mathcal{#1}}}
+\providecommand{\mcA}{\ensuremath{\mathcal{A}}}
+\providecommand{\mcB}{\ensuremath{\mathcal{B}}}
+\providecommand{\mcC}{\ensuremath{\mathcal{C}}}
+\providecommand{\mcD}{\ensuremath{\mathcal{D}}}
+\providecommand{\mcE}{\ensuremath{\mathcal{E}}}
+\providecommand{\mcF}{\ensuremath{\mathcal{F}}}
+\providecommand{\mcG}{\ensuremath{\mathcal{G}}}
+\providecommand{\mcH}{\ensuremath{\mathcal{H}}}
+\providecommand{\mcI}{\ensuremath{\mathcal{I}}}
+\providecommand{\mcJ}{\ensuremath{\mathcal{J}}}
+\providecommand{\mcK}{\ensuremath{\mathcal{K}}}
+\providecommand{\mcL}{\ensuremath{\mathcal{L}}}
+\providecommand{\mcM}{\ensuremath{\mathcal{M}}}
+\providecommand{\mcN}{\ensuremath{\mathcal{N}}}
+\providecommand{\mcO}{\ensuremath{\mathcal{O}}}
+\providecommand{\mcP}{\ensuremath{\mathcal{P}}}
+\providecommand{\mcQ}{\ensuremath{\mathcal{Q}}}
+\providecommand{\mcR}{\ensuremath{\mathcal{R}}}
+\providecommand{\mcS}{\ensuremath{\mathcal{S}}}
+\providecommand{\mcT}{\ensuremath{\mathcal{T}}}
+\providecommand{\mcU}{\ensuremath{\mathcal{U}}}
+\providecommand{\mcV}{\ensuremath{\mathcal{V}}}
+\providecommand{\mcW}{\ensuremath{\mathcal{W}}}
+\providecommand{\mcX}{\ensuremath{\mathcal{X}}}
+\providecommand{\mcY}{\ensuremath{\mathcal{Y}}}
+\providecommand{\mcZ}{\ensuremath{\mathcal{Z}}}
+
+\providecommand{\cal}[1]{\ensuremath{\mathcal{#1}}}
+\providecommand{\calA}{\ensuremath{\mathcal{A}}}
+\providecommand{\calB}{\ensuremath{\mathcal{B}}}
+\providecommand{\calC}{\ensuremath{\mathcal{C}}}
+\providecommand{\calD}{\ensuremath{\mathcal{D}}}
+\providecommand{\calE}{\ensuremath{\mathcal{E}}}
+\providecommand{\calF}{\ensuremath{\mathcal{F}}}
+\providecommand{\calG}{\ensuremath{\mathcal{G}}}
+\providecommand{\calH}{\ensuremath{\mathcal{H}}}
+\providecommand{\calI}{\ensuremath{\mathcal{I}}}
+\providecommand{\calJ}{\ensuremath{\mathcal{J}}}
+\providecommand{\calK}{\ensuremath{\mathcal{K}}}
+\providecommand{\calL}{\ensuremath{\mathcal{L}}}
+\providecommand{\calM}{\ensuremath{\mathcal{M}}}
+\providecommand{\calN}{\ensuremath{\mathcal{N}}}
+\providecommand{\calO}{\ensuremath{\mathcal{O}}}
+\providecommand{\calP}{\ensuremath{\mathcal{P}}}
+\providecommand{\calQ}{\ensuremath{\mathcal{Q}}}
+\providecommand{\calR}{\ensuremath{\mathcal{R}}}
+\providecommand{\calS}{\ensuremath{\mathcal{S}}}
+\providecommand{\calT}{\ensuremath{\mathcal{T}}}
+\providecommand{\calU}{\ensuremath{\mathcal{U}}}
+\providecommand{\calV}{\ensuremath{\mathcal{V}}}
+\providecommand{\calW}{\ensuremath{\mathcal{W}}}
+\providecommand{\calX}{\ensuremath{\mathcal{X}}}
+\providecommand{\calY}{\ensuremath{\mathcal{Y}}}
+\providecommand{\calZ}{\ensuremath{\mathcal{Z}}}
+
+\providecommand{\mf}[1]{\ensuremath{\mathfrak{#1}}}
+\providecommand{\mfa}{\ensuremath{\mathfrak{a}}}
+\providecommand{\mfb}{\ensuremath{\mathfrak{b}}}
+\providecommand{\mfc}{\ensuremath{\mathfrak{c}}}
+\providecommand{\mfd}{\ensuremath{\mathfrak{d}}}
+\providecommand{\mfe}{\ensuremath{\mathfrak{e}}}
+\providecommand{\mff}{\ensuremath{\mathfrak{f}}}
+\providecommand{\mfg}{\ensuremath{\mathfrak{g}}}
+\providecommand{\mfh}{\ensuremath{\mathfrak{h}}}
+\providecommand{\mfi}{\ensuremath{\mathfrak{i}}}
+\providecommand{\mfj}{\ensuremath{\mathfrak{j}}}
+\providecommand{\mfk}{\ensuremath{\mathfrak{k}}}
+\providecommand{\mfl}{\ensuremath{\mathfrak{l}}}
+\providecommand{\mfm}{\ensuremath{\mathfrak{m}}}
+\providecommand{\mfn}{\ensuremath{\mathfrak{n}}}
+\providecommand{\mfo}{\ensuremath{\mathfrak{o}}}
+\providecommand{\mfp}{\ensuremath{\mathfrak{p}}}
+\providecommand{\mfq}{\ensuremath{\mathfrak{q}}}
+\providecommand{\mfr}{\ensuremath{\mathfrak{r}}}
+\providecommand{\mfs}{\ensuremath{\mathfrak{s}}}
+\providecommand{\mft}{\ensuremath{\mathfrak{t}}}
+\providecommand{\mfu}{\ensuremath{\mathfrak{u}}}
+\providecommand{\mfv}{\ensuremath{\mathfrak{v}}}
+\providecommand{\mfw}{\ensuremath{\mathfrak{w}}}
+\providecommand{\mfx}{\ensuremath{\mathfrak{x}}}
+\providecommand{\mfy}{\ensuremath{\mathfrak{y}}}
+\providecommand{\mfz}{\ensuremath{\mathfrak{z}}}
+\providecommand{\mfA}{\ensuremath{\mathfrak{A}}}
+\providecommand{\mfB}{\ensuremath{\mathfrak{B}}}
+\providecommand{\mfC}{\ensuremath{\mathfrak{C}}}
+\providecommand{\mfD}{\ensuremath{\mathfrak{D}}}
+\providecommand{\mfE}{\ensuremath{\mathfrak{E}}}
+\providecommand{\mfF}{\ensuremath{\mathfrak{F}}}
+\providecommand{\mfG}{\ensuremath{\mathfrak{G}}}
+\providecommand{\mfH}{\ensuremath{\mathfrak{H}}}
+\providecommand{\mfI}{\ensuremath{\mathfrak{I}}}
+\providecommand{\mfJ}{\ensuremath{\mathfrak{J}}}
+\providecommand{\mfK}{\ensuremath{\mathfrak{K}}}
+\providecommand{\mfL}{\ensuremath{\mathfrak{L}}}
+\providecommand{\mfM}{\ensuremath{\mathfrak{M}}}
+\providecommand{\mfN}{\ensuremath{\mathfrak{N}}}
+\providecommand{\mfO}{\ensuremath{\mathfrak{O}}}
+\providecommand{\mfP}{\ensuremath{\mathfrak{P}}}
+\providecommand{\mfQ}{\ensuremath{\mathfrak{Q}}}
+\providecommand{\mfR}{\ensuremath{\mathfrak{R}}}
+\providecommand{\mfS}{\ensuremath{\mathfrak{S}}}
+\providecommand{\mfT}{\ensuremath{\mathfrak{T}}}
+\providecommand{\mfU}{\ensuremath{\mathfrak{U}}}
+\providecommand{\mfV}{\ensuremath{\mathfrak{V}}}
+\providecommand{\mfW}{\ensuremath{\mathfrak{W}}}
+\providecommand{\mfX}{\ensuremath{\mathfrak{X}}}
+\providecommand{\mfY}{\ensuremath{\mathfrak{Y}}}
+\providecommand{\mfZ}{\ensuremath{\mathfrak{Z}}}
+
+\providecommand{\frak}[1]{\ensuremath{\mathfrak{#1}}}
+\providecommand{\fraka}{\ensuremath{\mathfrak{a}}}
+\providecommand{\frakb}{\ensuremath{\mathfrak{b}}}
+\providecommand{\frakc}{\ensuremath{\mathfrak{c}}}
+\providecommand{\frakd}{\ensuremath{\mathfrak{d}}}
+\providecommand{\frake}{\ensuremath{\mathfrak{e}}}
+\providecommand{\frakf}{\ensuremath{\mathfrak{f}}}
+\providecommand{\frakg}{\ensuremath{\mathfrak{g}}}
+\providecommand{\frakh}{\ensuremath{\mathfrak{h}}}
+\providecommand{\fraki}{\ensuremath{\mathfrak{i}}}
+\providecommand{\frakj}{\ensuremath{\mathfrak{j}}}
+\providecommand{\frakk}{\ensuremath{\mathfrak{k}}}
+\providecommand{\frakl}{\ensuremath{\mathfrak{l}}}
+\providecommand{\frakm}{\ensuremath{\mathfrak{m}}}
+\providecommand{\frakn}{\ensuremath{\mathfrak{n}}}
+\providecommand{\frako}{\ensuremath{\mathfrak{o}}}
+\providecommand{\frakp}{\ensuremath{\mathfrak{p}}}
+\providecommand{\frakq}{\ensuremath{\mathfrak{q}}}
+\providecommand{\frakr}{\ensuremath{\mathfrak{r}}}
+\providecommand{\fraks}{\ensuremath{\mathfrak{s}}}
+\providecommand{\frakt}{\ensuremath{\mathfrak{t}}}
+\providecommand{\fraku}{\ensuremath{\mathfrak{u}}}
+\providecommand{\frakv}{\ensuremath{\mathfrak{v}}}
+\providecommand{\frakw}{\ensuremath{\mathfrak{w}}}
+\providecommand{\frakx}{\ensuremath{\mathfrak{x}}}
+\providecommand{\fraky}{\ensuremath{\mathfrak{y}}}
+\providecommand{\frakz}{\ensuremath{\mathfrak{z}}}
+\providecommand{\frakA}{\ensuremath{\mathfrak{A}}}
+\providecommand{\frakB}{\ensuremath{\mathfrak{B}}}
+\providecommand{\frakC}{\ensuremath{\mathfrak{C}}}
+\providecommand{\frakD}{\ensuremath{\mathfrak{D}}}
+\providecommand{\frakE}{\ensuremath{\mathfrak{E}}}
+\providecommand{\frakF}{\ensuremath{\mathfrak{F}}}
+\providecommand{\frakG}{\ensuremath{\mathfrak{G}}}
+\providecommand{\frakH}{\ensuremath{\mathfrak{H}}}
+\providecommand{\frakI}{\ensuremath{\mathfrak{I}}}
+\providecommand{\frakJ}{\ensuremath{\mathfrak{J}}}
+\providecommand{\frakK}{\ensuremath{\mathfrak{K}}}
+\providecommand{\frakL}{\ensuremath{\mathfrak{L}}}
+\providecommand{\frakM}{\ensuremath{\mathfrak{M}}}
+\providecommand{\frakN}{\ensuremath{\mathfrak{N}}}
+\providecommand{\frakO}{\ensuremath{\mathfrak{O}}}
+\providecommand{\frakP}{\ensuremath{\mathfrak{P}}}
+\providecommand{\frakQ}{\ensuremath{\mathfrak{Q}}}
+\providecommand{\frakR}{\ensuremath{\mathfrak{R}}}
+\providecommand{\frakS}{\ensuremath{\mathfrak{S}}}
+\providecommand{\frakT}{\ensuremath{\mathfrak{T}}}
+\providecommand{\frakU}{\ensuremath{\mathfrak{U}}}
+\providecommand{\frakV}{\ensuremath{\mathfrak{V}}}
+\providecommand{\frakW}{\ensuremath{\mathfrak{W}}}
+\providecommand{\frakX}{\ensuremath{\mathfrak{X}}}
+\providecommand{\frakY}{\ensuremath{\mathfrak{Y}}}
+\providecommand{\frakZ}{\ensuremath{\mathfrak{Z}}}
+
+\providecommand{\ms}[1]{\ensuremath{\mathscr{#1}}}
+\providecommand{\msA}{\ensuremath{\mathscr{A}}}
+\providecommand{\msB}{\ensuremath{\mathscr{B}}}
+\providecommand{\msC}{\ensuremath{\mathscr{C}}}
+\providecommand{\msD}{\ensuremath{\mathscr{D}}}
+\providecommand{\msE}{\ensuremath{\mathscr{E}}}
+\providecommand{\msF}{\ensuremath{\mathscr{F}}}
+\providecommand{\msG}{\ensuremath{\mathscr{G}}}
+\providecommand{\msH}{\ensuremath{\mathscr{H}}}
+\providecommand{\msI}{\ensuremath{\mathscr{I}}}
+\providecommand{\msJ}{\ensuremath{\mathscr{J}}}
+\providecommand{\msK}{\ensuremath{\mathscr{K}}}
+\providecommand{\msL}{\ensuremath{\mathscr{L}}}
+\providecommand{\msM}{\ensuremath{\mathscr{M}}}
+\providecommand{\msN}{\ensuremath{\mathscr{N}}}
+\providecommand{\msO}{\ensuremath{\mathscr{O}}}
+\providecommand{\msP}{\ensuremath{\mathscr{P}}}
+\providecommand{\msQ}{\ensuremath{\mathscr{Q}}}
+\providecommand{\msR}{\ensuremath{\mathscr{R}}}
+\providecommand{\msS}{\ensuremath{\mathscr{S}}}
+\providecommand{\msT}{\ensuremath{\mathscr{T}}}
+\providecommand{\msU}{\ensuremath{\mathscr{U}}}
+\providecommand{\msV}{\ensuremath{\mathscr{V}}}
+\providecommand{\msW}{\ensuremath{\mathscr{W}}}
+\providecommand{\msX}{\ensuremath{\mathscr{X}}}
+\providecommand{\msY}{\ensuremath{\mathscr{Y}}}
+\providecommand{\msZ}{\ensuremath{\mathscr{Z}}}
+
+\providecommand{\scr}[1]{\ensuremath{\mathscr{#1}}}
+\providecommand{\scrA}{\ensuremath{\mathscr{A}}}
+\providecommand{\scrB}{\ensuremath{\mathscr{B}}}
+\providecommand{\scrC}{\ensuremath{\mathscr{C}}}
+\providecommand{\scrD}{\ensuremath{\mathscr{D}}}
+\providecommand{\scrE}{\ensuremath{\mathscr{E}}}
+\providecommand{\scrF}{\ensuremath{\mathscr{F}}}
+\providecommand{\scrG}{\ensuremath{\mathscr{G}}}
+\providecommand{\scrH}{\ensuremath{\mathscr{H}}}
+\providecommand{\scrI}{\ensuremath{\mathscr{I}}}
+\providecommand{\scrJ}{\ensuremath{\mathscr{J}}}
+\providecommand{\scrK}{\ensuremath{\mathscr{K}}}
+\providecommand{\scrL}{\ensuremath{\mathscr{L}}}
+\providecommand{\scrM}{\ensuremath{\mathscr{M}}}
+\providecommand{\scrN}{\ensuremath{\mathscr{N}}}
+\providecommand{\scrO}{\ensuremath{\mathscr{O}}}
+\providecommand{\scrP}{\ensuremath{\mathscr{P}}}
+\providecommand{\scrQ}{\ensuremath{\mathscr{Q}}}
+\providecommand{\scrR}{\ensuremath{\mathscr{R}}}
+\providecommand{\scrS}{\ensuremath{\mathscr{S}}}
+\providecommand{\scrT}{\ensuremath{\mathscr{T}}}
+\providecommand{\scrU}{\ensuremath{\mathscr{U}}}
+\providecommand{\scrV}{\ensuremath{\mathscr{V}}}
+\providecommand{\scrW}{\ensuremath{\mathscr{W}}}
+\providecommand{\scrX}{\ensuremath{\mathscr{X}}}
+\providecommand{\scrY}{\ensuremath{\mathscr{Y}}}
+\providecommand{\scrZ}{\ensuremath{\mathscr{Z}}}
+
+%%================================
+%% General symbols
+%%================================
+\providecommand{\abs}[1]{\lvert#1\rvert}
+\providecommand{\norm}[1]{\lVert#1\rVert}
+
+\providecommand*{\injection}{\ensuremath{\hookrightarrow}}
+\providecommand*{\surjection}{\ensuremath{\twoheadrightarrow}}
+\providecommand*{\bijection}{\ensuremath{\xrightarrow{\sim}}}
+
+%%================================
+%% Symbols for number theory
+%%================================
+\ifdefined\@@pmod\else
+\let\@@pmod\pmod
+\DeclareRobustCommand{\pmod}{\@ifstar\@pmods\@@pmod}
+\def\@pmods#1{\mkern4mu({\operator@font mod}\mkern 6mu#1)}
+\fi
+
+\providecommand{\genlegendre}[4]{%
+ \genfrac{(}{)}{}{#1}{#3}{#4}%
+ \if\relax\detokenize{#2}\relax\else_{\!#2}\fi%
+}
+\providecommand{\legendre}[3][]{\genlegendre{}{#1}{#2}{#3}}
+\providecommand{\dlegendre}[3][]{\genlegendre{0}{#1}{#2}{#3}}
+\providecommand{\tlegendre}[3][]{\genlegendre{1}{#1}{#2}{#3}}
+
+\endinput
+%%
+%% End of file `PJLmath.sty'.
diff --git a/macros/latex/contrib/projlib/old-modules/PJLpaper.sty b/macros/latex/contrib/projlib/old-modules/PJLpaper.sty
new file mode 100644
index 0000000000..4b963c069a
--- /dev/null
+++ b/macros/latex/contrib/projlib/old-modules/PJLpaper.sty
@@ -0,0 +1,96 @@
+%%
+%% This is file `PJLpaper.sty',
+%% generated with the docstrip utility.
+
+%% Copyright (C) 2021 by Jinwen XU
+%%
+%% This is part of the ProjLib Toolkit.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c of this license or (at
+%% your option) any later version. The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\ProvidesPackage{PJLpaper}
+ [2021/12/16 Paper style configuration]
+\RequirePackage{kvoptions}
+\RequirePackage{etoolbox}
+\RequirePackage{ifthen}
+
+\SetupKeyvalOptions{%
+ family = @PJLpaper,
+ prefix = @PJLpaper@,
+ setkeys=\kvsetkeys
+}
+
+\DeclareStringOption[normal]{paperstyle}
+\DeclareVoidOption{yellowpaper}{\kvsetkeys{@PJLpaper}{paperstyle=yellow}}
+\DeclareVoidOption{darkpaper}{\kvsetkeys{@PJLpaper}{paperstyle=dark}}
+\DeclareVoidOption{nordpaper}{\kvsetkeys{@PJLpaper}{paperstyle=nord}}
+\DeclareBoolOption[false]{preview}
+\ProcessKeyvalOptions*\relax
+
+%%================================
+%% Preview mode
+%%================================
+\ifdefined\PJLnoPreview\else%
+ \if@PJLpaper@preview%
+ \RequirePackage{calc}
+ \AtEndPreamble{%
+ \setlength{\paperwidth}{\textwidth*\real{1.05}}%
+ \setlength{\paperheight}{%
+ (\textheight+\headheight+\headsep+\footskip)*\real{1.05}}%
+ \setlength{\oddsidemargin}{(\paperwidth-\textwidth)/2-1in}%
+ \setlength{\evensidemargin}{(\paperwidth-\textwidth)/2-1in}%
+ \setlength{\topmargin}{(\paperheight-\textheight-\headheight-\headsep-\footskip)/2- 1in}%
+ }
+ \fi
+\fi
+
+%%================================
+%% Paper color
+%%================================
+\RequirePackage{xcolor}
+\definecolor{paper}{RGB}{255,255,255}
+\definecolor{maintext}{RGB}{0,0,0}
+
+\ifthenelse{\equal{\@PJLpaper@paperstyle}{yellow}}
+{
+ \definecolor{paper}{RGB}{247,246,233}
+}
+{\relax}
+
+\ifthenelse{\equal{\@PJLpaper@paperstyle}{dark}}
+{
+ \definecolor{paper}{RGB}{30,30,30}
+ \definecolor{maintext}{RGB}{207,207,207}
+}
+{\relax}
+
+\ifthenelse{\equal{\@PJLpaper@paperstyle}{nord}}
+{
+ \definecolor{paper}{RGB}{46,52,64}
+ \definecolor{maintext}{RGB}{214,220,230}
+}
+{\relax}
+
+\newcommand{\PJLglobalcolor}[1]{%
+ \color{#1}\global\let\default@color\current@color
+}
+
+\pagecolor{paper}
+\PJLglobalcolor{maintext}
+\AtEndPreamble{
+\ifdefined\tcbset%
+ \tcbset{colupper=maintext,collower=maintext}
+\fi
+}
+
+\endinput
+%%
+%% End of file `PJLpaper.sty'.
diff --git a/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/old-modules/PJLthm.sty
index adfc509e76..4e6d00d4d2 100644
--- a/macros/latex/contrib/projlib/ProjLib.dtx
+++ b/macros/latex/contrib/projlib/old-modules/PJLthm.sty
@@ -1,1420 +1,40 @@
-% \iffalse meta-comment
-%
-% Copyright (C) 2021 by Jinwen XU
-% -------------------------------
-%
-% This file may be distributed and/or modified under the conditions of the LaTeX
-% Project Public License, either version 1.3c of this license or (at your option)
-% any later version. The latest version of this license is in:
-%
-% http://www.latex-project.org/lppl.txt
-%
-% \fi
-%
-%<*driver>
-\ProvidesFile{ProjLib.dtx}
-%</driver>
+%%
+%% This is file `PJLthm.sty',
+%% generated with the docstrip utility.
+
+%% Copyright (C) 2021 by Jinwen XU
+%%
+%% This is part of the ProjLib Toolkit.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c of this license or (at
+%% your option) any later version. The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-%
-%<*ProjLib>
-\ProvidesPackage{ProjLib}
- [2021/12/16 The collective interface of ProjLib toolkit]
-%</ProjLib>
-%
-%<*PJLauthor>
-\ProvidesPackage{PJLauthor}
- [2021/12/16 Enhanced author information block]
-%</PJLauthor>
-%
-%<*PJLdate>
-\ProvidesPackage{PJLdate}
- [2021/12/16 Convert yyyy-mm-dd to normal datetime format]
-%</PJLdate>
-%
-%<*PJLdraft>
-\ProvidesPackage{PJLdraft}
- [2021/12/16 Some useful macros for the draft stage]
-%</PJLdraft>
-%
-%<*PJLlang>
-\ProvidesPackage{PJLlang}
- [2021/12/16 Multi-language configuration]
-%</PJLlang>
-%
-%<*PJLlogo>
-\ProvidesPackage{PJLlogo}
- [2021/12/16 The ProjLib logo]
-%</PJLlogo>
-%
-%<*PJLmath>
-\ProvidesPackage{PJLmath}
- [2021/12/16 Useful math macros and shortcuts]
-%</PJLmath>
-%
-%<*PJLpaper>
-\ProvidesPackage{PJLpaper}
- [2021/12/16 Paper style configuration]
-%</PJLpaper>
-%
-%<*PJLthm>
\ProvidesPackage{PJLthm}
[2021/12/16 Theorem setup and configuration]
-%</PJLthm>
-%
-%# 下面两行引入宏包的代码是所有文件共用的。
-%# The following two lines are common to all files.
\RequirePackage{kvoptions}
\RequirePackage{etoolbox}
-%
-%<*PJLauthor>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{
- family = @PJLauthor,
- prefix = @PJLauthor@,
-}
-%# 支持 AMS 风格
-%# Support AMS fashion
-\DeclareBoolOption[false]{amsfashion}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-
-%# 在 AMS 文档类中不执行任何操作
-%# Do nothing if AMS class detected
-\ifdefined\subjclass\endinput\fi
-
-%%================================
-%% Font and style
-%%================================
-%# 各个作者信息元素的字体
-%# Font of the elements in the author block
-\def\PJLauthor@font@author{\normalsize\normalfont\scshape}
-\def\PJLauthor@font@address{\small\normalfont\itshape}
-\def\PJLauthor@font@curraddr{\small\normalfont\itshape}
-\def\PJLauthor@font@email{\small\normalfont\ttfamily}
-
-%%================================
-%% Lengths
-%%================================
-%# author 和 address 之间的距离
-%# Space between author and address
-\newlength{\PJLauthor@length@innersep}
-\setlength{\PJLauthor@length@innersep}{.3\baselineskip}
-%# 两个作者块之间的距离
-%# Space between different author blocks
-\newlength{\PJLauthor@length@sep}
-\setlength{\PJLauthor@length@sep}{.5\baselineskip}
-%# 作者块和日期之间的距离
-%# Space between affiliation and date
-\newlength{\PJLauthor@length@aftersep}
-\setlength{\PJLauthor@length@aftersep}{.3\baselineskip}
-
-%%================================
-%% The macros
-%%================================
-%# 用来记录当前是否有附加作者信息,以便调整距离
-%# To record whether there's affiliation so as to adjust the vertical space
-\newif\if@PJLauthor@affilon
-%# 作者
-%# author
-\renewcommand*{\author}[1]{%
- \gappto\@author{\phantom{A}\\[-\baselineskip]%
- \vspace{\PJLauthor@length@sep}%
- \PJLauthor@font@author{#1}\\\phantom{}
- \@PJLauthor@affilonfalse}}
-%# 地址
-%# address
-\providecommand*{\address}[1]{%
- \gappto\@author{\phantom{A}\\[-\baselineskip]%
- \if@PJLauthor@affilon\else%
- \vspace{\PJLauthor@length@innersep}%
- \fi%
- \@PJLauthor@affilontrue%
- \PJLauthor@font@address{#1}\\\phantom{}}%
-}
-%# 当前地址
-%# curraddr
-\providecommand*{\curraddr}[1]{%
- \gappto\@author{\phantom{A}\\[-\baselineskip]%
- \if@PJLauthor@affilon\else%
- \vspace{\PJLauthor@length@innersep}%
- \fi%
- \@PJLauthor@affilontrue%
- \PJLauthor@font@curraddr{#1}\\\phantom{}}%
-}
-%# 电子邮箱
-%# email
-\providecommand*{\email}[1]{%
- \gappto\@author{\phantom{A}\\[-\baselineskip]%
- \if@PJLauthor@affilon\else%
- \vspace{\PJLauthor@length@innersep}%
- \fi%
- \@PJLauthor@affilontrue%
- \PJLauthor@font@email{#1}\\\phantom{}}%
-}
-
-%%================================
-%% Adjustment
-%%================================
-%# 去除 maketitle 中默认对 author 的处理
-%# Remove the tabular around \@author in maketitle
-\patchcmd{\@maketitle}{\begin{tabular}[t]{c}}{}{}{}
-\patchcmd{\@maketitle}{\end{tabular}}{}{}{}
-%# 下面这一行是为了避免错误 "No \author given."
-%# The follwing line is for avoiding the error "No \author given."
-\def\@author{}
-%# 修正作者块的前后等距离
-%# Adjust the spacing before and after the author block
-\pretocmd{\@maketitle}{%
- \pretocmd{\@author}{\vspace{-\PJLauthor@length@sep}}{}{\FAIL}%
- \apptocmd{\@author}{%
-% Fix the space caused by `\\\phantom{}`
- \vspace{-\baselineskip}%
- \if@PJLauthor@affilon%
- \vspace{\PJLauthor@length@aftersep}%
- \fi%
- }{}{\FAIL}%
-}{}{\FAIL}
-
-%# 若使用 AMS 风格
-%# If AMS fashion enabled
-\ifbool{@PJLauthor@amsfashion}{
-
-%# 使用 PJLlang 以支持自动语言转换
-%# Use `PJLlang` to support automatic language conversion
-\RequirePackage{PJLlang}
-\RequirePackage{calc}
-
-%# 设定带条件的加粗
-%# Set the conditional bold face
-\providecommand{\conditionalbfseries}{\bfseries}
-
-%# 关键词的标签
-%# keywords' label
-\def\keywordsnameEN{\textsc{Key words and phrases}}
-\def\keywordsnameFR{\textsc{Mots et phrases clés}}
-\def\keywordsnameDE{\textsc{Schlüsselwörter und Phrasen}}
-\def\keywordsnameIT{\textsc{Parole e frasi chiave}}
-\def\keywordsnamePT{\textsc{Palavras e frases chave}}
-\def\keywordsnameBR{\textsc{Palavras e frases chave}}
-\def\keywordsnameES{\textsc{Palabras y frases clave}}
-\def\keywordsnameCN{关键词}
-\def\keywordsnameTC{關鍵詞}
-\def\keywordsnameJP{キーワード}
-\def\keywordsnameRU{Ключевые слова и фразы}
-
-%# 关键词
-%# keywords
-\def\PJL@keywords{}
-\providecommand*{\keywords}[1]{\def\PJL@keywords{#1}}
-
-%# 献给
-%# dedicatory
-\def\PJL@dedicatory{}
-\providecommand*{\dedicatory}[1]{\def\PJL@dedicatory{#1}}
-
-%# 致谢,在 \author 中使用时呈现为 article 风格,在外面单独用是则呈现为 AMS 风格
-%# \thanks: behave like article-style when in \author, and ams-style (no marker) when outside
-\AtEndPreamble{
-% In case that \@author changes again
-\let\footnotemark@PJLoriginal\footnotemark%
-\let\footnotemark\relax%
-\let\thanks@PJLoriginal\thanks%
-\newlength\PJL@starlength
-\setlength{\PJL@starlength}{\widthof{*}}
-\newcommand*{\PJL@prethanks}[1]{\thanks@PJLoriginal{\hspace*{-\PJL@starlength}#1}}
-% \renewcommand*{\thanks}[1]{%
-% \ifx#1\@empty\else%
-% \thanks@PJLoriginal{\hspace*{-\PJL@starlength}#1}%
-% \fi}
-\renewcommand*{\thanks}[1]{%
- \ifx#1\@empty\else%
- \apptocmd{\@title}{%
- \thanks@PJLoriginal{\hspace*{-\PJL@starlength}#1}%
- }{}{\FAIL}%
- \fi}
-\let\author@PJLoriginal\author
-\renewcommand{\author}[1]{%
- \author@PJLoriginal{%
- \let\footnotemark\footnotemark@PJLoriginal%
- \let\thanks\thanks@PJLoriginal%
- #1%
- \let\footnotemark\relax%
- }%
-}
-% \pretocmd{\@author}{\let\footnotemark\footnotemark@PJLoriginal\let\thanks\thanks@PJLoriginal}{}{\FAIL}
-% \apptocmd{\@author}{\let\footnotemark\relax}{}{\FAIL}
-}
-
-%# 重定义 abstract 环境以允许其出现在 maketitle 的前面
-%# Modify abstract to allow it before maketitle
-\let\abstract@PJLoriginal\abstract%
-\let\endabstract@PJLoriginal\endabstract%
-\newif\if@PJLauthor@maketitle\@PJLauthor@maketitlefalse
-\newif\if@PJLauthor@absbefore\@PJLauthor@absbeforefalse
-\RequirePackage{fancyvrb}
-% Taken from https://tex.stackexchange.com/a/596328
-% define the same as \protected@write, but with \immediate
-\providecommand*\protected@iwrite[3]{%
- \begingroup
- \let\thepage\relax
- #2%
- \let\protect\@unexpandable@protect
- \edef\reserved@a{\immediate\write#1{#3}}\reserved@a
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi
-}
-\patchcmd{\FVB@VerbatimOut}
- {\immediate\write\FV@OutFile}
- {\protected@iwrite\FV@OutFile{}}
- {}{}
-%
-\renewenvironment{abstract}{%
- \VerbatimOut{\jobname.pjlabs}%
-}{
- \endVerbatimOut%
- \if@PJLauthor@maketitle%
- \begin{abstract@PJLoriginal}%
- \input{\jobname.pjlabs}%
- \end{abstract@PJLoriginal}%
- % \ifx\PJL@keywords\@empty\else%
- % \par\smallskip\noindent{\conditionalbfseries\csname keywordsname\csname\languagename ABBR\endcsname\endcsname.}~\PJL@keywords%
- % \fi%
- \else%
- \global\@PJLauthor@absbeforetrue%
- \fi%
-}
-
-%# 修改 maketitle 以包含上面的诸多改动
-%# Modify maketitle to reflect the modifications above
-\AtEndPreamble{%
-%## 将 dedicatory 添加进 \@maketitle
-%## Add dedicatory to \@maketitle
-\patchcmd{\@maketitle}{\@date}{%
- \ifx\@date\@empty\vspace{-2\baselineskip}%
- \else\@date\fi%
- \ifx\PJL@dedicatory\@empty\else%
- \ifx\@date\@empty\vspace{2\baselineskip}\fi%
- \par\vspace{-\parskip}\bigskip%
- {\itshape\PJL@dedicatory}%
- \ifx\@date\@empty%
- \vspace{-1.7\baselineskip}%
- \vspace{-\parskip}%
- \fi%
- \fi%
-}{}{\FAIL}
-%## 将 keywords 添加进 \maketitle
-%## Add keywords to \maketitle
-\pretocmd{\maketitle}{%
- \ifx\PJL@keywords\@empty\else%
- \PJL@prethanks{{\protect\conditionalbfseries%
- \csname keywordsname\csname\languagename ABBR\endcsname\endcsname.}%
- ~\PJL@keywords}%
- \fi}{}{\FAIL}
-%## 将 abstract 添加进 \maketitle
-%## Add abstract to \maketitle
-\apptocmd{\maketitle}{%
- \if@PJLauthor@absbefore%
- \begin{abstract@PJLoriginal}%
- \input{\jobname.pjlabs}%
- % \ifx\PJL@keywords\@empty\else%
- % \par\smallskip\noindent{\conditionalbfseries\csname keywordsname\csname\languagename ABBR\endcsname\endcsname.}~\PJL@keywords%
- % \fi%
- \end{abstract@PJLoriginal}%
- \fi%
- \global\let\address\relax
- \global\let\curraddr\relax
- \global\let\email\relax
- \global\let\dedicatory\relax
- \global\let\keywords\relax
- \global\@PJLauthor@maketitletrue
-}{}{\FAIL}
-%##- 这段未被采用的代码将使 maketitle 中的 \newpage 失效
-%##- Disbale the \newpage in maketitle
-% \let\maketitle@PJLoriginal=\maketitle
-% \renewcommand*{\maketitle}{{\let\newpage\relax\maketitle@PJLoriginal}}
-}
-
-%# 定义 \subjclass,这段代码改编自 AMS 文档类
-%# Define \subjclass, the code is adopted from AMS classes
-\newcommand*\subjclass[2][2020]{%
- \def\@subjclass{#2}%
- \@ifundefined{subjclassname@#1}{%
- \ClassWarning{\@currname}{Unknown edition (#1) of Mathematics
- Subject Classification; using '2020'}%
- \expandafter\let\expandafter\subjclassname\csname subjclassname@2020\endcsname
- }{%
- \expandafter\let\expandafter\subjclassname\csname subjclassname@#1\endcsname
- }%
- \PJL@prethanks{{\itshape\subjclassname.}\enspace\@subjclass{}.}
-}
-\@namedef{subjclassname@1991}{%
- \textup{1991} Mathematics Subject Classification}
-\@namedef{subjclassname@2000}{%
- \textup{2000} Mathematics Subject Classification}
-\@namedef{subjclassname@2010}{%
- \textup{2010} Mathematics Subject Classification}
-\@namedef{subjclassname@2020}{%
- \textup{2020} Mathematics Subject Classification}
-
-}
-%</PJLauthor>
-%
-%<*PJLdate>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{
- family = @PJLdate,
- prefix = @PJLdate@,
-}
-%# 草稿模式或快速模式
-%# Draft mode or fast mode
-\DeclareBoolOption[false]{draft}
-\DeclareBoolOption[false]{fast}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-%# 下面的代码设定了选项之间的关系
-%# The following code sets the relationship between options
-\if@PJLdate@draft
- \@PJLdate@fasttrue
-\fi
-%# 定义 \PJLdate 的同义指令
-%# Define synonym macros of \PJLdate
-\DeclareDocumentCommand{\TheDate}{}{\PJLdate}
-\DeclareDocumentCommand{\PLdate}{}{\PJLdate}
-%# 快速模式下直接输出原日期字符串
-%# Directly output the original date string in fast mode
-\if@PJLdate@fast\let\PJLdate\relax\endinput\fi
-
-%# 载入多语言支持
-%# Load multi-language support
-\RequirePackage{PJLlang}
-
-%# 下面一行是为了避免使用 authblk 时产生的错误
-%# The following line is for "authblk"
-\robustify\@latex@warning@no@line
-
-%# 消除一些警告
-%# Eliminate some warnings
-\RequirePackage{silence}
-\WarningFilter*{datetime2}{Date-Time Language Module}
-%# 分别引入负责西文日期和 CJK 日期的宏包
-%# Use packages resp. for western date and CJK date
-\PassOptionsToPackage{fr-FR,en-US}{datetime2}
-\RequirePackage{datetime2}
-\RequirePackage{zhnumber}
-
-%# 在 CJK 模式下将 DTMdate 定义为 zhdate
-%# Maps DTMdate to zhdate in CJK context
-\let\@DTMdate@PJLoriginal\@DTMdate
-\gappto{\PJLlang@langconfig@common}{%
- \let\@DTMdate\@DTMdate@PJLoriginal%
-}
-\gappto{\PJLlang@langconfig@CN}{%
- \renewcommand*{\@DTMdate}[1]{%
- \expandafter\@dtm@parsedate#1\@dtm@endparsedate%
- \zhdate{\@dtm@year/\@dtm@month/\@dtm@day}%
- }%
-}
-\gappto{\PJLlang@langconfig@TC}{%
- \renewcommand*{\@DTMdate}[1]{%
- \expandafter\@dtm@parsedate#1\@dtm@endparsedate%
- \zhdate{\@dtm@year/\@dtm@month/\@dtm@day}%
- }%
-}
-\gappto{\PJLlang@langconfig@JP}{%
- \renewcommand*{\@DTMdate}[1]{%
- \expandafter\@dtm@parsedate#1\@dtm@endparsedate%
- \zhdate{\@dtm@year/\@dtm@month/\@dtm@day}%
- }%
-}
-
-%# 提供命令 PJLdate
-%# Provide the macro PJLdate
-\providecommand*{\PJLdate}[1]{\DTMdate{#1}}
-%</PJLdate>
-%
-%<*PJLdraft>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{
- family = @PJLdraft,
- prefix = @PJLdraft@,
-}
-%# 草稿模式或快速模式
-%# Draft mode or fast mode
-\DeclareBoolOption[false]{draft}
-\DeclareBoolOption[false]{fast}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-%# 下面的代码设定了选项之间的关系
-%# The following code sets the relationship between options
-\if@PJLdraft@draft
- \@PJLdraft@fasttrue
-\fi
-
-%# 载入多语言支持
-%# Load multi-language support
-\RequirePackage{PJLlang}
-%# 载入颜色支持
-%# Load support for colors
-\RequirePackage{xcolor}
-
-%# 命令中的默认字体
-%# Default font in the macro
-\def\dnfFont{\ttfamily}
-\def\needgraphFont{\ttfamily}
-
-%# 命令中的文字
-%# Text in the macro
-\def\dnfTextEN{To be finished}
-\def\needgraphTextEN{A graph is needed here}
-\def\dnfTextFR{Pas encore fini}
-\def\needgraphTextFR{Il manque une image ici}
-\def\dnfTextDE{Nicht beendet}
-\def\needgraphTextDE{Benötigen Sie ein Bild}
-\def\dnfTextIT{Per essere finito}
-\def\needgraphTextIT{Manca un'immagine qui}
-\def\dnfTextPT{Não terminou}
-\def\needgraphTextPT{Precisa de uma foto aqui}
-\def\dnfTextBR{Não terminou}
-\def\needgraphTextBR{Precisa de uma foto aqui}
-\def\dnfTextES{Estar terminado}
-\def\needgraphTextES{Falta una imagen aquí}
-\def\dnfTextCN{这里尚未完成}
-\def\needgraphTextCN{这里需要一张图片}
-\def\dnfTextTC{這裡尚未完成}
-\def\needgraphTextTC{這裡需要一張圖片}
-\def\dnfTextJP{終わってない}
-\def\needgraphTextJP{まだ画像が必要です}
-\def\dnfTextRU{Не закончен}
-\def\needgraphTextRU{Еще нужна картинка}
-
-%# 命令中的颜色
-%# Default color in the macro
-\definecolor{dnfColor}{RGB}{21,122,20}
-\definecolor{needgraphColor}{RGB}{70,130,180}
-
-\if@PJLdraft@fast
-%# 快速模式用 fbox 定义
-%# Use fbox in fast mode
- \newcommand{\plainBox}[2][-paper]{\textcolor{#1}{%
- \setlength{\fboxsep}{1.5pt}%
- \setlength{\fboxrule}{1.2pt}%
- \fbox{#2}}}
-\else
-%# 正常模式用 tcolorbox 定义
-%# Use tcolorbox in normal mode
- \PassOptionsToPackage{many}{tcolorbox}
- \RequirePackage{tcolorbox}
- \newtcbox{\plainBox}[1][-paper]{enhanced jigsaw,%
- on line, arc = 1.2pt, outer arc = 1pt,breakable,%
- colframe = #1,colupper=#1,opacityback=0,%
- boxsep = 1pt,boxrule = 1.2pt,%
- left = 1pt, right = 1pt, top = 0pt, bottom = 0pt,%
- }
-\fi
-
-%# 命令中的计数器
-%# Counters for the macro
-\newcounter{dnfcnt}
-\newcounter{needgraphcnt}
-
-%# 尚未完成的标记
-%# Mark for ``did not finish''
-\NewDocumentCommand{\dnf}{d<>}{%
- \noindent\plainBox[dnfColor]%
- {\normalfont\dnfFont\bfseries\small%
- \csname dnfText\csname\languagename ABBR\endcsname\endcsname%
- \stepcounter{dnfcnt}~\#\thednfcnt%
- \IfNoValueF{#1}{\,: #1}}%
-}
-%# 需要图片的标记
-%# Mark for ``Graph needed''
-\NewDocumentCommand{\needgraph}{d<>}{%
- \begin{center}%
- \plainBox[needgraphColor]%
- {\normalfont\needgraphFont\bfseries\small%
- \csname needgraphText\csname\languagename ABBR\endcsname\endcsname%
- \stepcounter{needgraphcnt}~\#\theneedgraphcnt%
- \IfNoValueF{#1}{\,: #1}}%
- \end{center}%
-}
-%</PJLdraft>
-%
-%<*PJLlang>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{%
- family = @PJLlang,
- prefix = @PJLlang@
-}
-%# 使用 polyglossia 而不是 babel 进行设置,目前还不完善
-%# Use polyglossia instead of babel
-\DeclareBoolOption[false]{polyglossia}
-
-%# 用于记录该语言是否被启用
-%# To record whether the language is enabled in the document
-\newif\if@PJLlang@enable@all\@PJLlang@enable@alltrue
-\newif\if@PJLlang@enable@EN\@PJLlang@enable@ENfalse
-\newif\if@PJLlang@enable@FR\@PJLlang@enable@FRfalse
-\newif\if@PJLlang@enable@DE\@PJLlang@enable@DEfalse
-\newif\if@PJLlang@enable@IT\@PJLlang@enable@ITfalse
-\newif\if@PJLlang@enable@PT\@PJLlang@enable@PTfalse
-\newif\if@PJLlang@enable@BR\@PJLlang@enable@BRfalse
-\newif\if@PJLlang@enable@ES\@PJLlang@enable@ESfalse
-\newif\if@PJLlang@enable@CN\@PJLlang@enable@CNfalse
-\newif\if@PJLlang@enable@TC\@PJLlang@enable@TCfalse
-\newif\if@PJLlang@enable@JP\@PJLlang@enable@JPfalse
-\newif\if@PJLlang@enable@RU\@PJLlang@enable@RUfalse
-%# 用来存储要传递给babel的选项
-%# To store the option list to pass to babel
-\def\PJLlang@babeloptions{}
-%# 语言选项:启用该语言并添加相应的 babel 参数
-%# The language options: enable the corresponding language and add the corresponding options to babel
-\DeclareVoidOption{EN}{\@PJLlang@enable@allfalse\@PJLlang@enable@ENtrue\providecommand{\PJLlang@mainlang}{EN}\gpreto{\PJLlang@babeloptions}{,english}}
-\DeclareVoidOption{english}{\@PJLlang@enable@allfalse\@PJLlang@enable@ENtrue\providecommand{\PJLlang@mainlang}{EN}\gpreto{\PJLlang@babeloptions}{,english}}
-\DeclareVoidOption{English}{\@PJLlang@enable@allfalse\@PJLlang@enable@ENtrue\providecommand{\PJLlang@mainlang}{EN}\gpreto{\PJLlang@babeloptions}{,english}}
-\DeclareVoidOption{FR}{\@PJLlang@enable@allfalse\@PJLlang@enable@FRtrue\providecommand{\PJLlang@mainlang}{FR}\gpreto{\PJLlang@babeloptions}{,french}}
-\DeclareVoidOption{french}{\@PJLlang@enable@allfalse\@PJLlang@enable@FRtrue\providecommand{\PJLlang@mainlang}{FR}\gpreto{\PJLlang@babeloptions}{,french}}
-\DeclareVoidOption{French}{\@PJLlang@enable@allfalse\@PJLlang@enable@FRtrue\providecommand{\PJLlang@mainlang}{FR}\gpreto{\PJLlang@babeloptions}{,french}}
-\DeclareVoidOption{DE}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}\gpreto{\PJLlang@babeloptions}{,ngerman}}
-\DeclareVoidOption{german}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}\gpreto{\PJLlang@babeloptions}{,ngerman}}
-\DeclareVoidOption{ngerman}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}\gpreto{\PJLlang@babeloptions}{,ngerman}}
-\DeclareVoidOption{German}{\@PJLlang@enable@allfalse\@PJLlang@enable@DEtrue\providecommand{\PJLlang@mainlang}{DE}\gpreto{\PJLlang@babeloptions}{,ngerman}}
-\DeclareVoidOption{IT}{\@PJLlang@enable@allfalse\@PJLlang@enable@ITtrue\providecommand{\PJLlang@mainlang}{IT}\gpreto{\PJLlang@babeloptions}{,italian}}
-\DeclareVoidOption{italian}{\@PJLlang@enable@allfalse\@PJLlang@enable@ITtrue\providecommand{\PJLlang@mainlang}{IT}\gpreto{\PJLlang@babeloptions}{,italian}}
-\DeclareVoidOption{Italian}{\@PJLlang@enable@allfalse\@PJLlang@enable@ITtrue\providecommand{\PJLlang@mainlang}{IT}\gpreto{\PJLlang@babeloptions}{,italian}}
-\DeclareVoidOption{PT}{\@PJLlang@enable@allfalse\@PJLlang@enable@PTtrue\providecommand{\PJLlang@mainlang}{PT}\gpreto{\PJLlang@babeloptions}{,portuguese}}
-\DeclareVoidOption{portuguese}{\@PJLlang@enable@allfalse\@PJLlang@enable@PTtrue\providecommand{\PJLlang@mainlang}{PT}\gpreto{\PJLlang@babeloptions}{,portuguese}}
-\DeclareVoidOption{Portuguese}{\@PJLlang@enable@allfalse\@PJLlang@enable@PTtrue\providecommand{\PJLlang@mainlang}{PT}\gpreto{\PJLlang@babeloptions}{,portuguese}}
-\DeclareVoidOption{BR}{\@PJLlang@enable@allfalse\@PJLlang@enable@BRtrue\providecommand{\PJLlang@mainlang}{BR}\gpreto{\PJLlang@babeloptions}{,brazilian}}
-\DeclareVoidOption{brazilian}{\@PJLlang@enable@allfalse\@PJLlang@enable@BRtrue\providecommand{\PJLlang@mainlang}{BR}\gpreto{\PJLlang@babeloptions}{,brazilian}}
-\DeclareVoidOption{Brazilian}{\@PJLlang@enable@allfalse\@PJLlang@enable@BRtrue\providecommand{\PJLlang@mainlang}{BR}\gpreto{\PJLlang@babeloptions}{,brazilian}}
-\DeclareVoidOption{ES}{\@PJLlang@enable@allfalse\@PJLlang@enable@EStrue\providecommand{\PJLlang@mainlang}{ES}\gpreto{\PJLlang@babeloptions}{,spanish}}
-\DeclareVoidOption{spanish}{\@PJLlang@enable@allfalse\@PJLlang@enable@EStrue\providecommand{\PJLlang@mainlang}{ES}\gpreto{\PJLlang@babeloptions}{,spanish}}
-\DeclareVoidOption{Spanish}{\@PJLlang@enable@allfalse\@PJLlang@enable@EStrue\providecommand{\PJLlang@mainlang}{ES}\gpreto{\PJLlang@babeloptions}{,spanish}}
-\DeclareVoidOption{CN}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{chinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{Chinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{schinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{SChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{simplifiedchinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{SimplifiedChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@CNtrue\providecommand{\PJLlang@mainlang}{CN}}
-\DeclareVoidOption{TC}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
-\DeclareVoidOption{tchinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
-\DeclareVoidOption{TChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
-\DeclareVoidOption{traditionalchinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
-\DeclareVoidOption{TraditionalChinese}{\@PJLlang@enable@allfalse\@PJLlang@enable@TCtrue\providecommand{\PJLlang@mainlang}{TC}}
-\DeclareVoidOption{JP}{\@PJLlang@enable@allfalse\@PJLlang@enable@JPtrue\providecommand{\PJLlang@mainlang}{JP}\gpreto{\PJLlang@babeloptions}{,japanese}}
-\DeclareVoidOption{japanese}{\@PJLlang@enable@allfalse\@PJLlang@enable@JPtrue\providecommand{\PJLlang@mainlang}{JP}\gpreto{\PJLlang@babeloptions}{,japanese}}
-\DeclareVoidOption{Japanese}{\@PJLlang@enable@allfalse\@PJLlang@enable@JPtrue\providecommand{\PJLlang@mainlang}{JP}\gpreto{\PJLlang@babeloptions}{,japanese}}
-\DeclareVoidOption{RU}{\@PJLlang@enable@allfalse\@PJLlang@enable@RUtrue\providecommand{\PJLlang@mainlang}{RU}\gpreto{\PJLlang@babeloptions}{,russian}}
-\DeclareVoidOption{russian}{\@PJLlang@enable@allfalse\@PJLlang@enable@RUtrue\providecommand{\PJLlang@mainlang}{RU}\gpreto{\PJLlang@babeloptions}{,russian}}
-\DeclareVoidOption{Russian}{\@PJLlang@enable@allfalse\@PJLlang@enable@RUtrue\providecommand{\PJLlang@mainlang}{RU}\gpreto{\PJLlang@babeloptions}{,russian}}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-
-%# 从全局参数中去除 chinese 和 Chinese
-%# Remove chinese and Chinese from global options
-\ExplSyntaxOn
-\cs_new_protected:cpn { @clearglobaloption } #1
- {
- \clist_remove_all:cn { @classoptionslist } { #1 }
- }
-\ExplSyntaxOff
-
-\@clearglobaloption{chinese}
-\@clearglobaloption{Chinese}
-
-%# 默认语言:英语
-%# Default main language: English
-\providecommand{\PJLlang@mainlang}{EN}
-
-%# 启用全部支持的语言
-%# Enable all supported language
-\if@PJLlang@enable@all
- \@PJLlang@enable@ENtrue
- \@PJLlang@enable@FRtrue
- \@PJLlang@enable@DEtrue
- \@PJLlang@enable@ITtrue
- \@PJLlang@enable@PTtrue
- \@PJLlang@enable@BRtrue
- \@PJLlang@enable@EStrue
- \@PJLlang@enable@CNtrue
- \@PJLlang@enable@TCtrue
- \@PJLlang@enable@JPtrue
- \@PJLlang@enable@RUtrue
-\fi
-
-%# 语言名称的缩写
-%# Abbreviation of language name
-\newcommand\englishABBR{EN}
-\newcommand\frenchABBR{FR}
-\newcommand\ngermanABBR{DE}
-\newcommand\italianABBR{IT}
-\newcommand\portugueseABBR{PT}
-\newcommand\brazilianABBR{BR}
-\newcommand\spanishABBR{ES}
-\newcommand\schineseABBR{CN}
-\newcommand\tchineseABBR{TC}
-\newcommand\japaneseABBR{JP}
-\newcommand\russianABBR{RU}
-
-%# 将字符串转换为相应的缩写
-%# Convert a string to the corresponding abbreviation
-\ExplSyntaxOn
-% See https://tex.stackexchange.com/a/610146
-\NewExpandableDocumentCommand{\StrToABBR}{m}
- {
- \str_case_e:nn { \str_foldcase:n { #1 } }
- {
- {cn} {CN}
- {chinese} {CN}
- {schinese} {CN}
- {simplifiedchinese} {CN}
- {tc} {TC}
- {tchinese} {TC}
- {traditionalchinese} {TC}
- {jp} {JP}
- {japanese} {JP}
- {en} {EN}
- {english} {EN}
- {fr} {FR}
- {french} {FR}
- {de} {DE}
- {ngerman} {DE}
- {it} {IT}
- {italian} {IT}
- {pt} {PT}
- {portuguese} {PT}
- {br} {BR}
- {brazilian} {BR}
- {es} {ES}
- {spanish} {ES}
- {german} {DE}
- {ru} {RU}
- {russian} {RU}
- }
- }
-
-\NewExpandableDocumentCommand{\StrToTYPE}{m}
- {
- \str_case_e:nn { \str_foldcase:n { #1 } }
- {
- {cn} {CJK}
- {chinese} {CJK}
- {schinese} {CJK}
- {simplifiedchinese} {CJK}
- {tc} {CJK}
- {tchinese} {CJK}
- {traditionalchinese} {CJK}
- {jp} {CJK}
- {japanese} {CJK}
- {en} {Latin}
- {english} {Latin}
- {fr} {Latin}
- {french} {Latin}
- {de} {Latin}
- {ngerman} {Latin}
- {it} {Latin}
- {italian} {Latin}
- {pt} {Latin}
- {portuguese} {Latin}
- {br} {Latin}
- {brazilian} {Latin}
- {es} {Latin}
- {spanish} {Latin}
- {german} {Latin}
- {ru} {Latin}
- {russian} {Latin}
- }
- }
-\ExplSyntaxOff
-
-%# 在 pdfLaTeX 编译时载入编码设置
-%# Load the encoding settings when pdfLaTeX is used
-\RequirePackage{iftex}
-\ifPDFTeX
-\RequirePackage[T1]{fontenc}
-\RequirePackage{inputenc}
-\fi
-
-\if@PJLlang@polyglossia
-%# polyglossia 对应的设置
-%# Configure with `polyglossia`
- \RequirePackage{polyglossia}
- \setdefaultlanguage{english}
- \setotherlanguage[frenchpart=false]{french}
- \setotherlanguage{ngerman}
- \setotherlanguage{spanish}
- \setotherlanguage{portuguese}
- \setotherlanguage[variant=brazilian]{portuguese}
- \setotherlanguage{italian}
- \ifPDFTeX\else
- \setotherlanguage{russian}
- \setotherlanguage{japanese}
- \RequirePackage{silence}
- \WarningFilter{polyglossia}{Asking to add empty feature to latin font(Script="CJK" to scripttag "")}
- \fi
-\else
-%# babel 对应的设置
-%# Configure with `babel`
- \if@PJLlang@enable@all
- \ifPDFTeX\else
- \PassOptionsToPackage{japanese,russian}{babel}
- \fi
- \PassOptionsToPackage{italian,portuguese,brazilian,spanish,es-notilde,es-noquoting,ngerman,french,english,shorthands=off}{babel}
- \else
- \PassOptionsToPackage{\PJLlang@babeloptions}{babel}
- \fi
- \PassOptionsToPackage{italian,brazilian,spanish,ngerman,french,english}{cleveref}
- \RequirePackage{babel}
- \if@PJLlang@enable@FR
- \frenchsetup{PartNameFull=false}
- \fi
- \if@PJLlang@enable@PT
- \let\PJL@babelord\ord
- \let\ord\relax
- \AtBeginDocument{
- \@ifundefined{ord}{}
- {
- \let\PJL@userord\ord
- \let\ord\relax
- \newcommand{\ord}{%
- \ifmmode\expandafter\PJL@userord\else\expandafter\PJL@babelord\fi%
- }
- }
- }
- \fi
-
- \babelprovide{schinese}
- \babelprovide{tchinese}
-\fi
-
-%# 本地化 \today
-%# Localize \today
-\let\today@PJLoriginal\today
-\newcommand{\PJLlang@langconfig@common}{%
- \ifdefined\DTMtoday%
- \let\today\DTMtoday%
- \else%
- \let\today\today@PJLoriginal%
- \fi%
-}
-
-%# 各个语言的设置
-%# The configuration for each language
-\newcommand{\PJLlang@langconfig@CN}{%
- \def\abstractname{摘要}%
- \def\proofname{证明}%
- \def\contentsname{目录}%
- \def\listfigurename{插图}%
- \def\listtablename{表格}%
- \def\figurename{图}%
- \def\tablename{表}%
- \def\indexname{索引}%
- \def\appendixname{附录}%
- \def\refname{参考文献}%
- \def\bibname{参考文献}%
- \let\today\zhtoday%
- \renewcommand{\languagename}{schinese}%
-}
-\newcommand{\PJLlang@langconfig@TC}{%
- \def\abstractname{摘要}%
- \def\proofname{證明}%
- \def\contentsname{目錄}%
- \def\listfigurename{插圖}%
- \def\listtablename{表格}%
- \def\figurename{圖}%
- \def\tablename{表}%
- \def\indexname{索引}%
- \def\appendixname{附錄}%
- \def\refname{參考文獻}%
- \def\bibname{參考文獻}%
- \let\today\zhtoday%
- \renewcommand{\languagename}{tchinese}%
-}
-\newcommand{\PJLlang@langconfig@JP}{%
- \selectlanguage{japanese}%
-}
-\newcommand{\PJLlang@langconfig@EN}{%
- \selectlanguage{english}%
-}
-\newcommand{\PJLlang@langconfig@FR}{%
- \selectlanguage{french}%
-% The line below is currently only needed for 'babel', but also works with 'polyglossia'
- \def\frenchpartname{Partie}%
-}
-\newcommand{\PJLlang@langconfig@DE}{%
- \selectlanguage{ngerman}%
-}
-\newcommand{\PJLlang@langconfig@IT}{%
- \selectlanguage{italian}%
-}
-\newcommand{\PJLlang@langconfig@PT}{%
- \selectlanguage{portuguese}%
-}
-\newcommand{\PJLlang@langconfig@BR}{%
- \selectlanguage{brazilian}%
-}
-\newcommand{\PJLlang@langconfig@ES}{%
- \selectlanguage{spanish}%
-}
-\newcommand{\PJLlang@langconfig@RU}{%
- \selectlanguage{russian}%
-}
-
-%# 用于增加语言设置的用户指令 AddLanguageSetting
-%# User command for adding language settings
-\NewDocumentCommand\AddLanguageSetting{d()m}{%
-\IfNoValueTF{#1}%
- {\gappto{\PJLlang@langconfig@common}{#2}}%
- {\expandafter\gappto\expandafter{\csname PJLlang@langconfig@\StrToABBR{#1}\endcsname}{#2}}%
-}
-
-\RequirePackage{setspace}
-%# 行距的设置
-%# Line spacing configuration
-\def\PJL@config@linespacing{\setstretch{1.00}}
-\def\PJL@config@CJKlinespacing{\onehalfspacing}
-\newcommand{\PJLsetlinespacing}[1]{\renewcommand{\PJL@config@linespacing}{#1}}
-\newcommand{\PJLsetCJKlinespacing}[1]{\renewcommand{\PJL@config@CJKlinespacing}{#1}}
-%# 缩进的设置
-%# Parindent configuration
-\@ifclassloaded{beamer}{
- \def\PJL@config@parindent{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{0em}}}
- \def\PJL@config@CJKparindent{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{0em}}}
-}{
- \def\PJL@config@parindent{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{1.5em}}}
- \def\PJL@config@CJKparindent{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{2em}}}
-}
-\newcommand{\PJLsetparindent}[1]{\renewcommand{\PJL@config@parindent}{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{#1}}}}
-\newcommand{\PJLsetCJKparindent}[1]{\renewcommand{\PJL@config@CJKparindent}{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{#1}}}}
-%# 合并设置
-%# All-in-all configuration
-\def\PJL@config@CJK{\PJL@config@CJKlinespacing\PJL@config@CJKparindent}
-\def\PJL@config@Latin{\PJL@config@linespacing\PJL@config@parindent}
-%
-%# UseLanguage 的核心部分,只能在正文中使用
-%# The core part of UseLanguage, can be used only in the main text, not preamble
-\NewDocumentCommand{\UseLanguageCORE}{m}{%
- \PJLlang@langconfig@common%
- \csname PJL@config@\StrToTYPE{#1}\endcsname%
- \csname PJLlang@langconfig@\StrToABBR{#1}\endcsname%
-}
-%# 用于选定语言的 UseLanguage
-%# Macro for selecting language
-\NewDocumentCommand{\UseLanguage}{m}{%
- \ifx\@onlypreamble\@notprerr%
- \UseLanguageCORE{#1}%
- \else%
- \AfterEndPreamble{\UseLanguageCORE{#1}}%
- \fi%
-}
-%# 用于局部选定语言的 UseOtherLanguage
-%# Macro for selecting language locally
-\NewDocumentCommand{\UseOtherLanguage}{mm}{%
-\begingroup\begingroup%
- \PJLlang@langconfig@common%
- \csname PJLlang@langconfig@\StrToABBR{#1}\endcsname%
- #2%
-\endgroup\endgroup%
-}
-
-%# 运行默认语言的设置
-%# Execute the configuration of the main language
-\expandafter\UseLanguage\expandafter{\PJLlang@mainlang}
-%</PJLlang>
-%
-%<*PJLlogo>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{
- family = @PJLlogo,
- prefix = @PJLlogo@,
-}
-%# 草稿模式或快速模式
-%# Draft mode or fast mode
-\DeclareBoolOption[false]{draft}
-\DeclareBoolOption[false]{fast}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-%# 下面的代码设定了选项之间的关系
-%# The following code sets the relationship between options
-\if@PJLlogo@draft
- \@PJLlogo@fasttrue
-\fi
-%# 快速模式下直接输出字符串 ProjLib
-%# Directly output the string ``ProjLib'' in fast mode
-\if@PJLlogo@fast\def\ProjLib{{\normalfont ProjLib}}\endinput\fi
-
-%# 以下选取字体并定义 Logo
-%# Below select the font and define the logo
-\RequirePackage{xcolor}
-\RequirePackage{graphicx}
-\ifdefined\fontspec
- \newfontface{\PJLlogo@font}{LinBiolinum_R.otf}
-\else
- \RequirePackage[T1]{fontenc}
- \newcommand{\PJLlogo@font}{\fontfamily{LinuxBiolinumT-TLF}\selectfont}
-\fi
-
-\newcommand{\PJLSigmaJ}{%
- \vbox{\offinterlineskip
- \ialign{%
- \hfil##\hfil\cr
- \hidewidth\hskip0.15ex\scalebox{0.4}{\rotatebox{-10}{\usefont{U}{zeur}{b}{n}\symbol{"06}}}\hidewidth\cr
- \noalign{\kern0.15ex}
- \j\cr
- }%
- }%
-}
-
-\newcommand{\ProjLib@generic}[1]{%
- \begingroup
- \normalfont\PJLlogo@font
- \textcolor{blue!60!cyan}{P}%
- \textcolor{blue!45!cyan}{r}%
- \textcolor{blue!30!cyan}{o}%
- \textcolor{green!70!black}{#1}%
- \textcolor{red!20!yellow}{L}%
- \textcolor{red!40!yellow}{i}%
- \textcolor{red!60!yellow}{b}%
- \endgroup
-}
-\DeclareRobustCommand*{\ProjLib}{\ProjLib@generic{\PJLSigmaJ}}
-\DeclareRobustCommand*{\ProjLibText}{\ProjLib@generic{j}}
-%</PJLlogo>
-%
-%<*PJLmath>
-%# 载入常用数学宏包
-%# Load commonly used math packages
-\RequirePackage{mathtools}
-\RequirePackage{mathrsfs}
-\@ifpackageloaded{unicode-math}{}{\RequirePackage{amssymb}}
-
-%%================================
-%% Shorthands
-%%================================
-%# 常见代数结构的捷径
-%# Shortcuts for commonly used algebraic structures
-\providecommand{\N}{\ensuremath{\mathbb{N}}}
-\providecommand{\Z}{\ensuremath{\mathbb{Z}}}
-\providecommand{\Q}{\ensuremath{\mathbb{Q}}}
-\providecommand{\R}{\ensuremath{\mathbb{R}}}
-\providecommand{\C}{\ensuremath{\mathbb{C}}}
-\providecommand{\F}{\ensuremath{\mathbb{F}}}
-\providecommand{\A}{\ensuremath{\mathbb{A}}}
-
-%# mathbb 的捷径
-%# Shortcuts for blackboard bold face
-\providecommand{\bb}[1]{\ensuremath{\mathbb{#1}}}
-\providecommand{\bbA}{\ensuremath{\mathbb{A}}}
-\providecommand{\bbB}{\ensuremath{\mathbb{B}}}
-\providecommand{\bbC}{\ensuremath{\mathbb{C}}}
-\providecommand{\bbD}{\ensuremath{\mathbb{D}}}
-\providecommand{\bbE}{\ensuremath{\mathbb{E}}}
-\providecommand{\bbF}{\ensuremath{\mathbb{F}}}
-\providecommand{\bbG}{\ensuremath{\mathbb{G}}}
-\providecommand{\bbH}{\ensuremath{\mathbb{H}}}
-\providecommand{\bbI}{\ensuremath{\mathbb{I}}}
-\providecommand{\bbJ}{\ensuremath{\mathbb{J}}}
-\providecommand{\bbK}{\ensuremath{\mathbb{K}}}
-\providecommand{\bbL}{\ensuremath{\mathbb{L}}}
-\providecommand{\bbM}{\ensuremath{\mathbb{M}}}
-\providecommand{\bbN}{\ensuremath{\mathbb{N}}}
-\providecommand{\bbO}{\ensuremath{\mathbb{O}}}
-\providecommand{\bbP}{\ensuremath{\mathbb{P}}}
-\providecommand{\bbQ}{\ensuremath{\mathbb{Q}}}
-\providecommand{\bbR}{\ensuremath{\mathbb{R}}}
-\providecommand{\bbS}{\ensuremath{\mathbb{S}}}
-\providecommand{\bbT}{\ensuremath{\mathbb{T}}}
-\providecommand{\bbU}{\ensuremath{\mathbb{U}}}
-\providecommand{\bbV}{\ensuremath{\mathbb{V}}}
-\providecommand{\bbW}{\ensuremath{\mathbb{W}}}
-\providecommand{\bbX}{\ensuremath{\mathbb{X}}}
-\providecommand{\bbY}{\ensuremath{\mathbb{Y}}}
-\providecommand{\bbZ}{\ensuremath{\mathbb{Z}}}
-
-%# mathcal 的捷径
-%# Shortcuts for calligraphic shape
-\providecommand{\mc}[1]{\ensuremath{\mathcal{#1}}}
-\providecommand{\mcA}{\ensuremath{\mathcal{A}}}
-\providecommand{\mcB}{\ensuremath{\mathcal{B}}}
-\providecommand{\mcC}{\ensuremath{\mathcal{C}}}
-\providecommand{\mcD}{\ensuremath{\mathcal{D}}}
-\providecommand{\mcE}{\ensuremath{\mathcal{E}}}
-\providecommand{\mcF}{\ensuremath{\mathcal{F}}}
-\providecommand{\mcG}{\ensuremath{\mathcal{G}}}
-\providecommand{\mcH}{\ensuremath{\mathcal{H}}}
-\providecommand{\mcI}{\ensuremath{\mathcal{I}}}
-\providecommand{\mcJ}{\ensuremath{\mathcal{J}}}
-\providecommand{\mcK}{\ensuremath{\mathcal{K}}}
-\providecommand{\mcL}{\ensuremath{\mathcal{L}}}
-\providecommand{\mcM}{\ensuremath{\mathcal{M}}}
-\providecommand{\mcN}{\ensuremath{\mathcal{N}}}
-\providecommand{\mcO}{\ensuremath{\mathcal{O}}}
-\providecommand{\mcP}{\ensuremath{\mathcal{P}}}
-\providecommand{\mcQ}{\ensuremath{\mathcal{Q}}}
-\providecommand{\mcR}{\ensuremath{\mathcal{R}}}
-\providecommand{\mcS}{\ensuremath{\mathcal{S}}}
-\providecommand{\mcT}{\ensuremath{\mathcal{T}}}
-\providecommand{\mcU}{\ensuremath{\mathcal{U}}}
-\providecommand{\mcV}{\ensuremath{\mathcal{V}}}
-\providecommand{\mcW}{\ensuremath{\mathcal{W}}}
-\providecommand{\mcX}{\ensuremath{\mathcal{X}}}
-\providecommand{\mcY}{\ensuremath{\mathcal{Y}}}
-\providecommand{\mcZ}{\ensuremath{\mathcal{Z}}}
-
-\providecommand{\cal}[1]{\ensuremath{\mathcal{#1}}}
-\providecommand{\calA}{\ensuremath{\mathcal{A}}}
-\providecommand{\calB}{\ensuremath{\mathcal{B}}}
-\providecommand{\calC}{\ensuremath{\mathcal{C}}}
-\providecommand{\calD}{\ensuremath{\mathcal{D}}}
-\providecommand{\calE}{\ensuremath{\mathcal{E}}}
-\providecommand{\calF}{\ensuremath{\mathcal{F}}}
-\providecommand{\calG}{\ensuremath{\mathcal{G}}}
-\providecommand{\calH}{\ensuremath{\mathcal{H}}}
-\providecommand{\calI}{\ensuremath{\mathcal{I}}}
-\providecommand{\calJ}{\ensuremath{\mathcal{J}}}
-\providecommand{\calK}{\ensuremath{\mathcal{K}}}
-\providecommand{\calL}{\ensuremath{\mathcal{L}}}
-\providecommand{\calM}{\ensuremath{\mathcal{M}}}
-\providecommand{\calN}{\ensuremath{\mathcal{N}}}
-\providecommand{\calO}{\ensuremath{\mathcal{O}}}
-\providecommand{\calP}{\ensuremath{\mathcal{P}}}
-\providecommand{\calQ}{\ensuremath{\mathcal{Q}}}
-\providecommand{\calR}{\ensuremath{\mathcal{R}}}
-\providecommand{\calS}{\ensuremath{\mathcal{S}}}
-\providecommand{\calT}{\ensuremath{\mathcal{T}}}
-\providecommand{\calU}{\ensuremath{\mathcal{U}}}
-\providecommand{\calV}{\ensuremath{\mathcal{V}}}
-\providecommand{\calW}{\ensuremath{\mathcal{W}}}
-\providecommand{\calX}{\ensuremath{\mathcal{X}}}
-\providecommand{\calY}{\ensuremath{\mathcal{Y}}}
-\providecommand{\calZ}{\ensuremath{\mathcal{Z}}}
-
-%# mathfrak 的捷径
-%# Shortcuts for Fraktur shape
-\providecommand{\mf}[1]{\ensuremath{\mathfrak{#1}}}
-\providecommand{\mfa}{\ensuremath{\mathfrak{a}}}
-\providecommand{\mfb}{\ensuremath{\mathfrak{b}}}
-\providecommand{\mfc}{\ensuremath{\mathfrak{c}}}
-\providecommand{\mfd}{\ensuremath{\mathfrak{d}}}
-\providecommand{\mfe}{\ensuremath{\mathfrak{e}}}
-\providecommand{\mff}{\ensuremath{\mathfrak{f}}}
-\providecommand{\mfg}{\ensuremath{\mathfrak{g}}}
-\providecommand{\mfh}{\ensuremath{\mathfrak{h}}}
-\providecommand{\mfi}{\ensuremath{\mathfrak{i}}}
-\providecommand{\mfj}{\ensuremath{\mathfrak{j}}}
-\providecommand{\mfk}{\ensuremath{\mathfrak{k}}}
-\providecommand{\mfl}{\ensuremath{\mathfrak{l}}}
-\providecommand{\mfm}{\ensuremath{\mathfrak{m}}}
-\providecommand{\mfn}{\ensuremath{\mathfrak{n}}}
-\providecommand{\mfo}{\ensuremath{\mathfrak{o}}}
-\providecommand{\mfp}{\ensuremath{\mathfrak{p}}}
-\providecommand{\mfq}{\ensuremath{\mathfrak{q}}}
-\providecommand{\mfr}{\ensuremath{\mathfrak{r}}}
-\providecommand{\mfs}{\ensuremath{\mathfrak{s}}}
-\providecommand{\mft}{\ensuremath{\mathfrak{t}}}
-\providecommand{\mfu}{\ensuremath{\mathfrak{u}}}
-\providecommand{\mfv}{\ensuremath{\mathfrak{v}}}
-\providecommand{\mfw}{\ensuremath{\mathfrak{w}}}
-\providecommand{\mfx}{\ensuremath{\mathfrak{x}}}
-\providecommand{\mfy}{\ensuremath{\mathfrak{y}}}
-\providecommand{\mfz}{\ensuremath{\mathfrak{z}}}
-\providecommand{\mfA}{\ensuremath{\mathfrak{A}}}
-\providecommand{\mfB}{\ensuremath{\mathfrak{B}}}
-\providecommand{\mfC}{\ensuremath{\mathfrak{C}}}
-\providecommand{\mfD}{\ensuremath{\mathfrak{D}}}
-\providecommand{\mfE}{\ensuremath{\mathfrak{E}}}
-\providecommand{\mfF}{\ensuremath{\mathfrak{F}}}
-\providecommand{\mfG}{\ensuremath{\mathfrak{G}}}
-\providecommand{\mfH}{\ensuremath{\mathfrak{H}}}
-\providecommand{\mfI}{\ensuremath{\mathfrak{I}}}
-\providecommand{\mfJ}{\ensuremath{\mathfrak{J}}}
-\providecommand{\mfK}{\ensuremath{\mathfrak{K}}}
-\providecommand{\mfL}{\ensuremath{\mathfrak{L}}}
-\providecommand{\mfM}{\ensuremath{\mathfrak{M}}}
-\providecommand{\mfN}{\ensuremath{\mathfrak{N}}}
-\providecommand{\mfO}{\ensuremath{\mathfrak{O}}}
-\providecommand{\mfP}{\ensuremath{\mathfrak{P}}}
-\providecommand{\mfQ}{\ensuremath{\mathfrak{Q}}}
-\providecommand{\mfR}{\ensuremath{\mathfrak{R}}}
-\providecommand{\mfS}{\ensuremath{\mathfrak{S}}}
-\providecommand{\mfT}{\ensuremath{\mathfrak{T}}}
-\providecommand{\mfU}{\ensuremath{\mathfrak{U}}}
-\providecommand{\mfV}{\ensuremath{\mathfrak{V}}}
-\providecommand{\mfW}{\ensuremath{\mathfrak{W}}}
-\providecommand{\mfX}{\ensuremath{\mathfrak{X}}}
-\providecommand{\mfY}{\ensuremath{\mathfrak{Y}}}
-\providecommand{\mfZ}{\ensuremath{\mathfrak{Z}}}
-
-\providecommand{\frak}[1]{\ensuremath{\mathfrak{#1}}}
-\providecommand{\fraka}{\ensuremath{\mathfrak{a}}}
-\providecommand{\frakb}{\ensuremath{\mathfrak{b}}}
-\providecommand{\frakc}{\ensuremath{\mathfrak{c}}}
-\providecommand{\frakd}{\ensuremath{\mathfrak{d}}}
-\providecommand{\frake}{\ensuremath{\mathfrak{e}}}
-\providecommand{\frakf}{\ensuremath{\mathfrak{f}}}
-\providecommand{\frakg}{\ensuremath{\mathfrak{g}}}
-\providecommand{\frakh}{\ensuremath{\mathfrak{h}}}
-\providecommand{\fraki}{\ensuremath{\mathfrak{i}}}
-\providecommand{\frakj}{\ensuremath{\mathfrak{j}}}
-\providecommand{\frakk}{\ensuremath{\mathfrak{k}}}
-\providecommand{\frakl}{\ensuremath{\mathfrak{l}}}
-\providecommand{\frakm}{\ensuremath{\mathfrak{m}}}
-\providecommand{\frakn}{\ensuremath{\mathfrak{n}}}
-\providecommand{\frako}{\ensuremath{\mathfrak{o}}}
-\providecommand{\frakp}{\ensuremath{\mathfrak{p}}}
-\providecommand{\frakq}{\ensuremath{\mathfrak{q}}}
-\providecommand{\frakr}{\ensuremath{\mathfrak{r}}}
-\providecommand{\fraks}{\ensuremath{\mathfrak{s}}}
-\providecommand{\frakt}{\ensuremath{\mathfrak{t}}}
-\providecommand{\fraku}{\ensuremath{\mathfrak{u}}}
-\providecommand{\frakv}{\ensuremath{\mathfrak{v}}}
-\providecommand{\frakw}{\ensuremath{\mathfrak{w}}}
-\providecommand{\frakx}{\ensuremath{\mathfrak{x}}}
-\providecommand{\fraky}{\ensuremath{\mathfrak{y}}}
-\providecommand{\frakz}{\ensuremath{\mathfrak{z}}}
-\providecommand{\frakA}{\ensuremath{\mathfrak{A}}}
-\providecommand{\frakB}{\ensuremath{\mathfrak{B}}}
-\providecommand{\frakC}{\ensuremath{\mathfrak{C}}}
-\providecommand{\frakD}{\ensuremath{\mathfrak{D}}}
-\providecommand{\frakE}{\ensuremath{\mathfrak{E}}}
-\providecommand{\frakF}{\ensuremath{\mathfrak{F}}}
-\providecommand{\frakG}{\ensuremath{\mathfrak{G}}}
-\providecommand{\frakH}{\ensuremath{\mathfrak{H}}}
-\providecommand{\frakI}{\ensuremath{\mathfrak{I}}}
-\providecommand{\frakJ}{\ensuremath{\mathfrak{J}}}
-\providecommand{\frakK}{\ensuremath{\mathfrak{K}}}
-\providecommand{\frakL}{\ensuremath{\mathfrak{L}}}
-\providecommand{\frakM}{\ensuremath{\mathfrak{M}}}
-\providecommand{\frakN}{\ensuremath{\mathfrak{N}}}
-\providecommand{\frakO}{\ensuremath{\mathfrak{O}}}
-\providecommand{\frakP}{\ensuremath{\mathfrak{P}}}
-\providecommand{\frakQ}{\ensuremath{\mathfrak{Q}}}
-\providecommand{\frakR}{\ensuremath{\mathfrak{R}}}
-\providecommand{\frakS}{\ensuremath{\mathfrak{S}}}
-\providecommand{\frakT}{\ensuremath{\mathfrak{T}}}
-\providecommand{\frakU}{\ensuremath{\mathfrak{U}}}
-\providecommand{\frakV}{\ensuremath{\mathfrak{V}}}
-\providecommand{\frakW}{\ensuremath{\mathfrak{W}}}
-\providecommand{\frakX}{\ensuremath{\mathfrak{X}}}
-\providecommand{\frakY}{\ensuremath{\mathfrak{Y}}}
-\providecommand{\frakZ}{\ensuremath{\mathfrak{Z}}}
-
-%# mathscr 的捷径
-%# Shortcuts for script shape
-\providecommand{\ms}[1]{\ensuremath{\mathscr{#1}}}
-\providecommand{\msA}{\ensuremath{\mathscr{A}}}
-\providecommand{\msB}{\ensuremath{\mathscr{B}}}
-\providecommand{\msC}{\ensuremath{\mathscr{C}}}
-\providecommand{\msD}{\ensuremath{\mathscr{D}}}
-\providecommand{\msE}{\ensuremath{\mathscr{E}}}
-\providecommand{\msF}{\ensuremath{\mathscr{F}}}
-\providecommand{\msG}{\ensuremath{\mathscr{G}}}
-\providecommand{\msH}{\ensuremath{\mathscr{H}}}
-\providecommand{\msI}{\ensuremath{\mathscr{I}}}
-\providecommand{\msJ}{\ensuremath{\mathscr{J}}}
-\providecommand{\msK}{\ensuremath{\mathscr{K}}}
-\providecommand{\msL}{\ensuremath{\mathscr{L}}}
-\providecommand{\msM}{\ensuremath{\mathscr{M}}}
-\providecommand{\msN}{\ensuremath{\mathscr{N}}}
-\providecommand{\msO}{\ensuremath{\mathscr{O}}}
-\providecommand{\msP}{\ensuremath{\mathscr{P}}}
-\providecommand{\msQ}{\ensuremath{\mathscr{Q}}}
-\providecommand{\msR}{\ensuremath{\mathscr{R}}}
-\providecommand{\msS}{\ensuremath{\mathscr{S}}}
-\providecommand{\msT}{\ensuremath{\mathscr{T}}}
-\providecommand{\msU}{\ensuremath{\mathscr{U}}}
-\providecommand{\msV}{\ensuremath{\mathscr{V}}}
-\providecommand{\msW}{\ensuremath{\mathscr{W}}}
-\providecommand{\msX}{\ensuremath{\mathscr{X}}}
-\providecommand{\msY}{\ensuremath{\mathscr{Y}}}
-\providecommand{\msZ}{\ensuremath{\mathscr{Z}}}
-
-\providecommand{\scr}[1]{\ensuremath{\mathscr{#1}}}
-\providecommand{\scrA}{\ensuremath{\mathscr{A}}}
-\providecommand{\scrB}{\ensuremath{\mathscr{B}}}
-\providecommand{\scrC}{\ensuremath{\mathscr{C}}}
-\providecommand{\scrD}{\ensuremath{\mathscr{D}}}
-\providecommand{\scrE}{\ensuremath{\mathscr{E}}}
-\providecommand{\scrF}{\ensuremath{\mathscr{F}}}
-\providecommand{\scrG}{\ensuremath{\mathscr{G}}}
-\providecommand{\scrH}{\ensuremath{\mathscr{H}}}
-\providecommand{\scrI}{\ensuremath{\mathscr{I}}}
-\providecommand{\scrJ}{\ensuremath{\mathscr{J}}}
-\providecommand{\scrK}{\ensuremath{\mathscr{K}}}
-\providecommand{\scrL}{\ensuremath{\mathscr{L}}}
-\providecommand{\scrM}{\ensuremath{\mathscr{M}}}
-\providecommand{\scrN}{\ensuremath{\mathscr{N}}}
-\providecommand{\scrO}{\ensuremath{\mathscr{O}}}
-\providecommand{\scrP}{\ensuremath{\mathscr{P}}}
-\providecommand{\scrQ}{\ensuremath{\mathscr{Q}}}
-\providecommand{\scrR}{\ensuremath{\mathscr{R}}}
-\providecommand{\scrS}{\ensuremath{\mathscr{S}}}
-\providecommand{\scrT}{\ensuremath{\mathscr{T}}}
-\providecommand{\scrU}{\ensuremath{\mathscr{U}}}
-\providecommand{\scrV}{\ensuremath{\mathscr{V}}}
-\providecommand{\scrW}{\ensuremath{\mathscr{W}}}
-\providecommand{\scrX}{\ensuremath{\mathscr{X}}}
-\providecommand{\scrY}{\ensuremath{\mathscr{Y}}}
-\providecommand{\scrZ}{\ensuremath{\mathscr{Z}}}
-
-%%================================
-%% General symbols
-%%================================
-\providecommand{\abs}[1]{\lvert#1\rvert}
-\providecommand{\norm}[1]{\lVert#1\rVert}
-
-\providecommand*{\injection}{\ensuremath{\hookrightarrow}}
-\providecommand*{\surjection}{\ensuremath{\twoheadrightarrow}}
-\providecommand*{\bijection}{\ensuremath{\xrightarrow{\sim}}}
-
-%%================================
-%% Symbols for number theory
-%%================================
-\ifdefined\@@pmod\else
-\let\@@pmod\pmod
-\DeclareRobustCommand{\pmod}{\@ifstar\@pmods\@@pmod}
-\def\@pmods#1{\mkern4mu({\operator@font mod}\mkern 6mu#1)}
-\fi
-
-\providecommand{\genlegendre}[4]{%
- \genfrac{(}{)}{}{#1}{#3}{#4}%
- \if\relax\detokenize{#2}\relax\else_{\!#2}\fi%
-}
-\providecommand{\legendre}[3][]{\genlegendre{}{#1}{#2}{#3}}
-\providecommand{\dlegendre}[3][]{\genlegendre{0}{#1}{#2}{#3}}
-\providecommand{\tlegendre}[3][]{\genlegendre{1}{#1}{#2}{#3}}
-%</PJLmath>
-%
-%<*PJLpaper>
-\RequirePackage{ifthen}
-
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{%
- family = @PJLpaper,
- prefix = @PJLpaper@,
- setkeys=\kvsetkeys
-}
-
-\DeclareStringOption[normal]{paperstyle}
-%# 几种纸张颜色的选项
-%# Several options of different paper color style
-\DeclareVoidOption{yellowpaper}{\kvsetkeys{@PJLpaper}{paperstyle=yellow}}
-\DeclareVoidOption{darkpaper}{\kvsetkeys{@PJLpaper}{paperstyle=dark}}
-\DeclareVoidOption{nordpaper}{\kvsetkeys{@PJLpaper}{paperstyle=nord}}
-%# 预览模式:减去边框
-%# Preview mode: crop the edge
-\DeclareBoolOption[false]{preview}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-
-%%================================
-%% Preview mode
-%%================================
-\ifdefined\PJLnoPreview\else%
- \if@PJLpaper@preview%
- \RequirePackage{calc}
- \AtEndPreamble{%
- \setlength{\paperwidth}{\textwidth*\real{1.05}}%
- \setlength{\paperheight}{%
- (\textheight+\headheight+\headsep+\footskip)*\real{1.05}}%
- \setlength{\oddsidemargin}{(\paperwidth-\textwidth)/2-1in}%
- \setlength{\evensidemargin}{(\paperwidth-\textwidth)/2-1in}%
- \setlength{\topmargin}{(\paperheight-\textheight-\headheight-\headsep-\footskip)/2- 1in}%
- }
- \fi
-\fi
-
-%%================================
-%% Paper color
-%%================================
-\RequirePackage{xcolor}
-\definecolor{paper}{RGB}{255,255,255}
-\definecolor{maintext}{RGB}{0,0,0}
-
-\ifthenelse{\equal{\@PJLpaper@paperstyle}{yellow}}
-{
- \definecolor{paper}{RGB}{247,246,233}
-}
-{\relax}
-
-\ifthenelse{\equal{\@PJLpaper@paperstyle}{dark}}
-{
- \definecolor{paper}{RGB}{30,30,30}
- \definecolor{maintext}{RGB}{207,207,207}
-}
-{\relax}
-
-\ifthenelse{\equal{\@PJLpaper@paperstyle}{nord}}
-{
- \definecolor{paper}{RGB}{46,52,64}
- \definecolor{maintext}{RGB}{214,220,230}
-}
-{\relax}
-
-\newcommand{\PJLglobalcolor}[1]{%
- \color{#1}\global\let\default@color\current@color
-}
-
-%# 设置纸张颜色、文字颜色
-%# Set the paper and text color
-\pagecolor{paper}
-\PJLglobalcolor{maintext}
-\AtEndPreamble{
-\ifdefined\tcbset%
- \tcbset{colupper=maintext,collower=maintext}
-\fi
-}
-%</PJLpaper>
-%
-%<*PJLthm>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
\SetupKeyvalOptions{%
family = @PJLthm,
prefix = @PJLthm@
}
-%# 不建立定理类环境
-%# Do not setup theorem-like environments
\DeclareBoolOption[false]{nothms}
-%# 推迟建立定理类环境
-%# Delay the setup of theorem-like environments to the end of the preamble
\DeclareBoolOption[false]{delaythms}
-%# 不编号定理类环境
-%# Do not number theorem-like environments
\DeclareBoolOption[false]{nothmnum}
-%# 指定如何编号定理类环境
-%# Number theorem-like environments With ...
\DeclareStringOption{thmnum}[PJL@thmnum@default]
-%# 草稿模式或快速模式
-%# Draft mode or fast mode
\DeclareBoolOption[false]{draft}
\DeclareBoolOption[false]{fast}
-%# 引用的名称将随当前语言的不同而改变
-%# Reference name will change with the current language
\DeclareBoolOption[true]{regionalref}
\DeclareBoolOption[false]{originalref}
-%# 名称采用详尽设置或简易设置
-%# Detailed or simple settings for the name of theorem-like environments
\DeclareBoolOption[true]{complexname}
\DeclareBoolOption[false]{simplename}
-%# 处理选项
-%# Process options
\ProcessKeyvalOptions*\relax
-%# 下面的代码设定了选项之间的关系
-%# The following code sets the relationship between options
\if@PJLthm@originalref
\@PJLthm@regionalreffalse
\fi
@@ -1449,8 +69,6 @@
\PassOptionsToPackage{nameinlink}{cleveref}
\RequirePackage{crefthe}
-%# 用于命名定理类环境的用户命令
-%# Macro for naming theorems
\RequirePackage{xparse}
\RequirePackage{xstring}
\NewDocumentCommand{\NameTheorem}{omm}{%
@@ -1483,8 +101,6 @@
}%
}
-%# 用于创建定理类环境的用户命令
-%# Macro for creating theorems
\newcommand\PassFirstToSecond[2]{#2{#1}}%
\NewDocumentCommand{\CreateTheorem}{sm}{%
\begingroup
@@ -1500,13 +116,6 @@
}%
\if@PJLthm@regionalref
\NewDocumentCommand{\InnerCreateTheorem}{mmmod<>d()g}{%
-% #1 = star or no star
-% #2 = name of environment
-% #3 = emptiness or star to append to name of environment
-% #4 = numbered like
-% #5 = numbered within
-% #6 = existed environment
-% #7 = key-value configuration of names
\IfBooleanTF{#1}{%
\IfValueTF{#4}
{\@firstoftwo}
@@ -1570,26 +179,6 @@
}%
\else
\NewDocumentCommand{\InnerCreateTheorem}{mmmod<>d()g}{%
-% #1 = Tokens denoting an xparse-boolean value;
-% value "true" -> the call was \CreateTheorem*{...}...
-% value "false" -> the call was \CreateTheorem{...}...
-% This indicates whether the "starred" variant or the
-% "unstarred" variant of \CreateTheorem was called.
-% #2 = Name of environment to define. One trailing
-% star is removed from the environment-name provided
-% to \CreateTheorem if that environment-name has
-% trailing stars.
-% #3 = If the environment-name provided to \CreateTheorem has
-% trailing stars: A star (*).
-% If the environment-name provided to \CreateTheorem has
-% no trailing stars: Empty/no tokens at all.
-% #4 = numbered like=name of counter like which the environment
-% shall be numbered.
-% #5 = numbered within=name of counter which is superordinate
-% to the environment's counter and whose stepping resets
-% the environment's counter.
-% #6 = existed environment name (the environment to copy)
-% #7 = key-value configuration of names
\IfBooleanTF{#1}{%
\IfValueTF{#4}
{\@firstoftwo}
@@ -1625,17 +214,6 @@
}
}{%
\IfBooleanTF{#1}{%
-% \newtheorem*{#2EN#3}{\csname#2nameEN\endcsname}%
-% \newtheorem*{#2FR#3}{\csname#2nameFR\endcsname}%
-% \newtheorem*{#2DE#3}{\csname#2nameDE\endcsname}%
-% \newtheorem*{#2IT#3}{\csname#2nameIT\endcsname}%
-% \newtheorem*{#2PT#3}{\csname#2namePT\endcsname}%
-% \newtheorem*{#2BR#3}{\csname#2nameBR\endcsname}%
-% \newtheorem*{#2ES#3}{\csname#2nameES\endcsname}%
-% \newtheorem*{#2CN#3}{\csname#2nameCN\endcsname}%
-% \newtheorem*{#2TC#3}{\csname#2nameTC\endcsname}%
-% \newtheorem*{#2JP#3}{\csname#2nameJP\endcsname}%
-% \newtheorem*{#2RU#3}{\csname#2nameRU\endcsname}%
\if@PJLlang@enable@EN\expandafter\PassFirstToSecond\expandafter{\csname#2nameEN\endcsname}{\newtheorem*{#2EN#3}}\fi%
\if@PJLlang@enable@FR\expandafter\PassFirstToSecond\expandafter{\csname#2nameFR\endcsname}{\newtheorem*{#2FR#3}}\fi%
\if@PJLlang@enable@DE\expandafter\PassFirstToSecond\expandafter{\csname#2nameDE\endcsname}{\newtheorem*{#2DE#3}}\fi%
@@ -1683,15 +261,8 @@
}%
\NewDocumentCommand{\CreateTheoremNumberedLikeAliasCounter}{mmm}{%
\newaliascnt{#1#2#3}{#1#3}%
-% \newtheorem{#1#2#3}[{#1#2#3}]{\csname#1name#2\endcsname}%
\expandafter\PassFirstToSecond\expandafter{\csname#1name#2\endcsname}{\newtheorem{#1#2#3}[{#1#2#3}]}%
\aliascntresetthe{#1#2#3}%
-% \crefname{#1#2#3}%
-% {\csname#1name#2\endcsname}%
-% {\csname#1name#2\endcsname}%
-% \Crefname{#1#2#3}%
-% {\csname#1name#2\endcsname}%
-% {\csname#1name#2\endcsname}%
\ifcsname cref@#1#2#3@name\endcsname\else%
\expandafter\PassFirstToSecond\expandafter{\csname#1name#2\endcsname}%
{%
@@ -1709,52 +280,33 @@
}%
\fi
-% See https://tex.stackexchange.com/a/610604
\ExplSyntaxOn
-% Helper-macros/scratch-macros
-%-----------------------------
\cs_new:Nn \PJLthm_exchange_i_iii_ii:nnn { #1 {#3} {#2} }
\cs_new:Nn \__PJLthm_languageprefix: {}
\cs_new:Nn \__PJLthm_countername: {}
-% Message-management:
-%--------------------
\msg_new:nnnn {PJLthm}
{Undefined Language Dependent Specification Class}
- {\token_to_str:N \CreateTheorem :\ Value\ `\tl_to_str:n{#2}'\ for\ invalid\ key\ `#1'.}
+ {\token_to_str:N \CreateTheorem :\ Value\ `\tl_to_str:n{#2}'\ for\ invalid\ key\ `#1'.}
{Providing\ Language-dependent\ specifications\ for\ element\ `#1'\ is\ currently\ not\ implemented.}
-% Nested key=value-interface by means of package l3keys:
-%-------------------------------------------------------
-% (l3keys is similar to pgfkeys.)
-% The outer level of key=value-specifications, i.e., <language-ID>={...},
-% is processed via \keyval_parse:nnn which was added tpo expl3 in 2020/12/19.
-% The inner level of key=value-specifications,
-% i.e., the single keys whose values are to be specified dependant on the language,
-% i.e., the "..."-content of the outer lever's {...},
-% is processed via \keys_set:nn .
-% The keys for the inner level are defined via \keys_define:nn .
\NewDocumentCommand \CreateTheoremSetKeys { mm } {
-% #1 = name of counter
-% #2 = keyval-list of language-specifications
\cs_set:Nn \__PJLthm_countername: {#1}
- \keyval_parse:nnn { \PJLthm_exchange_i_iii_ii:nnn { \PJLthm_setlanguagespecificparameters:nn } {} }
+ \keyval_parse:nnn { \PJLthm_exchange_i_iii_ii:nnn { \PJLthm_setlanguagespecificparameters:nn } {} }
{ \PJLthm_setlanguagespecificparameters:nn }
{ #2 }
}
\cs_new_protected:Nn \PJLthm_setlanguagespecificparameters:nn {
-% #1 = language-prefix
-% #2 = key-val-list for language whose prefix is language-prefix
\cs_set:Nx \__PJLthm_languageprefix: {\StrToABBR{#1}}
- \exp_args:No \tl_if_empty:nTF {\__PJLthm_languageprefix:}
+ \exp_args:No \tl_if_empty:nTF {\__PJLthm_languageprefix:}
{ \msg_error:nn { PJLthm }
{ No~language~"\exp_not:n{#1}"~defined }
}%
{%
- \keys_set:nn { PJLthm } { #2 }
+ \keys_set:nn { PJLthm } { #2 }
}%
}%
@@ -1788,7 +340,7 @@
%
% Define keys for more Language Dependent Specification Classes.
%
- unknown.code:n = \msg_error:nnxx {PJLthm}
+ unknown.code:n = \msg_error:nnxx {PJLthm}
{Undefined Language Dependent Specification Class}
{\exp_args:No \exp_not:n \l_keys_key_str}
{\exp_not:n{#1}},
@@ -1796,7 +348,6 @@
\ExplSyntaxOff
-% Some command for regionalref mode
\newcommand{\PJLthm@setcrefinnername}[3]{%
\expandafter\def\csname PJLthm@cref@#1@name\endcsname{#2}%
\expandafter\def\csname PJLthm@cref@#1@name@plural\endcsname{#3}%
@@ -1817,8 +368,6 @@
{\csname PJLthm@Cref@#1\csname\languagename ABBR\endcsname @name@plural\endcsname}%
}
-%# 设置定理类环境名称
-%# Set the names of theorem-like environments
\ifbool{@PJLthm@complexname}{
\NameTheorem{theorem}{
EN = {
@@ -3018,8 +1567,6 @@
},
}
}{
-%# 英文定理名称
-%# English theorems names
\def\theoremnameEN{{Theorem}}
\def\lemmanameEN{{Lemma}}
\def\propositionnameEN{{Proposition}}
@@ -3042,8 +1589,6 @@
\expandafter\def\csname definition-propositionnameEN\endcsname{\definitionnameEN-\propositionnameEN}
\expandafter\def\csname definition-theoremnameEN\endcsname{\definitionnameEN-\theoremnameEN}
-%# 法语定理名称
-%# French theorems names
\def\theoremnameFR{{Théorème}}
\def\lemmanameFR{{Lemme}}
\def\propositionnameFR{{Proposition}}
@@ -3066,8 +1611,6 @@
\expandafter\def\csname definition-propositionnameFR\endcsname{\definitionnameFR-\propositionnameFR}
\expandafter\def\csname definition-theoremnameFR\endcsname{\definitionnameFR-\theoremnameFR}
-%# 德语定理名称
-%# German theorems names
\def\theoremnameDE{{Satz}}
\def\lemmanameDE{{Lemma}}
\def\propositionnameDE{{Proposition}}
@@ -3090,8 +1633,6 @@
\expandafter\def\csname definition-propositionnameDE\endcsname{\definitionnameDE-\propositionnameDE}
\expandafter\def\csname definition-theoremnameDE\endcsname{\definitionnameDE-\theoremnameDE}
-%# 意大利语定理名称
-%# Italian theorems names
\def\theoremnameIT{{Teorema}}
\def\lemmanameIT{{Lemma}}
\def\propositionnameIT{{Proposizione}}
@@ -3114,8 +1655,6 @@
\expandafter\def\csname definition-propositionnameIT\endcsname{\definitionnameIT-\propositionnameIT}
\expandafter\def\csname definition-theoremnameIT\endcsname{\definitionnameIT-\theoremnameIT}
-%# 葡萄牙语定理名称
-%# Portuguese theorems names
\def\theoremnamePT{{Teorema}}
\def\lemmanamePT{{Lema}}
\def\propositionnamePT{{Proposição}}
@@ -3138,8 +1677,6 @@
\expandafter\def\csname definition-propositionnamePT\endcsname{\definitionnamePT-\propositionnamePT}
\expandafter\def\csname definition-theoremnamePT\endcsname{\definitionnamePT-\theoremnamePT}
-%# 巴西葡萄牙语定理名称
-%# Brazilian theorems names
\def\theoremnameBR{{Teorema}}
\def\lemmanameBR{{Lema}}
\def\propositionnameBR{{Proposição}}
@@ -3162,8 +1699,6 @@
\expandafter\def\csname definition-propositionnameBR\endcsname{\definitionnameBR-\propositionnameBR}
\expandafter\def\csname definition-theoremnameBR\endcsname{\definitionnameBR-\theoremnameBR}
-%# 西班牙语定理名称
-%# Spanish theorems names
\def\theoremnameES{{Teorema}}
\def\lemmanameES{{Lema}}
\def\propositionnameES{{Proposición}}
@@ -3186,8 +1721,6 @@
\expandafter\def\csname definition-propositionnameES\endcsname{\definitionnameES-\propositionnameES}
\expandafter\def\csname definition-theoremnameES\endcsname{\definitionnameES-\theoremnameES}
-%# 中文定理名称
-%# Chinese theorems names
\def\theoremnameCN{{定理}}
\def\lemmanameCN{{引理}}
\def\propositionnameCN{{命题}}
@@ -3232,8 +1765,6 @@
\expandafter\def\csname definition-propositionnameTC\endcsname{\definitionnameTC-\propositionnameTC}
\expandafter\def\csname definition-theoremnameTC\endcsname{\definitionnameTC-\theoremnameTC}
-%# 日文定理名称
-%# Japanese theorems names
\def\theoremnameJP{{定理}}
\def\lemmanameJP{{補題}}
\def\propositionnameJP{{命題}}
@@ -3256,8 +1787,6 @@
\expandafter\def\csname definition-propositionnameJP\endcsname{\definitionnameJP-\propositionnameJP}
\expandafter\def\csname definition-theoremnameJP\endcsname{\definitionnameJP-\theoremnameJP}
-%# 俄文定理名称
-%# Russian theorems names
\def\theoremnameRU{{Теорема}} % Теоре́ма
\def\lemmanameRU{{Лемма}} % Ле́мма
\def\propositionnameRU{{Предложение}} % Предложе́ние
@@ -3281,8 +1810,6 @@
\expandafter\def\csname definition-theoremnameRU\endcsname{\definitionnameRU-\theoremnameRU}
}
-%# 判断最高级别的标题是 section 还是 chapter
-%# Detect the highest level of title: section or chapter?
\newif\ifPJLthm@IsBook
\ifdefined\c@chapter\PJLthm@IsBooktrue\else\PJLthm@IsBookfalse\fi
\ifbool{PJLthm@IsBook}{
@@ -3290,8 +1817,6 @@
}{
\newaliascnt{PJLthm@highest}{section}
}
-%# 按照 thmnum 决定定理类环境如何编号
-%# Number the theorem-like environment with respect to thmnum
\NewDocumentCommand{\CreateTheorem@thmnum}{m}{
\expandafter\ifstrempty\expandafter{\@PJLthm@thmnum}{
\CreateTheorem{#1}<PJLthm@highest>
@@ -3304,8 +1829,6 @@
}
}
-%# 建立定理类环境
-%# Setup theorem-like environments
\def\PJLthm@definethms{
\if@PJLthm@nothms\else
\if@PJLthm@nothmnum
@@ -3388,16 +1911,11 @@
\theoremstyle{definition}
\fi
-%# 按照 thmnum 决定公式如何编号
-%# Number the equations with respect to thmnum
\expandafter\ifstrempty\expandafter{\@PJLthm@thmnum}{
-% thmnum is not used.
\numberwithin{equation}{PJLthm@highest}
}{
\expandafter\ifstrequal\expandafter{\@PJLthm@thmnum}{PJL@thmnum@default}{
-% thmnum is used, with no value.
}{
-% thmnum is used, with value \@PJLthm@thmnum.
\numberwithin{equation}{\@PJLthm@thmnum}
}
}
@@ -3410,8 +1928,6 @@
\PJLthm@definethms
\fi
-%# 一些 cref 的本地化
-%# Some localization of cref
\gappto{\PJLlang@langconfig@CN}{%
\crefname{equation}{式}{式}%
\crefname{figure}{图}{图}%
@@ -3497,187 +2013,7 @@
\def\creflastgroupconjunction{ e\nobreakspace}%
\def\crefrangeconjunction{ a\nobreakspace}%
}
-%</PJLthm>
-%
-%<*ProjLib>
-%# 这段代码定义了宏包中的选项。
-%# This code defines the options in the package.
-\SetupKeyvalOptions{
- family = @ProjLib,
- prefix = @ProjLib@,
-}
-\DeclareBoolOption[false]{draft}
-\DeclareBoolOption[false]{fast}
-\DeclareBoolOption[false]{author}
-\DeclareBoolOption[false]{amsfashion}
-\DeclareBoolOption[false]{nothms}
-\DeclareBoolOption[false]{delaythms}
-\DeclareBoolOption[false]{nothmnum}
-\DeclareStringOption{thmnum}[PJL@thmnum@default]
-\DeclareBoolOption[true]{regionalref}
-\DeclareBoolOption[false]{originalref}
-\DeclareBoolOption[true]{complexname}
-\DeclareBoolOption[false]{simplename}
-\DeclareBoolOption[false]{useosf}
-\DeclareBoolOption[false]{lmodern}
-\DeclareBoolOption[false]{palatino}
-\DeclareBoolOption[false]{times}
-\DeclareBoolOption[false]{garamond}
-\DeclareBoolOption[false]{noto}
-\DeclareBoolOption[false]{biolinum}
-%# 处理选项
-%# Process options
-\ProcessKeyvalOptions*\relax
-
-%# 下面的代码设定了选项之间的关系
-%# The following code sets the relationship between options
-\if@ProjLib@originalref
- \@ProjLib@regionalreffalse
-\fi
-\if@ProjLib@simplename
- \@ProjLib@complexnamefalse
-\fi
-\if@ProjLib@draft
- \@ProjLib@fasttrue
-\fi
-
-%# 向组件传递一些参数
-%# Pass some options to the components
-\if@ProjLib@fast
- \PassOptionsToPackage{fast}{PJLdate}
- \PassOptionsToPackage{fast}{PJLdraft}
- \PassOptionsToPackage{fast}{PJLlogo}
- \PassOptionsToPackage{fast}{PJLthm}
-\fi
-\if@ProjLib@nothms
- \PassOptionsToPackage{nothms}{PJLthm}
-\fi
-\if@ProjLib@delaythms
- \PassOptionsToPackage{delaythms}{PJLthm}
-\fi
-\if@ProjLib@nothmnum
- \PassOptionsToPackage{nothmnum}{PJLthm}
-\fi
-\expandafter\ifstrempty\expandafter{\@ProjLib@thmnum}{}{
- \expandafter\ifstrequal\expandafter{\@ProjLib@thmnum}{PJL@thmnum@default}{
- \PassOptionsToPackage{thmnum}{PJLthm}
- }{
- \PassOptionsToPackage{thmnum=\@ProjLib@thmnum}{PJLthm}
- }
-}
-\if@ProjLib@regionalref\else
- \PassOptionsToPackage{originalref}{PJLthm}
-\fi
-\if@ProjLib@complexname\else
- \PassOptionsToPackage{simplename}{PJLthm}
-\fi
-
-%# 加载不默认载入的组件
-%# Load those components not by default loaded
-\if@ProjLib@amsfashion
- \PassOptionsToPackage{amsfashion}{PJLauthor}
- \RequirePackage{PJLauthor}
-\fi
-\if@ProjLib@author
- \RequirePackage{PJLauthor}
-\fi
-%# 加载组件
-%# Load the components
-\RequirePackage{PJLdate}
-\RequirePackage{PJLdraft}
-\RequirePackage{PJLlogo}
-\RequirePackage{PJLmath}
-\RequirePackage{PJLpaper}
-\RequirePackage{PJLthm}
-
-%# 配置字体选项
-%# Configure the font options below
-%
-% \PJL@font@alreadyset should contain the current font name
-% A message can then be shown as: Font "(font name)" has been set
-\ifdefined\PJL@font@alreadyset\else
-
-\if@ProjLib@lmodern
- \RequirePackage{amssymb}
- \if@ProjLib@useosf
- \RequirePackage{cfr-lm}
- \else
- \RequirePackage{lmodern}
- \fi
- \PJLsetlinespacing{\setstretch{1.00}}
-\fi
-
-\if@ProjLib@palatino
- % \RequirePackage{amssymb}
- \RequirePackage{mathpazo}
- \PassOptionsToPackage{defaultsups}{newpxtext}
- \RequirePackage{newpxtext}
- % \RequirePackage{newpxmath}
- \let\openbox\relax
- \PJLsetlinespacing{\setstretch{1.07}}
- \if@ProjLib@useosf\useosf\fi
-\fi
-
-\if@ProjLib@times
- % \RequirePackage{amssymb}
- \PassOptionsToPackage{defaultsups}{newtxtext}
- \RequirePackage{newtxtext}
- \RequirePackage{newtxmath}
- \let\openbox\relax
- \PJLsetlinespacing{\setstretch{1.00}}
- \if@ProjLib@useosf\useosf\fi
-\fi
-
-\if@ProjLib@garamond
- % \RequirePackage{amssymb}
- \if@ProjLib@useosf\else
- \PassOptionsToPackage{lining}{ebgaramond}
- \fi
- \RequirePackage{ebgaramond-maths}
- \RequirePackage{ebgaramond}
- % \RequirePackage{garamondlibre}
- \PJLsetlinespacing{\setstretch{1.00}}
-\fi
-
-\if@ProjLib@noto
- \if@ProjLib@useosf
- \PassOptionsToPackage{oldstyle}{notomath}
- \fi
- \RequirePackage{anyfontsize}
- \RequirePackage{notomath}
- \PJLsetlinespacing{\setstretch{1.00}}
-\fi
-
-\if@ProjLib@biolinum
- % \RequirePackage{amssymb}
- % \RequirePackage{mathpazo}
- % \RequirePackage[sansmath]{libertinust1math}
- \ifPDFTeX
- \if@ProjLib@useosf
- \PassOptionsToPackage{osf}{biolinum}
- \fi
- \RequirePackage{biolinum}
- \renewcommand*\familydefault{\biolinum@family}
- \else
- \PassOptionsToPackage{no-math}{fontspec}
- \RequirePackage{fontspec}
- \setmainfont{LinBiolinum_R.otf}[
- BoldFont = LinBiolinum_RB.otf ,
- ItalicFont = LinBiolinum_RI.otf ,
- BoldItalicFont = LinBiolinum_RBO.otf,
- \if@ProjLib@useosf Numbers = OldStyle\fi ]
- \fi
- \PJLsetlinespacing{\setstretch{1.05}}
- \RequirePackage[italic,defaultmathsizes]{mathastext}
-\fi
-
-%# 结束字体选项的配置
-%# End of the configuration of font options
-\fi
-
-%# 使用 microtype 优化排版细节
-%# Use `microtype` to get details better
-\RequirePackage{microtype}
-%</ProjLib>
-\endinput \ No newline at end of file
+\endinput
+%%
+%% End of file `PJLthm.sty'.
diff --git a/macros/latex/contrib/projlib/old-modules/PJLtoolkit.sty b/macros/latex/contrib/projlib/old-modules/PJLtoolkit.sty
new file mode 100644
index 0000000000..b11b34a2a7
--- /dev/null
+++ b/macros/latex/contrib/projlib/old-modules/PJLtoolkit.sty
@@ -0,0 +1,184 @@
+%%
+%% This is file `ProjLib.sty',
+%% generated with the docstrip utility.
+
+%% Copyright (C) 2021 by Jinwen XU
+%%
+%% This is part of the ProjLib Toolkit.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c of this license or (at
+%% your option) any later version. The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\ProvidesPackage{PJLtoolkit}
+ [2021/12/16 The collective interface of ProjLib toolkit]
+\RequirePackage{kvoptions}
+\RequirePackage{etoolbox}
+\SetupKeyvalOptions{
+ family = @ProjLib,
+ prefix = @ProjLib@,
+}
+\DeclareBoolOption[false]{draft}
+\DeclareBoolOption[false]{fast}
+\DeclareBoolOption[false]{author}
+\DeclareBoolOption[false]{amsfashion}
+\DeclareBoolOption[false]{nothms}
+\DeclareBoolOption[false]{delaythms}
+\DeclareBoolOption[false]{nothmnum}
+\DeclareStringOption{thmnum}[PJL@thmnum@default]
+\DeclareBoolOption[true]{regionalref}
+\DeclareBoolOption[false]{originalref}
+\DeclareBoolOption[true]{complexname}
+\DeclareBoolOption[false]{simplename}
+\DeclareBoolOption[false]{useosf}
+\DeclareBoolOption[false]{lmodern}
+\DeclareBoolOption[false]{palatino}
+\DeclareBoolOption[false]{times}
+\DeclareBoolOption[false]{garamond}
+\DeclareBoolOption[false]{noto}
+\DeclareBoolOption[false]{biolinum}
+\ProcessKeyvalOptions*\relax
+
+\if@ProjLib@originalref
+ \@ProjLib@regionalreffalse
+\fi
+\if@ProjLib@simplename
+ \@ProjLib@complexnamefalse
+\fi
+\if@ProjLib@draft
+ \@ProjLib@fasttrue
+\fi
+
+\if@ProjLib@fast
+ \PassOptionsToPackage{fast}{PJLdate}
+ \PassOptionsToPackage{fast}{PJLdraft}
+ \PassOptionsToPackage{fast}{PJLlogo}
+ \PassOptionsToPackage{fast}{PJLthm}
+\fi
+\if@ProjLib@nothms
+ \PassOptionsToPackage{nothms}{PJLthm}
+\fi
+\if@ProjLib@delaythms
+ \PassOptionsToPackage{delaythms}{PJLthm}
+\fi
+\if@ProjLib@nothmnum
+ \PassOptionsToPackage{nothmnum}{PJLthm}
+\fi
+\expandafter\ifstrempty\expandafter{\@ProjLib@thmnum}{}{
+ \expandafter\ifstrequal\expandafter{\@ProjLib@thmnum}{PJL@thmnum@default}{
+ \PassOptionsToPackage{thmnum}{PJLthm}
+ }{
+ \PassOptionsToPackage{thmnum=\@ProjLib@thmnum}{PJLthm}
+ }
+}
+\if@ProjLib@regionalref\else
+ \PassOptionsToPackage{originalref}{PJLthm}
+\fi
+\if@ProjLib@complexname\else
+ \PassOptionsToPackage{simplename}{PJLthm}
+\fi
+
+\if@ProjLib@amsfashion
+ \PassOptionsToPackage{amsfashion}{PJLauthor}
+ \RequirePackage{PJLauthor}
+\fi
+\if@ProjLib@author
+ \RequirePackage{PJLauthor}
+\fi
+\RequirePackage{PJLdate}
+\RequirePackage{PJLdraft}
+\RequirePackage{PJLlogo}
+\RequirePackage{PJLmath}
+\RequirePackage{PJLpaper}
+\RequirePackage{PJLthm}
+
+\ifdefined\PJL@font@alreadyset\else
+
+\if@ProjLib@lmodern
+ \RequirePackage{amssymb}
+ \if@ProjLib@useosf
+ \RequirePackage{cfr-lm}
+ \else
+ \RequirePackage{lmodern}
+ \fi
+ \PJLsetlinespacing{\setstretch{1.00}}
+\fi
+
+\if@ProjLib@palatino
+ % \RequirePackage{amssymb}
+ \RequirePackage{mathpazo}
+ \PassOptionsToPackage{defaultsups}{newpxtext}
+ \RequirePackage{newpxtext}
+ % \RequirePackage{newpxmath}
+ \let\openbox\relax
+ \PJLsetlinespacing{\setstretch{1.07}}
+ \if@ProjLib@useosf\useosf\fi
+\fi
+
+\if@ProjLib@times
+ % \RequirePackage{amssymb}
+ \PassOptionsToPackage{defaultsups}{newtxtext}
+ \RequirePackage{newtxtext}
+ \RequirePackage{newtxmath}
+ \let\openbox\relax
+ \PJLsetlinespacing{\setstretch{1.00}}
+ \if@ProjLib@useosf\useosf\fi
+\fi
+
+\if@ProjLib@garamond
+ % \RequirePackage{amssymb}
+ \if@ProjLib@useosf\else
+ \PassOptionsToPackage{lining}{ebgaramond}
+ \fi
+ \RequirePackage{ebgaramond-maths}
+ \RequirePackage{ebgaramond}
+ % \RequirePackage{garamondlibre}
+ \PJLsetlinespacing{\setstretch{1.00}}
+\fi
+
+\if@ProjLib@noto
+ \if@ProjLib@useosf
+ \PassOptionsToPackage{oldstyle}{notomath}
+ \fi
+ \RequirePackage{anyfontsize}
+ \RequirePackage{notomath}
+ \PJLsetlinespacing{\setstretch{1.00}}
+\fi
+
+\if@ProjLib@biolinum
+ % \RequirePackage{amssymb}
+ % \RequirePackage{mathpazo}
+ % \RequirePackage[sansmath]{libertinust1math}
+ \ifPDFTeX
+ \if@ProjLib@useosf
+ \PassOptionsToPackage{osf}{biolinum}
+ \fi
+ \RequirePackage{biolinum}
+ \renewcommand*\familydefault{\biolinum@family}
+ \else
+ \PassOptionsToPackage{no-math}{fontspec}
+ \RequirePackage{fontspec}
+ \setmainfont{LinBiolinum_R.otf}[
+ BoldFont = LinBiolinum_RB.otf ,
+ ItalicFont = LinBiolinum_RI.otf ,
+ BoldItalicFont = LinBiolinum_RBO.otf,
+ \if@ProjLib@useosf Numbers = OldStyle\fi ]
+ \fi
+ \PJLsetlinespacing{\setstretch{1.05}}
+ \RequirePackage[italic,defaultmathsizes]{mathastext}
+\fi
+
+\fi
+
+\WarningFilter{microtype}{Unable}
+\RequirePackage{microtype}
+
+\endinput
+%%
+%% End of file `ProjLib.sty'.
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-author.sty b/macros/latex/contrib/projlib/projlib-author.sty
index ef0906d249..2ad44ff6a3 100644
--- a/macros/latex/contrib/projlib/new-modules/projlib-author.sty
+++ b/macros/latex/contrib/projlib/projlib-author.sty
@@ -2,14 +2,15 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{projlib-author}
- {2022/02/24} {}
+ {2022/03/09} {}
{Enhanced author information block}
\keys_define:nn { projlib-author }
{
- , amsfashion .bool_set:N = \l__projlib_author_amsfashion_bool
- , amsfashion .initial:n = { false }
, ams-fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , ams-fashion .initial:n = { false }
+ , ams~fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , ams fashion .bool_set:N = \l__projlib_author_amsfashion_bool
, unknown .code:n = {}
}
\ProcessKeysOptions { projlib-author }
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-datetime.sty b/macros/latex/contrib/projlib/projlib-datetime.sty
index d96d31d93b..07c1473171 100644
--- a/macros/latex/contrib/projlib/new-modules/projlib-datetime.sty
+++ b/macros/latex/contrib/projlib/projlib-datetime.sty
@@ -2,7 +2,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{projlib-datetime}
- {2022/02/24} {}
+ {2022/03/03} {}
{Convert numeric date-time string to natural language}
\tl_new:N \g__projlib_datetime_input_format_tl
@@ -386,7 +386,9 @@
{
\group_begin:
\keys_set:nn { projlib-datetime-command } { #1 }
- \__projlib_datetime_display_date_according_to_format:nn { #2 } {}
+ \tl_set:Nn \l_tmpa_tl { #2 }
+ \regex_replace_all:nnN { \D } { - } \l_tmpa_tl
+ \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } {}
\group_end:
}
@@ -394,7 +396,9 @@
{
\group_begin:
\keys_set:nn { projlib-datetime-command } { #1 }
- \__projlib_datetime_display_date_according_to_format:nn { #2 } { _uppercase }
+ \tl_set:Nn \l_tmpa_tl { #2 }
+ \regex_replace_all:nnN { \D } { - } \l_tmpa_tl
+ \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } { _uppercase }
\group_end:
}
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-draft.sty b/macros/latex/contrib/projlib/projlib-draft.sty
index 6c7fe818c7..6c7fe818c7 100644
--- a/macros/latex/contrib/projlib/new-modules/projlib-draft.sty
+++ b/macros/latex/contrib/projlib/projlib-draft.sty
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-font.sty b/macros/latex/contrib/projlib/projlib-font.sty
index 4b2e85f4dc..c308c1c66d 100644
--- a/macros/latex/contrib/projlib/new-modules/projlib-font.sty
+++ b/macros/latex/contrib/projlib/projlib-font.sty
@@ -2,7 +2,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{projlib-font}
- {2022/02/26} {}
+ {2022/03/01} {}
{Font selection and configuration}
\keys_define:nn { projlib-font }
@@ -83,6 +83,8 @@
{
\PassOptionsToPackage { lining } { ebgaramond }
}
+ \RequirePackage [ cmintegrals, cmbraces ] { newtxmath }
+ \cs_undefine:c { openbox }
\RequirePackage { ebgaramond-maths }
\RequirePackage { ebgaramond }
\projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
@@ -101,6 +103,7 @@
\bool_if:NT \l__projlib_font_biolinum_bool
{
+ \RequirePackage [ OT1 ] { eulervm }
\sys_if_engine_pdftex:TF
{
\bool_if:NT \l__projlib_font_useosf_bool
@@ -132,6 +135,10 @@
\RequirePackage [ italic, defaultmathsizes ] { mathastext }
}
+\RequirePackage { silence }
+\WarningFilter { microtype } { Unable }
+\RequirePackage { microtype }
+
\endinput
%%
%% End of file `projlib-font.sty'.
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-language.sty b/macros/latex/contrib/projlib/projlib-language.sty
index 6167de8d04..4a67c6a018 100644
--- a/macros/latex/contrib/projlib/new-modules/projlib-language.sty
+++ b/macros/latex/contrib/projlib/projlib-language.sty
@@ -2,7 +2,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{projlib-language}
- {2022/02/26} {}
+ {2022/03/09} {}
{Multi-language configuration}
\clist_const:Nn \c__projlib_language_supported_clist
@@ -76,19 +76,23 @@
, CN .meta:n = { schinese }
, chinese .meta:n = { schinese }
, schinese .code:n = { \projlib_language_set_option_no_babel:n { schinese } }
- , simplifiedchinese .meta:n = { schinese }
, simplified-chinese .meta:n = { schinese }
+ , simplified~chinese .meta:n = { schinese }
+ , simplified chinese .meta:n = { schinese }
, Chinese .meta:n = { schinese }
, SChinese .meta:n = { schinese }
- , SimplifiedChinese .meta:n = { schinese }
, Simplified-Chinese .meta:n = { schinese }
+ , Simplified~Chinese .meta:n = { schinese }
+ , Simplified Chinese .meta:n = { schinese }
, TC .meta:n = { tchinese }
, tchinese .code:n = { \projlib_language_set_option_no_babel:n { tchinese } }
- , traditionalchinese .meta:n = { tchinese }
, traditional-chinese .meta:n = { tchinese }
+ , traditional~chinese .meta:n = { tchinese }
+ , traditional chinese .meta:n = { tchinese }
, TChinese .meta:n = { tchinese }
- , TraditionalChinese .meta:n = { tchinese }
, Traditional-Chinese .meta:n = { tchinese }
+ , Traditional~Chinese .meta:n = { tchinese }
+ , Traditional Chinese .meta:n = { tchinese }
, JP .meta:n = { japanese }
, japanese .code:n = { \projlib_language_set_option:n { japanese } }
, Japanese .meta:n = { japanese }
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-logo.sty b/macros/latex/contrib/projlib/projlib-logo.sty
index d9ffb5c1ed..d9ffb5c1ed 100644
--- a/macros/latex/contrib/projlib/new-modules/projlib-logo.sty
+++ b/macros/latex/contrib/projlib/projlib-logo.sty
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-math.sty b/macros/latex/contrib/projlib/projlib-math.sty
index 977a428003..977a428003 100644
--- a/macros/latex/contrib/projlib/new-modules/projlib-math.sty
+++ b/macros/latex/contrib/projlib/projlib-math.sty
diff --git a/macros/latex/contrib/projlib/new-modules/projlib-paper.sty b/macros/latex/contrib/projlib/projlib-paper.sty
index 5e1f9ac04e..bb13bbe00a 100644
--- a/macros/latex/contrib/projlib/new-modules/projlib-paper.sty
+++ b/macros/latex/contrib/projlib/projlib-paper.sty
@@ -2,31 +2,42 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{projlib-paper}
- {2022/02/25} {}
- {Paper style configuration}
+ {2022/03/09} {}
+ {Configuration of the paper style}
\keys_define:nn { projlib-paper }
{
- , preview-mode .bool_set:N = \l__projlib_paper_preview_bool
- , preview-mode .initial:n = { false }
- , paperstyle .tl_set:N = \l__projlib_paper_paperstyle_tl
- , paperstyle .initial:n = { normal }
- , yellowpaper .meta:n = { paperstyle = yellow }
- , yellow-paper .meta:n = { paperstyle = yellow }
- , parchmentpaper .meta:n = { paperstyle = parchment }
- , parchment-paper .meta:n = { paperstyle = parchment }
- , greenpaper .meta:n = { paperstyle = green }
- , green-paper .meta:n = { paperstyle = green }
- , lightgraypaper .meta:n = { paperstyle = lightgray }
- , lightgray-paper .meta:n = { paperstyle = lightgray }
- , light-gray-paper .meta:n = { paperstyle = lightgray }
- , graypaper .meta:n = { paperstyle = gray }
- , gray-paper .meta:n = { paperstyle = gray }
- , nordpaper .meta:n = { paperstyle = nord }
- , nord-paper .meta:n = { paperstyle = nord }
- , darkpaper .meta:n = { paperstyle = dark }
- , dark-paper .meta:n = { paperstyle = dark }
- , unknown .code:n = {}
+ , preview-mode .bool_set:N = \l__projlib_paper_preview_bool
+ , preview-mode .initial:n = { false }
+ , paper-style .tl_set:N = \l__projlib_paper_paperstyle_tl
+ , paper-style .initial:n = { normal }
+ , paper-style .value_required:n = true
+ , paper~style .tl_set:N = \l__projlib_paper_paperstyle_tl
+ , paper style .tl_set:N = \l__projlib_paper_paperstyle_tl
+ , yellow-paper .meta:n = { paperstyle = yellow }
+ , yellow~paper .meta:n = { paperstyle = yellow }
+ , yellow paper .meta:n = { paperstyle = yellow }
+ , parchment-paper .meta:n = { paperstyle = parchment }
+ , parchment~paper .meta:n = { paperstyle = parchment }
+ , parchment paper .meta:n = { paperstyle = parchment }
+ , green-paper .meta:n = { paperstyle = green }
+ , green~paper .meta:n = { paperstyle = green }
+ , green paper .meta:n = { paperstyle = green }
+ , light-gray-paper .meta:n = { paperstyle = lightgray }
+ , light~gray~paper .meta:n = { paperstyle = lightgray }
+ , light gray-paper .meta:n = { paperstyle = lightgray }
+ , light gray~paper .meta:n = { paperstyle = lightgray }
+ , light gray paper .meta:n = { paperstyle = lightgray }
+ , gray-paper .meta:n = { paperstyle = gray }
+ , gray~paper .meta:n = { paperstyle = gray }
+ , gray paper .meta:n = { paperstyle = gray }
+ , nord-paper .meta:n = { paperstyle = nord }
+ , nord~paper .meta:n = { paperstyle = nord }
+ , nord paper .meta:n = { paperstyle = nord }
+ , dark-paper .meta:n = { paperstyle = dark }
+ , dark~paper .meta:n = { paperstyle = dark }
+ , dark paper .meta:n = { paperstyle = dark }
+ , unknown .code:n = {}
}
\ProcessKeysOptions { projlib-paper }
diff --git a/macros/latex/contrib/projlib/projlib-theorem.sty b/macros/latex/contrib/projlib/projlib-theorem.sty
new file mode 100644
index 0000000000..092ca2f0ea
--- /dev/null
+++ b/macros/latex/contrib/projlib/projlib-theorem.sty
@@ -0,0 +1,1184 @@
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+ {projlib-theorem}
+ {2022/03/09} {}
+ {Configuration of theorem-like environments}
+
+\keys_define:nn { projlib-theorem }
+ {
+ , no-theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , no-theorems .initial:n = { false }
+ , no~theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , no theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , nothms .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , no-theorem-numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , no-theorem-numbering .initial:n = { false }
+ , no~theorem~numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , no theorem numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , nothmnum .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , theorem-numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , theorem-numbering .default:n = { * }
+ , theorem~numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , theorem~numbering .default:n = { * }
+ , theorem numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , theorem numbering .default:n = { * }
+ , thmnum .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , thmnum .default:n = { * }
+ , complex-name .bool_set:N = \l__projlib_theorem_complexname_bool
+ , complex-name .initial:n = { true }
+ , complex~name .bool_set:N = \l__projlib_theorem_complexname_bool
+ , complex name .bool_set:N = \l__projlib_theorem_complexname_bool
+ , simple-name .bool_set:N = \l__projlib_theorem_simplename_bool
+ , simple-name .initial:n = { false }
+ , simple~name .bool_set:N = \l__projlib_theorem_simplename_bool
+ , simple name .bool_set:N = \l__projlib_theorem_simplename_bool
+ , no-preset-names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
+ , no-preset-names .initial:n = { false }
+ , no~preset~names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
+ , no preset names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
+ , unknown .code:n = { \PassOptionsToPackage { \CurrentOption } { create-theorem } }
+ }
+\ProcessKeysOptions { projlib-theorem }
+
+\clist_const:Nn \c__projlib_theorem_supported_clist
+ {
+ assertion ,
+ assumption ,
+ axiom ,
+ conclusion ,
+ conjecture ,
+ convention ,
+ corollary ,
+ definition ,
+ example ,
+ exercise ,
+ fact ,
+ hypothesis ,
+ lemma ,
+ notation ,
+ observation ,
+ postulate ,
+ problem ,
+ property ,
+ proposition ,
+ question ,
+ remark ,
+ theorem ,
+ }
+
+\@ifclassloaded { beamer }
+ {
+ \RequirePackage { silence }
+ \WarningFilter { cleveref } { hyperref~package~loaded~with~implicit=false~option }
+ \bool_set_true:N \l__projlib_theorem_no_theorem_numbering_bool
+ \bool_if:NF \l__projlib_theorem_no_theorems_bool
+ {
+ \cs_undefine:c { theorem }
+ \cs_undefine:c { lemma }
+ \cs_undefine:c { corollary }
+ \cs_undefine:c { definition }
+ \cs_undefine:c { fact }
+ \cs_undefine:c { example }
+ \cs_undefine:c { problem }
+ }
+ } {}
+
+\RequirePackage { projlib-language }
+
+\bool_if:NF \l__projlib_theorem_complexname_bool
+ {
+ \PassOptionsToPackage { no preset names } { create-theorem }
+ }
+
+\RequirePackage { amsthm }
+\RequirePackage { create-theorem }
+
+
+\bool_if:NF \l__projlib_theorem_no_theorems_bool
+ {
+ \bool_if:NTF \l__projlib_theorem_no_theorem_numbering_bool
+ {
+ \exp_args:Nv \CreateTheorem { c__projlib_theorem_supported_clist } { numberless }
+ }
+ {
+ \tl_if_blank:eTF \l__projlib_theorem_theorem_numbering_tl
+ {
+ \cs_if_exist:cTF { c@chapter }
+ { % with \chapter
+ \CreateTheorem {theorem} { parent counter = chapter }
+ }
+ { % without \chapter
+ \CreateTheorem {theorem} { parent counter = section }
+ }
+ }
+ {
+ \tl_if_eq:NnTF \l__projlib_theorem_theorem_numbering_tl { * }
+ {
+ \CreateTheorem {theorem} { }
+ }
+ {
+ \CreateTheorem {theorem} { parent counter = \l__projlib_theorem_theorem_numbering_tl }
+ }
+ }
+
+ \exp_args:Nv \CreateTheorem { c__projlib_theorem_supported_clist } { shared counter = theorem, quiet }
+ }
+ }
+
+
+\AddLanguageSetting [ schinese ]
+ {
+ \crefname { equation } { 式 } { 式 }
+ \crefname { figure } { 图 } { 图 }
+ \crefname { table } { 表 } { 表 }
+ \crefname { appendix } { 附录 } { 附录 }
+ \Crefname { equation } { 式 } { 式 }
+ \Crefname { figure } { 图 } { 图 }
+ \Crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 附录 } { 附录 }
+ \tl_gset:Nn { \crefpairconjunction } { 、 }
+ \tl_gset:Nn { \crefmiddleconjunction } { 、 }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace 和 \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace 和 \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { 、 }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 以及 \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { ~ }
+ }
+
+\AddLanguageSetting [ tchinese ]
+ {
+ \crefname { equation } { 式 } { 式 }
+ \crefname { figure } { 圖 } { 圖 }
+ \crefname { table } { 表 } { 表 }
+ \crefname { appendix } { 附錄 } { 附錄 }
+ \Crefname { equation } { 式 } { 式 }
+ \Crefname { figure } { 圖 } { 圖 }
+ \Crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 附錄 } { 附錄 }
+ \tl_gset:Nn { \crefpairconjunction } { 、 }
+ \tl_gset:Nn { \crefmiddleconjunction } { 、 }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace 與 \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace 與 \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { 、 }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 以及 \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { ~ }
+ }
+
+\AddLanguageSetting [ japanese ]
+ {
+ \crefname { equation } { 式 } { 式 }
+ \crefname { figure } { 図 } { 図 }
+ \crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 付録 } { 付録 }
+ \Crefname { equation } { 式 } { 式 }
+ \Crefname { figure } { 図 } { 図 }
+ \Crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 付録 } { 付録 }
+ \tl_gset:Nn { \crefpairconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \crefmiddleconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 及び \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { ~ }
+ }
+
+\AddLanguageSetting [ russian ]
+ {
+ \crefname { equation } { уравнение } { уравнения }
+ \crefname { figure } { рис. } { рис. }
+ \crefname { table } { таблица } { таблицы }
+ \crefname { appendix } { приложение } { приложения }
+ \Crefname { equation } { Уравнение } { Уравнения }
+ \Crefname { figure } { Рис. } { Рис. }
+ \Crefname { table } { Таблица } { Таблицы }
+ \Crefname { appendix } { Приложение } { Приложения }
+ \tl_gset:Nn { \crefpairconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefmiddleconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { \nobreakspace \textasciitilde \nobreakspace }
+ }
+
+\AddLanguageSetting [ portuguese ]
+ {
+ \crefname { equation } { eq. } { eqs. }
+ \crefname { figure } { fig. } { figs. }
+ \crefname { table } { tabela } { tabelas }
+ \crefname { appendix } { apêndice } { apêndices }
+ \Crefname { equation } { Eq. } { Eqs. }
+ \Crefname { figure } { Fig. } { Figs. }
+ \Crefname { table } { Tabela } { Tabelas }
+ \Crefname { appendix } { Apêndice } { Apêndices }
+ \tl_gset:Nn { \crefpairconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefmiddleconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { \nobreakspace a \nobreakspace }
+ }
+
+
+\bool_if:NF \l__projlib_theorem_presetname_bool { \endinput }
+\bool_if:NT \l__projlib_theorem_complexname_bool { \endinput }
+
+
+\NameTheorem { assertion }
+ {
+ , heading = {
+ , english = Assertion
+ , french = Assertion
+ , ngerman = Behauptung
+ , italian = Asserzione
+ , portuguese = Asserção
+ , brazilian = Asserção
+ , spanish = Aserción
+ , schinese = 断言
+ , tchinese = 斷言
+ , japanese = アサーション
+ , russian = Утверждение
+ }
+ , crefname = {
+ , english = {Assertion}{Assertion}
+ , french = [l']{Assertion}[les]{Assertion}
+ , ngerman = {Behauptung}{Behauptung}
+ , italian = [l']{Asserzione}[le]{Asserzione}
+ , portuguese = [a]{Asserção}[as]{Asserção}
+ , brazilian = [a]{Asserção}[as]{Asserção}
+ , spanish = [la]{Aserción}[las]{Aserción}
+ , schinese = {断言}{断言}
+ , tchinese = {斷言}{斷言}
+ , japanese = {アサーション}{アサーション}
+ , russian = {Утверждение}{Утверждение}
+ }
+ , Crefname = {
+ , english = {Assertion}{Assertion}
+ , french = [L']{Assertion}[Les]{Assertion}
+ , ngerman = {Behauptung}{Behauptung}
+ , italian = [L']{Asserzione}[Le]{Asserzione}
+ , portuguese = [A]{Asserção}[As]{Asserção}
+ , brazilian = [A]{Asserção}[As]{Asserção}
+ , spanish = [La]{Aserción}[Las]{Aserción}
+ , schinese = {断言}{断言}
+ , tchinese = {斷言}{斷言}
+ , japanese = {アサーション}{アサーション}
+ , russian = {Утверждение}{Утверждение}
+ }
+ }
+
+\NameTheorem { assumption }
+ {
+ , heading = {
+ , english = Assumption
+ , french = Supposition
+ , ngerman = Annahme
+ , italian = Supposizione
+ , portuguese = Suposição
+ , brazilian = Suposição
+ , spanish = Suposición
+ , schinese = 假定
+ , tchinese = 假定
+ , japanese = 仮定
+ , russian = Предположение
+ }
+ , crefname = {
+ , english = {Assumption}{Assumption}
+ , french = [la]{Supposition}[les]{Supposition}
+ , ngerman = {Annahme}{Annahme}
+ , italian = [la]{Supposizione}[le]{Supposizione}
+ , portuguese = [a]{Suposição}[as]{Suposição}
+ , brazilian = [a]{Suposição}[as]{Suposição}
+ , spanish = [la]{Suposición}[las]{Suposición}
+ , schinese = {假定}{假定}
+ , tchinese = {假定}{假定}
+ , japanese = {仮定}{仮定}
+ , russian = {Предположение}{Предположение}
+ }
+ , Crefname = {
+ , english = {Assumption}{Assumption}
+ , french = [La]{Supposition}[Les]{Supposition}
+ , ngerman = {Annahme}{Annahme}
+ , italian = [la]{Supposizione}[le]{Supposizione}
+ , portuguese = [A]{Suposição}[As]{Suposição}
+ , brazilian = [A]{Suposição}[As]{Suposição}
+ , spanish = [La]{Suposición}[Las]{Suposición}
+ , schinese = {假定}{假定}
+ , tchinese = {假定}{假定}
+ , japanese = {仮定}{仮定}
+ , russian = {Предположение}{Предположение}
+ }
+ }
+
+\NameTheorem { axiom }
+ {
+ , heading = {
+ , english = Axiom
+ , french = Axiome
+ , ngerman = Axiom
+ , italian = Assioma
+ , portuguese = Axioma
+ , brazilian = Axioma
+ , spanish = Axioma
+ , schinese = 公理
+ , tchinese = 公理
+ , japanese = 公理
+ , russian = Аксиома
+ }
+ , crefname = {
+ , english = {Axiom}{Axiom}
+ , french = [l']{Axiome}[les]{Axiome}
+ , ngerman = {Axiom}{Axiom}
+ , italian = [l']{Assioma}[gli]{Assioma}
+ , portuguese = [o]{Axioma}[os]{Axioma}
+ , brazilian = [o]{Axioma}[os]{Axioma}
+ , spanish = [el]{Axioma}[los]{Axioma}
+ , schinese = {公理}{公理}
+ , tchinese = {公理}{公理}
+ , japanese = {公理}{公理}
+ , russian = {Аксиома}{Аксиома}
+ }
+ , Crefname = {
+ , english = {Axiom}{Axiom}
+ , french = [L']{Axiome}[Les]{Axiome}
+ , ngerman = {Axiom}{Axiom}
+ , italian = [L']{Assioma}[Gli]{Assioma}
+ , portuguese = [O]{Axioma}[Os]{Axioma}
+ , brazilian = [O]{Axioma}[Os]{Axioma}
+ , spanish = [El]{Axioma}[Los]{Axioma}
+ , schinese = {公理}{公理}
+ , tchinese = {公理}{公理}
+ , japanese = {公理}{公理}
+ , russian = {Аксиома}{Аксиома}
+ }
+ }
+
+\NameTheorem { conclusion }
+ {
+ , heading = {
+ , english = Conclusion
+ , french = Conclusion
+ , ngerman = Schlussfolgerung
+ , italian = Conclusione
+ , portuguese = Conclusão
+ , brazilian = Conclusão
+ , spanish = Conclusión
+ , schinese = 结论
+ , tchinese = 結論
+ , japanese = 結論
+ , russian = Вывод
+ }
+ , crefname = {
+ , english = {Conclusion}{Conclusion}
+ , french = [la]{Conclusion}[Les]{Conclusion}
+ , ngerman = {Schlussfolgerung}{Schlussfolgerung}
+ , italian = [la]{Conclusione}[le]{Conclusione}
+ , portuguese = [a]{Conclusão}[as]{Conclusão}
+ , brazilian = [a]{Conclusão}[as]{Conclusão}
+ , spanish = [la]{Conclusión}[las]{Conclusión}
+ , schinese = {结论}{结论}
+ , tchinese = {結論}{結論}
+ , japanese = {結論}{結論}
+ , russian = {Вывод}{Вывод}
+ }
+ , Crefname = {
+ , english = {Conclusion}{Conclusion}
+ , french = [La]{Conclusion}[Les]{Conclusion}
+ , ngerman = {Schlussfolgerung}{Schlussfolgerung}
+ , italian = [La]{Conclusione}[Le]{Conclusione}
+ , portuguese = [A]{Conclusão}[As]{Conclusão}
+ , brazilian = [A]{Conclusão}[As]{Conclusão}
+ , spanish = [La]{Conclusión}[Las]{Conclusión}
+ , schinese = {结论}{结论}
+ , tchinese = {結論}{結論}
+ , japanese = {結論}{結論}
+ , russian = {Вывод}{Вывод}
+ }
+ }
+
+\NameTheorem { conjecture }
+ {
+ , heading = {
+ , english = Conjecture
+ , french = Conjecture
+ , ngerman = Vermutung
+ , italian = Congettura
+ , portuguese = Conjetura
+ , brazilian = Conjectura
+ , spanish = Conjetura
+ , schinese = 猜想
+ , tchinese = 猜想
+ , japanese = 予想
+ , russian = Гипотеза
+ }
+ , crefname = {
+ , english = {Conjecture}{Conjecture}
+ , french = [la]{Conjecture}[les]{Conjecture}
+ , ngerman = {Vermutung}{Vermutung}
+ , italian = [la]{Congettura}[le]{Congettura}
+ , portuguese = [a]{Conjetura}[as]{Conjetura}
+ , brazilian = [a]{Conjectura}[as]{Conjectura}
+ , spanish = [la]{Conjetura}[las]{Conjetura}
+ , schinese = {猜想}{猜想}
+ , tchinese = {猜想}{猜想}
+ , japanese = {予想}{予想}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ , Crefname = {
+ , english = {Conjecture}{Conjecture}
+ , french = [La]{Conjecture}[Les]{Conjecture}
+ , ngerman = {Vermutung}{Vermutung}
+ , italian = [La]{Congettura}[Le]{Congettura}
+ , portuguese = [A]{Conjetura}[As]{Conjetura}
+ , brazilian = [A]{Conjectura}[As]{Conjectura}
+ , spanish = [La]{Conjetura}[Las]{Conjetura}
+ , schinese = {猜想}{猜想}
+ , tchinese = {猜想}{猜想}
+ , japanese = {予想}{予想}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ }
+
+\NameTheorem { convention }
+ {
+ , heading = {
+ , english = Convention
+ , french = Convention
+ , ngerman = Konvention
+ , italian = Convenzione
+ , portuguese = Convenção
+ , brazilian = Convenção
+ , spanish = Convención
+ , schinese = 约定
+ , tchinese = 約定
+ , japanese = 慣例
+ , russian = Конвенция
+ }
+ , crefname = {
+ , english = {Convention}{Convention}
+ , french = [la]{Convention}[les]{Convention}
+ , ngerman = {Konvention}{Konvention}
+ , italian = [la]{Convenzione}[le]{Convenzione}
+ , portuguese = [a]{Convenção}[as]{Convenção}
+ , brazilian = [a]{Convenção}[as]{Convenção}
+ , spanish = [la]{Convención}[las]{Convención}
+ , schinese = {约定}{约定}
+ , tchinese = {約定}{約定}
+ , japanese = {慣例}{慣例}
+ , russian = {Конвенция}{Конвенция}
+ }
+ , Crefname = {
+ , english = {Convention}{Convention}
+ , french = [La]{Convention}[Les]{Convention}
+ , ngerman = {Konvention}{Konvention}
+ , italian = [La]{Convenzione}[Le]{Convenzione}
+ , portuguese = [A]{Convenção}[As]{Convenção}
+ , brazilian = [A]{Convenção}[As]{Convenção}
+ , spanish = [La]{Convención}[Las]{Convención}
+ , schinese = {约定}{约定}
+ , tchinese = {約定}{約定}
+ , japanese = {慣例}{慣例}
+ , russian = {Конвенция}{Конвенция}
+ }
+ }
+
+\NameTheorem { corollary }
+ {
+ , heading = {
+ , english = Corollary
+ , french = Corollaire
+ , ngerman = Korollar
+ , italian = Corollario
+ , portuguese = Corolário
+ , brazilian = Corolário
+ , spanish = Corolario
+ , schinese = 推论
+ , tchinese = 推論
+ , japanese = 系
+ , russian = Следствие
+ }
+ , crefname = {
+ , english = {Corollary}{Corollary}
+ , french = [le]{Corollaire}[les]{Corollaire}
+ , ngerman = {Korollar}{Korollar}
+ , italian = [il]{Corollario}[i]{Corollario}
+ , portuguese = [o]{Corolário}[os]{Corolário}
+ , brazilian = [o]{Corolário}[os]{Corolário}
+ , spanish = [el]{Corolario}[los]{Corolario}
+ , schinese = {推论}{推论}
+ , tchinese = {推論}{推論}
+ , japanese = {系}{系}
+ , russian = {Следствие}{Следствие}
+ }
+ , Crefname = {
+ , english = {Corollary}{Corollary}
+ , french = [Le]{Corollaire}[Les]{Corollaire}
+ , ngerman = {Korollar}{Korollar}
+ , italian = [Il]{Corollario}[I]{Corollario}
+ , portuguese = [O]{Corolário}[Os]{Corolário}
+ , brazilian = [O]{Corolário}[Os]{Corolário}
+ , spanish = [El]{Corolario}[Los]{Corolario}
+ , schinese = {推论}{推论}
+ , tchinese = {推論}{推論}
+ , japanese = {系}{系}
+ , russian = {Следствие}{Следствие}
+ }
+ }
+
+\NameTheorem { definition }
+ {
+ , heading = {
+ , english = Definition
+ , french = Définition
+ , ngerman = Definition
+ , italian = Definizione
+ , portuguese = Definição
+ , brazilian = Definição
+ , spanish = Definición
+ , schinese = 定义
+ , tchinese = 定義
+ , japanese = 定義
+ , russian = Определение
+ }
+ , crefname = {
+ , english = {Definition}{Definition}
+ , french = [la]{Définition}[les]{Définition}
+ , ngerman = {Definition}{Definition}
+ , italian = [la]{Definizione}[le]{Definizione}
+ , portuguese = [a]{Definição}[as]{Definição}
+ , brazilian = [a]{Definição}[as]{Definição}
+ , spanish = [la]{Definición}[las]{Definición}
+ , schinese = {定义}{定义}
+ , tchinese = {定義}{定義}
+ , japanese = {定義}{定義}
+ , russian = {Определение}{Определение}
+ }
+ , Crefname = {
+ , english = {Definition}{Definition}
+ , french = [La]{Définition}[Les]{Définition}
+ , ngerman = {Definition}{Definition}
+ , italian = [La]{Definizione}[Le]{Definizione}
+ , portuguese = [A]{Definição}[As]{Definição}
+ , brazilian = [A]{Definição}[As]{Definição}
+ , spanish = [La]{Definición}[Las]{Definición}
+ , schinese = {定义}{定义}
+ , tchinese = {定義}{定義}
+ , japanese = {定義}{定義}
+ , russian = {Определение}{Определение}
+ }
+ }
+
+\NameTheorem { example }
+ {
+ , heading = {
+ , english = Example
+ , french = Exemple
+ , ngerman = Beispiel
+ , italian = Esempio
+ , portuguese = Exemplo
+ , brazilian = Exemplo
+ , spanish = Ejemplo
+ , schinese = 例
+ , tchinese = 例
+ , japanese = 例
+ , russian = Пример
+ }
+ , crefname = {
+ , english = {Example}{Example}
+ , french = [l']{Example}[les]{Example}
+ , ngerman = {Beispiel}{Beispiel}
+ , italian = [l']{Esempio}[gli]{Esempio}
+ , portuguese = [o]{Exemplo}[os]{Exemplo}
+ , brazilian = [o]{Exemplo}[os]{Exemplo}
+ , spanish = [el]{Ejemplo}[los]{Ejemplo}
+ , schinese = {例}{例}
+ , tchinese = {例}{例}
+ , japanese = {例}{例}
+ , russian = {Пример}{Пример}
+ }
+ , Crefname = {
+ , english = {Example}{Example}
+ , french = [L']{Example}[Les]{Example}
+ , ngerman = {Beispiel}{Beispiel}
+ , italian = [L']{Esempio}[Gli]{Esempio}
+ , portuguese = [O]{Exemplo}[Os]{Exemplo}
+ , brazilian = [O]{Exemplo}[Os]{Exemplo}
+ , spanish = [El]{Ejemplo}[Los]{Ejemplo}
+ , schinese = {例}{例}
+ , tchinese = {例}{例}
+ , japanese = {例}{例}
+ , russian = {Пример}{Пример}
+ }
+ }
+
+\NameTheorem { exercise }
+ {
+ , heading = {
+ , english = Exercise
+ , french = Exercice
+ , ngerman = Übung
+ , italian = Esercizio
+ , portuguese = Exercício
+ , brazilian = Exercício
+ , spanish = Ejercicio
+ , schinese = 练习
+ , tchinese = 練習
+ , japanese = 練習
+ , russian = Упражнение
+ }
+ , crefname = {
+ , english = {Exercise}{Exercise}
+ , french = [l']{Exercice}[les]{Exercice}
+ , ngerman = {Übung}{Übung}
+ , italian = [l']{Esercizio}[gli]{Esercizio}
+ , portuguese = [o]{Exercício}[os]{Exercício}
+ , brazilian = [o]{Exercício}[os]{Exercício}
+ , spanish = [el]{Ejercicio}[los]{Ejercicio}
+ , schinese = {练习}{练习}
+ , tchinese = {練習}{練習}
+ , japanese = {練習}{練習}
+ , russian = {Упражнение}{Упражнение}
+ }
+ , Crefname = {
+ , english = {Exercise}{Exercise}
+ , french = [L']{Exercice}[Les]{Exercice}
+ , ngerman = {Übung}{Übung}
+ , italian = [L']{Esercizio}[Gli]{Esercizio}
+ , portuguese = [O]{Exercício}[Os]{Exercício}
+ , brazilian = [O]{Exercício}[Os]{Exercício}
+ , spanish = [El]{Ejercicio}[Los]{Ejercicio}
+ , schinese = {练习}{练习}
+ , tchinese = {練習}{練習}
+ , japanese = {練習}{練習}
+ , russian = {Упражнение}{Упражнение}
+ }
+ }
+
+\NameTheorem { fact }
+ {
+ , heading = {
+ , english = Fact
+ , french = Fait
+ , ngerman = Fakt
+ , italian = Fatto
+ , portuguese = Facto
+ , brazilian = Fato
+ , spanish = Hecho
+ , schinese = 事实
+ , tchinese = 事實
+ , japanese = 事実
+ , russian = Факт
+ }
+ , crefname = {
+ , english = {Fact}{Fact}
+ , french = [le]{Fait}[les]{Fait}
+ , ngerman = {Fakt}{Fakt}
+ , italian = [il]{Fatto}[i]{Fatto}
+ , portuguese = [o]{Facto}[os]{Facto}
+ , brazilian = [o]{Fato}[os]{Fato}
+ , spanish = [el]{Hecho}[los]{Hecho}
+ , schinese = {事实}{事实}
+ , tchinese = {事實}{事實}
+ , japanese = {事実}{事実}
+ , russian = {Факт}{Факт}
+ }
+ , Crefname = {
+ , english = {Fact}{Fact}
+ , french = [Le]{Fait}[Les]{Fait}
+ , ngerman = {Fakt}{Fakt}
+ , italian = [Il]{Fatto}[I]{Fatto}
+ , portuguese = [O]{Facto}[Os]{Facto}
+ , brazilian = [O]{Fato}[Os]{Fato}
+ , spanish = [El]{Hecho}[Los]{Hecho}
+ , schinese = {事实}{事实}
+ , tchinese = {事實}{事實}
+ , japanese = {事実}{事実}
+ , russian = {Факт}{Факт}
+ }
+ }
+
+\NameTheorem { hypothesis }
+ {
+ , heading = {
+ , english = Hypothesis
+ , french = Hypothèse
+ , ngerman = Hypothese
+ , italian = Ipotesi
+ , portuguese = Hipótese
+ , brazilian = Hipótese
+ , spanish = Hipótesis
+ , schinese = 假设
+ , tchinese = 假設
+ , japanese = 仮設
+ , russian = Гипотеза
+ }
+ , crefname = {
+ , english = {Hypothesis}{Hypothesis}
+ , french = [l']{Hypothèse}[les]{Hypothèse}
+ , ngerman = {Hypothese}{Hypothese}
+ , italian = [l']{Ipotesi}[le]{Ipotesi}
+ , portuguese = [a]{Hipótese}[as]{Hipótese}
+ , brazilian = [a]{Hipótese}[as]{Hipótese}
+ , spanish = [la]{Hipótesis}[las]{Hipótesis}
+ , schinese = {假设}{假设}
+ , tchinese = {假設}{假設}
+ , japanese = {仮設}{仮設}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ , Crefname = {
+ , english = {Hypothesis}{Hypothesis}
+ , french = [L']{Hypothèse}[Les]{Hypothèse}
+ , ngerman = {Hypothese}{Hypothese}
+ , italian = [L']{Ipotesi}[Le]{Ipotesi}
+ , portuguese = [A]{Hipótese}[As]{Hipótese}
+ , brazilian = [A]{Hipótese}[As]{Hipótese}
+ , spanish = [La]{Hipótesis}[Las]{Hipótesis}
+ , schinese = {假设}{假设}
+ , tchinese = {假設}{假設}
+ , japanese = {仮設}{仮設}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ }
+
+\NameTheorem { lemma }
+ {
+ , heading = {
+ , english = Lemma
+ , french = Lemme
+ , ngerman = Lemma
+ , italian = Lemma
+ , portuguese = Lema
+ , brazilian = Lema
+ , spanish = Lema
+ , schinese = 引理
+ , tchinese = 引理
+ , japanese = 補題
+ , russian = Лемма
+ }
+ , crefname = {
+ , english = {Lemma}{Lemma}
+ , french = [le]{Lemme}[les]{Lemme}
+ , ngerman = {Lemma}{Lemma}
+ , italian = [il]{Lemma}[i]{Lemma}
+ , portuguese = [o]{Lema}[os]{Lema}
+ , brazilian = [o]{Lema}[os]{Lema}
+ , spanish = [el]{Lema}[las]{Lema}
+ , schinese = {引理}{引理}
+ , tchinese = {引理}{引理}
+ , japanese = {補題}{補題}
+ , russian = {Лемма}{Лемма}
+ }
+ , Crefname = {
+ , english = {Lemma}{Lemma}
+ , french = [Le]{Lemme}[Les]{Lemme}
+ , ngerman = {Lemma}{Lemma}
+ , italian = [Il]{Lemma}[I]{Lemma}
+ , portuguese = [O]{Lema}[Os]{Lema}
+ , brazilian = [O]{Lema}[Os]{Lema}
+ , spanish = [el]{Lema}[las]{Lema}
+ , schinese = {引理}{引理}
+ , tchinese = {引理}{引理}
+ , japanese = {補題}{補題}
+ , russian = {Лемма}{Лемма}
+ }
+ }
+
+\NameTheorem { notation }
+ {
+ , heading = {
+ , english = Notation
+ , french = Notation
+ , ngerman = Notation
+ , italian = Notazione
+ , portuguese = Notação
+ , brazilian = Notação
+ , spanish = Notación
+ , schinese = 记号
+ , tchinese = 記號
+ , japanese = 記法
+ , russian = Нотация
+ }
+ , crefname = {
+ , english = {Notation}{Notation}
+ , french = [la]{Notation}[les]{Notation}
+ , ngerman = {Notation}{Notation}
+ , italian = [la]{Notazione}[le]{Notazione}
+ , portuguese = [a]{Notação}[as]{Notação}
+ , brazilian = [a]{Notação}[as]{Notação}
+ , spanish = [la]{Notación}[las]{Notación}
+ , schinese = {记号}{记号}
+ , tchinese = {記號}{記號}
+ , japanese = {記法}{記法}
+ , russian = {Нотация}{Нотация}
+ }
+ , Crefname = {
+ , english = {Notation}{Notation}
+ , french = [La]{Notation}[Les]{Notation}
+ , ngerman = {Notation}{Notation}
+ , italian = [La]{Notazione}[Le]{Notazione}
+ , portuguese = [A]{Notação}[As]{Notação}
+ , brazilian = [A]{Notação}[As]{Notação}
+ , spanish = [La]{Notación}[Las]{Notación}
+ , schinese = {记号}{记号}
+ , tchinese = {記號}{記號}
+ , japanese = {記法}{記法}
+ , russian = {Нотация}{Нотация}
+ }
+ }
+
+\NameTheorem { observation }
+ {
+ , heading = {
+ , english = Observation
+ , french = Observation
+ , ngerman = Beobachtung
+ , italian = Osservazione
+ , portuguese = Observação
+ , brazilian = Observação
+ , spanish = Observación
+ , schinese = 观察
+ , tchinese = 觀察
+ , japanese = 観察
+ , russian = Наблюдение
+ }
+ , crefname = {
+ , english = {Observation}{Observation}
+ , french = [la]{Observation}[les]{Observation}
+ , ngerman = {Beobachtung}{Beobachtung}
+ , italian = [l']{Osservazione}[le]{Osservazione}
+ , portuguese = [a]{Observação}[as]{Observação}
+ , brazilian = [a]{Observação}[as]{Observação}
+ , spanish = [la]{Observación}[las]{Observación}
+ , schinese = {观察}{观察}
+ , tchinese = {觀察}{觀察}
+ , japanese = {観察}{観察}
+ , russian = {Наблюдение}{Наблюдение}
+ }
+ , Crefname = {
+ , english = {Observation}{Observation}
+ , french = [La]{Observation}[Les]{Observation}
+ , ngerman = {Beobachtung}{Beobachtung}
+ , italian = [L']{Osservazione}[Le]{Osservazione}
+ , portuguese = [A]{Observação}[As]{Observação}
+ , brazilian = [A]{Observação}[As]{Observação}
+ , spanish = [La]{Observación}[Las]{Observación}
+ , schinese = {观察}{观察}
+ , tchinese = {觀察}{觀察}
+ , japanese = {観察}{観察}
+ , russian = {Наблюдение}{Наблюдение}
+ }
+ }
+
+\NameTheorem { postulate }
+ {
+ , heading = {
+ , english = Postulate
+ , french = Postulat
+ , ngerman = Postulat
+ , italian = Postulato
+ , portuguese = Postulado
+ , brazilian = Postulado
+ , spanish = Postulado
+ , schinese = 公设
+ , tchinese = 公設
+ , japanese = 公準
+ , russian = Постулат
+ }
+ , crefname = {
+ , english = {Postulate}{Postulate}
+ , french = [le]{Postulat}[les]{Postulat}
+ , ngerman = {Postulat}{Postulat}
+ , italian = [il]{Postulato}[i]{Postulato}
+ , portuguese = [o]{Postulado}[os]{Postulado}
+ , brazilian = [o]{Postulado}[os]{Postulado}
+ , spanish = [el]{Postulado}[los]{Postulado}
+ , schinese = {公设}{公设}
+ , tchinese = {公設}{公設}
+ , japanese = {公準}{公準}
+ , russian = {Постулат}{Постулат}
+ }
+ , Crefname = {
+ , english = {Postulate}{Postulate}
+ , french = [Le]{Postulat}[Les]{Postulat}
+ , ngerman = {Postulat}{Postulat}
+ , italian = [Il]{Postulato}[I]{Postulato}
+ , portuguese = [O]{Postulado}[Os]{Postulado}
+ , brazilian = [O]{Postulado}[Os]{Postulado}
+ , spanish = [El]{Postulado}[Los]{Postulado}
+ , schinese = {公设}{公设}
+ , tchinese = {公設}{公設}
+ , japanese = {公準}{公準}
+ , russian = {Постулат}{Постулат}
+ }
+ }
+
+\NameTheorem { problem }
+ {
+ , heading = {
+ , english = Problem
+ , french = Problème
+ , ngerman = Problem
+ , italian = Problema
+ , portuguese = Problema
+ , brazilian = Problema
+ , spanish = Problema
+ , schinese = 问题
+ , tchinese = 問題
+ , japanese = 問題
+ , russian = Проблема
+ }
+ , crefname = {
+ , english = {Problem}{Problem}
+ , french = [le]{Problème}[les]{Problème}
+ , ngerman = {Problem}{Problem}
+ , italian = [il]{Problema}[i]{Problema}
+ , portuguese = [o]{Problema}[os]{Problema}
+ , brazilian = [o]{Problema}[os]{Problema}
+ , spanish = [el]{Problema}[los]{Problema}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Проблема}{Проблема}
+ }
+ , Crefname = {
+ , english = {Problem}{Problem}
+ , french = [Le]{Problème}[Les]{Problème}
+ , ngerman = {Problem}{Problem}
+ , italian = [Il]{Problema}[I]{Problema}
+ , portuguese = [O]{Problema}[Os]{Problema}
+ , brazilian = [O]{Problema}[Os]{Problema}
+ , spanish = [El]{Problema}[Los]{Problema}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Проблема}{Проблема}
+ }
+ }
+
+\NameTheorem { property }
+ {
+ , heading = {
+ , english = Property
+ , french = Propriété
+ , ngerman = Eigenschaft
+ , italian = Proprietà
+ , portuguese = Propriedade
+ , brazilian = Propriedade
+ , spanish = Propiedad
+ , schinese = 性质
+ , tchinese = 性質
+ , japanese = 性質
+ , russian = Имущество
+ }
+ , crefname = {
+ , english = {Property}{Property}
+ , french = [la]{Propriété}[les]{Propriété}
+ , ngerman = {Eigenschaft}{Eigenschaft}
+ , italian = [la]{Proprietà}[le]{Proprietà}
+ , portuguese = [a]{Propriedade}[as]{Propriedade}
+ , brazilian = [a]{Propriedade}[as]{Propriedade}
+ , spanish = [la]{Propiedad}[las]{Propiedad}
+ , schinese = {性质}{性质}
+ , tchinese = {性質}{性質}
+ , japanese = {性質}{性質}
+ , russian = {Имущество}{Имущество}
+ }
+ , Crefname = {
+ , english = {Property}{Property}
+ , french = [La]{Propriété}[Les]{Propriété}
+ , ngerman = {Eigenschaft}{Eigenschaft}
+ , italian = [La]{Proprietà}[Le]{Proprietà}
+ , portuguese = [A]{Propriedade}[As]{Propriedade}
+ , brazilian = [A]{Propriedade}[As]{Propriedade}
+ , spanish = [La]{Propiedad}[Las]{Propiedad}
+ , schinese = {性质}{性质}
+ , tchinese = {性質}{性質}
+ , japanese = {性質}{性質}
+ , russian = {Имущество}{Имущество}
+ }
+ }
+
+\NameTheorem { proposition }
+ {
+ , heading = {
+ , english = Proposition
+ , french = Proposition
+ , ngerman = Proposition
+ , italian = Proposizione
+ , portuguese = Proposição
+ , brazilian = Proposição
+ , spanish = Proposición
+ , schinese = 命题
+ , tchinese = 命題
+ , japanese = 命題
+ , russian = Предложение
+ }
+ , crefname = {
+ , english = {Proposition}{Proposition}
+ , french = [la]{Proposition}[les]{Proposition}
+ , ngerman = {Proposition}{Proposition}
+ , italian = [la]{Proposizione}[le]{Proposizione}
+ , portuguese = [a]{Proposição}[as]{Proposição}
+ , brazilian = [a]{Proposição}[as]{Proposição}
+ , spanish = [la]{Proposición}[las]{Proposición}
+ , schinese = {命题}{命题}
+ , tchinese = {命題}{命題}
+ , japanese = {命題}{命題}
+ , russian = {Предложение}{Предложение}
+ }
+ , Crefname = {
+ , english = {Proposition}{Proposition}
+ , french = [La]{Proposition}[Les]{Proposition}
+ , ngerman = {Proposition}{Proposition}
+ , italian = [La]{Proposizione}[Le]{Proposizione}
+ , portuguese = [A]{Proposição}[As]{Proposição}
+ , brazilian = [A]{Proposição}[As]{Proposição}
+ , spanish = [La]{Proposición}[Las]{Proposición}
+ , schinese = {命题}{命题}
+ , tchinese = {命題}{命題}
+ , japanese = {命題}{命題}
+ , russian = {Предложение}{Предложение}
+ }
+ }
+
+\NameTheorem { question }
+ {
+ , heading = {
+ , english = Question
+ , french = Question
+ , ngerman = Frage
+ , italian = Domanda
+ , portuguese = Pergunta
+ , brazilian = Pergunta
+ , spanish = Pregunta
+ , schinese = 问题
+ , tchinese = 問題
+ , japanese = 問題
+ , russian = Вопрос
+ }
+ , crefname = {
+ , english = {Question}{Question}
+ , french = [la]{Question}[les]{Question}
+ , ngerman = {Frage}{Frage}
+ , italian = [la]{Domanda}[le]{Domanda}
+ , portuguese = [a]{Pergunta}[as]{Pergunta}
+ , brazilian = [a]{Pergunta}[as]{Pergunta}
+ , spanish = [la]{Pregunta}[las]{Pregunta}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Вопрос}{Вопрос}
+ }
+ , Crefname = {
+ , english = {Question}{Question}
+ , french = [La]{Question}[Les]{Question}
+ , ngerman = {Frage}{Frage}
+ , italian = [La]{Domanda}[Le]{Domanda}
+ , portuguese = [A]{Pergunta}[As]{Pergunta}
+ , brazilian = [A]{Pergunta}[As]{Pergunta}
+ , spanish = [La]{Pregunta}[Las]{Pregunta}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Вопрос}{Вопрос}
+ }
+ }
+
+\NameTheorem { remark }
+ {
+ , heading = {
+ , english = Remark
+ , french = Remarque
+ , ngerman = Bemerkung
+ , italian = Commento
+ , portuguese = Comentário
+ , brazilian = Comentário
+ , spanish = Comentario
+ , schinese = 备注
+ , tchinese = 備註
+ , japanese = 注釈
+ , russian = Замечание
+ }
+ , crefname = {
+ , english = {Remark}{Remark}
+ , french = [la]{Remarque}[les]{Remarque}
+ , ngerman = {Bemerkung}{Bemerkung}
+ , italian = [il]{Commento}[i]{Commento}
+ , portuguese = [o]{Comentário}[os]{Comentário}
+ , brazilian = [o]{Comentário}[os]{Comentário}
+ , spanish = [el]{Comentario}[los]{Comentario}
+ , schinese = {备注}{备注}
+ , tchinese = {備註}{備註}
+ , japanese = {注釈}{注釈}
+ , russian = {Замечание}{Замечание}
+ }
+ , Crefname = {
+ , english = {Remark}{Remark}
+ , french = [La]{Remarque}[Les]{Remarque}
+ , ngerman = {Bemerkung}{Bemerkung}
+ , italian = [Il]{Commento}[I]{Commento}
+ , portuguese = [O]{Comentário}[Os]{Comentário}
+ , brazilian = [O]{Comentário}[Os]{Comentário}
+ , spanish = [El]{Comentario}[Los]{Comentario}
+ , schinese = {备注}{备注}
+ , tchinese = {備註}{備註}
+ , japanese = {注釈}{注釈}
+ , russian = {Замечание}{Замечание}
+ }
+ }
+
+\NameTheorem { theorem }
+ {
+ , heading = {
+ , english = Theorem
+ , french = Théorème
+ , ngerman = Satz
+ , italian = Teorema
+ , portuguese = Teorema
+ , brazilian = Teorema
+ , spanish = Teorema
+ , schinese = 定理
+ , tchinese = 定理
+ , japanese = 定理
+ , russian = Теорема
+ }
+ , crefname = {
+ , english = {Theorem}{Theorem}
+ , french = [le]{Théorème}[les]{Théorème}
+ , ngerman = {Satz}{Satz}
+ , italian = [il]{Teorema}[i]{Teorema}
+ , portuguese = [o]{Teorema}[os]{Teorema}
+ , brazilian = [o]{Teorema}[os]{Teorema}
+ , spanish = [el]{Teorema}[los]{Teorema}
+ , schinese = {定理}{定理}
+ , tchinese = {定理}{定理}
+ , japanese = {定理}{定理}
+ , russian = {Теорема}{Теорема}
+ }
+ , Crefname = {
+ , english = {Theorem}{Theorem}
+ , french = [Le]{Théorème}[Les]{Théorème}
+ , ngerman = {Satz}{Satz}
+ , italian = [Il]{Teorema}[I]{Teorema}
+ , portuguese = [O]{Teorema}[Os]{Teorema}
+ , brazilian = [O]{Teorema}[Os]{Teorema}
+ , spanish = [El]{Teorema}[Los]{Teorema}
+ , schinese = {定理}{定理}
+ , tchinese = {定理}{定理}
+ , japanese = {定理}{定理}
+ , russian = {Теорема}{Теорема}
+ }
+ }
+
+\endinput
+%%
+%% End of file `projlib-theorem.sty'.
+
+
+接下来:
+1. ✅ 定义 \SetTheorem,用于处理编号和名称样式的问题
+2. ✅ 定义 complexname 与 simplename
+3. ✅ 给出定理类环境的初始化,注意 no-theorem 与 no-theorem-numbering 等选项
diff --git a/support/TeX4ht/source/ChangeLog b/support/TeX4ht/source/ChangeLog
index cab7d98f06..7143b28552 100644
--- a/support/TeX4ht/source/ChangeLog
+++ b/support/TeX4ht/source/ChangeLog
@@ -1,3 +1,10 @@
+2022-03-08 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (threeparttable.4ht),
+ * tex4ht-html4.tex (html4.4ht): added support for the Threeparttable
+ package.
+ https://puszcza.gnu.org.ua/bugs/?556
+
2022-02-28 Michal Hoftich <michal.h21@gmail.com>
* tex4ht-html4.tex (html4-math.4ht): removed math configuration for
diff --git a/support/TeX4ht/source/tex4ht-4ht.tex b/support/TeX4ht/source/tex4ht-4ht.tex
index b1a19e87f3..8c23f7fdaa 100644
--- a/support/TeX4ht/source/tex4ht-4ht.tex
+++ b/support/TeX4ht/source/tex4ht-4ht.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-4ht.tex 1084 2022-02-22 13:19:45Z michal_h21 $
+% $Id: tex4ht-4ht.tex 1087 2022-03-08 09:45:01Z michal_h21 $
% tex tex4ht-4ht or ht tex tex4ht-4ht
%
% Copyright 2009-2022 TeX Users Group
@@ -10479,6 +10479,20 @@ handling. Michal
%%%%%%%%%%%%%%%%%%%%%%%%
+\Section{threeparttable}
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+\<threeparttable.4ht\><<<
+% threeparttable.4ht (|version), generated from |jobname.tex
+% Copyright 2022 TeX Users Group
+|<TeX4ht license text|>
+\def\:tempa{\o:TPT@endtabbox:\AddToHookNext{env/\@currenvir/after}{\IgnorePar}}
+\HLet\TPT@endtabbox\:tempa
+\Hinput{threeparttable}
+\endinput
+>>> \AddFile{9}{threeparttable}
+
+%%%%%%%%%%%%%%%%%%%%%%%%
\Section{mdwtab}
%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index 803965d594..34e8ee56d4 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -12,7 +12,6 @@ $mirrors = {
'Asia' => {
'China' => {
'https://mirror.bjtu.edu.cn/CTAN/' => 1,
- 'https://mirrors.aliyun.com/CTAN/' => 1,
'https://mirrors.bfsu.edu.cn/CTAN/' => 1,
'https://mirrors.cloud.tencent.com/CTAN/' => 1,
'https://mirrors.cqu.edu.cn/CTAN/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index f832285a93..04c84920f9 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,7 +26,7 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2021
-depend revision/62508
+depend revision/62540
name 00texlive.image
category TLCore
@@ -4541,7 +4541,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 62491
+revision 62511
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
@@ -100696,7 +100696,7 @@ catalogue-topics notes editorial
name easybook
category Package
-revision 62509
+revision 62523
shortdesc Easily typesetting Chinese theses or books
relocated 1
longdesc easybook is a pure academic template created based on the
@@ -100707,16 +100707,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 16576
-containerchecksum 00b374d61d34fb7d3135d8a59adbd48e8b2057ec2b5aae417ed7e12a28eb5bbd86c24222afda770ec07938bd54d9f7f610029c9f2ff719088cf6e685bbc74131
-doccontainersize 608536
-doccontainerchecksum 25af1130afde3a4e0d530cb7a272c0be58c12262eca8c1314383260da6e347a1f8d88e224c6bed4748ea11a048455912f7fb98f7ec4096ae6cf0d9da6ff70b09
+containersize 16564
+containerchecksum 6e06f65c46bbd7b24ee7fdba8f774a3b69229817c6fa32ad433e472c3a028632de299c07a0fdb10cbdf409e7add526392a12cbb9245f154984c2e15942af0e27
+doccontainersize 608540
+doccontainerchecksum 301d12ad5d1e65ba2f10142820d9c72275dd898ffab1de3539f2515d38c75f130bfa233ccf13d03429bb35a99c064eb770dfdb640e90693137a9e0fb28e5bb54
docfiles size=166
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 16476
-srccontainerchecksum c004059c342efad47dd1cc473df8eab265774bf55f076eaf5a49b9e02623e26061d9444a6d5170f239e2bcba8ab022a60e31781fe33e5cdaa920a3332815c5f3
+srccontainersize 16468
+srccontainerchecksum dec9806c97f08a888700be57d602610ebda334388babc7e637ffbbb51282b103b1e60e07397b048a81b526842ec7040c8a55b2b5ef2aec29b636ca57577f315f
srcfiles size=20
RELOC/source/latex/easybook/easybook.dtx
RELOC/source/latex/easybook/easybook.ins
@@ -100729,7 +100729,7 @@ catalogue-contact-repository https://gitee.com/texl3/easybook
catalogue-ctan /macros/latex/contrib/easybook
catalogue-license lppl1.3c
catalogue-topics book-pub class chinese expl3
-catalogue-version 1.641
+catalogue-version 1.642
name easyfig
category Package
@@ -125346,7 +125346,7 @@ catalogue-version 2.0.7
name footmisc
category Package
-revision 62509
+revision 62527
shortdesc A range of footnote options
relocated 1
longdesc A collection of ways to change the typesetting of footnotes.
@@ -125364,10 +125364,10 @@ longdesc packages, though those are both also portmanteau packages.
longdesc (Don't be seduced by fnpara, whose implementation is improved
longdesc by the present package.) The perpage option is also offered by
longdesc footnpag and by the rather more general-purpose perpage
-containersize 7648
-containerchecksum 60d121ec32ddc172d0c15209c91eaff2d292524d8d5f02a71326fa26a6b1f5be25ca733fa4d1c9f268929659394047b92648b1497bd503c522e49c83be84fea5
-doccontainersize 511224
-doccontainerchecksum 446f3301ca125900ad4b3ee7aab12fd07c507deeab0cc131abb299ddf8d017f71a749a31a9338232492ed7848245fbcae452a60609107593d23640aa71d8512c
+containersize 7672
+containerchecksum c55f3aac5f84a30738bfbf6ad6110a39e27ad9be50a6d454794512612649c008e6c55d94484abdb57a0ba9d76e8fd9ce85c7ea973e2bfab718f49b94c7f52f5b
+doccontainersize 511220
+doccontainerchecksum c5a29fa3c76554d043a4ee0b7eb429428a4158a00c1617ab57e616ad99e83b3ef2319bd447fcf80d66e9038cb8972d557f4a6db9cc29aae8769d3c0f702df578
docfiles size=154
RELOC/doc/latex/footmisc/README.md details="Readme"
RELOC/doc/latex/footmisc/changes.txt
@@ -125375,8 +125375,8 @@ docfiles size=154
RELOC/doc/latex/footmisc/footmisc-code.tex
RELOC/doc/latex/footmisc/footmisc-doc.pdf details="Package documentation"
RELOC/doc/latex/footmisc/footmisc-doc.tex
-srccontainersize 22112
-srccontainerchecksum 23a81d8eff510806038d1f1c397af05efa427b5ceec4359ee20b3680ebbddc8cae9fb2006c73fd8faf13e5b16e138ca37ad0de4f4ff96175548c84d14e8a96e1
+srccontainersize 22204
+srccontainerchecksum d6f2f90be95d4a459a2cf658bc0c1d5cda34fd61a4c4022924861385ba0e177e065736e9e1542dd15dd420ad2aa4a1bfa412161cdc2e2bea162174acddf8957f
srcfiles size=22
RELOC/source/latex/footmisc/footmisc.dtx
RELOC/source/latex/footmisc/footmisc.ins
@@ -125388,7 +125388,7 @@ catalogue-contact-repository https://github.com/frankmittelbach/fmitex-footmisc
catalogue-ctan /macros/latex/contrib/footmisc
catalogue-license lppl1.3c
catalogue-topics footnote
-catalogue-version 6.0c
+catalogue-version 6.0d
name footmisx
category Package
@@ -187599,7 +187599,7 @@ catalogue-version 0.8
name lua-widow-control
category Package
-revision 62144
+revision 62526
shortdesc Automatically remove widows and orphans from any document
relocated 1
longdesc Unmodified TeX has very few ways of preventing widows and
@@ -187620,23 +187620,24 @@ longdesc start of your document. To load: Plain LuaTeX: \input
longdesc lua-widow-control LuaLaTeX: \usepackage{lua-widow-control}
longdesc ConTeXt (LMTX): \usemodule[lua-widow-control] OpTeX:
longdesc \load[lua-widow-control]
-containersize 7080
-containerchecksum a10bff0859ff7beb6e6364435c68b1f54c5c1e233eb602ca11c193f57ab7d9f504a63324ed8be456e73dd71dffebec213aaae5aafcd16ca092473e4c890fe31a
-doccontainersize 319168
-doccontainerchecksum ac0a3ccb6f900b1911c360e0e9333d37e21a288837325d20b109d3af58067df7851073f0268e2ee2e7b11d213810abe4c693457ed4d63c114f5fc49f5b960f4f
-docfiles size=86
+containersize 10204
+containerchecksum d973003c74113394d7b4fd4330974d06d9f1df1e25d2f8186ec5a05d96e9345c732246149c083870a3a0708e5fcddc9c23a3f04fffbea33b89d55c7b2aff7279
+doccontainersize 381520
+doccontainerchecksum b1c037738bdf24a5c06e6eb2a48b663cef428ff215911ee2fee4cf278ca732605a967cba534a990eea148bcbc9e051356d07668100a284ee6b0ac191c4750071
+docfiles size=103
RELOC/doc/luatex/lua-widow-control/README.md details="Readme"
RELOC/doc/luatex/lua-widow-control/lua-widow-control.pdf details="Package documentation"
-srccontainersize 12064
-srccontainerchecksum 8bf5358b8d2e68796cc89d8ba4911a0d4e49b23055f735a8b59f23326ecfbf9915e1d897ccf1541c56a8cca5f87203f7455f450ac3d63e9ae9ff4b17a57835bc
-srcfiles size=11
+srccontainersize 13432
+srccontainerchecksum 5bfdb618bb3bd87f33aac09b5b302bf6994ee6851c7268ffad7cfd008e8b15baf86d9a36b7018f1001cc07778e703923a6d37635993f8b6d1411bf94903f98f1
+srcfiles size=12
RELOC/source/luatex/lua-widow-control/lwc-documentation.bib
RELOC/source/luatex/lua-widow-control/lwc-documentation.mkxl
RELOC/source/luatex/lua-widow-control/lwc-documentation.tex
RELOC/source/luatex/lua-widow-control/lwc-sample.tex
-runfiles size=9
+runfiles size=12
RELOC/tex/context/third/lua-widow-control/t-lua-widow-control.mkiv
RELOC/tex/context/third/lua-widow-control/t-lua-widow-control.mkxl
+ RELOC/tex/lualatex/lua-widow-control/lua-widow-control-2022-02-22.sty
RELOC/tex/lualatex/lua-widow-control/lua-widow-control.sty
RELOC/tex/luatex/lua-widow-control/lua-widow-control.lua
RELOC/tex/luatex/lua-widow-control/lua-widow-control.tex
@@ -187647,7 +187648,7 @@ catalogue-contact-support https://github.com/gucci-on-fleek/lua-widow-control/di
catalogue-ctan /macros/luatex/generic/lua-widow-control
catalogue-license other-free cc-by-sa-4
catalogue-topics layout luatex
-catalogue-version 1.1.6
+catalogue-version 2.0.0
name luabibentry
category Package
@@ -289895,7 +289896,7 @@ binfiles arch=x86_64-solaris size=1
name tex4ht
category Package
-revision 62147
+revision 62532
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
@@ -289916,10 +289917,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 927404
-containerchecksum 275bb47a56c8438e0f365cde5467f46f47704da6bf1938aeb116b89927cf8184d1f8b54fd2dd9116aef6e0f4a3d63686677cd5fcb59abce85ef6f501a765a26d
-doccontainersize 136380
-doccontainerchecksum c6f1a8f30322a86eda16e7acb6a93289e5078275b60f8204598180af236f4328e99f343f0c66eef7ae7c2c9fc256f35aeba5ac41a7d3da2dea3fc75d4adf09c2
+containersize 927108
+containerchecksum 3d8cd7697c508dce7af2b2c5fc580d619c792f920142f0288881d9a5d07c7f4e655249cabbfb8b41d75bd3a5ffd0cd3c899c5209d3ddadf40e2d896c3711cb1b
+doccontainersize 136384
+doccontainerchecksum da7d20c1cd3ff1e7b5251877858e7f988763236afca1d8b7cd858b1dc1fd9e155c079b656e9adcd006357810b8062fccc792f5fac19ff119098a7e4a7fa36a43
docfiles size=260
texmf-dist/doc/generic/tex4ht/Makefile
texmf-dist/doc/generic/tex4ht/README details="Readme"
@@ -289991,8 +289992,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 1235612
-srccontainerchecksum e0987be23b7f64c4e033ed452883cda6eb5d1cc2bf9504d33a91ed365dd4eb1aaa6115121511a02e0159074c313264d722ad79eff2838ac91c8cbe6c9537aa79
+srccontainersize 1235608
+srccontainerchecksum 3972c22d592cf2707cc8769a3e2b50637fbbfa9ce58fe7c829b55f7b868c57f5c724ac5a2731b0b646db0386951bc0ee8c8080111c3975363f02bb528e1bad8c
srcfiles size=3754
texmf-dist/source/generic/tex4ht/ChangeLog
texmf-dist/source/generic/tex4ht/Makefile
@@ -290067,7 +290068,7 @@ srcfiles size=3754
texmf-dist/source/generic/tex4ht/update-htfonts
texmf-dist/source/generic/tex4ht/wripro.tex
texmf-dist/source/generic/tex4ht/xtpipes.tex
-runfiles size=10616
+runfiles size=10617
texmf-dist/scripts/tex4ht/ht.sh
texmf-dist/scripts/tex4ht/htcontext.sh
texmf-dist/scripts/tex4ht/htcopy.pl
@@ -290490,6 +290491,7 @@ runfiles size=10616
texmf-dist/tex/generic/tex4ht/textures.4ht
texmf-dist/tex/generic/tex4ht/th4.4ht
texmf-dist/tex/generic/tex4ht/theorem.4ht
+ texmf-dist/tex/generic/tex4ht/threeparttable.4ht
texmf-dist/tex/generic/tex4ht/tikz-hooks.4ht
texmf-dist/tex/generic/tex4ht/titlesec.4ht
texmf-dist/tex/generic/tex4ht/titling.4ht
@@ -299915,7 +299917,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 62491
+revision 62511
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.
@@ -299923,10 +299925,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 108812
-containerchecksum 554f19bc5caa2baf34c5cd3518744b4d6ddbdba6b34d49fb3f0345f2bc9012200978196f5afebfd8d05708462206383aa37fd0443c384e7bde563f3023ade913
+containersize 108804
+containerchecksum e9b172c937e6a53d898db51b094b7f7e47254c77984615b2430a42822a136e048cc6a90039862697566ca7121fb776b847705a605b2a6104a77d3b331a134711
doccontainersize 404044
-doccontainerchecksum 293cbaa6ccbab6b98078d7fd534bb62ba292beba561cdb888d8ffe21372a9deb8b81f748381e2e12b9bfb4490691ac008a2df5865691e5b86f94f063f84baefe
+doccontainerchecksum b3629db3476daabd98caf99fd5c13f881a299667123662b6a5dc3e7cfa7e7e8c9b3541e1f2918109a09b50ee42e6f71dcdc60fa621c3d7bd1168b97ca80ec16c
docfiles size=503
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -338079,16 +338081,16 @@ catalogue-topics frivolous
name xindex
category Package
-revision 62002
+revision 62521
shortdesc Unicode compatible index generation
longdesc This package provides a unicode compatible index programm for
longdesc LaTeX. It needs Lua 5.3, which will be included in at least
longdesc LuaTeX 1.09 (TeX Live 2019).
depend xindex.ARCH
-containersize 34608
-containerchecksum e4bc5df64dedf79c4b4fd2a0cfcfb60009df54b513f5bdb44051a3808a01d3461985056b23a4e3c36c8dca382248f40900cd78cdca30f92243d7c9799961d56e
-doccontainersize 503012
-doccontainerchecksum b350feca447c66ddf207d2f8d69faddedbacd78926744d2d674ed625bbb334ca965fa70acbbbf2bdcf4398e5897dd441a0bcf369c6e3fbe731102ad55f881cc3
+containersize 34592
+containerchecksum a3b95fb98bf238b3620053aba0329a2dabd34ce76632d5887e8980d6a86ca2d31e74d0a5987d799202b90eb6648af2b34cb69eda58582722c2172e774a90def0
+doccontainersize 504128
+doccontainerchecksum 637b56f0928582599ca3117106a6dc02aea77dbba5b5c6b4b00f531c6b9714f54fe2ec532b514bf1e04eef1ed4f0cfbfc9ea34761cfffc9072c4899ffb70263e
docfiles size=218
texmf-dist/doc/lualatex/xindex/CHANGELOG
texmf-dist/doc/lualatex/xindex/Makefile
@@ -338132,10 +338134,9 @@ docfiles size=218
texmf-dist/doc/lualatex/xindex/tests/runTests.sh
texmf-dist/doc/lualatex/xindex/xindex-doc.pdf details="Package documentation"
texmf-dist/doc/lualatex/xindex/xindex-doc.tex
-runfiles size=59
+runfiles size=58
texmf-dist/scripts/xindex/xindex.lua
texmf-dist/tex/latex/xindex/xindex.sty
- texmf-dist/tex/lualatex/xindex/xindex-AU.lua
texmf-dist/tex/lualatex/xindex/xindex-DIN2.lua
texmf-dist/tex/lualatex/xindex/xindex-HAdW-eKO.lua
texmf-dist/tex/lualatex/xindex/xindex-base.lua
@@ -338156,7 +338157,7 @@ catalogue-contact-repository https://gitlab.com/hvoss49/xindex
catalogue-ctan /indexing/xindex
catalogue-license lppl1.3
catalogue-topics index use-lua
-catalogue-version 0.40
+catalogue-version 0.41
name xindex.aarch64-linux
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 39e69baeca..36f9b5a88b 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-eb295fe05c4393b499c3369399fc02cf texlive.tlpdb
+12b88d9b90ae171488015359dbf37fda texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index d7c0f3944a..2bd49fdeb1 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-8cce980c8d21ede94a13e7046d6e00f2c7c5fbc5011aed5f263ffdcc9bc30afe0464dc6b8fbebb49c14728e6bf218aef9c92728cc446cdfe5cc18ee72b75547f texlive.tlpdb
+d3110925950a1885ec36d6810796ad7c49257ba8bf9e40d474616116f0db7297f16bedf0aecf67e526730575ff060f8edeca134ad307184b4a193a6ff03dd540 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index a7395d5577..7c5b077dd1 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJiJsBoAAoJEEzhh34ZQ4xwxZUH/RpDto4B03WULaAu4nyL0W4a
-Vb6zTv+2R439U8ZPmzRnK9z80XpmH+VVhX5yXZbavyfwdKq45Qeff59aaK3rpG/0
-TiMWeH7t623h8qMdukmV7Nzhhw90TYGZlBQjimu19GWW8/9i6y+FHoI5pKm99MWA
-wLDx8jF/W3kGFbGAhJdlT1/Bm8jaSEbNS88QMgiNH6LQOeDg0rgUUXKl7Tgz/IrA
-igVGdf80NTg9xQBy+AMerKa1XMOgtzpaGXd/IpyzH98uw+GZ9rTV/lIP5z65z8eP
-vK8cFRAAuA3+qE4DulRivm9cGNUIt+lB+SEud9eAz903OgQ5+oYJs7zH8LJB9cU=
-=WXYp
+iQEcBAEBCgAGBQJiKBHVAAoJEEzhh34ZQ4xwhEkIAI4687SQffenp3vCHoUg6dca
+yQ2Y6r1s1hvPRuELxZug4D6rL+69bUHg3QWxNf8Y0HkA6X2lFb3FVto23bMNKb/M
+sqatRNHkmFHeiSisSLTMc/y536aay4KhkrnTbJX8u2AMWc2YgJ3SqaHzKv92TCyq
+9vTW5G9DPoL+KpEZljtK9oex7YpbwaNoZiFVd3b3CVTrz802oFHSjhyZtE8k6rOp
+JlarQt5Vh2LYo6dFUH82Vt3gduU7eNWPQIwPavNQjz32BL9gd3U+cmioYmh5S0+0
+DzlWUSaRfY1mORnhSbbE3KX+3bjQYZ+B75YLKuoQE0aI0V2DwCX38kVsrjYXmIo=
+=T6AZ
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 5c91c7d4cd..93aa68a101 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/files.csv.lzma b/systems/win32/miktex/tm/packages/files.csv.lzma
index 6a9a60f882..111e9ad73c 100644
--- a/systems/win32/miktex/tm/packages/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/files.csv.lzma b/systems/win32/miktex/tm/packages/next/files.csv.lzma
index 29f372fb12..c0dd8b8ff6 100644
--- a/systems/win32/miktex/tm/packages/next/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/next/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index ab5468c0ba..defc1fd224 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1646774280
+date=1646860685
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=95c63e3b14dbf3f00a7058368625cfc1
-numpkg=5438
+lstdigest=2f8941d971b1687bd97c1a711b5cceb4
+numpkg=5443
relstate=next
-version=8102
+version=8103
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: KkFGnLDWTvNfCnLxpYXSuGZV54jdpmNv7IBO4N5KJiuWTXGPo1GnZTHiQjNaNxND0rHuJtCRmZ0RiZdB19ZMjpbLF6FdOHgMzng8qum4Cd0GLYDT7KyebbZHClDUL9ixR8wNHkGOUhz1PolzjD6yDJUYoMJgrAmoNDZg4dy2Y3ofbO9BsGZVaQtfKkaQfY1WeBSOyPG4cEzmuOYu3hQE97gOM6U6TxZLLgXTpHEOEBNioLWOOABkY4Omt09AW6LHfxSs1n0YjG4Md9Jt7k1O6Mh9RTBO76C7zBk5HaUV/Ep90eUtqsDvWLpFzkzNwkqYP3UcicUKvQ5wxxu6KZtsyA==
+;;;; signature/miktex: NHqft7m1SZe68izC3vGevBy4meHCzq9MWU329E/zZsN8q+CpNG4cWfyzOuC8os9UcmtciPCr/WQ+7okgmTys/KRdekJpmrm2H3IW2CIUQVvNmPXGz+p3DV18BCfVFIFu41e4aUUAWD+SzqnK2rui058JarJl8CG56IvLeGEHbech+0/M5K41qxUjfANtp9LRIu9ypFoXn8MxFDBfuO1CrGPMuTH3QUN3Fh0lH5m9Iyko12qj6YrhBthKWai+6b+YllfwfVwBMu/UCTXVbY3PnAgUkRmMJfUTg4m0BnJvRG89eTvZPHkgRwZ7kaGZ2ziOFtyGhML4zR8hkcB+0yCKww==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index c32ae4d52c..6382b8e3d9 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1646773913
-lastupd=acmart acmart__doc acmart__source arara arara__doc arara__source atendofenv atendofenv__doc atendofenv__source babel babel__doc babel__source bath-bst bath-bst__doc bath-bst__source beamertheme-arguelles beamertheme-arguelles__doc beamertheme-arguelles__source bfh-ci bfh-ci__doc
-lstdigest=f8db5ac6b86c6042a949b5efb1bc0cd2
-numpkg=5436
+date=1646860305
+lastupd=biblatex-gb7714-2015 biblatex-gb7714-2015__doc biblatex-gb7714-2015__source easybook easybook__doc easybook__source footmisc footmisc__doc footmisc__source latex-for-undergraduates latex-for-undergraduates__source lua-widow-control lua-widow-control__doc lua-widow-control__source pmx pmx__doc pmx__source robotarm robotarm__doc robotarm__source
+lstdigest=204eb08a41694c3d6901a2a11d50d9f5
+numpkg=5441
relstate=stable
-version=8102
+version=8103
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: CNq49wgv+m9mzdeE+e/wdQSsDANBtGUTmSZofJTTELINkCORC3Trg8zX+9Ejyk+s+dFV0sXDLaW9HOyxWWDzFue0PyBZy0MWrRcux+3mv81Anks0Xzn0wtO/nTSfNXdOKQDXyrccS5iKvl09e1390YqqKsmSuPRqZ+yFezQjmUjkj1G56my0JGdbrG8LQJADZrrb+l4pMdsrmBo1hECnUO8nmlPvfUgYPpghQbSbcqw26NOJmBtUKaUmAas4SpRWiTtFOtbj+PiIoAJVH4gJvJuD84gI3+wwMz5TnQ6P4XzmFZ1LDnXDlN2X3Mp23zeR+RksLnSrQjU0OIwWXApksA==
+;;;; signature/miktex: CUy6ClQ7+Ikcakkgepv6+yJIxymvo3048QM67cZngBNlge2QMyqPv+aFcoIqA4AEjTU2WAu/z2ZBmoEJoWIKBcWviVo/9rSVth0QfBEjQfztP300L0Qu8gBRGW9gEY7W+b6HAnU7voXXYKXuZWWx1pq+E6JC5rFdi3mpSczfqzn+9hQDnWRFE6Ojn0UKSK9vdnPX9o3T20itQlSP2VurDzw1tTjOX29LDLc6hgaoQIBA0aAJdSmNjJZJDKFKbNP2OKlwew5Qimx+9/IK3Hbn3uqHxrvZePJQyoeqVHQFZYhMWFFTlyJzc7VOqTGN1wq/JEHv6W1/Srh60A+FGenCvw==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index d9387e904a..51def2466d 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2022-03-09-02-02
+2022-03-10-02-02