summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname319
-rw-r--r--FILES.byname.gzbin2538176 -> 2538270 bytes
-rw-r--r--FILES.last07days302
-rw-r--r--biblio/ctan-bibdata/ctan.bib28
-rw-r--r--biblio/ctan-bibdata/ctan.pdfbin3688573 -> 3687353 bytes
-rw-r--r--graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.pdfbin862646 -> 1000703 bytes
-rw-r--r--graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.tex109
-rw-r--r--graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.pdfbin867272 -> 1005336 bytes
-rw-r--r--graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.tex103
-rw-r--r--graphics/metapost/contrib/macros/mpchess/doc/mpchess-preamble.tex2
-rw-r--r--graphics/metapost/contrib/macros/mpchess/fonts/mpchessfont.ttfbin38292 -> 38292 bytes
-rw-r--r--graphics/metapost/contrib/macros/mpchess/metapost/mpchess-pieces.mp18
-rw-r--r--graphics/metapost/contrib/macros/mpchess/metapost/mpchess.mp82
-rw-r--r--graphics/pgf/contrib/tikz-nfold/README.md2
-rw-r--r--graphics/pgf/contrib/tikz-nfold/pgflibrarybezieroffset.code.tex170
-rw-r--r--graphics/pgf/contrib/tikz-nfold/pgflibrarynfold.code.tex88
-rw-r--r--graphics/pgf/contrib/tikz-nfold/pgflibraryoffsetpath.code.tex913
-rw-r--r--graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.pdfbin302816 -> 304060 bytes
-rw-r--r--graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.tex38
-rw-r--r--graphics/pgf/contrib/tikz-nfold/tikzlibrarynfold.code.tex1303
-rw-r--r--graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.pdfbin604526 -> 605728 bytes
-rw-r--r--graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.tex33
-rw-r--r--graphics/pgf/contrib/tikz3d-fr/tex/tikz3d-fr.sty27
-rw-r--r--language/japanese/BX/bxcjkjatype/LICENSE2
-rw-r--r--language/japanese/BX/bxcjkjatype/README-ja.md241
-rw-r--r--language/japanese/BX/bxcjkjatype/README.md234
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.pdfbin0 -> 158295 bytes
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.tex400
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkjatype.pdfbin0 -> 391593 bytes
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkjatype.sty198
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkjatype.tex406
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkvert-ja.pdfbin0 -> 103927 bytes
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkvert-ja.tex129
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkvert.pdfbin0 -> 372010 bytes
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkvert.tex138
-rw-r--r--macros/latex/contrib/crefthe/README.md45
-rw-r--r--macros/latex/contrib/crefthe/crefthe-doc.pdfbin53458 -> 58374 bytes
-rw-r--r--macros/latex/contrib/crefthe/crefthe-doc.tex63
-rw-r--r--macros/latex/contrib/crefthe/crefthe.sty261
-rw-r--r--macros/latex/contrib/esami/README38
-rw-r--r--macros/latex/contrib/esami/VERSION2
-rw-r--r--macros/latex/contrib/esami/doc/esami-doc-en.pdfbin480874 -> 483307 bytes
-rw-r--r--macros/latex/contrib/esami/doc/esami-doc-en.tex11
-rw-r--r--macros/latex/contrib/esami/doc/esami-doc-it.pdfbin488964 -> 492308 bytes
-rw-r--r--macros/latex/contrib/esami/doc/esami-doc-it.tex16
-rw-r--r--macros/latex/contrib/esami/doc/esami.bib7
-rw-r--r--macros/latex/contrib/esami/doc/examples/problem4-fillin.tex2
-rw-r--r--macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie1.parametri.tex4
-rw-r--r--macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie2.parametri.tex4
-rw-r--r--macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie3.parametri.tex4
-rw-r--r--macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie4.parametri.tex4
-rw-r--r--macros/latex/contrib/esami/doc/examples/test5-fillin.tex2
-rw-r--r--macros/latex/contrib/esami/doc/examples/testA-pdflatex-sol.pdfbin0 -> 186860 bytes
-rw-r--r--macros/latex/contrib/esami/doc/examples/testA-pdflatex-sol.tex (renamed from macros/latex/contrib/esami/doc/examples/testA-sol.tex)21
-rw-r--r--macros/latex/contrib/esami/doc/examples/testA-pdflatex.pdfbin0 -> 153114 bytes
-rw-r--r--macros/latex/contrib/esami/doc/examples/testA-pdflatex.tex (renamed from macros/latex/contrib/esami/doc/examples/testA.tex)17
-rw-r--r--macros/latex/contrib/esami/doc/examples/testA-sol.pdfbin257725 -> 0 bytes
-rw-r--r--macros/latex/contrib/esami/doc/examples/testA-xetex-sol.sol.tex84
-rw-r--r--macros/latex/contrib/esami/doc/examples/testA.pdfbin217098 -> 0 bytes
-rw-r--r--macros/latex/contrib/esami/esami-xyz.cfg6
-rw-r--r--macros/latex/contrib/esami/esami.sty9
-rw-r--r--macros/latex/contrib/mitthesis/MIT-Thesis.pdfbin489171 -> 489188 bytes
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex35
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex30
-rw-r--r--macros/latex/contrib/mitthesis/MIT-thesis-template/chapter1.tex5
-rw-r--r--macros/latex/contrib/mitthesis/README.md8
-rw-r--r--macros/latex/contrib/mitthesis/examples/cover_page_samples/No_cc_license.pdfbin105979 -> 105510 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_one_degree.pdfbin107341 -> 106895 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees.pdfbin107588 -> 107382 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees_from_one_department.pdfbin107668 -> 107250 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_one_degree.pdfbin108531 -> 108222 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_two_degrees.pdfbin130741 -> 131063 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/No_cc_license.tex36
-rw-r--r--macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_one_degree.tex36
-rw-r--r--macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees.tex38
-rw-r--r--macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees_from_one_department.tex44
-rw-r--r--macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_one_degree.tex37
-rw-r--r--macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_two_degrees.tex44
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdfbin490253 -> 490288 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdfbin318691 -> 319041 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdfbin151436 -> 151460 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdfbin454844 -> 454847 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdfbin169932 -> 169955 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdfbin270253 -> 270252 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdfbin316113 -> 316127 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdfbin159615 -> 159625 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Termes-Stix2.pdfbin161675 -> 161691 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdfbin157887 -> 157894 bytes
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex33
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex33
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex49
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex49
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex49
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex49
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex49
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex49
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-Stix2.tex49
-rw-r--r--macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex49
-rw-r--r--macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdfbin81130 -> 81325 bytes
-rw-r--r--macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex5
-rw-r--r--macros/latex/contrib/mitthesis/mitthesis.cls86
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb105
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc16
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2456408 -> 2459416 bytes
-rw-r--r--timestamp2
108 files changed, 3845 insertions, 3031 deletions
diff --git a/FILES.byname b/FILES.byname
index 896a8c7423..17d82a45e4 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2056,12 +2056,12 @@
2023/07/04 | 1675 | biblio/citation-style-language/README.md
2023/07/04 | 12878 | biblio/citation-style-language/vancouver.csl
2023/07/04 | 4522435 | biblio/citation-style-language.zip
-2023/07/21 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/07/22 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2023/07/21 | 2796023 | biblio/ctan-bibdata/ctan.bib
-2023/07/21 | 3688251 | biblio/ctan-bibdata/ctan.pdf
+2023/07/22 | 2796023 | biblio/ctan-bibdata/ctan.bib
+2023/07/22 | 3688573 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2023/07/21 | 4087454 | biblio/ctan-bibdata.zip
+2023/07/22 | 4087671 | biblio/ctan-bibdata.zip
2023/02/23 | 3126 | biblio/pbibtex/pbibtex-base/cpp.awk
2023/02/23 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh
2023/02/23 | 22362 | biblio/pbibtex/pbibtex-base/jabbrv.bst
@@ -5421,7 +5421,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
-2023/07/21 | 72538 | FILES.last07days
+2023/07/22 | 63790 | 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
@@ -157907,26 +157907,26 @@
2001/06/25 | 3587 | graphics/metapost/contrib/macros/mpattern/README.PL
2001/06/25 | 3781 | graphics/metapost/contrib/macros/mpattern/test.mp
2006/03/19 | 33146 | graphics/metapost/contrib/macros/mpattern.zip
-2023/04/26 | 3043 | graphics/metapost/contrib/macros/mpchess/doc/ctan.bib
-2023/04/26 | 1309 | graphics/metapost/contrib/macros/mpchess/doc/fond.pdf
-2023/04/26 | 862646 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.pdf
-2023/04/26 | 44444 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.tex
-2023/04/26 | 867272 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.pdf
-2023/04/26 | 47425 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.tex
-2023/04/26 | 6602 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-preamble.tex
-2023/04/26 | 62 | graphics/metapost/contrib/macros/mpchess/doc/test.fen
-2023/04/26 | 42 | graphics/metapost/contrib/macros/mpchess/doc/test.pgn
-2023/04/26 | 38292 | graphics/metapost/contrib/macros/mpchess/fonts/mpchessfont.ttf
-2023/04/26 | 415 | graphics/metapost/contrib/macros/mpchess/LICENSE
-2023/04/26 | 41667 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-cburnett.mp
-2023/04/26 | 26443 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-chessboard.mp
-2023/04/26 | 2264 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-fen.mp
-2023/04/26 | 33885 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess.mp
-2023/04/26 | 9748 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-pgn.mp
-2023/04/26 | 22071 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-pieces.mp
-2023/04/26 | 15233 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-skak.mp
-2023/04/26 | 2551 | graphics/metapost/contrib/macros/mpchess/README.md
-2023/04/26 | 1408665 | graphics/metapost/contrib/macros/mpchess.zip
+2023/07/21 | 3043 | graphics/metapost/contrib/macros/mpchess/doc/ctan.bib
+2023/07/21 | 1309 | graphics/metapost/contrib/macros/mpchess/doc/fond.pdf
+2023/07/21 | 1000703 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.pdf
+2023/07/21 | 46466 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.tex
+2023/07/21 | 1005336 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.pdf
+2023/07/21 | 49541 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.tex
+2023/07/21 | 6617 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-preamble.tex
+2023/07/21 | 62 | graphics/metapost/contrib/macros/mpchess/doc/test.fen
+2023/07/21 | 42 | graphics/metapost/contrib/macros/mpchess/doc/test.pgn
+2023/07/21 | 38292 | graphics/metapost/contrib/macros/mpchess/fonts/mpchessfont.ttf
+2023/07/21 | 415 | graphics/metapost/contrib/macros/mpchess/LICENSE
+2023/07/21 | 41667 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-cburnett.mp
+2023/07/21 | 26443 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-chessboard.mp
+2023/07/21 | 2264 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-fen.mp
+2023/07/21 | 36668 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess.mp
+2023/07/21 | 9748 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-pgn.mp
+2023/07/21 | 22072 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-pieces.mp
+2023/07/21 | 15233 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-skak.mp
+2023/07/21 | 2551 | graphics/metapost/contrib/macros/mpchess/README.md
+2023/07/22 | 1668510 | graphics/metapost/contrib/macros/mpchess.zip
2011/07/15 | 466 | graphics/metapost/contrib/macros/mpcolornames/doc/metapost/mpcolornames/CHANGES
2011/07/15 | 405 | graphics/metapost/contrib/macros/mpcolornames/doc/metapost/mpcolornames/expl-array-index.mp
2011/07/15 | 652 | graphics/metapost/contrib/macros/mpcolornames/doc/metapost/mpcolornames/fig-clash-svg-dvips.mp
@@ -160538,11 +160538,11 @@
2023/05/23 | 439 | graphics/pgf/contrib/tikz2d-fr/README.md
2023/05/27 | 8167 | graphics/pgf/contrib/tikz2d-fr/tex/tikz2d-fr.sty
2023/05/28 | 579952 | graphics/pgf/contrib/tikz2d-fr.zip
-2023/05/24 | 604526 | graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.pdf
-2023/05/24 | 25862 | graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.tex
+2023/07/22 | 605728 | graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.pdf
+2023/07/22 | 26314 | graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.tex
2023/05/02 | 400 | graphics/pgf/contrib/tikz3d-fr/README.md
-2023/05/24 | 10161 | graphics/pgf/contrib/tikz3d-fr/tex/tikz3d-fr.sty
-2023/05/24 | 596399 | graphics/pgf/contrib/tikz3d-fr.zip
+2023/07/22 | 10333 | graphics/pgf/contrib/tikz3d-fr/tex/tikz3d-fr.sty
+2023/07/22 | 597725 | graphics/pgf/contrib/tikz3d-fr.zip
2011/02/28 | 141 | graphics/pgf/contrib/tikz-3dplot/CHANGELOG
2012/01/11 | 480 | graphics/pgf/contrib/tikz-3dplot/externalize_images.bat
2011/01/24 | 718 | graphics/pgf/contrib/tikz-3dplot/README
@@ -160872,12 +160872,14 @@
2019/08/15 | 53372 | graphics/pgf/contrib/tikz-network/tikz-network.sty
2019/08/15 | 145240 | graphics/pgf/contrib/tikz-network/tikz-network.tex
2019/08/15 | 1017759 | graphics/pgf/contrib/tikz-network.zip
-2023/05/04 | 18440 | graphics/pgf/contrib/tikz-nfold/pgflibrarybezieroffset.code.tex
-2023/06/07 | 706 | graphics/pgf/contrib/tikz-nfold/README.md
-2023/06/07 | 57247 | graphics/pgf/contrib/tikz-nfold/tikzlibrarynfold.code.tex
-2023/06/07 | 302816 | graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.pdf
-2023/06/07 | 31899 | graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.tex
-2023/06/07 | 296015 | graphics/pgf/contrib/tikz-nfold.zip
+2023/07/22 | 11514 | graphics/pgf/contrib/tikz-nfold/pgflibrarybezieroffset.code.tex
+2023/07/22 | 2545 | graphics/pgf/contrib/tikz-nfold/pgflibrarynfold.code.tex
+2023/07/22 | 31566 | graphics/pgf/contrib/tikz-nfold/pgflibraryoffsetpath.code.tex
+2023/07/22 | 706 | graphics/pgf/contrib/tikz-nfold/README.md
+2023/07/22 | 2229 | graphics/pgf/contrib/tikz-nfold/tikzlibrarynfold.code.tex
+2023/07/22 | 304060 | graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.pdf
+2023/07/22 | 32581 | graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.tex
+2023/07/22 | 288371 | graphics/pgf/contrib/tikz-nfold.zip
2014/01/23 | 19106 | graphics/pgf/contrib/tikz-opm/LICENSE
2014/01/23 | 215 | graphics/pgf/contrib/tikz-opm/README
2014/01/23 | 74999 | graphics/pgf/contrib/tikz-opm/tikz-opm.pdf
@@ -199066,15 +199068,23 @@
2023/02/24 | 4616 | language/japanese/BX/bxbase/README.md
2023/02/23 | 107097 | language/japanese/BX/bxbase.zip
2023/02/24 | 4901 | language/japanese/BX/bxbase/zxbase.sty
-2016/10/17 | 31823 | language/japanese/BX/bxcjkjatype/bxcjkjatype.sty
-2016/10/17 | 1086 | language/japanese/BX/bxcjkjatype/LICENSE
-2016/10/17 | 14184 | language/japanese/BX/bxcjkjatype/README-ja.md
-2016/10/17 | 10874 | language/japanese/BX/bxcjkjatype/README.md
+2023/07/22 | 158295 | language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.pdf
+2023/07/22 | 17205 | language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.tex
+2023/07/22 | 391593 | language/japanese/BX/bxcjkjatype/bxcjkjatype.pdf
+2023/07/22 | 33574 | language/japanese/BX/bxcjkjatype/bxcjkjatype.sty
+2023/07/22 | 14418 | language/japanese/BX/bxcjkjatype/bxcjkjatype.tex
+2023/07/22 | 103927 | language/japanese/BX/bxcjkjatype/bxcjkvert-ja.pdf
+2023/07/22 | 5226 | language/japanese/BX/bxcjkjatype/bxcjkvert-ja.tex
+2023/07/22 | 372010 | language/japanese/BX/bxcjkjatype/bxcjkvert.pdf
+2023/07/22 | 4790 | language/japanese/BX/bxcjkjatype/bxcjkvert.tex
+2023/07/22 | 1091 | language/japanese/BX/bxcjkjatype/LICENSE
+2023/07/22 | 3016 | language/japanese/BX/bxcjkjatype/README-ja.md
+2023/07/22 | 2615 | language/japanese/BX/bxcjkjatype/README.md
2013/09/28 | 157803 | language/japanese/BX/bxcjkjatype/sample-bxcjkjatype-beamer.pdf
-2013/10/12 | 2099 | language/japanese/BX/bxcjkjatype/sample-bxcjkjatype-beamer.tex
+2016/11/10 | 2099 | language/japanese/BX/bxcjkjatype/sample-bxcjkjatype-beamer.tex
2013/09/28 | 101778 | language/japanese/BX/bxcjkjatype/sample-bxcjkjatype.pdf
-2013/10/12 | 1779 | language/japanese/BX/bxcjkjatype/sample-bxcjkjatype.tex
-2016/10/17 | 273334 | language/japanese/BX/bxcjkjatype.zip
+2016/11/10 | 1779 | language/japanese/BX/bxcjkjatype/sample-bxcjkjatype.tex
+2023/07/22 | 1281368 | language/japanese/BX/bxcjkjatype.zip
2023/02/25 | 3859 | language/japanese/BX/bxghost/bxghost-lib.sty
2023/02/25 | 804 | language/japanese/BX/bxghost/bxghost.sty
2023/02/25 | 1091 | language/japanese/BX/bxghost/LICENSE
@@ -218149,12 +218159,12 @@
2023/07/14 | 19106 | macros/latex/contrib/create-theorem/LICENSE
2023/07/14 | 676 | macros/latex/contrib/create-theorem/README.md
2023/07/14 | 106858 | macros/latex/contrib/create-theorem.zip
-2022/09/24 | 53458 | macros/latex/contrib/crefthe/crefthe-doc.pdf
-2022/09/24 | 12883 | macros/latex/contrib/crefthe/crefthe-doc.tex
-2022/09/24 | 12605 | macros/latex/contrib/crefthe/crefthe.sty
-2022/09/24 | 19106 | macros/latex/contrib/crefthe/LICENSE
-2022/09/24 | 2796 | macros/latex/contrib/crefthe/README.md
-2022/09/24 | 66426 | macros/latex/contrib/crefthe.zip
+2023/07/22 | 58374 | macros/latex/contrib/crefthe/crefthe-doc.pdf
+2023/07/22 | 15322 | macros/latex/contrib/crefthe/crefthe-doc.tex
+2023/07/22 | 21876 | macros/latex/contrib/crefthe/crefthe.sty
+2023/07/22 | 19106 | macros/latex/contrib/crefthe/LICENSE
+2023/07/22 | 4483 | macros/latex/contrib/crefthe/README.md
+2023/07/22 | 74127 | macros/latex/contrib/crefthe.zip
2020/06/05 | 67341 | macros/latex/contrib/crop/crop.dtx
2020/06/05 | 260 | macros/latex/contrib/crop/crop.ins
2020/06/05 | 327371 | macros/latex/contrib/crop/crop.pdf
@@ -220800,55 +220810,58 @@
2022/01/28 | 497726 | macros/latex/contrib/erw-l3/erw-l3.pdf
2022/01/28 | 360 | macros/latex/contrib/erw-l3/README.md
2022/01/29 | 488635 | macros/latex/contrib/erw-l3.zip
-2021/10/11 | 1571 | macros/latex/contrib/esami/doc/esami.bib
-2022/01/13 | 480874 | macros/latex/contrib/esami/doc/esami-doc-en.pdf
-2022/01/13 | 52835 | macros/latex/contrib/esami/doc/esami-doc-en.tex
-2022/01/13 | 488964 | macros/latex/contrib/esami/doc/esami-doc-it.pdf
-2022/01/13 | 57063 | macros/latex/contrib/esami/doc/esami-doc-it.tex
-2022/01/13 | 2347 | macros/latex/contrib/esami/doc/examples/master-sol.tex
+2023/07/17 | 1760 | macros/latex/contrib/esami/doc/esami.bib
+2023/07/21 | 483307 | macros/latex/contrib/esami/doc/esami-doc-en.pdf
+2023/07/21 | 53683 | macros/latex/contrib/esami/doc/esami-doc-en.tex
+2023/07/21 | 492308 | macros/latex/contrib/esami/doc/esami-doc-it.pdf
+2023/07/21 | 57968 | macros/latex/contrib/esami/doc/esami-doc-it.tex
+2023/07/22 | 2347 | macros/latex/contrib/esami/doc/examples/master-sol.tex
2015/07/01 | 2349 | macros/latex/contrib/esami/doc/examples/master.tex
-2022/01/13 | 644 | macros/latex/contrib/esami/doc/examples/problem1.tex
-2022/01/13 | 752 | macros/latex/contrib/esami/doc/examples/problem2-tabella.tex
-2022/01/13 | 1167 | macros/latex/contrib/esami/doc/examples/problem2.tex
-2022/01/13 | 575 | macros/latex/contrib/esami/doc/examples/problem3-matching.tex
-2022/01/13 | 753 | macros/latex/contrib/esami/doc/examples/problem4-fillin.tex
-2022/01/13 | 625 | macros/latex/contrib/esami/doc/examples/test11.tex
-2022/01/13 | 1023 | macros/latex/contrib/esami/doc/examples/test12.tex
-2022/01/13 | 1365 | macros/latex/contrib/esami/doc/examples/test13.tex
-2022/01/13 | 6349 | macros/latex/contrib/esami/doc/examples/test14.tex
-2022/01/13 | 471 | macros/latex/contrib/esami/doc/examples/test1.tex
-2022/01/13 | 1026 | macros/latex/contrib/esami/doc/examples/test2.tex
-2022/01/13 | 1533 | macros/latex/contrib/esami/doc/examples/test3.tex
-2022/01/13 | 1701 | macros/latex/contrib/esami/doc/examples/test4.tex
-2022/01/13 | 462 | macros/latex/contrib/esami/doc/examples/test5-fillin.tex
-2022/01/13 | 1361 | macros/latex/contrib/esami/doc/examples/test9.tex
+2023/07/22 | 644 | macros/latex/contrib/esami/doc/examples/problem1.tex
+2023/07/22 | 752 | macros/latex/contrib/esami/doc/examples/problem2-tabella.tex
+2023/07/22 | 1167 | macros/latex/contrib/esami/doc/examples/problem2.tex
+2023/07/22 | 575 | macros/latex/contrib/esami/doc/examples/problem3-matching.tex
+2023/07/22 | 754 | macros/latex/contrib/esami/doc/examples/problem4-fillin.tex
+2023/07/17 | 94 | macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie1.parametri.tex
+2023/07/17 | 94 | macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie2.parametri.tex
+2023/07/17 | 94 | macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie3.parametri.tex
+2023/07/17 | 94 | macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie4.parametri.tex
+2023/07/22 | 625 | macros/latex/contrib/esami/doc/examples/test11.tex
+2023/07/22 | 1023 | macros/latex/contrib/esami/doc/examples/test12.tex
+2023/07/22 | 1365 | macros/latex/contrib/esami/doc/examples/test13.tex
+2023/07/22 | 6349 | macros/latex/contrib/esami/doc/examples/test14.tex
+2023/07/22 | 471 | macros/latex/contrib/esami/doc/examples/test1.tex
+2023/07/22 | 1026 | macros/latex/contrib/esami/doc/examples/test2.tex
+2023/07/22 | 1533 | macros/latex/contrib/esami/doc/examples/test3.tex
+2023/07/22 | 1701 | macros/latex/contrib/esami/doc/examples/test4.tex
+2023/07/22 | 463 | macros/latex/contrib/esami/doc/examples/test5-fillin.tex
+2023/07/22 | 1361 | macros/latex/contrib/esami/doc/examples/test9.tex
2022/01/13 | 91759 | macros/latex/contrib/esami/doc/examples/testA-luatex.pdf
2022/01/13 | 115953 | macros/latex/contrib/esami/doc/examples/testA-luatex-sol.pdf
2022/01/13 | 2677 | macros/latex/contrib/esami/doc/examples/testA-luatex-sol.tex
2022/01/13 | 2670 | macros/latex/contrib/esami/doc/examples/testA-luatex.tex
-2022/01/13 | 217098 | macros/latex/contrib/esami/doc/examples/testA.pdf
-2022/01/13 | 257725 | macros/latex/contrib/esami/doc/examples/testA-sol.pdf
-2022/01/13 | 3114 | macros/latex/contrib/esami/doc/examples/testA-sol.tex
-2022/01/13 | 3005 | macros/latex/contrib/esami/doc/examples/testA.tex
+2023/07/17 | 153114 | macros/latex/contrib/esami/doc/examples/testA-pdflatex.pdf
+2023/07/17 | 186860 | macros/latex/contrib/esami/doc/examples/testA-pdflatex-sol.pdf
+2023/07/22 | 2566 | macros/latex/contrib/esami/doc/examples/testA-pdflatex-sol.tex
+2023/07/17 | 2559 | macros/latex/contrib/esami/doc/examples/testA-pdflatex.tex
2022/01/13 | 58499 | macros/latex/contrib/esami/doc/examples/testA-xetex.pdf
2022/01/13 | 68345 | macros/latex/contrib/esami/doc/examples/testA-xetex-sol.pdf
-2022/01/13 | 2725 | macros/latex/contrib/esami/doc/examples/testA-xetex-sol.sol.tex
2022/01/13 | 2673 | macros/latex/contrib/esami/doc/examples/testA-xetex-sol.tex
2022/01/13 | 2675 | macros/latex/contrib/esami/doc/examples/testA-xetex.tex
2015/02/26 | 1311 | macros/latex/contrib/esami/doc/examples/totale-versioni.tex
-2022/01/11 | 80887 | macros/latex/contrib/esami/esami.sty
-2022/01/11 | 11301 | macros/latex/contrib/esami/esami-xyz.cfg
+2023/07/21 | 80968 | macros/latex/contrib/esami/esami.sty
+2023/07/21 | 11301 | macros/latex/contrib/esami/esami-xyz.cfg
2017/06/20 | 2637 | macros/latex/contrib/esami/es-french.lng
2016/08/31 | 2680 | macros/latex/contrib/esami/es-german.lng
-2022/01/13 | 2812 | macros/latex/contrib/esami/es-greek.lng
+2023/07/22 | 2812 | macros/latex/contrib/esami/es-greek.lng
2020/07/22 | 3026 | macros/latex/contrib/esami/es-italian.lng
-2022/01/13 | 2520 | macros/latex/contrib/esami/es-serbian.lng
+2023/07/22 | 2520 | macros/latex/contrib/esami/es-serbian.lng
2016/08/31 | 2836 | macros/latex/contrib/esami/es-spanish.lng
2017/06/20 | 2777 | macros/latex/contrib/esami/es-UKenglish.lng
2018/02/08 | 2492 | macros/latex/contrib/esami/es-USenglish.lng
-2022/01/11 | 2479 | macros/latex/contrib/esami/README
-2022/01/11 | 34 | macros/latex/contrib/esami/VERSION
-2022/01/13 | 1806532 | macros/latex/contrib/esami.zip
+2023/07/21 | 2557 | macros/latex/contrib/esami/README
+2023/07/17 | 31 | macros/latex/contrib/esami/VERSION
+2023/07/22 | 1677708 | macros/latex/contrib/esami.zip
2008/05/14 | 11107 | macros/latex/contrib/esdiff/esdiff.dtx
2008/05/14 | 824 | macros/latex/contrib/esdiff/esdiff.ins
2008/05/14 | 96415 | macros/latex/contrib/esdiff/esdiff.pdf
@@ -229872,39 +229885,39 @@
2019/01/09 | 1839 | macros/latex/contrib/mi-solns/mi-solns.ins
2019/01/09 | 365 | macros/latex/contrib/mi-solns/README.md
2019/01/09 | 471865 | macros/latex/contrib/mi-solns.zip
-2023/06/19 | 6185 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/No_cc_license.tex
-2023/06/19 | 6184 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_one_degree.tex
-2023/06/23 | 6276 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees_from_one_department.tex
-2023/06/19 | 6181 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees.tex
-2023/06/19 | 6183 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_one_degree.tex
-2023/06/23 | 6132 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_two_degrees.tex
-2023/06/23 | 105979 | macros/latex/contrib/mitthesis/examples/cover_page_samples/No_cc_license.pdf
-2023/06/23 | 107341 | macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_one_degree.pdf
-2023/06/23 | 107668 | macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees_from_one_department.pdf
-2023/06/23 | 107588 | macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees.pdf
-2023/06/23 | 108531 | macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_one_degree.pdf
-2023/06/23 | 130741 | macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_two_degrees.pdf
-2023/06/23 | 490253 | macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf
-2023/06/23 | 318691 | macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf
-2023/06/23 | 151436 | macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf
-2023/06/23 | 11634 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex
-2023/06/23 | 11634 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex
-2023/06/23 | 11633 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex
-2023/06/23 | 11631 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex
-2023/06/23 | 11628 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex
-2023/06/23 | 11637 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex
-2023/06/23 | 11627 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex
+2023/07/21 | 6801 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/No_cc_license.tex
+2023/07/21 | 6800 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_one_degree.tex
+2023/07/21 | 6783 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees_from_one_department.tex
+2023/07/21 | 6908 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees.tex
+2023/07/21 | 6902 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_one_degree.tex
+2023/07/21 | 6807 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_two_degrees.tex
+2023/07/21 | 105510 | macros/latex/contrib/mitthesis/examples/cover_page_samples/No_cc_license.pdf
+2023/07/21 | 106895 | macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_one_degree.pdf
+2023/07/21 | 107250 | macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees_from_one_department.pdf
+2023/07/21 | 107382 | macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees.pdf
+2023/07/21 | 108222 | macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_one_degree.pdf
+2023/07/21 | 131063 | macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_two_degrees.pdf
+2023/07/22 | 490288 | macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf
+2023/07/22 | 319041 | macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf
+2023/07/22 | 151460 | macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf
+2023/07/22 | 11400 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex
+2023/07/22 | 11400 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex
+2023/07/22 | 11881 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex
+2023/07/22 | 11879 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex
+2023/07/22 | 11876 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex
+2023/07/22 | 11885 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex
+2023/07/22 | 11875 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex
2023/06/20 | 282 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/README_font_sample_sources.txt
-2023/06/23 | 11626 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex
-2023/06/23 | 11634 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-Stix2.tex
-2023/06/23 | 11657 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex
-2023/06/23 | 454844 | macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf
-2023/06/23 | 169932 | macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf
-2023/06/23 | 316113 | macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf
-2023/06/23 | 270253 | macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf
-2023/06/23 | 159615 | macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf
-2023/06/23 | 157887 | macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf
-2023/06/23 | 161675 | macros/latex/contrib/mitthesis/examples/font_samples/Termes-Stix2.pdf
+2023/07/22 | 11874 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex
+2023/07/22 | 11882 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-Stix2.tex
+2023/07/22 | 11905 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex
+2023/07/22 | 454847 | macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf
+2023/07/22 | 169955 | macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf
+2023/07/22 | 316127 | macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf
+2023/07/22 | 270252 | macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf
+2023/07/22 | 159625 | macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf
+2023/07/22 | 157894 | macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf
+2023/07/22 | 161691 | macros/latex/contrib/mitthesis/examples/font_samples/Termes-Stix2.pdf
2023/07/03 | 654 | macros/latex/contrib/mitthesis/fontsets/mitthesis-defaultfonts.tex
2023/07/03 | 991 | macros/latex/contrib/mitthesis/fontsets/mitthesis-fira-newtxsf.tex
2023/07/03 | 2857 | macros/latex/contrib/mitthesis/fontsets/mitthesis-heros-stix2.tex
@@ -229915,20 +229928,20 @@
2023/07/03 | 2318 | macros/latex/contrib/mitthesis/fontsets/mitthesis-stix2.tex
2023/07/03 | 2980 | macros/latex/contrib/mitthesis/fontsets/mitthesis-termes-stix2.tex
2023/07/03 | 2378 | macros/latex/contrib/mitthesis/fontsets/mitthesis-termes.tex
-2023/07/03 | 28149 | macros/latex/contrib/mitthesis/mitthesis.cls
-2023/06/26 | 81130 | macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf
-2023/06/26 | 27682 | macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
-2023/07/03 | 489171 | macros/latex/contrib/mitthesis/MIT-Thesis.pdf
+2023/07/22 | 30391 | macros/latex/contrib/mitthesis/mitthesis.cls
+2023/07/21 | 81325 | macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf
+2023/07/21 | 27848 | macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
+2023/07/22 | 489188 | macros/latex/contrib/mitthesis/MIT-Thesis.pdf
2023/06/19 | 1161 | macros/latex/contrib/mitthesis/MIT-thesis-template/abstract.tex
2023/06/17 | 253 | macros/latex/contrib/mitthesis/MIT-thesis-template/acknowledgments.tex
-2023/06/17 | 1888 | macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex
+2023/07/05 | 1889 | macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex
2023/06/13 | 1759 | macros/latex/contrib/mitthesis/MIT-thesis-template/biography.tex
-2023/06/19 | 7972 | macros/latex/contrib/mitthesis/MIT-thesis-template/chapter1.tex
+2023/07/22 | 7973 | macros/latex/contrib/mitthesis/MIT-thesis-template/chapter1.tex
2023/06/30 | 11511 | macros/latex/contrib/mitthesis/MIT-thesis-template/mitthesis-sample.bib
-2023/07/03 | 12198 | macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex
+2023/07/22 | 11978 | macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex
2023/06/17 | 2340 | macros/latex/contrib/mitthesis/MIT-thesis-template/mydesign.tex
-2023/07/03 | 4298 | macros/latex/contrib/mitthesis/README.md
-2023/07/04 | 3599589 | macros/latex/contrib/mitthesis.zip
+2023/07/22 | 4807 | macros/latex/contrib/mitthesis/README.md
+2023/07/22 | 3602045 | macros/latex/contrib/mitthesis.zip
2016/12/14 | 23727 | macros/latex/contrib/mkstmpdad/aeb_dad.dtx
2016/08/21 | 2010 | macros/latex/contrib/mkstmpdad/aeb_dad.ins
2016/12/14 | 740061 | macros/latex/contrib/mkstmpdad/doc/mkstmpdad_man.pdf
@@ -292553,7 +292566,7 @@
2023/02/18 | 177276 | systems/texlive/tlnet/archive/cweb.amd64-freebsd.r65877.tar.xz
2023/02/20 | 147836 | systems/texlive/tlnet/archive/cweb.amd64-netbsd.r65923.tar.xz
2023/02/18 | 118596 | systems/texlive/tlnet/archive/cweb.armhf-linux.r65877.tar.xz
-2023/07/19 | 73548 | systems/texlive/tlnet/archive/cweb.doc.r67664.tar.xz
+2023/07/22 | 73548 | systems/texlive/tlnet/archive/cweb.doc.r67693.tar.xz
2023/02/18 | 140668 | systems/texlive/tlnet/archive/cweb.i386-freebsd.r65877.tar.xz
2023/02/18 | 144220 | systems/texlive/tlnet/archive/cweb.i386-linux.r65877.tar.xz
2023/02/20 | 117724 | systems/texlive/tlnet/archive/cweb.i386-netbsd.r65923.tar.xz
@@ -292561,7 +292574,7 @@
2019/02/28 | 240884 | systems/texlive/tlnet/archive/cweb-latex.doc.r28878.tar.xz
2019/02/28 | 36236 | systems/texlive/tlnet/archive/cweb-latex.r28878.tar.xz
2019/02/28 | 9720 | systems/texlive/tlnet/archive/cweb-old.r49271.tar.xz
-2023/07/19 | 24508 | systems/texlive/tlnet/archive/cweb.r67664.tar.xz
+2023/07/22 | 24520 | systems/texlive/tlnet/archive/cweb.r67693.tar.xz
2023/02/20 | 332852 | systems/texlive/tlnet/archive/cweb.universal-darwin.r65895.tar.xz
2023/02/20 | 110408 | systems/texlive/tlnet/archive/cweb.windows.r65891.tar.xz
2023/03/11 | 111940 | systems/texlive/tlnet/archive/cweb.x86_64-cygwin.r66544.tar.xz
@@ -295539,13 +295552,13 @@
2019/02/28 | 5216 | systems/texlive/tlnet/archive/interactiveworkbook.r15878.tar.xz
2019/02/28 | 85428 | systems/texlive/tlnet/archive/interchar.doc.r36312.tar.xz
2019/02/28 | 5308 | systems/texlive/tlnet/archive/interchar.r36312.tar.xz
-2021/04/18 | 55896 | systems/texlive/tlnet/archive/inter.doc.r58892.tar.xz
+2023/07/22 | 145548 | systems/texlive/tlnet/archive/inter.doc.r67697.tar.xz
2019/02/28 | 740556 | systems/texlive/tlnet/archive/interfaces.doc.r21474.tar.xz
2019/02/28 | 27932 | systems/texlive/tlnet/archive/interfaces.r21474.tar.xz
2019/02/28 | 67108 | systems/texlive/tlnet/archive/interfaces.source.r21474.tar.xz
2019/02/28 | 122152 | systems/texlive/tlnet/archive/interpreter.doc.r27232.tar.xz
2019/02/28 | 6224 | systems/texlive/tlnet/archive/interpreter.r27232.tar.xz
-2021/04/18 | 6520756 | systems/texlive/tlnet/archive/inter.r58892.tar.xz
+2023/07/22 | 7472568 | systems/texlive/tlnet/archive/inter.r67697.tar.xz
2019/03/07 | 325808 | systems/texlive/tlnet/archive/interval.doc.r50265.tar.xz
2019/03/07 | 1620 | systems/texlive/tlnet/archive/interval.r50265.tar.xz
2022/07/28 | 380176 | systems/texlive/tlnet/archive/intopdf.doc.r63987.tar.xz
@@ -299202,9 +299215,9 @@
2021/08/26 | 30572 | systems/texlive/tlnet/archive/polski.source.r60322.tar.xz
2019/02/28 | 1392136 | systems/texlive/tlnet/archive/poltawski.doc.r20075.tar.xz
2019/02/28 | 6817756 | systems/texlive/tlnet/archive/poltawski.r20075.tar.xz
-2023/06/11 | 740004 | systems/texlive/tlnet/archive/polyglossia.doc.r67322.tar.xz
-2023/06/11 | 126780 | systems/texlive/tlnet/archive/polyglossia.r67322.tar.xz
-2023/06/11 | 169660 | systems/texlive/tlnet/archive/polyglossia.source.r67322.tar.xz
+2023/07/22 | 740736 | systems/texlive/tlnet/archive/polyglossia.doc.r67694.tar.xz
+2023/07/22 | 126812 | systems/texlive/tlnet/archive/polyglossia.r67694.tar.xz
+2023/07/22 | 169688 | systems/texlive/tlnet/archive/polyglossia.source.r67694.tar.xz
2019/02/28 | 400020 | systems/texlive/tlnet/archive/polynom.doc.r44832.tar.xz
2019/02/28 | 134132 | systems/texlive/tlnet/archive/polynomial.doc.r15878.tar.xz
2019/02/28 | 2404 | systems/texlive/tlnet/archive/polynomial.r15878.tar.xz
@@ -299996,9 +300009,9 @@
2023/04/08 | 514684 | systems/texlive/tlnet/archive/regstats.doc.r66795.tar.xz
2023/04/08 | 3956 | systems/texlive/tlnet/archive/regstats.r66795.tar.xz
2023/04/08 | 15936 | systems/texlive/tlnet/archive/regstats.source.r66795.tar.xz
-2023/07/21 | 10458204 | systems/texlive/tlnet/archive/reledmac.doc.r67684.tar.xz
-2023/07/21 | 55632 | systems/texlive/tlnet/archive/reledmac.r67684.tar.xz
-2023/07/21 | 209604 | systems/texlive/tlnet/archive/reledmac.source.r67684.tar.xz
+2023/07/22 | 10458188 | systems/texlive/tlnet/archive/reledmac.doc.r67696.tar.xz
+2023/07/22 | 55648 | systems/texlive/tlnet/archive/reledmac.r67696.tar.xz
+2023/07/22 | 209604 | systems/texlive/tlnet/archive/reledmac.source.r67696.tar.xz
2019/02/28 | 26504 | systems/texlive/tlnet/archive/relenc.doc.r22050.tar.xz
2019/02/28 | 11188 | systems/texlive/tlnet/archive/relenc.r22050.tar.xz
2019/02/28 | 26728 | systems/texlive/tlnet/archive/relenc.source.r22050.tar.xz
@@ -300545,9 +300558,9 @@
2021/06/26 | 250232 | systems/texlive/tlnet/archive/siunits.doc.r59702.tar.xz
2021/06/26 | 6040 | systems/texlive/tlnet/archive/siunits.r59702.tar.xz
2021/06/26 | 34532 | systems/texlive/tlnet/archive/siunits.source.r59702.tar.xz
-2023/06/13 | 1268764 | systems/texlive/tlnet/archive/siunitx.doc.r67346.tar.xz
-2023/06/13 | 66188 | systems/texlive/tlnet/archive/siunitx.r67346.tar.xz
-2023/06/13 | 118196 | systems/texlive/tlnet/archive/siunitx.source.r67346.tar.xz
+2023/07/22 | 1268316 | systems/texlive/tlnet/archive/siunitx.doc.r67695.tar.xz
+2023/07/22 | 66212 | systems/texlive/tlnet/archive/siunitx.r67695.tar.xz
+2023/07/22 | 118216 | systems/texlive/tlnet/archive/siunitx.source.r67695.tar.xz
2022/01/24 | 200108 | systems/texlive/tlnet/archive/skak.doc.r61719.tar.xz
2019/02/28 | 316212 | systems/texlive/tlnet/archive/skaknew.doc.r20031.tar.xz
2019/02/28 | 160064 | systems/texlive/tlnet/archive/skaknew.r20031.tar.xz
@@ -301460,7 +301473,7 @@
2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz
-2023/07/21 | 428060 | systems/texlive/tlnet/archive/texlive-scripts.doc.r67676.tar.xz
+2023/07/22 | 428064 | systems/texlive/tlnet/archive/texlive-scripts.doc.r67687.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
@@ -301482,7 +301495,7 @@
2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz
-2023/07/21 | 113988 | systems/texlive/tlnet/archive/texlive-scripts.r67676.tar.xz
+2023/07/22 | 114000 | systems/texlive/tlnet/archive/texlive-scripts.r67687.tar.xz
2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz
2023/05/14 | 60312 | systems/texlive/tlnet/archive/texlive-scripts.windows.r67095.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz
@@ -303351,16 +303364,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
2023/03/12 | 125532 | systems/texlive/tlnet/install-tl
-2023/07/21 | 5736679 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2023/07/21 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2023/07/21 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/07/22 | 5736667 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/07/22 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/07/22 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/05/13 | 5083 | systems/texlive/tlnet/install-tl-windows.bat
-2023/07/21 | 21036852 | systems/texlive/tlnet/install-tl-windows.exe
-2023/07/21 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/07/21 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/07/21 | 26025339 | systems/texlive/tlnet/install-tl.zip
-2023/07/21 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/07/21 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/07/22 | 21036168 | systems/texlive/tlnet/install-tl-windows.exe
+2023/07/22 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/07/22 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/07/22 | 26025350 | systems/texlive/tlnet/install-tl.zip
+2023/07/22 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/07/22 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2023/03/19 | 1229 | systems/texlive/tlnet/README.md
2023/03/19 | 0 | systems/texlive/tlnet/TEXLIVE_2023
2023/01/17 | 8401 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -303370,7 +303383,7 @@
2023/01/17 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2023/06/25 | 49936 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2023/07/20 | 7103 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2023/07/21 | 7139 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/05/31 | 215902 | 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
@@ -303412,12 +303425,12 @@
2023/02/21 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2023/04/08 | 28167 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2023/07/21 | 18161416 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2023/07/21 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/07/22 | 18161417 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/07/22 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2023/02/20 | 86803 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2023/07/21 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2023/07/21 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/07/21 | 2458856 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/07/22 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/07/22 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/07/22 | 2456408 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/02/20 | 58928 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2023/06/11 | 42749 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2023/02/21 | 16138 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -314024,7 +314037,7 @@
2014/07/05 | 611 | systems/win32/yandy/README
2014/07/05 | 1004628 | systems/win32/yandy/yandy-src.tar.xz
2014/07/05 | 1012416 | systems/win32/yandy.zip
-2023/07/22 | 186 | timestamp
+2023/07/23 | 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 44d3b096cc..91dc8f77e7 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index bd4075183e..936229f5cc 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,30 +1,155 @@
+2023/07/22 | 7973 | macros/latex/contrib/mitthesis/MIT-thesis-template/chapter1.tex
+2023/07/22 | 754 | macros/latex/contrib/esami/doc/examples/problem4-fillin.tex
+2023/07/22 | 752 | macros/latex/contrib/esami/doc/examples/problem2-tabella.tex
+2023/07/22 | 7472568 | systems/texlive/tlnet/archive/inter.r67697.tar.xz
+2023/07/22 | 74127 | macros/latex/contrib/crefthe.zip
+2023/07/22 | 740736 | systems/texlive/tlnet/archive/polyglossia.doc.r67694.tar.xz
+2023/07/22 | 73548 | systems/texlive/tlnet/archive/cweb.doc.r67693.tar.xz
+2023/07/22 | 706 | graphics/pgf/contrib/tikz-nfold/README.md
+2023/07/22 | 66212 | systems/texlive/tlnet/archive/siunitx.r67695.tar.xz
+2023/07/22 | 644 | macros/latex/contrib/esami/doc/examples/problem1.tex
+2023/07/22 | 6349 | macros/latex/contrib/esami/doc/examples/test14.tex
+2023/07/22 | 625 | macros/latex/contrib/esami/doc/examples/test11.tex
+2023/07/22 | 605728 | graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.pdf
+2023/07/22 | 597725 | graphics/pgf/contrib/tikz3d-fr.zip
+2023/07/22 | 58374 | macros/latex/contrib/crefthe/crefthe-doc.pdf
+2023/07/22 | 575 | macros/latex/contrib/esami/doc/examples/problem3-matching.tex
+2023/07/22 | 5736667 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/07/22 | 55648 | systems/texlive/tlnet/archive/reledmac.r67696.tar.xz
+2023/07/22 | 5226 | language/japanese/BX/bxcjkjatype/bxcjkvert-ja.tex
+2023/07/22 | 490288 | macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf
+2023/07/22 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/07/22 | 489188 | macros/latex/contrib/mitthesis/MIT-Thesis.pdf
+2023/07/22 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/07/22 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/07/22 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/07/22 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/07/22 | 4807 | macros/latex/contrib/mitthesis/README.md
+2023/07/22 | 4790 | language/japanese/BX/bxcjkjatype/bxcjkvert.tex
+2023/07/22 | 471 | macros/latex/contrib/esami/doc/examples/test1.tex
+2023/07/22 | 463 | macros/latex/contrib/esami/doc/examples/test5-fillin.tex
+2023/07/22 | 454847 | macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf
+2023/07/22 | 4483 | macros/latex/contrib/crefthe/README.md
+2023/07/22 | 428064 | systems/texlive/tlnet/archive/texlive-scripts.doc.r67687.tar.xz
+2023/07/22 | 4087671 | biblio/ctan-bibdata.zip
+2023/07/22 | 391593 | language/japanese/BX/bxcjkjatype/bxcjkjatype.pdf
+2023/07/22 | 372010 | language/japanese/BX/bxcjkjatype/bxcjkvert.pdf
+2023/07/22 | 3688573 | biblio/ctan-bibdata/ctan.pdf
+2023/07/22 | 3602045 | macros/latex/contrib/mitthesis.zip
+2023/07/22 | 33574 | language/japanese/BX/bxcjkjatype/bxcjkjatype.sty
+2023/07/22 | 32581 | graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.tex
+2023/07/22 | 319041 | macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf
+2023/07/22 | 316127 | macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf
+2023/07/22 | 31566 | graphics/pgf/contrib/tikz-nfold/pgflibraryoffsetpath.code.tex
+2023/07/22 | 304060 | graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.pdf
+2023/07/22 | 30391 | macros/latex/contrib/mitthesis/mitthesis.cls
+2023/07/22 | 3016 | language/japanese/BX/bxcjkjatype/README-ja.md
+2023/07/22 | 288371 | graphics/pgf/contrib/tikz-nfold.zip
+2023/07/22 | 2812 | macros/latex/contrib/esami/es-greek.lng
+2023/07/22 | 2796023 | biblio/ctan-bibdata/ctan.bib
+2023/07/22 | 270252 | macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf
+2023/07/22 | 26314 | graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.tex
+2023/07/22 | 2615 | language/japanese/BX/bxcjkjatype/README.md
+2023/07/22 | 26025350 | systems/texlive/tlnet/install-tl.zip
+2023/07/22 | 2566 | macros/latex/contrib/esami/doc/examples/testA-pdflatex-sol.tex
+2023/07/22 | 2545 | graphics/pgf/contrib/tikz-nfold/pgflibrarynfold.code.tex
+2023/07/22 | 2520 | macros/latex/contrib/esami/es-serbian.lng
+2023/07/22 | 2456408 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/07/22 | 24520 | systems/texlive/tlnet/archive/cweb.r67693.tar.xz
+2023/07/22 | 2347 | macros/latex/contrib/esami/doc/examples/master-sol.tex
+2023/07/22 | 2229 | graphics/pgf/contrib/tikz-nfold/tikzlibrarynfold.code.tex
+2023/07/22 | 21876 | macros/latex/contrib/crefthe/crefthe.sty
+2023/07/22 | 21036168 | systems/texlive/tlnet/install-tl-windows.exe
+2023/07/22 | 209604 | systems/texlive/tlnet/archive/reledmac.source.r67696.tar.xz
+2023/07/22 | 19106 | macros/latex/contrib/crefthe/LICENSE
+2023/07/22 | 18161417 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/07/22 | 17205 | language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.tex
+2023/07/22 | 1701 | macros/latex/contrib/esami/doc/examples/test4.tex
+2023/07/22 | 169955 | macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf
+2023/07/22 | 169688 | systems/texlive/tlnet/archive/polyglossia.source.r67694.tar.xz
+2023/07/22 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/07/22 | 1677708 | macros/latex/contrib/esami.zip
+2023/07/22 | 1668510 | graphics/metapost/contrib/macros/mpchess.zip
+2023/07/22 | 161691 | macros/latex/contrib/mitthesis/examples/font_samples/Termes-Stix2.pdf
+2023/07/22 | 159625 | macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf
+2023/07/22 | 158295 | language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.pdf
+2023/07/22 | 157894 | macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf
+2023/07/22 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/07/22 | 1533 | macros/latex/contrib/esami/doc/examples/test3.tex
+2023/07/22 | 15322 | macros/latex/contrib/crefthe/crefthe-doc.tex
+2023/07/22 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/07/22 | 151460 | macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf
+2023/07/22 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/07/22 | 145548 | systems/texlive/tlnet/archive/inter.doc.r67697.tar.xz
+2023/07/22 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/07/22 | 14418 | language/japanese/BX/bxcjkjatype/bxcjkjatype.tex
+2023/07/22 | 1365 | macros/latex/contrib/esami/doc/examples/test13.tex
+2023/07/22 | 1361 | macros/latex/contrib/esami/doc/examples/test9.tex
+2023/07/22 | 1281368 | language/japanese/BX/bxcjkjatype.zip
+2023/07/22 | 1268316 | systems/texlive/tlnet/archive/siunitx.doc.r67695.tar.xz
+2023/07/22 | 126812 | systems/texlive/tlnet/archive/polyglossia.r67694.tar.xz
+2023/07/22 | 11978 | macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex
+2023/07/22 | 11905 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex
+2023/07/22 | 11885 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex
+2023/07/22 | 11882 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-Stix2.tex
+2023/07/22 | 11881 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex
+2023/07/22 | 11879 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex
+2023/07/22 | 11876 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex
+2023/07/22 | 11875 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex
+2023/07/22 | 11874 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex
+2023/07/22 | 118216 | systems/texlive/tlnet/archive/siunitx.source.r67695.tar.xz
+2023/07/22 | 1167 | macros/latex/contrib/esami/doc/examples/problem2.tex
+2023/07/22 | 11514 | graphics/pgf/contrib/tikz-nfold/pgflibrarybezieroffset.code.tex
+2023/07/22 | 11400 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex
+2023/07/22 | 11400 | macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex
+2023/07/22 | 114000 | systems/texlive/tlnet/archive/texlive-scripts.r67687.tar.xz
+2023/07/22 | 1091 | language/japanese/BX/bxcjkjatype/LICENSE
+2023/07/22 | 10458188 | systems/texlive/tlnet/archive/reledmac.doc.r67696.tar.xz
+2023/07/22 | 103927 | language/japanese/BX/bxcjkjatype/bxcjkvert-ja.pdf
+2023/07/22 | 10333 | graphics/pgf/contrib/tikz3d-fr/tex/tikz3d-fr.sty
+2023/07/22 | 1026 | macros/latex/contrib/esami/doc/examples/test2.tex
+2023/07/22 | 1023 | macros/latex/contrib/esami/doc/examples/test12.tex
+2023/07/21 | 9748 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-pgn.mp
2023/07/21 | 902227 | macros/latex/contrib/reledmac/reledmac.dtx
+2023/07/21 | 81325 | macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf
+2023/07/21 | 80968 | macros/latex/contrib/esami/esami.sty
2023/07/21 | 749 | support/texshop/README.txt
2023/07/21 | 745980 | systems/texlive/tlnet/archive/l3build.doc.r67681.tar.xz
+2023/07/21 | 7139 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2023/07/21 | 6908 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees.tex
+2023/07/21 | 6902 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_one_degree.tex
+2023/07/21 | 6807 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_two_degrees.tex
+2023/07/21 | 6801 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/No_cc_license.tex
+2023/07/21 | 6800 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_one_degree.tex
+2023/07/21 | 6783 | macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees_from_one_department.tex
2023/07/21 | 6750 | fonts/inter/latex/inter.sty
2023/07/21 | 665 | fonts/simpleicons/README.md
+2023/07/21 | 6617 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-preamble.tex
+2023/07/21 | 62 | graphics/metapost/contrib/macros/mpchess/doc/test.fen
2023/07/21 | 616264 | systems/texlive/tlnet/archive/nostarch.doc.r67683.tar.xz
2023/07/21 | 599431 | macros/unicodetex/latex/polyglossia.zip
-2023/07/21 | 5736679 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2023/07/21 | 55632 | systems/texlive/tlnet/archive/reledmac.r67684.tar.xz
+2023/07/21 | 57968 | macros/latex/contrib/esami/doc/esami-doc-it.tex
2023/07/21 | 538508 | systems/texlive/tlnet/archive/msu-thesis.doc.r67682.tar.xz
+2023/07/21 | 53683 | macros/latex/contrib/esami/doc/esami-doc-en.tex
2023/07/21 | 5144064 | fonts/simpleicons.zip
-2023/07/21 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2023/07/21 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/07/21 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2023/07/21 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/07/21 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
-2023/07/21 | 428060 | systems/texlive/tlnet/archive/texlive-scripts.doc.r67676.tar.xz
-2023/07/21 | 4087454 | biblio/ctan-bibdata.zip
+2023/07/21 | 49541 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.tex
+2023/07/21 | 492308 | macros/latex/contrib/esami/doc/esami-doc-it.pdf
+2023/07/21 | 483307 | macros/latex/contrib/esami/doc/esami-doc-en.pdf
+2023/07/21 | 46466 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.tex
+2023/07/21 | 42 | graphics/metapost/contrib/macros/mpchess/doc/test.pgn
+2023/07/21 | 41667 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-cburnett.mp
+2023/07/21 | 415 | graphics/metapost/contrib/macros/mpchess/LICENSE
2023/07/21 | 40794 | macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
+2023/07/21 | 38292 | graphics/metapost/contrib/macros/mpchess/fonts/mpchessfont.ttf
2023/07/21 | 370782 | macros/unicodetex/latex/polyglossia/polyglossia.pdf
2023/07/21 | 36940 | macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
-2023/07/21 | 3688251 | biblio/ctan-bibdata/ctan.pdf
2023/07/21 | 368429 | macros/latex/contrib/reledmac/migration.pdf
+2023/07/21 | 36668 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess.mp
2023/07/21 | 36268 | systems/texlive/tlnet/archive/l3build.r67681.tar.xz
2023/07/21 | 32047 | macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
2023/07/21 | 31496 | systems/texlive/tlnet/archive/l3build.source.r67681.tar.xz
2023/07/21 | 310603 | macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
+2023/07/21 | 3043 | graphics/metapost/contrib/macros/mpchess/doc/ctan.bib
2023/07/21 | 302774 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
2023/07/21 | 298422 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
2023/07/21 | 295209 | macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
@@ -37,7 +162,7 @@
2023/07/21 | 285503 | macros/latex/contrib/reledmac/examples/2-glossaries.pdf
2023/07/21 | 284583 | macros/latex/contrib/reledmac/examples/2-performances.pdf
2023/07/21 | 2830 | fonts/simpleicons/enc/simpleiconsone.enc
-2023/07/21 | 2796023 | biblio/ctan-bibdata/ctan.bib
+2023/07/21 | 27848 | macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
2023/07/21 | 278070 | macros/latex/contrib/reledmac/examples/2-indexing.pdf
2023/07/21 | 2766 | fonts/simpleicons/enc/simpleiconsfour.enc
2023/07/21 | 276219 | macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
@@ -50,17 +175,18 @@
2023/07/21 | 264 | fonts/simpleicons/tex/usimpleiconsseven.fd
2023/07/21 | 264 | fonts/simpleicons/tex/usimpleiconseight.fd
2023/07/21 | 2646 | fonts/simpleicons/enc/simpleiconsnine.enc
-2023/07/21 | 26025339 | systems/texlive/tlnet/install-tl.zip
+2023/07/21 | 26443 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-chessboard.mp
2023/07/21 | 259 | fonts/simpleicons/tex/usimpleiconsnine.fd
2023/07/21 | 259 | fonts/simpleicons/tex/usimpleiconsfour.fd
2023/07/21 | 259 | fonts/simpleicons/tex/usimpleiconsfive.fd
2023/07/21 | 2558 | fonts/simpleicons/enc/simpleiconsseven.enc
+2023/07/21 | 2557 | macros/latex/contrib/esami/README
+2023/07/21 | 2551 | graphics/metapost/contrib/macros/mpchess/README.md
2023/07/21 | 254 | fonts/simpleicons/tex/usimpleiconstwo.fd
2023/07/21 | 254 | fonts/simpleicons/tex/usimpleiconssix.fd
2023/07/21 | 254 | fonts/simpleicons/tex/usimpleiconsone.fd
2023/07/21 | 251002 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
2023/07/21 | 250592 | systems/texlive/tlnet/archive/euler-math.r67679.tar.xz
-2023/07/21 | 2458856 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/07/21 | 2447 | fonts/simpleicons/enc/simpleiconsthree.enc
2023/07/21 | 24468 | systems/texlive/tlnet/archive/nostarch.source.r67683.tar.xz
2023/07/21 | 241724 | systems/texlive/tlnet/archive/xcharter-math.r67680.tar.xz
@@ -68,17 +194,17 @@
2023/07/21 | 2394 | fonts/simpleicons/enc/simpleiconsonezero.enc
2023/07/21 | 23442 | macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
2023/07/21 | 226559 | fonts/simpleicons/tex/simpleiconsglyphs-pdftex.tex
+2023/07/21 | 2264 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-fen.mp
2023/07/21 | 225555 | macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
2023/07/21 | 221976 | fonts/simpleicons/tex/simpleiconsglyphs-xeluatex.tex
2023/07/21 | 2212 | support/texshop/texshop515.html
+2023/07/21 | 22072 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-pieces.mp
2023/07/21 | 2192 | systems/texlive/tlnet/archive/luaplot.r67685.tar.xz
2023/07/21 | 2152079 | macros/latex/contrib/reledmac/reledmac.pdf
2023/07/21 | 214377 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
2023/07/21 | 212242 | macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
2023/07/21 | 210969 | macros/latex/contrib/reledmac/examples/2-antilabe.pdf
2023/07/21 | 210488 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
-2023/07/21 | 21036852 | systems/texlive/tlnet/install-tl-windows.exe
-2023/07/21 | 209604 | systems/texlive/tlnet/archive/reledmac.source.r67684.tar.xz
2023/07/21 | 206955 | macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
2023/07/21 | 2057195 | fonts/simpleicons/doc/simpleicons.pdf
2023/07/21 | 204974 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
@@ -109,21 +235,18 @@
2023/07/21 | 1869 | fonts/inter/README
2023/07/21 | 1844 | fonts/simpleicons/doc/simpleicons.tex
2023/07/21 | 1822731 | fonts/simpleicons/type1/SimpleIcons.pfb
-2023/07/21 | 18161416 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2023/07/21 | 177110 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
2023/07/21 | 175650 | macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
-2023/07/21 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2023/07/21 | 1590940 | systems/texlive/tlnet/archive/euler-math.doc.r67679.tar.xz
-2023/07/21 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/07/21 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/07/21 | 15233 | graphics/metapost/contrib/macros/mpchess/metapost/mpchess-skak.mp
2023/07/21 | 1520812 | macros/latex/contrib/siunitx.zip
2023/07/21 | 1501 | fonts/simpleicons/tex/simpleicons.sty
-2023/07/21 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/07/21 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2023/07/21 | 139705 | fonts/inter/doc/inter-samples.pdf
2023/07/21 | 13625992 | macros/latex/contrib/reledmac.zip
2023/07/21 | 134145 | fonts/simpleicons/doc/bindings.tex
2023/07/21 | 13212 | systems/texlive/tlnet/archive/msu-thesis.r67682.tar.xz
+2023/07/21 | 131063 | macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_two_degrees.pdf
+2023/07/21 | 1309 | graphics/metapost/contrib/macros/mpchess/doc/fond.pdf
2023/07/21 | 1268973 | install/macros/unicodetex/latex/polyglossia.tds.zip
2023/07/21 | 1236 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsseven.tfm
2023/07/21 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconstwo.tfm
@@ -136,13 +259,19 @@
2023/07/21 | 1228 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsone.tfm
2023/07/21 | 122856 | systems/texlive/tlnet/archive/luaplot.doc.r67685.tar.xz
2023/07/21 | 11543118 | fonts/inter.zip
-2023/07/21 | 113988 | systems/texlive/tlnet/archive/texlive-scripts.r67676.tar.xz
+2023/07/21 | 11301 | macros/latex/contrib/esami/esami-xyz.cfg
2023/07/21 | 1119 | fonts/simpleicons/map/simpleicons.map
2023/07/21 | 11144 | systems/texlive/tlnet/archive/nostarch.r67683.tar.xz
+2023/07/21 | 108222 | macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_one_degree.pdf
+2023/07/21 | 107382 | macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees.pdf
+2023/07/21 | 107250 | macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees_from_one_department.pdf
2023/07/21 | 1071540 | macros/unicodetex/latex/polyglossia/polyglossia.dtx
2023/07/21 | 1068 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsonezero.tfm
+2023/07/21 | 106895 | macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_one_degree.pdf
+2023/07/21 | 105510 | macros/latex/contrib/mitthesis/examples/cover_page_samples/No_cc_license.pdf
2023/07/21 | 1046914 | macros/latex/contrib/reledmac/reledpar.pdf
-2023/07/21 | 10458204 | systems/texlive/tlnet/archive/reledmac.doc.r67684.tar.xz
+2023/07/21 | 1005336 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.pdf
+2023/07/21 | 1000703 | graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.pdf
2023/07/20 | 996 | macros/latex/contrib/siunitx/README.md
2023/07/20 | 9198 | macros/latex/contrib/siunitx/siunitx-symbol.dtx
2023/07/20 | 8977 | fonts/erewhon-math/fourier-otf.sty
@@ -158,7 +287,6 @@
2023/07/20 | 7408 | fonts/erewhon-math/README.md
2023/07/20 | 73211 | macros/latex/contrib/siunitx/CHANGELOG.md
2023/07/20 | 7206 | macros/latex/contrib/l3build/l3build-manifest.lua
-2023/07/20 | 7103 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/07/20 | 69809693 | support/texshop/texshop515.zip
2023/07/20 | 691136 | macros/latex/contrib/siunitx/siunitx.pdf
2023/07/20 | 6878 | fonts/xcharter-math/xcharter-otf.sty
@@ -253,7 +381,6 @@
2023/07/19 | 8976 | systems/texlive/tlnet/archive/tensor.source.r67667.tar.xz
2023/07/19 | 85652 | systems/texlive/tlnet/archive/nicematrix.source.r67665.tar.xz
2023/07/19 | 85042 | macros/luatex/latex/yamlvars.zip
-2023/07/19 | 73548 | systems/texlive/tlnet/archive/cweb.doc.r67664.tar.xz
2023/07/19 | 733287 | macros/latex/contrib/nostarch.zip
2023/07/19 | 70914 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.pdf
2023/07/19 | 6771 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.tex
@@ -271,7 +398,6 @@
2023/07/19 | 281542 | macros/latex/contrib/nostarch/nssample.pdf
2023/07/19 | 277 | macros/latex/contrib/msu-thesis/samples/chap1bib.tex
2023/07/19 | 246897 | graphics/pgf/contrib/rouequestions.zip
-2023/07/19 | 24508 | systems/texlive/tlnet/archive/cweb.r67664.tar.xz
2023/07/19 | 2272 | systems/texlive/tlnet/archive/tensor.r67667.tar.xz
2023/07/19 | 214033 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf
2023/07/19 | 2102140 | systems/texlive/tlnet/archive/nicematrix.doc.r67665.tar.xz
@@ -324,6 +450,10 @@
2023/07/18 | 10958 | macros/luatex/generic/penlight/penlight.tex
2023/07/18 | 108036 | macros/latex/contrib/recorder-fingering/recorder-fingering.pdf
2023/07/17 | 9666 | fonts/rit-fonts/doc/rit-fonts-doc.tex
+2023/07/17 | 94 | macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie4.parametri.tex
+2023/07/17 | 94 | macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie3.parametri.tex
+2023/07/17 | 94 | macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie2.parametri.tex
+2023/07/17 | 94 | macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie1.parametri.tex
2023/07/17 | 937 | fonts/rit-fonts/manifest.txt
2023/07/17 | 93652 | language/japanese/BX/bxjscls/bxjscls-manual.tex
2023/07/17 | 9360 | systems/win32/miktex/tm/packages/se2thesis.tar.lzma
@@ -497,6 +627,7 @@
2023/07/17 | 32626 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
2023/07/17 | 326261 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
2023/07/17 | 32608 | systems/win32/miktex/tm/packages/tikzpingus.tar.lzma
+2023/07/17 | 31 | macros/latex/contrib/esami/VERSION
2023/07/17 | 3199 | systems/win32/miktex/tm/packages/spacekern.tar.lzma
2023/07/17 | 3193 | systems/win32/miktex/tm/packages/hep-math-font.tar.lzma
2023/07/17 | 3193 | systems/win32/miktex/tm/packages/beamertheme-rainbow__source.tar.lzma
@@ -532,6 +663,7 @@
2023/07/17 | 2612 | systems/win32/miktex/tm/packages/naive-ebnf.tar.lzma
2023/07/17 | 257648 | systems/win32/miktex/tm/packages/reledmac__source.tar.lzma
2023/07/17 | 257229 | systems/win32/miktex/tm/packages/pgf-spectra.tar.lzma
+2023/07/17 | 2559 | macros/latex/contrib/esami/doc/examples/testA-pdflatex.tex
2023/07/17 | 25535 | systems/win32/miktex/tm/packages/tikzpingus__source.tar.lzma
2023/07/17 | 25459 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
2023/07/17 | 25448 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
@@ -586,9 +718,11 @@
2023/07/17 | 1917125 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
2023/07/17 | 19166 | systems/win32/miktex/tm/packages/hep-title__source.tar.lzma
2023/07/17 | 1916069 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2023/07/17 | 186860 | macros/latex/contrib/esami/doc/examples/testA-pdflatex-sol.pdf
2023/07/17 | 18486 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma
2023/07/17 | 182865 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
2023/07/17 | 18163 | systems/win32/miktex/tm/packages/hep-acronym__source.tar.lzma
+2023/07/17 | 1760 | macros/latex/contrib/esami/doc/esami.bib
2023/07/17 | 17492 | language/japanese/BX/bxjscls/README-ja.md
2023/07/17 | 174413 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
2023/07/17 | 174208 | fonts/rit-fonts/fonts/truetype/RIT-Uroob.ttf
@@ -609,6 +743,7 @@
2023/07/17 | 158364 | fonts/rit-fonts/fonts/woff2/RIT-Ezhuthu-Regular.woff2
2023/07/17 | 157570 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
2023/07/17 | 155912 | fonts/rit-fonts/fonts/truetype/RIT-tnjoy-regular.ttf
+2023/07/17 | 153114 | macros/latex/contrib/esami/doc/examples/testA-pdflatex.pdf
2023/07/17 | 1530589 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2023/07/17 | 150683 | systems/win32/miktex/tm/packages/beamertheme-rainbow__doc.tar.lzma
2023/07/17 | 15020 | systems/win32/miktex/tm/packages/hvextern__source.tar.lzma
@@ -684,118 +819,3 @@
2023/07/16 | 1680 | systems/texlive/tlnet/archive/collection-mathscience.r67641.tar.xz
2023/07/16 | 12279 | indexing/xindex/lualatex/xindex-base.lua
2023/07/16 | 10141 | indexing/xindex/scripts/xindex.lua
-2023/07/15 | 94801 | biblio/bibtex/bibtex-x/utils.c
-2023/07/15 | 942671 | macros/latex/required/babel/base/locale.zip
-2023/07/15 | 93992 | systems/texlive/tlnet/archive/create-theorem.doc.r67629.tar.xz
-2023/07/15 | 9268 | systems/texlive/tlnet/archive/hep-bibliography.source.r67632.tar.xz
-2023/07/15 | 9160 | systems/texlive/tlnet/archive/hep-math.source.r67632.tar.xz
-2023/07/15 | 9140 | systems/texlive/tlnet/archive/hep-math-font.source.r67632.tar.xz
-2023/07/15 | 90757 | biblio/bibtex/bibtex-x/bibtex-4.c
-2023/07/15 | 8837 | macros/latex/required/babel/base/babel.ins
-2023/07/15 | 8712 | systems/texlive/tlnet/archive/projlib.doc.r67629.tar.xz
-2023/07/15 | 8493 | indexing/xindex/lualatex/xindex-pretty.lua
-2023/07/15 | 80454 | indexing/xindex/lualatex/xindex-unicode.lua
-2023/07/15 | 793404 | systems/texlive/tlnet/archive/hep-paper.doc.r67632.tar.xz
-2023/07/15 | 7820 | indexing/xindex/lualatex/xindex-yannis.lua
-2023/07/15 | 772542 | macros/latex/required/babel/base/babel.dtx
-2023/07/15 | 7428 | systems/texlive/tlnet/archive/colorist.doc.r67629.tar.xz
-2023/07/15 | 7424 | systems/texlive/tlnet/archive/minimalist.doc.r67629.tar.xz
-2023/07/15 | 74220 | systems/texlive/tlnet/archive/latexindent.r67628.tar.xz
-2023/07/15 | 726367 | biblio/bibtex/bibtex-x/configure.texk
-2023/07/15 | 7104 | systems/texlive/tlnet/archive/hep-title.source.r67632.tar.xz
-2023/07/15 | 7060 | systems/texlive/tlnet/archive/einfart.doc.r67629.tar.xz
-2023/07/15 | 7056 | systems/texlive/tlnet/archive/lebhart.doc.r67629.tar.xz
-2023/07/15 | 7032 | systems/texlive/tlnet/archive/simplivre.doc.r67629.tar.xz
-2023/07/15 | 7028 | systems/texlive/tlnet/archive/beaulivre.doc.r67629.tar.xz
-2023/07/15 | 68114 | biblio/bibtex/bibtex-x/bibtex.h
-2023/07/15 | 676 | macros/latex/contrib/blowup/blowup-ex5.tex
-2023/07/15 | 667516 | systems/texlive/tlnet/archive/hep-math.doc.r67632.tar.xz
-2023/07/15 | 663312 | systems/texlive/tlnet/archive/naive-ebnf.doc.r67631.tar.xz
-2023/07/15 | 626956 | macros/latex/required/babel/base/babel-code.pdf
-2023/07/15 | 6128 | systems/texlive/tlnet/archive/hep-acronym.source.r67632.tar.xz
-2023/07/15 | 6098 | indexing/xindex/lualatex/xindex-norsk.lua
-2023/07/15 | 582340 | systems/texlive/tlnet/archive/hep-text.doc.r67632.tar.xz
-2023/07/15 | 5780 | systems/texlive/tlnet/archive/hep-font.source.r67632.tar.xz
-2023/07/15 | 572336 | systems/texlive/tlnet/archive/hep-title.doc.r67632.tar.xz
-2023/07/15 | 568240 | systems/texlive/tlnet/archive/hep-font.doc.r67632.tar.xz
-2023/07/15 | 5676 | systems/texlive/tlnet/archive/naive-ebnf.source.r67631.tar.xz
-2023/07/15 | 557144 | systems/texlive/tlnet/archive/hep-float.doc.r67632.tar.xz
-2023/07/15 | 542484 | systems/texlive/tlnet/archive/hep-bibliography.doc.r67632.tar.xz
-2023/07/15 | 532692 | systems/texlive/tlnet/archive/hep-acronym.doc.r67632.tar.xz
-2023/07/15 | 5280 | systems/texlive/tlnet/archive/einfart.r67629.tar.xz
-2023/07/15 | 5248 | systems/texlive/tlnet/archive/simplivre.r67629.tar.xz
-2023/07/15 | 5172 | systems/texlive/tlnet/archive/lebhart.r67629.tar.xz
-2023/07/15 | 5168 | systems/texlive/tlnet/archive/hep-float.source.r67632.tar.xz
-2023/07/15 | 516576 | systems/texlive/tlnet/archive/hep-reference.doc.r67632.tar.xz
-2023/07/15 | 5160 | systems/texlive/tlnet/archive/beaulivre.r67629.tar.xz
-2023/07/15 | 4842 | indexing/xindex/lualatex/xindex-dtk.lua
-2023/07/15 | 4751892 | systems/texlive/tlnet/archive/latexindent.windows.r67628.tar.xz
-2023/07/15 | 4577 | indexing/xindex/lualatex/xindex-baselib.lua
-2023/07/15 | 4572 | systems/texlive/tlnet/archive/hep-text.source.r67632.tar.xz
-2023/07/15 | 4380 | systems/texlive/tlnet/archive/hep-reference.source.r67632.tar.xz
-2023/07/15 | 4047 | indexing/xindex/lualatex/xindex-cfg-common.lua
-2023/07/15 | 404462 | macros/latex/required/babel/base/babel.pdf
-2023/07/15 | 377122 | macros/latex/contrib/blowup.zip
-2023/07/15 | 3731 | biblio/bibtex/bibtex-x/version.h
-2023/07/15 | 3552 | systems/texlive/tlnet/archive/hep-bibliography.r67632.tar.xz
-2023/07/15 | 3548 | systems/texlive/tlnet/archive/hep-math.r67632.tar.xz
-2023/07/15 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
-2023/07/15 | 3466 | biblio/bibtex/bibtex-x/tests/iscjku.bbl
-2023/07/15 | 3428 | systems/texlive/tlnet/archive/hep-title.r67632.tar.xz
-2023/07/15 | 34012 | macros/latex/contrib/blowup/blowup-ex3.pdf
-2023/07/15 | 33735 | macros/latex/contrib/blowup/blowup-ex6.pdf
-2023/07/15 | 3373202 | install/macros/latex/required/babel-base.tds.zip
-2023/07/15 | 33377 | macros/latex/contrib/blowup/blowup-ex2.pdf
-2023/07/15 | 33364 | macros/latex/contrib/blowup/blowup-ex1.pdf
-2023/07/15 | 3225 | biblio/bibtex/bibtex-x/tests/testiscjku.bib
-2023/07/15 | 3087 | biblio/bibtex/bibtex-x/tests/caseu.bbl
-2023/07/15 | 3020 | systems/texlive/tlnet/archive/hep-math-font.r67632.tar.xz
-2023/07/15 | 2973 | indexing/xindex/lualatex/xindex-RU.lua
-2023/07/15 | 2792 | systems/texlive/tlnet/archive/hep-paper.r67632.tar.xz
-2023/07/15 | 2766 | indexing/xindex/lualatex/xindex-DIN2.lua
-2023/07/15 | 2733 | indexing/xindex/lualatex/xindex-AU.lua
-2023/07/15 | 2716 | indexing/xindex/lualatex/xindex-danteedition.lua
-2023/07/15 | 2704 | systems/texlive/tlnet/archive/hep-acronym.r67632.tar.xz
-2023/07/15 | 2699 | indexing/xindex/lualatex/xindex-cfg.lua
-2023/07/15 | 26432 | systems/texlive/tlnet/archive/projlib.source.r67629.tar.xz
-2023/07/15 | 26276 | systems/texlive/tlnet/archive/projlib.r67629.tar.xz
-2023/07/15 | 2487 | macros/latex/required/babel/base/README.md
-2023/07/15 | 2388 | systems/texlive/tlnet/archive/naive-ebnf.r67631.tar.xz
-2023/07/15 | 2385 | indexing/xindex/lualatex/xindex-cfg-uca.lua
-2023/07/15 | 2240 | systems/texlive/tlnet/archive/hep-font.r67632.tar.xz
-2023/07/15 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
-2023/07/15 | 2176510 | macros/latex/required/babel/base.zip
-2023/07/15 | 21686 | biblio/bibtex/bibtex-x/ChangeLog
-2023/07/15 | 21295 | biblio/bibtex/bibtex-x/gblvars.h
-2023/07/15 | 209753 | macros/latex/contrib/blowup/blowup.pdf
-2023/07/15 | 20244 | macros/latex/contrib/blowup/blowup-ex5.pdf
-2023/07/15 | 1960 | systems/texlive/tlnet/archive/hep-reference.r67632.tar.xz
-2023/07/15 | 1924 | systems/texlive/tlnet/archive/hep-float.r67632.tar.xz
-2023/07/15 | 1792 | systems/texlive/tlnet/archive/hep-text.r67632.tar.xz
-2023/07/15 | 17159 | macros/latex/contrib/blowup/blowup.dtx
-2023/07/15 | 1700 | biblio/bibtex/bibtex-x/tests/bibtexu-char.test
-2023/07/15 | 16446 | biblio/bibtex/bibtex-x/bibtex.c
-2023/07/15 | 1537 | biblio/bibtex/bibtex-x/tests/bibtex8u-mem.test
-2023/07/15 | 1499 | biblio/bibtex/bibtex-x/configure.ac
-2023/07/15 | 1373 | biblio/bibtex/bibtex-x/tests/bibtex8.test
-2023/07/15 | 1365 | macros/latex/contrib/blowup/blowup-ex3.tex
-2023/07/15 | 1364 | biblio/bibtex/bibtex-x/tests/bibtexu.test
-2023/07/15 | 1326236 | systems/texlive/tlnet/archive/latexindent.doc.r67628.tar.xz
-2023/07/15 | 1285 | macros/latex/contrib/blowup/blowup-ex6.tex
-2023/07/15 | 1257 | macros/latex/contrib/blowup/blowup-ex4.tex
-2023/07/15 | 1254 | macros/latex/contrib/blowup/blowup-ex1.tex
-2023/07/15 | 12537 | macros/latex/contrib/blowup/blowup-ex4.pdf
-2023/07/15 | 1244 | macros/latex/contrib/blowup/blowup-ex2.tex
-2023/07/15 | 124108 | biblio/bibtex/bibtex-x/bibtex-2.c
-2023/07/15 | 1228568 | systems/texlive/tlnet/archive/hep-math-font.doc.r67632.tar.xz
-2023/07/15 | 12076 | systems/texlive/tlnet/archive/minimalist.r67629.tar.xz
-2023/07/15 | 1131 | macros/latex/contrib/blowup/blowup.ins
-2023/07/15 | 11112 | systems/texlive/tlnet/archive/hep-paper.source.r67632.tar.xz
-2023/07/15 | 11083 | indexing/xindex/lualatex/xindex-HAdW-eKO.lua
-2023/07/15 | 109997 | biblio/bibtex/bibtex-x/bibtex-3.c
-2023/07/15 | 10936 | systems/texlive/tlnet/archive/colorist.r67629.tar.xz
-2023/07/15 | 10903 | biblio/bibtex/bibtex-x/sysdep.h
-2023/07/15 | 1062 | biblio/bibtex/bibtex-x/tests/testcaseu.bib
-2023/07/15 | 10216 | systems/texlive/tlnet/archive/create-theorem.r67629.tar.xz
-2023/07/15 | 10136 | indexing/xindex/lualatex/xindex-lapp.lua
-2023/07/15 | 100559 | biblio/bibtex/bibtex-x/bibtex-1.c
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index d4ed1d3e84..33722a3833 100644
--- a/biblio/ctan-bibdata/ctan.bib
+++ b/biblio/ctan-bibdata/ctan.bib
@@ -1,7 +1,7 @@
%% bib file of all CTAN packages
%% (C) Herbert Voß
%%
-%% created at 22-07-2023, 02:01:26
+%% created at 23-07-2023, 02:01:18
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -10029,8 +10029,8 @@
title = {The \texttt{bxcjkjatype} package},
subtitle = {Typeset Japanese with pdf\LaTeX{} and CJK},
author = {Takayuki Yato},
- date = {2019-10-22},
- version = {0.3},
+ date = {2023-07-22},
+ version = {0.5},
license = {mit},
mirror = {https://mirror.ctan.org/language/japanese/BX/bxcjkjatype},
url = {https://ctan.org/pkg/bxcjkjatype},
@@ -15838,7 +15838,7 @@
title = {The \texttt{crefthe} package},
subtitle = {Cross referencing with proper definite articles},
author = {Jinwen XU},
- date = {2022-09-24},
+ date = {2023-07-22},
version = {},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/crefthe},
@@ -22732,8 +22732,8 @@
title = {The \texttt{esami} package},
subtitle = {Typeset exams with scrambled questions and answers},
author = {Grazia Messineo and Salvatore Vassallo},
- date = {2022-01-13},
- version = {2.7},
+ date = {2023-07-22},
+ version = {2.8},
license = {lppl},
mirror = {https://mirror.ctan.org/macros/latex/contrib/esami},
url = {https://ctan.org/pkg/esami},
@@ -45386,8 +45386,8 @@
title = {The \texttt{mitthesis} package},
subtitle = {A \LaTeX{} template for MIT theses},
author = {John H. Lienhard},
- date = {2023-07-04},
- version = {1.04},
+ date = {2023-07-22},
+ version = {1.05},
license = {mit},
mirror = {https://mirror.ctan.org/macros/latex/contrib/mitthesis},
url = {https://ctan.org/pkg/mitthesis},
@@ -46220,8 +46220,8 @@
title = {The \texttt{MPchess} package},
subtitle = {Drawing chess boards and positions with MetaPost},
author = {Maxime Chupin},
- date = {2023-04-26},
- version = {0.6},
+ date = {2023-07-22},
+ version = {0.7},
license = {lppl1.3c,gpl2+},
mirror = {https://mirror.ctan.org/graphics/metapost/contrib/macros/mpchess},
url = {https://ctan.org/pkg/mpchess},
@@ -69423,8 +69423,8 @@
title = {The \texttt{tikz-nfold} package},
subtitle = {Triple, quadruple, and n-fold paths with TikZ},
author = {Jonathan Schulz},
- date = {2023-06-07},
- version = {0.1.3},
+ date = {2023-07-22},
+ version = {1.0.0},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/graphics/pgf/contrib/tikz-nfold},
url = {https://ctan.org/pkg/tikz-nfold},
@@ -69602,8 +69602,8 @@
title = {The \texttt{tikz3d-fr} package},
subtitle = {Work with some 3D figures},
author = {Cédric Pierquet},
- date = {2023-05-24},
- version = {0.1.1},
+ date = {2023-07-22},
+ version = {0.1.2},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/graphics/pgf/contrib/tikz3d-fr},
url = {https://ctan.org/pkg/tikz3d-fr},
diff --git a/biblio/ctan-bibdata/ctan.pdf b/biblio/ctan-bibdata/ctan.pdf
index 07a81bc9ac..a8bb242e61 100644
--- a/biblio/ctan-bibdata/ctan.pdf
+++ b/biblio/ctan-bibdata/ctan.pdf
Binary files differ
diff --git a/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.pdf b/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.pdf
index 421fa6b060..741544029e 100644
--- a/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.pdf
+++ b/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.pdf
Binary files differ
diff --git a/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.tex b/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.tex
index bcc74e5003..5ad5abdb1a 100644
--- a/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.tex
+++ b/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-en.tex
@@ -68,7 +68,7 @@
}
\vfill
\begin{center}
- Version 0.6, 2023, April, 26th \\
+ Version 0.7, 2023, July, 20th \\
\url{https://plmlab.math.cnrs.fr/mchupin/mpchess}
\end{center}
%% == Page de garde ====================================================
@@ -293,12 +293,15 @@ command:
\item[\meta{string}] can be:
\begin{itemize}
\item \lstinline+"BlueLichess"+ (default);
-\item \lstinline+"BrownLichess"+ ;
+\item \lstinline+"BrownLichess"+;
+\item \lstinline+"GreenLichess"+;
+\item \lstinline+"PinkPyramidalLichess"+;
+\item \lstinline+"Wood"+;
\item or \lstinline+"Classical"+.
\end{itemize}
\end{description}
-The following examples show the results obtained from each theme:
+The following example shows the results obtained from \lstinline+"BrownLichess"+:
\begin{ExempleMP}
input mpchess
beginfig(0);
@@ -307,21 +310,65 @@ init_backboard;
draw backboard;
endfig;
\end{ExempleMP}
-\begin{ExempleMP}
-input mpchess
-beginfig(0);
-set_color_theme("Classical");
-init_backboard;
-draw backboard;
-endfig;
-\end{ExempleMP}
-The two color themes provided borrow the colors of the Lichess themes.
+The table~\ref{tab:color} shows the different results of the different themes.
+
+\begin{table}
+ \centering
+\begin{tabular}{cc}
+
+\lstinline+"GreenLichess"+ theme&\lstinline+"Classical"+ theme\\
+\begin{mplibcode}
+ input mpchess
+ beginfig(0);
+ init_chessboard;
+ set_backboard_width(4cm);
+ set_color_theme("GreenLichess");
+ init_backboard;
+ draw backboard;
+ endfig;
+\end{mplibcode}
+&\begin{mplibcode}
+ input mpchess
+ beginfig(0);
+ init_chessboard;
+ set_backboard_width(4cm);
+ set_color_theme("Classical");
+ init_backboard;
+ draw backboard;
+ endfig;
+\end{mplibcode}\\
+\lstinline+"PinkPyramidalLichess"+ theme& \lstinline+"Wood"+ theme\\
+\begin{mplibcode}
+ input mpchess
+ beginfig(0);
+ init_chessboard;
+ set_backboard_width(4cm);
+ set_color_theme("PinkPyramidalLichess");
+ init_backboard;
+ draw backboard;
+ endfig;
+\end{mplibcode}&
+\begin{mplibcode}
+ input mpchess
+ beginfig(0);
+ init_chessboard;
+ set_backboard_width(4cm);
+ set_color_theme("Wood");
+ init_backboard;
+ draw backboard;
+ endfig;
+\end{mplibcode}\\
+\end{tabular}
+\caption{The different color themes provided by \mpchess.}\label{tab:color}
+\end{table}
+
\subsubsection{Configuring a Personal Color Theme}
-A color theme is really just the definition of two colors.
+\paragraph{Colors.}
+A color theme is the definition of two colors.
These can be defined with the following commands\footnote{Attention,
in version 0.6, \lstinline+set_white_color+ became
\lstinline+set_white_squares_color+ and \lstinline+set_black_color+ became
@@ -341,6 +388,40 @@ init_backboard;
draw backboard;
endfig;
\end{ExempleMP}
+
+\paragraph{Color Types.}
+
+To choose a type, you can use the following command:
+
+\commande|set_board_type(«string»)|\index{set_board_type@\lstinline+set_board_type+}\smallskip
+
+
+Three types of coloring are available:
+
+\begin{description}
+ \item[\meta{string}] can be:
+\begin{itemize}
+\item \lstinline+"flat"+, simple flat coloring (default);
+\item \lstinline+"pyramidal"+, Lichess \emph{pyramidal} coloring;
+\item \lstinline+"wood"+, wood imitation.
+\end{itemize}
+\end{description}
+
+Here is an example coupling color and type definitions.
+
+\begin{ExempleMP}
+input mpchess
+beginfig(0);
+set_white_squares_color((0.9,0.8,0.8));
+set_black_squares_color((0.7,0.6,0.6));
+set_board_type("wood");
+init_backboard;
+draw backboard;
+endfig;
+\end{ExempleMP}
+
+
+
\subsection{Display Coordinates}
You may have noticed in the various examples that by default, the coordinates are, as on the Lichess site, written in small letters inside the boxes.
@@ -1367,6 +1448,8 @@ endfig;
\section{History}
\begin{description}
+\item[v0.7, juillet 2023:] Black knight adjustment, adding color board themes (\lstinline+GreenLichess+, \lstinline+PinkPyramidalLichess+,
+\lstinline+Wood+ with color type (\lstinline+set_board_type+).
\item[v0.6, April 26, 2023:] Fixed bugs concerning castling management, and
moves ambiguities in \textsc{pgn} format.
Changed \lstinline+set_white_color+ to
diff --git a/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.pdf b/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.pdf
index fd467b6595..bcca5a85f9 100644
--- a/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.pdf
+++ b/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.pdf
Binary files differ
diff --git a/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.tex b/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.tex
index 2ee8714da4..db6a5f8b86 100644
--- a/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.tex
+++ b/graphics/metapost/contrib/macros/mpchess/doc/mpchess-doc-fr.tex
@@ -71,7 +71,7 @@
}
\vfill
\begin{center}
- Version 0.6, 26 avril 2023 \\
+ Version 0.7, 20 juillet 2023 \\
\url{https://plmlab.math.cnrs.fr/mchupin/mpchess}
\end{center}
%% == Page de garde ====================================================
@@ -289,6 +289,9 @@ Plusieurs thèmes de couleurs sont accessibles. Pour choisir un thème de couleu
\begin{itemize}
\item \lstinline+"BlueLichess"+ (thème par défaut);
\item \lstinline+"BrownLichess"+ ;
+\item \lstinline+"GreenLichess"+;
+\item \lstinline+"PinkPyramidalLichess"+;
+\item \lstinline+"Wood"+;
\item ou \lstinline+"Classical"+.
\end{itemize}
\end{description}
@@ -302,20 +305,64 @@ init_backboard;
draw backboard;
endfig;
\end{ExempleMP}
-\begin{ExempleMP}
-input mpchess
-beginfig(0);
-set_color_theme("Classical");
-init_backboard;
-draw backboard;
-endfig;
-\end{ExempleMP}
-Les deux thèmes colorés fournis empruntent les couleurs des thèmes de Lichess.
+Le tableau~\ref{tab:color} montre les résultats des différents thèmes fournis
+par \mpchess.
+
+\begin{table}
+ \centering
+\begin{tabular}{cc}
+
+Thème \lstinline+"GreenLichess"+&Thème \lstinline+"Classical"+\\
+\begin{mplibcode}
+ input mpchess
+ beginfig(0);
+ init_chessboard;
+ set_backboard_width(4cm);
+ set_color_theme("GreenLichess");
+ init_backboard;
+ draw backboard;
+ endfig;
+\end{mplibcode}
+&\begin{mplibcode}
+ input mpchess
+ beginfig(0);
+ init_chessboard;
+ set_backboard_width(4cm);
+ set_color_theme("Classical");
+ init_backboard;
+ draw backboard;
+ endfig;
+\end{mplibcode}\\
+Thème \lstinline+"PinkPyramidalLichess"+&Thème \lstinline+"Wood"+\\
+\begin{mplibcode}
+ input mpchess
+ beginfig(0);
+ init_chessboard;
+ set_backboard_width(4cm);
+ set_color_theme("PinkPyramidalLichess");
+ init_backboard;
+ draw backboard;
+ endfig;
+\end{mplibcode}&
+\begin{mplibcode}
+ input mpchess
+ beginfig(0);
+ init_chessboard;
+ set_backboard_width(4cm);
+ set_color_theme("Wood");
+ init_backboard;
+ draw backboard;
+ endfig;
+\end{mplibcode}\\
+\end{tabular}
+\caption{Les différents thèmes de couleur fournis par \mpchess.}\label{tab:color}
+\end{table}
\subsubsection{Configuration d’un thème personnel}
-Un thème de couleur est en réalité simplement la définition de deux couleurs.
+\paragraph{Couleurs.}
+Un thème de couleur conciste en la définition de deux couleurs.
Celles-ci peuvent se définir avec les commandes suivantes \footnote{Attention,
lors du passage à la version 0.6, \lstinline+set_white_color+ est devenu
\lstinline+set_white_squares_color+ et \lstinline+set_black_color+ est devenu
@@ -335,6 +382,37 @@ init_backboard;
draw backboard;
endfig;
\end{ExempleMP}
+
+\paragraph{Type de coloriage.}
+
+
+On peut choisir un type de coloriage avec la commande suivante:
+
+\commande|set_board_type(«string»)|\index{set_board_type@\lstinline+set_board_type+}\smallskip
+
+Les trois types de coloriage fournis par \mpchess{} se choisissent avec
+\begin{description}
+ \item[\meta{string}] qui peut valoir:
+\begin{itemize}
+\item \lstinline+"flat"+, coloriage à plat (défaut);
+\item \lstinline+"pyramidal"+, coloriage \emph{pyramidal} à la Lichess;
+\item \lstinline+"wood"+, imitation bois.
+\end{itemize}
+\end{description}
+
+Voici un exemple de paramétrage de couleur et de type de coloriage.
+
+\begin{ExempleMP}
+input mpchess
+beginfig(0);
+set_white_squares_color((0.9,0.8,0.8));
+set_black_squares_color((0.7,0.6,0.6));
+set_board_type("wood");
+init_backboard;
+draw backboard;
+endfig;
+\end{ExempleMP}
+
\subsection{Affichage des coordonnées}
Vous avez pu constater dans les divers exemples que par défaut, les coordonnées
@@ -1346,6 +1424,9 @@ endfig;
\section{Historique}
\begin{description}
+\item[v0.7, juillet 2023:] Ajustement du cavalier noir, ajout de thèmes
+d'échiquier (\lstinline+GreenLichess+, \lstinline+PinkPyramidalLichess+,
+\lstinline+Wood+ avec des types de coloriage (\lstinline+set_board_type+).
\item[v0.6, avril 2023:] Corrections de bugs concernant la gestion des roques, et
des ambiguïtés de pièces pour les déplacements sous format \textsc{pgn}.
Changement de \lstinline+set_white_color+ en
diff --git a/graphics/metapost/contrib/macros/mpchess/doc/mpchess-preamble.tex b/graphics/metapost/contrib/macros/mpchess/doc/mpchess-preamble.tex
index 62e5ad2413..6a7f11d747 100644
--- a/graphics/metapost/contrib/macros/mpchess/doc/mpchess-preamble.tex
+++ b/graphics/metapost/contrib/macros/mpchess/doc/mpchess-preamble.tex
@@ -97,7 +97,7 @@
set_no_coords,set_white_view,set_black_view,
set_white_player,set_black_player,set_pieces_theme,set_players_side,init_chessboard,set_empty_chessboard,add_white_pieces,add_black_pieces,clear_areas,clear_files,clear_ranks,clear_squares,build_chessboard_from_fen,build_chessboards_from_pgn,clear_chessboard,
color_square,draw_arrows,draw_circles,draw_comment,draw_crosses,get_halfmove_number,get_totalmove_number,
- reset_mpchess,set_black_to_move,set_last_move_color,set_comment_color,set_white_to_move,set_whos_to_move,show_last_move,unset_whos_to_move,set_arrow_width,clip_chessboard,build_chessboard_from_fen_file,build_chessboard_from_pgn_file,draw_black_main_lines,draw_black_main_lines_step,draw_white_main_lines,draw_white_main_lines_step,set_main_lines_color,set_possible_moves_color,show_possible_moves,show_possible_moves_step,hide_coordinates,hide_whos_to_move,set_black_squares_color,set_coordinates_font,set_coordinates_position,set_white_squares_color,show_coordinates,show_whos_to_move},
+ reset_mpchess,set_black_to_move,set_last_move_color,set_comment_color,set_white_to_move,set_whos_to_move,show_last_move,unset_whos_to_move,set_arrow_width,clip_chessboard,build_chessboard_from_fen_file,build_chessboard_from_pgn_file,draw_black_main_lines,draw_black_main_lines_step,draw_white_main_lines,draw_white_main_lines_step,set_main_lines_color,set_possible_moves_color,show_possible_moves,show_possible_moves_step,hide_coordinates,hide_whos_to_move,set_black_squares_color,set_coordinates_font,set_coordinates_position,set_white_squares_color,show_coordinates,show_whos_to_move,set_board_type},
keywordstyle=\color{darkred},
classoffset=2,% frame=tb
morekeywords={backboard,chessboard,chessboard_step},
diff --git a/graphics/metapost/contrib/macros/mpchess/fonts/mpchessfont.ttf b/graphics/metapost/contrib/macros/mpchess/fonts/mpchessfont.ttf
index 11f0bef692..000d741430 100644
--- a/graphics/metapost/contrib/macros/mpchess/fonts/mpchessfont.ttf
+++ b/graphics/metapost/contrib/macros/mpchess/fonts/mpchessfont.ttf
Binary files differ
diff --git a/graphics/metapost/contrib/macros/mpchess/metapost/mpchess-pieces.mp b/graphics/metapost/contrib/macros/mpchess/metapost/mpchess-pieces.mp
index 0d6aa5ea24..7a5de31b95 100644
--- a/graphics/metapost/contrib/macros/mpchess/metapost/mpchess-pieces.mp
+++ b/graphics/metapost/contrib/macros/mpchess/metapost/mpchess-pieces.mp
@@ -51,14 +51,14 @@ linejoin := mitered;
fill (19.250000,7.917970)..controls (22.527300,7.917970) and (22.671900,5.488280)..(22.671900,3.679690)
--(5.632810,3.679690)..controls (5.632810,5.519530) and (5.777340,7.917970)..(9.054690,7.917970)
--cycle;
-fill (19.257799,9.101560)--(9.082030,9.101560)..controls (9.218750,12.449200) and (13.515600,14.226600)..(13.710900,15.843800)
- ..controls (13.906300,17.457001) and (13.031300,17.875000)..(13.031300,17.875000)
- ..controls (13.031300,17.875000) and (12.433600,15.933600)..(11.668000,15.535200)
- ..controls (10.902300,15.136700) and (9.125000,14.765600)..(9.125000,14.765600)
- ..controls (9.125000,14.765600) and (7.875000,13.789100)..(7.140630,13.855500)
- ..controls (6.406250,13.925800) and (5.773440,15.449200)..(5.773440,15.449200)
- --(8.273440,18.898399)--(9.539060,21.347700)--(10.734400,22.476601)
- --(11.246100,24.136700)--(12.683600,22.675800)..controls (20.597700,22.675800) and (22.316401,13.824200)..(19.257799,9.101560)
+fill (18.890600,9.101560)--(9.410160,9.101560)..controls (9.539060,12.566400) and (13.539100,14.410200)..(13.722700,16.085899)
+ ..controls (13.906300,17.757799) and (13.089800,18.187500)..(13.089800,18.187500)
+ ..controls (13.089800,18.187500) and (12.531300,16.175800)..(11.820300,15.765600)
+ ..controls (11.109400,15.355500) and (9.449220,14.968800)..(9.449220,14.968800)
+ ..controls (9.449220,14.968800) and (8.289060,13.957000)..(7.601560,14.027300)
+ ..controls (6.917970,14.097700) and (6.332030,15.675800)..(6.332030,15.675800)
+ --(8.656250,19.253901)--(9.835940,21.785200)--(10.949200,22.957001)
+ --(11.425800,24.675800)--(12.765600,23.164101)..controls (20.140600,23.164101) and (21.738300,13.992200)..(18.890600,9.101560)
--cycle;
);
@@ -363,4 +363,4 @@ draw (19.609400,21.625000)--(17.171900,22.253901)--(16.644501,21.011700)
--(8.683590,21.382799)..controls (8.683590,21.382799) and (8.660160,17.046900)..(9.914060,17.070299)
--(18.378901,17.070299)..controls (19.628901,17.070299) and (19.609400,21.625000)..(19.609400,21.625000)
--cycle;
-); \ No newline at end of file
+);
diff --git a/graphics/metapost/contrib/macros/mpchess/metapost/mpchess.mp b/graphics/metapost/contrib/macros/mpchess/metapost/mpchess.mp
index d16c821493..3883ca0bc3 100644
--- a/graphics/metapost/contrib/macros/mpchess/metapost/mpchess.mp
+++ b/graphics/metapost/contrib/macros/mpchess/metapost/mpchess.mp
@@ -1,8 +1,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% mpchess.mp %%
%% draw chessboards with metapost %%
-%% chupin@ceremade.dauphine.fr %%
-%% Version 0.6 (avril 2023) %%
+%% notezik@gmail.com %%
+%% Version 0.7 (juillet 2023) %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% This work may be distributed and/or modified under the conditions of
@@ -21,6 +21,7 @@ input mpchess-skak; % piece of skak package
input mpchess-chessboard;
input mpchess-pgn;
input mpchess-fen;
+input fiziko;
if not known mplib: input latexmp fi;
@@ -198,13 +199,54 @@ picture _blackSquarePic, _whiteSquarePic;
picture _blackSquareColoredPic, _whiteSquareColoredPic;
picture _blackSquareClassicalPic, _whiteSquareClassicalPic;
+def _wood_draw(expr N,d,p,c,_SquareUnit)=
+ save _up_wood,_down_wood;
+ path _up_wood,_down_wood;
+ fill unitsquare scaled _SquareUnit withcolor c;
+ for i=1 upto N-1:
+ _up_wood:=(i/N+uniformdeviate(d),0.0+0.5p/_SquareUnit)*_SquareUnit--(i/N,0.0+0.5p/_SquareUnit)*_SquareUnit--(i/N,0.5)*_SquareUnit--(i/N+uniformdeviate(d),0.7+uniformdeviate(.3)-p/_SquareUnit)*_SquareUnit--cycle;
+ fill _up_wood withcolor ((0.9+uniformdeviate
+ .25)[white,c]);
+ _down_wood:=((i-1)/N+uniformdeviate(d)+0.5/N,1.0-0.5p/_SquareUnit)*_SquareUnit--((i-1)/N+0.5/N,1.0-0.5p/_SquareUnit)*_SquareUnit--((i-1)/N+0.5/N,0.5)*_SquareUnit--((i-1)/N+uniformdeviate(d)+0.5/N,0.3-uniformdeviate(.3)+p/_SquareUnit)*_SquareUnit--cycle;
+ fill _down_wood withcolor ((0.9+uniformdeviate
+ .25)[white,c]);
+ endfor;
+enddef;
+
def _buildColoredSquare(expr _SquareUnit,_BlackColor,_WhiteColor)=
- _blackSquarePic:=image(
- fill unitsquare scaled _SquareUnit withcolor _BlackColor;
- );
- _whiteSquarePic:=image(
- fill unitsquare scaled _SquareUnit withcolor _WhiteColor;
- );
+ if(_chess_board_type="flat"):
+ _blackSquarePic:=image(
+ fill unitsquare scaled _SquareUnit withcolor _BlackColor;
+ );
+ _whiteSquarePic:=image(
+ fill unitsquare scaled _SquareUnit withcolor _WhiteColor;
+ );
+ elseif(_chess_board_type="pyramidal"):
+ _blackSquarePic:=image(
+ fill unitsquare scaled _SquareUnit withcolor _BlackColor;
+ fill (1,0)--(1,1)--(0.5,0.5)--cycle scaled _SquareUnit withcolor
+ 0.97[black,_BlackColor];
+ fill (0,1)--(0,0)--(0.5,0.5)--cycle scaled _SquareUnit withcolor
+ 0.97[white,_BlackColor];
+ );
+ _whiteSquarePic:=image(
+ fill unitsquare scaled _SquareUnit withcolor _WhiteColor;
+ fill (1,0)--(1,1)--(0.5,0.5)--cycle scaled _SquareUnit withcolor
+ 0.97[black,_WhiteColor];
+ fill (0,1)--(0,0)--(0.5,0.5)--cycle scaled _SquareUnit withcolor
+ 0.97[white,_WhiteColor];
+ );
+ elseif(_chess_board_type="wood"):
+ _N_wood:=20;
+ _deviate_wood:=0.02;
+ _pencile_wood:=0.7pt;
+ path _up_wood,_down_wood,_q,_p;
+ _blackSquarePic:=image(
+ _wood_draw(_N_wood,_deviate_wood,_pencile_wood,_BlackColor,_SquareUnit);
+ );
+ _whiteSquarePic:=image(_wood_draw(_N_wood,_deviate_wood,_pencile_wood,_WhiteColor,_SquareUnit);
+ );
+ fi
enddef;
def _buildClassicalSquare(expr _SquareUnit)=
@@ -223,11 +265,25 @@ _whiteSquarePic:=_whiteSquareColoredPic;
def set_color_theme(expr t)=
_chessTheme := t;
if(t="BlueLichess"):
+ _chess_board_type:="flat";
_blackColorSquare:=(0.549,0.6353,0.6784);
_whiteColorSquare:=(0.8706,0.8912,0.902);
elseif(t="BrownLichess"):
+ _chess_board_type:="flat";
_blackColorSquare:=(0.709803922,0.5333,0.3882);
_whiteColorSquare:=(0.941176471,0.850980392,0.709803922);
+ elseif(t="GreenLichess"):
+ _chess_board_type:="flat";
+ _blackColorSquare:=(0.5255,0.651,0.4);
+ _whiteColorSquare:=(1.0,1.0,0.8666);
+ elseif(t="PinkPyramidalLichess"):
+ _chess_board_type:="pyramidal";
+ _blackColorSquare:=(0.949,0.451,0.451);
+ _whiteColorSquare:=(0.9294,0.9333,0.73333);
+ elseif(t="Wood"):
+ _chess_board_type:="wood";
+ _blackColorSquare:=(0.4902,0.3569,0.2118);
+ _whiteColorSquare:=(0.8039,0.7843,0.7725);
elseif(t="Classical"):
_blackColorSquare:=black;
_whiteColorSquare:=black;
@@ -490,6 +546,16 @@ enddef;
picture backboard;
+string _chess_board_type; % define flat color or "pyramidal" like lichess
+
+% default value flat
+_chess_board_type:="flat";
+
+vardef set_board_type(expr s) =
+ _chess_board_type:=s;
+enddef;
+
+
def init_backboard =
_chessSquareU:=_chessWidth/_chessSize;
_init_piece(_chessSquareU);
diff --git a/graphics/pgf/contrib/tikz-nfold/README.md b/graphics/pgf/contrib/tikz-nfold/README.md
index c146668713..4c1d75c249 100644
--- a/graphics/pgf/contrib/tikz-nfold/README.md
+++ b/graphics/pgf/contrib/tikz-nfold/README.md
@@ -1,5 +1,5 @@
# tikz-nfold
-## Version 0.1.3
+## Version 1.0.0
This library adds higher-order paths to [TikZ](https://ctan.org/pkg/pgf) and also fixes some graphical issues with TikZ' `double` paths, used e.g. in wide arrows. It is also compatible with [tikz-cd](https://ctan.org/pkg/tikz-cd), adding support for triple and higher arrows. See the [documentation](tikz-nfold-doc.pdf) for full details.
diff --git a/graphics/pgf/contrib/tikz-nfold/pgflibrarybezieroffset.code.tex b/graphics/pgf/contrib/tikz-nfold/pgflibrarybezieroffset.code.tex
index 275fa0fdf3..06c9912f6c 100644
--- a/graphics/pgf/contrib/tikz-nfold/pgflibrarybezieroffset.code.tex
+++ b/graphics/pgf/contrib/tikz-nfold/pgflibrarybezieroffset.code.tex
@@ -1,4 +1,4 @@
-%% tikz-nfold.sty
+%% pgflibrarybezieroffset.code.tex
%% Copyright 2023 Jonathan Schulz
%
% This work may be distributed and/or modified under the
@@ -13,102 +13,40 @@
%
% The Current Maintainer of this work is Jonathan Schulz.
%
-% This work consists of the files pgflibrarybezieroffset.code.tex,
-% tikzlibrarynfold.code.tex, tikz-nfold-doc.tex, and tikz-nfold-doc.pdf.
+% This work consists of the files
+% pgflibrarybezieroffset.code.tex, pgflibrarynfold.code.tex, pgflibraryoffsetpath.code.tex, tikz-nfold-doc.tex, tikzlibrarynfold.code.tex, tikz-nfold-doc.tex, and tikz-nfold-doc.pdf.
+%
+%
+% A commented version of this file can be found on https://github.com/jonschz/tikz-nfold .
+%
-% Don't delete this code in case we need it in the future
-%
-% Split a Bezier curve (de Casteljau's algorithm)
-% #1 = time (between 0 and 1)
-% #2-#5: control points
-% Outputs the first part into \pgf@splitbezier@i@i, ... , \pgf@splitbezier@i@iv,
-% and the second part into \pgf@splitbezier@ii@i, ... , \pgf@splitbezier@ii@iv.
-%\def\pgf@splitbezier#1#2#3#4#5{%
-% % based on pgfcorepoints.code.tex, \pgfpointcurveattime
-% \edef\pgf@time@s{#1}%
-% \pgf@x=-\pgf@time@s pt%
-% \advance\pgf@x by 1pt%
-% \edef\pgf@time@t{\pgf@sys@tonumber{\pgf@x}}%
-% % P^0_3
-% \pgfextract@process\pgf@splitbezier@ii@iv{#5}%
-% \pgf@xc=\pgf@x%
-% \pgf@yc=\pgf@y%
-% % P^0_2
-% \pgf@process{#4}%
-% \pgf@xb=\pgf@x%
-% \pgf@yb=\pgf@y%
-% % P^0_1
-% \pgf@process{#3}%
-% \pgf@xa=\pgf@x%
-% \pgf@ya=\pgf@y%
-% % P^0_0
-% \pgfextract@process\pgf@splitbezier@i@i{#2}%
-% % First iteration:
-% % P^1_0
-% \pgf@x=\pgf@time@t\pgf@x\advance\pgf@x by\pgf@time@s\pgf@xa%
-% \pgf@y=\pgf@time@t\pgf@y\advance\pgf@y by\pgf@time@s\pgf@ya%
-% \pgfextract@process\pgf@splitbezier@i@ii{}%
-% % P^1_1
-% \pgf@xa=\pgf@time@t\pgf@xa\advance\pgf@xa by\pgf@time@s\pgf@xb%
-% \pgf@ya=\pgf@time@t\pgf@ya\advance\pgf@ya by\pgf@time@s\pgf@yb%
-% % P^1_2
-% \pgf@xb=\pgf@time@t\pgf@xb\advance\pgf@xb by\pgf@time@s\pgf@xc%
-% \pgf@yb=\pgf@time@t\pgf@yb\advance\pgf@yb by\pgf@time@s\pgf@yc%
-% \edef\pgf@splitbezier@ii@iii{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}%
-% % P^2_0
-% \pgf@x=\pgf@time@t\pgf@x\advance\pgf@x by\pgf@time@s\pgf@xa%
-% \pgf@y=\pgf@time@t\pgf@y\advance\pgf@y by\pgf@time@s\pgf@ya%
-% \pgfextract@process\pgf@splitbezier@i@iii{}%
-% % P^2_1
-% \pgf@xa=\pgf@time@t\pgf@xa\advance\pgf@xa by\pgf@time@s\pgf@xb%
-% \pgf@ya=\pgf@time@t\pgf@ya\advance\pgf@ya by\pgf@time@s\pgf@yb%
-% \edef\pgf@splitbezier@ii@ii{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
-% % P^3_0
-% \pgf@x=\pgf@time@t\pgf@x\advance\pgf@x by\pgf@time@s\pgf@xa%
-% \pgf@y=\pgf@time@t\pgf@y\advance\pgf@y by\pgf@time@s\pgf@ya%
-% \pgfextract@process\pgf@splitbezier@i@iv{}%
-% \let\pgf@splitbezier@ii@i\pgf@splitbezier@i@iv
-%}
-% Split the Bezier curve defined by #1-#4 at t=0.5 using de Casteljau's algorithm
\def\pgf@halfsplitbezier#1#2#3#4{%
- % based on pgfcorepoints.code.tex, \pgfpointcurveattime
- % P^0_3
\pgfextract@process\pgf@splitbezier@ii@iv{#4}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
- % P^0_2
- \pgf@process{#3}% removing these does not yield a significant speedup
+ \pgf@process{#3}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
- % P^0_1
\pgf@process{#2}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
- % P^0_0
\pgfextract@process\pgf@splitbezier@i@i{#1}%
- % First iteration:
- % P^1_0
\pgf@x=.5\pgf@x\advance\pgf@x by.5\pgf@xa%
\pgf@y=.5\pgf@y\advance\pgf@y by.5\pgf@ya%
\edef\pgf@splitbezier@i@ii{\pgf@x\the\pgf@x\pgf@y\the\pgf@y}%
- % P^1_1
\pgf@xa=.5\pgf@xa\advance\pgf@xa by.5\pgf@xb%
\pgf@ya=.5\pgf@ya\advance\pgf@ya by.5\pgf@yb%
- % P^1_2
\pgf@xb=.5\pgf@xb\advance\pgf@xb by.5\pgf@xc%
\pgf@yb=.5\pgf@yb\advance\pgf@yb by.5\pgf@yc%
\edef\pgf@splitbezier@ii@iii{\pgf@x\the\pgf@xb\pgf@y\the\pgf@yb}%
- % P^2_0
\pgf@x=.5\pgf@x\advance\pgf@x by.5\pgf@xa%
\pgf@y=.5\pgf@y\advance\pgf@y by.5\pgf@ya%
\edef\pgf@splitbezier@i@iii{\pgf@x\the\pgf@x\pgf@y\the\pgf@y}%
- % P^2_1
\pgf@xa=.5\pgf@xa\advance\pgf@xa by.5\pgf@xb%
\pgf@ya=.5\pgf@ya\advance\pgf@ya by.5\pgf@yb%
\edef\pgf@splitbezier@ii@ii{\pgf@x\the\pgf@xa\pgf@y\the\pgf@ya}%
- % P^3_0
\pgf@x=.5\pgf@x\advance\pgf@x by.5\pgf@xa%
\pgf@y=.5\pgf@y\advance\pgf@y by.5\pgf@ya%
\edef\pgf@splitbezier@i@iv{\pgf@x\the\pgf@x\pgf@y\the\pgf@y}%
@@ -116,7 +54,6 @@
}
-% computes the cross product and puts it into \pgfmathresult
\def\pgfmathcrossproduct#1#2{%
\begingroup
\pgf@process{#1}%
@@ -159,7 +96,6 @@
\endgroup\pgf@temp
}
-% Calculates abs(\pgf@x) + abs(\pgf@y) in #1
\def\pgfpointtaxicabnorm#1{%
\ifdim\pgf@x<0pt
#1=-\pgf@x
@@ -173,24 +109,18 @@
\fi
}
-% Computes the normalised tangents of a given Bezier curve and stores them in \pgf@tmp@tang@i and \pgf@tmp@tang@ii.
-% Also computes the angles and stores them in \pgf@tmp@angle@i and \pgf@tmp@angle@ii.
-% All degenerate cases are covered. For a triple degenerate curve (all points equal), the vector (1,0) is returned.
\def\pgf@offset@compute@tangents#1#2#3#4{%
- \pgf@process{\pgfpointdiff{#1}{#2}}% unintuitively, this is PTii - PTi
+ \pgf@process{\pgfpointdiff{#1}{#2}}%
\pgfpointtaxicabnorm\pgf@xa
\ifdim\pgf@xa<0.1pt\relax
- % edge case: first point and first control point are equal
\pgf@process{\pgfpointdiff{#1}{#3}}%
\pgfpointtaxicabnorm\pgf@xa
\ifdim\pgf@xa<0.1pt\relax
- % edge case: first three points are equal
\pgf@process{\pgfpointdiff{#1}{#4}}%
\fi
\fi
\pgfextract@process\pgf@tmp@tang@i{%
\pgfpointnormalised{}%
- % \pgfpointnormalised stores the angle of the vector in \pgf@tmp
\global\let\pgf@nfold@tmp\pgf@tmp%
}%
\let\pgf@tmp@angle@i\pgf@nfold@tmp%
@@ -208,37 +138,25 @@
}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Offsetting a simple section %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\pgf@offset@bezier@segment#1#2#3#4#5{%
- % normalise tangents and normals; this avoids overflow issues later, and we need
- % the normal vector to be of length 1 anyway
\pgf@offset@compute@tangents{#1}{#2}{#3}{#4}%
\pgf@offset@bezier@segment@{#1}{#2}{#3}{#4}{#5}%
}
-% this version assumes that the tangents have been precomputed in \pgf@tmp@tang@i and @ii
\def\pgf@offset@bezier@segment@#1#2#3#4#5{%
- % offset A1
- % compute the normal
\pgf@tmp@tang@i
\edef\pgf@tmp@normal@i{\noexpand\pgfqpoint{-\the\pgf@y}{\the\pgf@x}}%
\pgfextract@process\pgf@bezier@offset@i
{\pgfpointadd{\pgfpointscale{#5}{\pgf@tmp@normal@i}}{#1}}%
- % offset A4
\pgf@tmp@tang@ii
\edef\pgf@tmp@normal@ii{\noexpand\pgfqpoint{-\the\pgf@y}{\the\pgf@x}}%
\pgfextract@process\pgf@bezier@offset@iv
{\pgfpointadd{\pgfpointscale{#5}{\pgf@tmp@normal@ii}}{#4}}%
- % now compute A'_2 and A'_3
\pgf@process{\pgfpointdiff{#1}{#4}}%
\pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
\let\pgf@tmp@secantlen\pgfmathresult
\ifdim\pgf@tmp@secantlen pt<0.1pt\relax
- % Edge case: Either the curve is degenerate to a point or it is not simple.
- % Either way we offset A1 and A4, and preserve the vectors A1A2 and A3A4.
\pgfutil@packagewarning{tikz-nfold}{first and last point are too close, expect glitches}%
\pgfextract@process\pgf@bezier@offset@ii
{\pgfpointadd{\pgf@bezier@offset@i}{\pgfpointdiff{#1}{#2}}}%
@@ -248,22 +166,18 @@
\pgfextract@process\pgf@tmp@secant{\pgfpointnormalised{}}%
\pgfmathcrossdot{}{\pgf@tmp@tang@ii}%
\ifdim\pgf@tmp@dot pt<.5pt\relax%
- % this can only happen in non-simple curves
\pgfutil@packagewarning{tikz-nfold}{cosine of \pgf@tmp@dot\space clamped to 0.5 in non-simple segment}%
\def\pgf@tmp@dot{.5}%
\fi%
\pgfmathdivide@{\pgf@tmp@cross}{\pgf@tmp@dot}%
\let\pgf@tmp@tanbeta\pgfmathresult
\pgfmathcrossdot{\pgf@tmp@secant}{\pgfpointnormalised{\pgfpointdiff{#1}{#2}}}
- % There are cases where we want #5/secantlen to be quite large, so we should not clamp the value here
- % \pgfmathparse{1 + #5/\pgf@tmp@secantlen*(\pgf@tmp@cross - \pgf@tmp@dot*\pgf@tmp@tanbeta)}%
\pgfmath@offset@calculate@scale{\pgf@tmp@secantlen}{\pgf@tmp@cross}{\pgf@tmp@dot}{\pgf@tmp@tanbeta}{#5}%
\pgfextract@process\pgf@bezier@offset@ii{%
\pgfpointadd
{\pgf@bezier@offset@i}
{\pgfqpointscale{\pgfmathresult}{\pgfpointdiff{#1}{#2}}}%
}%
- % third control point
\pgfmathcrossdot{\pgf@tmp@secant}{\pgf@tmp@tang@i}%
\ifdim\pgf@tmp@dot pt<.5pt\relax
\pgfutil@packagewarning{tikz-nfold}{cosine of \pgf@tmp@dot\space clamped to 0.5 in non-simple segment}%
@@ -272,7 +186,6 @@
\pgfmathdivide@{\pgf@tmp@cross}{\pgf@tmp@dot}%
\let\pgf@tmp@tanbeta\pgfmathresult
\pgfmathcrossdot{\pgf@tmp@secant}{\pgfpointnormalised{\pgfpointdiff{#4}{#3}}}%
- % \pgfmathparse{1 + #5/\pgf@tmp@secantlen*(\pgf@tmp@cross - \pgf@tmp@dot*\pgf@tmp@tanbeta)}%
\pgfmath@offset@calculate@scale{\pgf@tmp@secantlen}{\pgf@tmp@cross}{\pgf@tmp@dot}{\pgf@tmp@tanbeta}{#5}%
\pgfextract@process\pgf@bezier@offset@iii{%
\pgfpointadd
@@ -282,12 +195,6 @@
\fi
}
-% calculates 1+#5/#1*(#2-#3*#4)
-% #1 = secantlen
-% #2 = cross
-% #3 = dot
-% #4 = tanbeta
-% #5 = #5 (offset)
\def\pgfmath@offset@calculate@scale#1#2#3#4#5{%
\begingroup
\pgfmathmultiply@{#3}{#4}%
@@ -301,48 +208,24 @@
\endgroup
}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Subdividing and offsetting %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Maximum level of recursion. The theoretical limit to the number of subdivisions in the final curve
-% is given by 2^\pgf@offset@max@recursion
\newcount\pgf@offset@max@recursion
\pgf@offset@max@recursion=4
-%
-% Subdivides a Bezier curve into "simple" segments (according to the definition below),
-% offsets the segments, and draws them. Because offsetting also involves relocating
-% the starting points, these macros come in two variants: with and without a \pgfpathmoveto{}
-% to the new starting point.
-%
-% Interface:
-% #1-#4: control points of the whole Bezier curve
-% #5: offset
\def\pgfoffsetcurve#1#2#3#4#5{%
\pgfoffsetcurvecallback{#1}{#2}{#3}{#4}{#5}{\pgf@nfold@callback@move}%
}
\def\pgfoffsetcurvenomove#1#2#3#4#5{%
- \pgfoffsetcurvecallback{#1}{#2}{#3}{#4}{#5}{\pgf@nfold@callback@nomove}%
+ \pgfoffsetcurvecallback{#1}{#2}{#3}{#4}{#5}{\pgf@nfold@callback@nomove}%
}
-% Arguments:
-% #1-#4: control points of the segment
-% #5: =0 if this is the first segment of the curve, =1 otherwise
-% (checking for #5=0 allows us to draw the curve without interruptions)
\def\pgf@nfold@callback@move#1#2#3#4#5{%
\if#50\pgfpathmoveto{#1}\fi%
\pgfpathcurveto{#2}{#3}{#4}%
}
-% this version never does a moveto at the start. Useful for drawing a path consisting of
-% multiple Bezier curves.
\def\pgf@nfold@callback@nomove#1#2#3#4#5{\pgfpathcurveto{#2}{#3}{#4}}
-% This macro subdivides and offsets a curve and executes a given callback on every offset simple segment.
-% #1-#4: control points of the segment
-% #5: =0 if this is the first segment of the curve, =1 otherwise
-% #6: callback (see \pgf@nfold@callback@move) for the parameters
\def\pgfoffsetcurvecallback#1#2#3#4#5#6{%
\edef\pgf@offset@tmp@callback##1##2##3##4##5{%
\noexpand\pgf@offset@bezier@segment{##1}{##2}{##3}{##4}{#5}%
@@ -352,11 +235,6 @@
}
-% This macro subdivides (but does not offset) a curve and executes a callback on every simple segment.
-% #1-#4: control points
-% #5: recursion limit (decreases on every recursive call)
-% #6: =0 if this is the start of the curve, =1 otherwise
-% #7: callback for output (see above)
\newif\ifpgf@offset@subdivide
\def\pgf@subdividecurve#1#2#3#4#5#6#7{%
\begingroup%
@@ -369,32 +247,24 @@
\endgroup%
}
-% This macro assumes that the curve is defined in \pgf@ctrl@i-\pgf@ctrl@iv
-% and that its tangents have already been computed.
\def\pgf@subdividecurve@#1#2#3{%
\pgf@offset@subdividefalse%
\c@pgf@counta=#1\relax
\advance\c@pgf@counta by -1
- % Use the non-degenerate tangents for the simplicity check
\pgfextract@process\pgf@itoiv{\pgfpointdiff{\pgf@ctrl@i}{\pgf@ctrl@iv}}%
\pgfmathcrossproduct{\pgf@itoiv}{\pgf@tmp@tang@i}%
\let\firstcross\pgfmathresult
\pgfmathcrossproduct{\pgf@itoiv}{\pgf@tmp@tang@ii}%
- % First simplicity check: Are A2 and A3 on the same side of the A1-A4 line?
- % -> compute the sign of the cross products, use the sign function to avoid overflows
- % just give it a pass if one of them is zero, hence 2 and 3 at the end
\ifnum
\ifdim \firstcross pt<0pt -1\else\ifdim \firstcross pt>0pt 1\else 2\fi\fi
=\ifdim\pgfmathresult pt<0pt -1\else\ifdim\pgfmathresult pt>0pt 1\else 3\fi\fi
- \relax % the \relax is important!
+ \relax %
\pgf@offset@subdividetrue%
\else%
- % Second simplicity check: How large is the angle between the tangents in A1 and A4?
\pgfmathdotproduct{\pgf@tmp@tang@i}{\pgf@tmp@tang@ii}%
\ifdim\pgfmathresult pt<.5pt\relax%
\pgf@offset@subdividetrue%
\else
- % Third simplicity check: Put a limit on the lengths of the i-ii and iii-iv vectors combined
\pgf@itoiv
\pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
\pgf@xa=\pgfmathresult pt
@@ -404,7 +274,6 @@
\pgf@process{\pgfpointdiff{\pgf@ctrl@iii}{\pgf@ctrl@iv}}%
\pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
\advance\pgf@xb by \pgfmathresult pt
- % veclen(iv-i) < veclen(ii-i) + veclen(iv-iii)
\ifdim\pgf@xa<\pgf@xb
\pgf@offset@subdividetrue
\fi
@@ -412,27 +281,19 @@
\fi%
\ifpgf@offset@subdivide%
\ifnum\c@pgf@counta<0%
- % We hit the recursion limit but the segment is not simple
\pgfutil@packagewarning{tikz-nfold}{Recursion limit reached, glitches may occur. %
Consider increasing \string\pgf@offset@max@recursion}%
- % Try to offset the curve anyway. The result will not be precise,
- % but the code is sufficiently robust to not crash
#3{\pgf@ctrl@i}{\pgf@ctrl@ii}{\pgf@ctrl@iii}{\pgf@ctrl@iv}{#2}%
\else
- % split the non-simple segment and execute recursive calls
\pgf@halfsplitbezier{\pgf@ctrl@i}{\pgf@ctrl@ii}{\pgf@ctrl@iii}{\pgf@ctrl@iv}%
- % compute the tangent at the spitting point; this vector is only zero if the curve
- % is degenerate to a point, in which case we can't compute the tangent anyway
\pgfextract@process\pgf@middletangent{%
\pgfpointnormalised{\pgfpointdiff{\pgf@splitbezier@i@iii}{\pgf@splitbezier@i@iv}}}%
\begingroup%
- % we need a group to avoid overwriting variables in recursive calls
\let\pgf@tmp@tang@ii\pgf@middletangent%
\let\pgf@ctrl@i\pgf@splitbezier@i@i%
\let\pgf@ctrl@ii\pgf@splitbezier@i@ii%
\let\pgf@ctrl@iii\pgf@splitbezier@i@iii%
\let\pgf@ctrl@iv\pgf@splitbezier@i@iv%
- % pass on the "start of the curve flag" only to the first term
\pgf@subdividecurve@{\c@pgf@counta}{#2}{#3}%
\endgroup%
\begingroup%
@@ -445,25 +306,16 @@
\endgroup%
\fi%
\else%
- % curve is simple
#3{\pgf@ctrl@i}{\pgf@ctrl@ii}{\pgf@ctrl@iii}{\pgf@ctrl@iv}{#2}%
\fi%
}
-%
-% Offsetting straight lines
-% -------------------------
-%
-% For convenience we also provide macros that offset straight lines. These also come in two variants
-% similar to the macros for curves.
-%
\def\pgfoffsetline#1#2#3{%
\pgfmathparse{#3}%
\pgfoffsetline@{#1}{#2}{\pgfmathresult}{\pgfpointnormalised{\pgfpointdiff{#1}{#2}}}%
}
-% a quicker version in case we already know the tangent and #3 is a number without unit
\def\pgfoffsetline@#1#2#3#4{%
\pgfqpointscale{#3}{#4}%
\pgf@xc=-\pgf@y
diff --git a/graphics/pgf/contrib/tikz-nfold/pgflibrarynfold.code.tex b/graphics/pgf/contrib/tikz-nfold/pgflibrarynfold.code.tex
new file mode 100644
index 0000000000..f593c787b4
--- /dev/null
+++ b/graphics/pgf/contrib/tikz-nfold/pgflibrarynfold.code.tex
@@ -0,0 +1,88 @@
+%% pgflibrarynfold.code.tex
+%% Copyright 2023 Jonathan Schulz
+%
+% 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 2008-05-04 or later.
+%
+% This work has the LPPL maintenance status 'maintained'.
+%
+% The Current Maintainer of this work is Jonathan Schulz.
+%
+% This work consists of the files
+% pgflibrarybezieroffset.code.tex, pgflibrarynfold.code.tex, pgflibraryoffsetpath.code.tex, tikz-nfold-doc.tex, tikzlibrarynfold.code.tex, tikz-nfold-doc.tex, and tikz-nfold-doc.pdf.
+%
+%
+% A commented version of this file can be found on https://github.com/jonschz/tikz-nfold .
+%
+
+
+\usepgflibrary{offsetpath}
+
+
+\newcount\pgf@nfold@index
+\def\pgf@nfold@run@loop{%
+ \pgf@nfold@index=\pgf@nfold@order%
+ \pgf@nfold@run@loop@%
+}
+
+\def\pgf@nfold@run@loop@{%
+ \pgf@nfold@loop@inner%
+ \advance\pgf@nfold@index by -1\relax
+ \ifnum\pgf@nfold@index>0\relax%
+ \pgf@nfold@run@loop@%
+ \fi%
+}
+
+\def\pgf@nfold@loop@inner{%
+ \pgfmathsetmacro{\pgf@nfold@shift@fraction}%
+ {-1+2*(\pgf@nfold@index-1)/(\pgf@nfold@order-1)}%
+ \pgfmathsetmacro{\pgf@nfold@shiftamount}{\pgf@nfold@hwidth*\pgf@nfold@shift@fraction}
+ \pgftransformreset%
+ \parsedpath%
+ \pgfsyssoftpath@flushcurrentpath%
+ \pgf@up@action%
+}
+
+\def\pgf@nfold@compute@widths@from@double{
+ \pgf@x=\pgflinewidth\relax%
+ \pgf@y=\pgf@x\relax%
+ \advance\pgf@x-\pgfinnerlinewidth\relax%
+ \advance\pgf@y+\pgfinnerlinewidth\relax%
+ \pgf@x=.5\pgf@x\relax%
+ \pgf@y=.25\pgf@y\relax%
+}
+
+\def\pgf@nfold@render@cached@softpath{%
+ \pgfscope%
+ \pgf@nfold@compute@widths@from@double%
+ \pgfsetlinewidth\pgf@x%
+ \edef\pgf@nfold@hwidth{\the\pgf@y}%
+ \pgfprocessround{\pgf@nfold@cachedpath}{\pgf@nfold@cachedpath}%
+ \pgf@nfold@parsearrows%
+ \pgf@nfold@parsesoftpath{\pgf@nfold@cachedpath}{\parsedpath}%
+ \pgf@nfold@run@loop%
+ \endpgfscope%
+}
+
+
+\pgfkeys{
+ /pgf/nfold/.code={%
+ \pgf@nfold@order=#1\relax%
+ \ifnum\pgf@nfold@order<1\relax%
+ \pgfutil@packageerror{tikz-nfold}{The key /pgf/nfold must take a value of at least 1, got \the\pgf@nfold@order}{}%
+ \fi%
+ \ifnum\pgf@nfold@order>\pgf@nfold@intersec@numcached\relax
+ \ifdefined\pgfintersectionofpaths\else
+ \pgf@nfold@intersectionsnotloadedtrue
+ \fi
+ \fi
+ },
+ /pgf/nfold/.default=2
+}
+
+\endinput
diff --git a/graphics/pgf/contrib/tikz-nfold/pgflibraryoffsetpath.code.tex b/graphics/pgf/contrib/tikz-nfold/pgflibraryoffsetpath.code.tex
new file mode 100644
index 0000000000..645812ecb1
--- /dev/null
+++ b/graphics/pgf/contrib/tikz-nfold/pgflibraryoffsetpath.code.tex
@@ -0,0 +1,913 @@
+%% pgflibraryoffsetpath.code.tex
+%% Copyright 2023 Jonathan Schulz
+%
+% 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 2008-05-04 or later.
+%
+% This work has the LPPL maintenance status 'maintained'.
+%
+% The Current Maintainer of this work is Jonathan Schulz.
+%
+% This work consists of the files
+% pgflibrarybezieroffset.code.tex, pgflibrarynfold.code.tex, pgflibraryoffsetpath.code.tex, tikz-nfold-doc.tex, tikzlibrarynfold.code.tex, tikz-nfold-doc.tex, and tikz-nfold-doc.pdf.
+%
+%
+% A commented version of this file can be found on https://github.com/jonschz/tikz-nfold .
+%
+
+\usepgflibrary{bezieroffset}
+
+
+
+
+
+
+\gdef\pgf@nfold@cached@miterlimit{10}
+\let\pgf@nfold@old@miterlimit\pgfsetmiterlimit
+\def\pgfsetmiterlimit#1{%
+ \pgf@nfold@old@miterlimit{#1}%
+ \edef\pgf@nfold@cached@miterlimit{#1}%
+}
+
+\global\let\pgf@cached@linejoin=m%
+\let\pgf@nfold@old@setbeveljoin\pgfsetbeveljoin
+\let\pgf@nfold@old@setmiterjoin\pgfsetmiterjoin
+\let\pgf@nfold@old@setroundjoin\pgfsetroundjoin
+\def\pgfsetbeveljoin{%
+ \pgf@nfold@old@setbeveljoin%
+ \let\pgf@cached@linejoin=b%
+}
+\def\pgfsetmiterjoin{%
+ \pgf@nfold@old@setmiterjoin%
+ \let\pgf@cached@linejoin=m%
+}
+\def\pgfsetroundjoin{%
+ \pgf@nfold@old@setroundjoin%
+ \let\pgf@cached@linejoin=r%
+}
+
+
+
+\def\pgf@nfold@miterjoin{
+ \pgfpathlineto{
+ \pgfpointadd{\pgf@nfold@join@centre}{%
+ \pgfpointpolar{\pgf@nfold@firstang+.5*\pgf@nfold@deltaphi+90}%
+ {\pgf@nfold@shiftamount/cos(.5*\pgf@nfold@deltaphi)}%
+ }%
+ }%
+}
+
+\def\pgf@nfold@beveljoin{
+ \pgfmathsetlengthmacro{\bevelouterprotrusion}%
+ {\pgf@nfold@shortenstartjoin pt - .5*\pgflinewidth*abs(tan(.25*\pgf@nfold@deltaphi))}
+ \pgfmathsetmacro{\bevelshorten}{2*\insidepercentage*abs(tan(.25*\pgf@nfold@deltaphi))}
+ \pgfmathparse{\bevelshorten < abs(sin(.5*\pgf@nfold@deltaphi))}
+ \ifnum\pgfmathresult=1\relax
+ \pgfmathsetlengthmacro{\bevelextension}{\bevelouterprotrusion-\bevelshorten*\pgf@nfold@hwidth}
+ \pgfpointadd{\pgf@nfold@join@start}{\pgfpointpolar{\pgf@nfold@firstang}{\bevelextension}}
+ \pgfpathlineto{}
+ \pgfpointadd{\pgf@nfold@join@end}{\pgfpointpolar{\pgf@nfold@secondang}{-\bevelextension}}
+ \pgfpathlineto{}
+ \else
+ \pgf@nfold@miterjoin
+ \fi
+}
+
+\def\pgf@nfold@roundjoin{
+ \ifdim\insidepercentage pt<.5pt\relax
+ \pgfpointadd{\pgf@nfold@join@start}{\pgfpointpolar{\pgf@nfold@firstang}{\pgf@nfold@shortenstartjoin}}
+ \pgfpathlineto{}
+ \pgfmathsetmacro\pgf@tmp@firstang{\pgf@nfold@firstang+90*\turnindicator}
+ \pgfpatharc%
+ {\pgf@tmp@firstang}%
+ {\pgf@tmp@firstang+\pgf@nfold@deltaphi}%
+ {abs(\pgf@nfold@shift@fraction)*\pgf@nfold@hwidth}%
+ \else
+ \pgf@nfold@miterjoin
+ \fi
+}
+
+\def\pgf@nfold@token@join#1#2#3#4#5#6#7#8{%
+ \def\pgf@nfold@join@centre{#1}%
+ \def\pgf@nfold@join@prevend{#2}%
+ \def\pgf@nfold@join@nextstart{#3}%
+ \def\pgf@nfold@firstang{#4}%
+ \def\pgf@nfold@secondang{#5}%
+ \pgfextract@process\pgf@nfold@join@start{%
+ \pgfpointadd{#2}{\pgfpointpolar{\pgf@nfold@firstang+90}{\pgf@nfold@shiftamount}}}%
+ \pgfextract@process\pgf@nfold@join@end{%
+ \pgfpointadd{#3}{\pgfpointpolar{\pgf@nfold@secondang+90}{\pgf@nfold@shiftamount}}}%
+ \pgf@process{\pgfpointdiff{\pgf@nfold@join@start}{\pgf@nfold@join@end}}
+ \pgfpointtaxicabnorm\pgfutil@tempdima
+ \ifdim\pgfutil@tempdima>0.1pt\relax
+ \def\pgf@nfold@deltaphi{#6}%
+ \def\pgf@nfold@shortenstartjoin{#7}%
+ \ifdim\pgf@nfold@deltaphi pt<0pt
+ \def\turnindicator{1}
+ \else
+ \def\turnindicator{-1}
+ \fi
+ \pgfutil@tempdima=\pgf@nfold@shift@fraction pt\relax
+ \pgfutil@tempdima=\turnindicator\pgfutil@tempdima
+ \advance\pgfutil@tempdima by-1pt\relax
+ \pgfutil@tempdima=-.5\pgfutil@tempdima
+ \edef\insidepercentage{\pgf@sys@tonumber\pgfutil@tempdima}%
+ #8%
+ \fi
+}
+
+
+\def\pgf@nfold@process@join{%
+ \pgf@xa=\pgf@nfold@deltaphi@start pt\relax
+ \ifdim\pgf@xa<0pt\relax
+ \pgf@xa=-\pgf@xa
+ \fi
+ \ifdim\pgf@xa>1pt\relax
+ \edef\pgf@nfold@jointype{\pgf@cached@linejoin}
+ \if\pgf@cached@linejoin m%
+ \pgf@xa=.5\pgf@xa
+ \pgfmathcos@{\pgf@sys@tonumber\pgf@xa}
+ \pgf@xa=\pgfmathresult pt\relax
+ \pgf@xa=\pgf@nfold@cached@miterlimit\pgf@xa
+ \ifdim\pgf@xa>1pt\relax
+ \def\pgf@nfold@tmp@joinmacro{\pgf@nfold@miterjoin}
+ \else
+ \def\pgf@nfold@tmp@joinmacro{\pgf@nfold@beveljoin}
+ \fi
+ \else
+ \if b\pgf@cached@linejoin\relax
+ \def\pgf@nfold@tmp@joinmacro{\pgf@nfold@beveljoin}
+ \else
+ \def\pgf@nfold@tmp@joinmacro{\pgf@nfold@roundjoin}
+ \fi
+ \fi
+ \edef\pgf@nfold@macrotoadd{%
+ \noexpand\pgf@nfold@token@join{\pgf@nfold@cur@first}{\pgf@nfold@prev@segment@end}
+ {\pgf@nfold@cur@movedfirst}{\pgf@nfold@prev@angle@ii}{\pgf@nfold@cur@angle@i}%
+ {\pgf@nfold@deltaphi@start}{\pgf@nfold@shortenstartjoin}{%
+ \expandafter\noexpand\pgf@nfold@tmp@joinmacro%
+ \expandafter\noexpand\ifpgf@nfold@closejoinsedgecase%
+ \pgf@nfold@token@finish@edgecase{\pgf@nfold@cur@movedlast}%
+ \else%
+ \pgf@nfold@token@finish@normal%
+ \fi%
+ }%
+ }%
+ \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
+ \fi%
+}
+
+
+\def\pgf@nfold@token@finish@normal{%
+ \pgfpathlineto{\pgf@nfold@join@end}%
+}
+
+\def\pgf@nfold@token@finish@edgecase#1{%
+ \pgf@nfold@join@end%
+ \ifdim\insidepercentage pt<.5pt\relax%
+ \pgf@process{\pgfpointadd{#1}{\pgfpointpolar{\pgf@nfold@secondang+90}{\pgf@nfold@shiftamount}}}
+ \fi%
+ \pgfpathlineto{}%
+}
+
+
+
+\newif\ifpgf@nfold@continuesegment
+\newif\ifpgf@nfold@closejoinsedgecase
+\newif\ifpgf@nfold@angletoosharp
+\newif\ifpgf@nfold@intersectionsnotloaded
+\newif\ifpgf@nfold@lastconnsubpath
+
+
+\def\pgf@nfold@process@segment{%
+ \if\pgf@nfold@cur@visible0
+ \if\pgf@nfold@cur@type m
+ \if\pgf@nfold@start@arrowcode1
+ \ifpgf@nfold@lastconnsubpath
+ \if\pgf@nfold@prev@type f
+ \if\pgf@nfold@next@visible1
+ \edef\pgf@nfold@macrotoadd{%
+ \noexpand\pgf@nfold@extendtotip{s}{\pgf@nfold@cur@last}{\pgf@nfold@next@angle@i}
+ }%
+ \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
+ \let\pgf@nfold@cur@type l
+ \let\pgf@nfold@cur@visible1
+ \let\pgf@nfold@cur@angle@ii\pgf@nfold@next@angle@i
+ \let\pgf@nfold@cur@tang@ii\pgf@nfold@next@tang@i
+ \def\pgf@nfold@deltaphi@end{0}
+ \pgf@nfold@angletoosharpfalse
+ \fi
+ \fi%
+ \fi
+ \fi
+ \fi%
+ \else%
+ \let\pgf@nfold@cur@movedfirst\pgf@nfold@cur@first
+ \let\pgf@nfold@cur@movedlast\pgf@nfold@cur@last
+ \def\pgf@nfold@shortenstartjoin{0}
+ \def\pgf@nfold@shortenendjoin{0}
+ \pgf@nfold@closejoinsedgecasefalse
+ \if\pgf@nfold@prev@visible0
+ \pgf@nfold@continuesegmentfalse
+ \else
+ \pgf@nfold@continuesegmenttrue
+ \let\pgf@nfold@deltaphi@start\pgf@nfold@deltaphi@end
+ \pgf@xb=\pgf@nfold@deltaphi@start pt\relax
+ \ifdim\pgf@xb<0pt\relax
+ \pgf@xb=-\pgf@xb
+ \fi
+ \ifpgf@nfold@angletoosharp\else
+ \ifdim\pgf@xb>0.5pt\relax
+ \pgf@yb=.5\pgf@xb
+ \pgfmathtan@{\pgf@sys@tonumber\pgf@yb}
+ \pgf@yb=\pgf@nfold@hwidth\relax
+ \pgf@yb=\pgfmathresult\pgf@yb
+ \edef\pgf@nfold@shortenstartjoin{\pgf@sys@tonumber\pgf@yb}
+ \pgfextract@process\pgf@nfold@cur@movedfirst{%
+ \pgfpointadd{\pgf@nfold@cur@first}%
+ {\pgfqpointscale{\pgf@nfold@shortenstartjoin}{\pgf@nfold@cur@tang@i}}}%
+ \if\pgf@nfold@cur@type c
+ \pgf@process{\pgfpointdiff{\pgf@nfold@cur@first}{\pgf@nfold@cur@supporta}}
+ \pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}
+ \ifdim\pgfmathresult pt>0.1pt\relax
+ \pgfmathveclen@{\pgfmathresult}{\pgf@sys@tonumber\pgf@yb}
+ \pgfextract@process\pgf@nfold@cur@supporta{\pgfpointadd%
+ {\pgf@nfold@cur@first}%
+ {\pgfqpointscale{\pgfmathresult}{\pgf@nfold@cur@tang@i}}}%
+ \else
+ \let\pgf@nfold@cur@supporta\pgf@nfold@cur@movedfirst
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \if\pgf@nfold@next@visible1
+ \pgfmathsubtract@{\pgf@nfold@next@angle@i}{\pgf@nfold@cur@angle@ii}
+ \pgf@nfold@clampangle
+ \edef\pgf@nfold@deltaphi@end{\pgfmathresult}
+ \pgf@xb=\pgf@nfold@deltaphi@end pt\relax
+ \ifdim\pgf@xb<0pt\relax
+ \pgf@xb=-\pgf@xb
+ \fi
+ \ifdim\pgf@xb>178pt\relax
+ \pgfutil@packagewarning{tikz-nfold}{Angle too sharp, expect visual errors}
+ \pgf@nfold@angletoosharptrue
+ \else
+ \pgf@nfold@angletoosharpfalse
+ \ifdim\pgf@xb>0.5pt\relax
+ \pgf@yb=.5\pgf@xb
+ \pgfmathtan@{\pgf@sys@tonumber\pgf@yb}
+ \pgf@yb=\pgf@nfold@hwidth\relax
+ \pgf@yb=\pgfmathresult\pgf@yb
+ \edef\pgf@nfold@shortenendjoin{\pgf@sys@tonumber\pgf@yb}
+ \pgf@yb=-\pgf@yb
+ \pgfextract@process\pgf@nfold@cur@movedlast{%
+ \pgfpointadd{\pgf@nfold@cur@last}%
+ {\pgfqpointscale{-\pgf@nfold@shortenendjoin}{\pgf@nfold@cur@tang@ii}}}%
+ \pgfextract@process\pgf@nfold@cur@movedlast{%
+ \pgfpointadd{\pgf@nfold@cur@last}%
+ {\pgfqpointpolar{\pgf@nfold@cur@angle@ii}{\pgf@yb}}}%
+ \if\pgf@nfold@cur@type c
+ \pgf@process{\pgfpointdiff{\pgf@nfold@cur@supportb}{\pgf@nfold@cur@last}}
+ \pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}
+ \ifdim\pgfmathresult pt>0.1pt\relax
+ \pgfmathveclen@{\pgfmathresult}{\pgf@sys@tonumber\pgf@yb}
+ \pgfextract@process\pgf@nfold@cur@supportb{\pgfpointadd%
+ {\pgf@nfold@cur@last}%
+ {\pgfqpointscale{-\pgfmathresult}{\pgf@nfold@cur@tang@ii}}}%
+ \else
+ \let\pgf@nfold@cur@supportb\pgf@nfold@cur@movedlast
+ \fi
+ \fi
+ \fi
+ \fi
+ \if\pgf@nfold@cur@type l
+ \pgf@process{\pgfpointdiff{\pgf@nfold@cur@first}{\pgf@nfold@cur@last}}
+ \pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}
+ \pgf@xa=\pgf@nfold@shortenstartjoin pt\relax
+ \advance\pgf@xa by\pgf@nfold@shortenendjoin pt\relax
+ \ifdim\pgf@xa>\pgfmathresult pt\relax
+ \pgf@nfold@closejoinsedgecasetrue
+ \fi
+ \fi
+ \fi%
+ \if\pgf@nfold@prev@visible0%
+ \ifpgf@nfold@closejoinsedgecase
+ \edef\pgf@nfold@macrotoadd{%
+ \noexpand\pgf@nfold@token@edgecase@movetostart{\pgf@nfold@cur@movedfirst}{\pgf@nfold@cur@angle@i}%
+ }%
+ \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
+ \fi
+ \else
+ \ifpgf@nfold@angletoosharp\else
+ \if\pgf@nfold@cur@type z\else
+ \pgf@nfold@process@join
+ \fi
+ \fi
+ \fi
+ \let\pgf@nfold@prev@segment@end\pgf@nfold@cur@movedlast
+ \if\pgf@nfold@cur@type i
+ \let\pgf@nfold@connsubpath@tang@i\pgf@nfold@next@tang@i%
+ \let\pgf@nfold@connsubpath@angle@i\pgf@nfold@next@angle@i%
+ \fi
+ \if\pgf@nfold@cur@type l
+ \ifpgf@nfold@closejoinsedgecase\else
+ \edef\pgf@nfold@macrotoadd{%
+ \expandafter\noexpand\ifpgf@nfold@continuesegment%
+ \pgf@nfold@token@lineto@continue%
+ \else%
+ \pgf@nfold@token@lineto%
+ \fi{\pgf@nfold@cur@movedfirst}{\pgf@nfold@cur@movedlast}{\pgf@nfold@cur@tang@i}%
+ }%
+ \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
+ \fi
+ \fi
+ \if\pgf@nfold@cur@type o
+ \def\pgf@nfold@macrotoadd{\pgf@nfold@token@closepath}%
+ \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
+ \fi
+ \if\pgf@nfold@cur@type z
+ \def\pgf@nfold@macrotoadd{\pgf@nfold@token@closepath}%
+ \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
+ \fi
+ \if\pgf@nfold@cur@type c
+ \ifpgf@nfold@continuesegment
+ \pgf@subdividecurve{\pgf@nfold@cur@movedfirst}{\pgf@nfold@cur@supporta}{\pgf@nfold@cur@supportb}{\pgf@nfold@cur@movedlast}{\pgf@offset@max@recursion}{0}{\pgf@nfold@addcurvesegment@callback@continue}
+ \else
+ \pgf@subdividecurve{\pgf@nfold@cur@movedfirst}{\pgf@nfold@cur@supporta}{\pgf@nfold@cur@supportb}{\pgf@nfold@cur@movedlast}{\pgf@offset@max@recursion}{0}{\pgf@nfold@addcurvesegment@callback}%
+ \fi
+ \fi
+ \if\pgf@nfold@cur@type i
+ \edef\pgf@nfold@macrotoadd{%
+ \noexpand\pgf@nfold@token@invisibleline{\pgf@nfold@cur@movedfirst}{\pgf@nfold@cur@movedlast}{\pgf@nfold@cur@tang@i}%
+ }%
+ \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
+ \fi
+ \if\pgf@nfold@next@type t%
+ \ifnum\pgf@nfold@end@arrowcode=1
+ \edef\pgf@nfold@macrotoadd{%
+ \noexpand\pgf@nfold@extendtotip{e}{\pgf@nfold@cur@last}{\pgf@nfold@cur@angle@ii}}%
+ \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
+ \fi%
+ \fi%
+ \fi%
+}
+
+
+\def\pgf@nfold@addcurvesegment@callback#1#2#3#4#5{%
+ \if#50%
+ \edef\pgf@nfold@macrotoadd{%
+ \noexpand\pgf@nfold@token@curveto{#1}{#2}{#3}{#4}{\pgf@tmp@tang@i}{\pgf@tmp@tang@ii}%
+ }%
+ \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
+ \else%
+ \pgf@nfold@addcurvesegment@callback@continue{#1}{#2}{#3}{#4}{#5}%
+ \fi%
+}
+
+\def\pgf@nfold@addcurvesegment@callback@continue#1#2#3#4#5{%
+ \edef\pgf@nfold@macrotoadd{%
+ \noexpand\pgf@nfold@token@curveto@continue{#1}{#2}{#3}{#4}{\pgf@tmp@tang@i}{\pgf@tmp@tang@ii}%
+ }%
+ \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
+}
+
+
+
+\expandafter\def\csname pgf@nfold@intersec@cache@2@3\endcsname{\pgfqpoint{2pt}{0pt}}
+\expandafter\def\csname pgf@nfold@intersec@cache@2@4\endcsname{\pgfqpoint{0.94063pt}{-0.33333pt}}
+\expandafter\def\csname pgf@nfold@intersec@cache@3@4\endcsname{\pgfqpoint{0.94063pt}{0.33333pt}}
+\expandafter\def\csname pgf@nfold@intersec@cache@2@5\endcsname{\pgfqpoint{0.64167pt}{-0.5pt}}
+\expandafter\def\csname pgf@nfold@intersec@cache@3@5\endcsname{\pgfqpoint{2pt}{0pt}}
+\expandafter\def\csname pgf@nfold@intersec@cache@4@5\endcsname{\pgfqpoint{0.64167pt}{0.5pt}}
+\def\pgf@nfold@intersec@numcached{5}
+
+\newif\ifpgf@nfold@ontheedge
+\def\pgf@nfold@extendtotip#1#2#3{
+ \ifpgf@nfold@intersectionsnotloaded
+ \pgfutil@packageerror{tikz-nfold}{%
+ If `nfold' is larger than \pgf@nfold@intersec@numcached\space and you use
+ an `Implies' arrow tip you need to say \string\usetikzlibrary{intersections}}{}
+ \else
+ \pgf@nfold@ontheedgetrue
+ \ifnum\pgf@nfold@index>1\relax\ifnum\pgf@nfold@index<\pgf@nfold@order\relax%
+ \pgf@nfold@ontheedgefalse
+ \fi\fi
+ \ifpgf@nfold@ontheedge%
+ \if#1s
+ \pgfpathmoveto{\pgfpointadd{#2}{\pgfpointpolar{#3+90}{\pgf@nfold@shiftamount}}}%
+ \fi
+ \else
+ \ifcsname pgf@nfold@intersec@cache@\the\pgf@nfold@index @\the\pgf@nfold@order\endcsname
+ \pgfextract@process\pgf@nfold@arrowintersect
+ {\csname pgf@nfold@intersec@cache@\the\pgf@nfold@index @\the\pgf@nfold@order\endcsname}%
+ \else
+ \pgfintersectionofpaths{
+ \pgfpathmoveto{\pgfqpoint{-1.4pt}{2.65pt}}
+ \pgfpathcurveto{\pgfqpoint{-0.75pt}{1.25pt}}{\pgfqpoint{1pt}{0.05pt}}{\pgfqpoint{2pt}{0pt}}
+ \pgfpathcurveto{\pgfqpoint{1pt}{-0.05pt}}{\pgfqpoint{-0.75pt}{-1.25pt}}{\pgfqpoint{-1.4pt}{-2.65pt}}
+ }{
+ \pgfpathmoveto{\pgfqpoint{-3pt}{\pgf@nfold@shift@fraction pt}}
+ \pgfpathlineto{\pgfqpoint{3pt}{\pgf@nfold@shift@fraction pt}}
+ }
+ \ifnum\pgfintersectionsolutions>0
+ \pgfextract@process\pgf@nfold@arrowintersect{\pgfpointintersectionsolution{1}}%
+ \immediate\write17{tikz-nfold: computed intersection cache@\the\pgf@nfold@index @\the\pgf@nfold@order: \string\pgfqpoint{\the\pgf@x}{\the\pgf@y}^^J}
+ \expandafter\xdef\csname pgf@nfold@intersec@cache@\the\pgf@nfold@index @\the\pgf@nfold@order\endcsname{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
+ \else
+ \pgfutil@packagewarning{tikz-nfold}{did not find intersection}
+ \pgfextract@process\pgf@nfold@arrowintersect{\pgfqpoint{0pt}{\pgf@nfold@shift@fraction pt}}%
+ \fi
+ \fi%
+ \begingroup
+ \pgftransformreset
+ \pgftransformshift{#2}
+ \pgftransformrotate{#3}
+ \if#1s
+ \pgftransformxscale{-1}
+ \fi
+ \pgfutil@tempdima=\pgf@nfold@hwidth
+ \pgfutil@tempdima=\pgf@nfold@shift@fraction\pgfutil@tempdima
+ \pgfextract@process\pgf@nfold@startofextension
+ {\pgfpointtransformed{\pgfqpoint{0pt}{\pgfutil@tempdima}}}
+ \pgftransformshift{\pgfqpoint{.42\pgflinewidth}{0pt}}
+ \pgftransformscale{\pgf@nfold@hwidth}
+ \pgfextract@process\pgf@nfold@arrowintersect{\pgfpointtransformed{\pgf@nfold@arrowintersect}}
+ \global\let\pgf@nfold@startofextension\pgf@nfold@startofextension
+ \global\let\pgf@nfold@arrowintersect\pgf@nfold@arrowintersect
+ \endgroup
+ \if#1s
+ \pgfpathmoveto{\pgf@nfold@arrowintersect}
+ \pgfpathlineto{\pgf@nfold@startofextension}
+ \else\if#1e
+ \pgfpathlineto{\pgf@nfold@arrowintersect}
+ \else
+ \pgfutil@packageerror{tikz-nfold}{Invalid argument to \string\pgf@nfold@extendtotip: \meaning#1}{}
+ \fi\fi
+ \pgftransformreset
+ \fi%
+ \fi%
+}
+
+
+\def\pgf@nfold@start@arrowcode{0}
+\def\pgf@nfold@end@arrowcode{0}
+
+\def\pgf@nfold@parsearrows{
+ \ifpgfutil@tempswa%
+ \expandafter\pgf@nfold@parsearrowmacro\pgf@start@tip@sequence\relax
+ \let\pgf@nfold@start@arrowcode\pgf@nfold@detectedarrow
+ \expandafter\pgf@nfold@parsearrowmacro\pgf@end@tip@sequence\relax
+ \let\pgf@nfold@end@arrowcode\pgf@nfold@detectedarrow
+ \else
+ \def\pgf@nfold@start@arrowcode{0}
+ \def\pgf@nfold@end@arrowcode{0}
+ \fi
+}
+
+\def\pgf@nfold@parsearrowmacro#1{%
+ \def\pgf@nfold@detectedarrow{0}
+ \ifx#1\relax
+ \let\pgf@next\relax
+ \else
+ \ifx#1\pgf@arrow@handle
+ \let\pgf@next\pgf@nfold@parse@arrow@handle
+ \else
+ \ifx#1\pgf@arrow@handle@shorthand@empty
+ \let\pgf@next\pgf@nfold@parse@shorthandempty
+ \else
+ \let\pgf@next\pgfutil@gobble@until@relax
+ \fi
+ \fi
+ \fi
+ \pgf@next
+}
+
+\def\pgf@nfold@param@Implies{Implies}
+
+\def\pgf@nfold@parse@arrow@handle#1{%
+ \def\pgf@tmp{#1}
+ \ifx\pgf@tmp\pgf@nfold@param@Implies
+ \def\pgf@nfold@detectedarrow{1}
+ \fi
+ \pgfutil@gobble@until@relax
+}
+
+\def\pgf@nfold@parse@shorthandempty#1{
+ \expandafter\def\expandafter\pgf@tmp\expandafter{#1}
+ \expandafter\pgf@nfold@parsearrowmacro\pgf@tmp\relax
+ \pgfutil@gobble@until@relax
+}
+
+
+
+\newcount\pgf@nfold@order
+\pgf@nfold@order=1
+
+\def\pgf@nfold@preparenfoldpath{%
+ \ifnum\pgf@nfold@order>1\relax
+ \ifdim\pgfinnerlinewidth>0pt\relax
+ \pgfsyssoftpath@getcurrentpath\pgf@nfold@cachedpath%
+ \pgfsyssoftpath@setcurrentpath\pgfutil@empty%
+ \else
+ \pgfutil@packageerror{tikz-nfold}{Must set \string\pgfinnerlinewidth\space to use nfold, e.g. by setting /tikz/double distance}{}
+ \fi
+ \fi
+}
+
+\let\pgf@nfold@old@path@check@proper\pgf@path@check@proper
+\def\pgf@path@check@proper{%
+ \pgf@nfold@old@path@check@proper%
+ \ifpgfutil@tempswa\else%
+ \pgf@nfold@preparenfoldpath%
+ \fi%
+}
+
+\let\pgf@nfold@old@prepare@start@of@path\pgf@prepare@start@of@path
+\def\pgf@prepare@start@of@path{%
+ \pgf@nfold@old@prepare@start@of@path%
+ \pgf@nfold@preparenfoldpath%
+}
+
+\let\pgf@nfold@old@stroke@inner@line\pgf@stroke@inner@line
+\def\pgf@stroke@inner@line{%
+ \ifnum\pgf@nfold@order>1\relax%
+ \pgf@nfold@render@cached@softpath%
+ \else%
+ \pgf@nfold@old@stroke@inner@line%
+ \fi%
+}
+
+
+
+
+\def\pgf@nfold@parsemoveto#1#2{%
+ \ifx\pgf@cur@conn@subpath\pgfutil@empty%
+ \def\pgf@nfold@parser@last@moveto{{#1}{#2}}%
+ \def\pgf@cur@conn@subpath{\relax}%
+ \else%
+ \def\pgf@nfold@macrotoadd{\pgf@nfold@processmoveto{#1}{#2}}%
+ \pgf@nfold@addmacro\pgf@cur@conn@subpath%
+ \pgf@nfold@lastconnsubpathfalse%
+ \pgf@nfold@process@conn@subpath%
+ \let\pgf@nfold@last@closepath@from\pgfutil@empty%
+ \let\pgf@cur@conn@subpath\pgfutil@empty%
+ \pgf@nfold@parser@setupfirst%
+ \def\pgf@nfold@parser@last@moveto{{#1}{#2}}%
+ \fi%
+ \pgf@nfold@parsesoftpath@finish{#1}{#2}%
+}
+
+\def\pgf@nfold@parselineto#1#2{%
+ \def\pgf@nfold@macrotoadd{\pgf@nfold@processlineto{#1}{#2}}%
+ \pgf@nfold@addmacro\pgf@cur@conn@subpath%
+ \pgf@nfold@parsesoftpath@finish{#1}{#2}%
+}
+
+\def\pgf@nfold@parseclosepath#1#2{%
+ \let\pgf@nfold@last@closepath@from\pgf@nfold@parser@previous@pt%
+ \def\pgf@nfold@macrotoadd{\pgf@nfold@processclosepath{#1}{#2}}%
+ \pgf@nfold@addmacro\pgf@cur@conn@subpath%
+ \pgf@nfold@parsesoftpath@finish{#1}{#2}%
+}
+
+\def\pgf@nfold@parsecurveto#1#2{%
+ \edef\pgf@nfold@macrotoadd{\noexpand\pgf@nfold@processcurveto\pgf@nfold@parser@supporta\pgf@nfold@parser@supportb{#1}{#2}}%
+ \pgf@nfold@addmacro\pgf@cur@conn@subpath%
+ \pgf@nfold@parsesoftpath@finish{#1}{#2}%
+}
+
+\def\pgf@nfold@parserect#1#2#3#4{%
+ \pgf@nfold@parsemoveto{#1}{#2}%
+ \pgf@xc=#1\relax
+ \pgf@yc=#2\relax
+ \pgf@xd=#3\relax
+ \pgf@yd=#4\relax
+ \advance\pgf@yc\pgf@yd%
+ \edef\pgf@temp{{\the\pgf@xc}{\the\pgf@yc}}%
+ \expandafter\pgf@nfold@parselineto\pgf@temp%
+ \advance\pgf@xc\pgf@xd%
+ \edef\pgf@temp{{\the\pgf@xc}{\the\pgf@yc}}%
+ \expandafter\pgf@nfold@parselineto\pgf@temp%
+ \advance\pgf@yc-\pgf@yd%
+ \edef\pgf@temp{{\the\pgf@xc}{\the\pgf@yc}}%
+ \expandafter\pgf@nfold@parselineto\pgf@temp%
+ \advance\pgf@xc-\pgf@xd%
+ \edef\pgf@temp{{\the\pgf@xc}{\the\pgf@yc}}%
+ \expandafter\pgf@nfold@parseclosepath\pgf@temp%
+ \pgf@nfold@parsemoveto{#1}{#2}%
+}
+
+
+\def\pgf@nfold@parsesoftpath#1#2{%
+ \let\pgf@cur@conn@subpath\pgfutil@empty%
+ \let\pgf@all@parsed@subpaths\pgfutil@empty%
+ \edef\pgf@nfold@parser@last@moveto{{\the\pgf@path@lastx}{\the\pgf@path@lasty}}%
+ \let\pgf@nfold@last@closepath@from\pgfutil@empty%
+ \pgf@nfold@parser@setupfirst%
+ \expandafter\pgf@nfold@@parsesoftpath#1\pgf@stop{}{}%
+ \let#2\pgf@all@parsed@subpaths%
+}%
+
+\def\pgf@nfold@@parsesoftpath#1#2#3{%
+ \let\pgf@next\pgf@nfold@@parsesoftpath%
+ \ifx#1\pgf@stop%
+ \def\pgf@nfold@macrotoadd{\pgf@nfold@processlast}%
+ \pgf@nfold@addmacro\pgf@cur@conn@subpath%
+ \pgf@nfold@lastconnsubpathtrue%
+ \pgf@nfold@process@conn@subpath%
+ \let\pgf@next\relax%
+ \else%
+ \ifx#1\pgfsyssoftpath@movetotoken%
+ \pgf@nfold@parsemoveto{#2}{#3}%
+ \else%
+ \ifx#1\pgfsyssoftpath@linetotoken%
+ \pgf@nfold@parselineto{#2}{#3}%
+ \else%
+ \ifx#1\pgfsyssoftpath@curvetosupportatoken%
+ \def\pgf@nfold@parser@supporta{{#2}{#3}}%
+ \else%
+ \ifx#1\pgfsyssoftpath@curvetosupportbtoken%
+ \def\pgf@nfold@parser@supportb{{#2}{#3}}%
+ \else%
+ \ifx#1\pgfsyssoftpath@curvetotoken%
+ \pgf@nfold@parsecurveto{#2}{#3}%
+ \else%
+ \ifx#1\pgfsyssoftpath@closepathtoken%
+ \pgf@nfold@parseclosepath{#2}{#3}%
+ \else%
+ \ifx#1\pgfsyssoftpath@rectcornertoken%
+ \def\pgf@nfold@parser@rectcorner{{#2}{#3}}%
+ \else%
+ \ifx#1\pgfsyssoftpath@rectsizetoken%
+ \expandafter\pgf@nfold@parserect\pgf@nfold@parser@rectcorner{#2}{#3}%
+ \else%
+ \pgfutil@packageerror{tikz-nfold}{Unrecognised soft path token `#1'}{}%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \pgf@next%
+}%
+
+\def\pgf@nfold@parsesoftpath@finish#1#2{%
+ \def\pgf@nfold@parser@previous@pt{{#1}{#2}}%
+ \let\pgf@nfold@sectolast@segment\pgf@nfold@last@segment%
+ \let\pgf@nfold@last@segment\pgf@nfold@macrotoadd%
+}
+
+\def\pgf@nfold@process@conn@subpath{%
+ \let\pgf@parsed@cur@conn@seg\pgfutil@empty%
+ \ifx\pgf@nfold@last@closepath@from\pgfutil@empty%
+ \expandafter\pgf@nfold@processmoveto\pgf@nfold@parser@last@moveto%
+ \else%
+ \expandafter\pgf@nfold@processmoveto\pgf@nfold@last@closepath@from%
+ \expandafter\pgf@nfold@processinvisibleline\pgf@nfold@parser@last@moveto%
+ \fi%
+ \pgf@cur@conn@subpath%
+ \let\pgf@nfold@macrotoadd\pgf@parsed@cur@conn@seg%
+ \pgf@nfold@addmacro\pgf@all@parsed@subpaths%
+}
+
+
+\def\pgf@nfold@processmoveto#1#2{%
+ \pgf@nfold@process@moveup%
+ \let\pgf@nfold@next@type=m%
+ \let\pgf@nfold@next@visible=0%
+ \edef\pgf@nfold@next@last{\pgf@x#1\pgf@y#2}%
+ \pgf@nfold@process@segment%
+}%
+
+\def\pgf@nfold@process@line@common#1#2#3{%
+ \pgf@nfold@process@moveup%
+ \pgfextract@process\pgf@tmp@tang@i{\pgfpointnormalised{}\global\let\pgf@nfold@tmp\pgf@tmp}
+ \let\pgf@nfold@next@type=#3%
+ \let\pgf@nfold@next@visible=1%
+ \let\pgf@nfold@next@tang@i\pgf@tmp@tang@i
+ \let\pgf@nfold@next@tang@ii\pgf@tmp@tang@i
+ \let\pgf@nfold@next@angle@i\pgf@nfold@tmp
+ \let\pgf@nfold@next@angle@ii\pgf@nfold@tmp
+ \let\pgf@nfold@next@first\pgf@nfold@cur@last
+ \def\pgf@nfold@next@last{\pgf@x#1\pgf@y#2}%
+ \pgf@nfold@process@segment%
+}
+
+\def\pgf@nfold@processlineto#1#2{%
+ \pgf@process{\pgfpointdiff{\pgf@nfold@next@last}{\pgf@x#1\pgf@y#2}}%
+ \pgfpointtaxicabnorm\pgf@xa%
+ \ifdim\pgf@xa>.1pt\relax%
+ \pgf@nfold@process@line@common{#1}{#2}{l}%
+ \fi%
+}%
+
+\def\pgf@nfold@processcurveto#1#2#3#4#5#6{%
+ \pgf@nfold@process@moveup%
+ \pgf@offset@compute@tangents{\pgf@nfold@cur@last}{\pgf@x#1\pgf@y#2}{\pgf@x#3\pgf@y#4}{\pgf@x#5\pgf@y#6}%
+ \let\pgf@nfold@next@type=c%
+ \let\pgf@nfold@next@visible=1%
+ \let\pgf@nfold@next@tang@i=\pgf@tmp@tang@i
+ \let\pgf@nfold@next@tang@ii=\pgf@tmp@tang@ii
+ \let\pgf@nfold@next@angle@i\pgf@tmp@angle@i
+ \let\pgf@nfold@next@angle@ii\pgf@tmp@angle@ii
+ \let\pgf@nfold@next@first\pgf@nfold@cur@last
+ \def\pgf@nfold@next@supporta{\pgf@x#1\pgf@y#2}
+ \def\pgf@nfold@next@supportb{\pgf@x#3\pgf@y#4}
+ \def\pgf@nfold@next@last{\pgf@x#5\pgf@y#6}
+ \pgf@nfold@process@segment%
+}%
+
+\def\pgf@nfold@processclosepath#1#2{%
+ \pgf@process{\pgfpointdiff{\pgf@nfold@next@last}{\pgf@x#1\pgf@y#2}}%
+ \pgfpointtaxicabnorm\pgf@xa%
+ \ifdim\pgf@xa<0.1pt\relax%
+ \pgf@nfold@process@closepath@zerolength{#1}{#2}%
+ \else%
+ \pgf@nfold@process@line@common{#1}{#2}{o}%
+ \fi%
+}%
+
+\def\pgf@nfold@process@closepath@zerolength#1#2{%
+ \pgf@nfold@process@moveup%
+ \let\pgf@nfold@next@type=z%
+ \let\pgf@nfold@next@visible=1%
+ \let\pgf@nfold@next@tang@i\pgf@nfold@connsubpath@tang@i
+ \let\pgf@nfold@next@tang@ii\pgf@nfold@connsubpath@tang@i
+ \let\pgf@nfold@next@angle@i\pgf@nfold@connsubpath@angle@i
+ \let\pgf@nfold@next@angle@ii\pgf@nfold@connsubpath@angle@i
+ \let\pgf@nfold@next@first\pgf@nfold@cur@last
+ \def\pgf@nfold@next@last{\pgf@x#1\pgf@y#2}%
+ \pgf@nfold@process@segment%
+}
+
+\def\pgf@nfold@processinvisibleline#1#2{%
+ \pgf@process{\pgfpointdiff{\pgf@nfold@next@last}{\pgf@x#1\pgf@y#2}}%
+ \pgfpointtaxicabnorm\pgf@xa%
+ \ifdim\pgf@xa>.1pt\relax%
+ \pgf@nfold@process@line@common{#1}{#2}{i}%
+ \else%
+ \begingroup%
+ \let\pgf@nfold@process@segment\relax%
+ \pgf@nfold@sectolast@segment%
+ \global\let\pgf@nfold@tmp\pgf@nfold@next@tang@ii%
+ \endgroup%
+ \pgfextract@process\pgf@nfold@next@first{\pgfpointdiff{\pgf@nfold@tmp}{\pgfqpoint{#1}{#2}}}%
+ \pgf@nfold@tmp%
+ \pgf@nfold@process@line@common{#1}{#2}{i}%
+ \fi%
+}%
+
+\def\pgf@nfold@processlast{%
+ \pgf@nfold@process@moveup%
+ \let\pgf@nfold@next@type=t%
+ \let\pgf@nfold@next@visible=0%
+ \pgf@nfold@process@segment%
+}
+
+\def\pgf@nfold@addmacro#1{%
+ \expandafter\expandafter\expandafter\gdef%
+ \expandafter\expandafter\expandafter#1%
+ \expandafter\expandafter\expandafter{%
+ \expandafter#1\pgf@nfold@macrotoadd}%
+}
+
+
+
+\def\pgf@nfold@token@lineto#1#2#3{%
+ \pgfoffsetline@{#1}{#2}{\pgf@nfold@shiftamount}{#3}%
+}
+
+\def\pgf@nfold@token@lineto@continue#1#2#3{%
+ \pgfoffsetlinenomove@{#1}{#2}{\pgf@nfold@shiftamount}{#3}%
+}
+
+\def\pgf@nfold@token@invisibleline#1#2#3{%
+ \pgfqpointscale{\pgf@nfold@shiftamount}{#3}%
+ \pgf@xc=-\pgf@y%
+ \pgf@y=\pgf@x%
+ \pgf@x=\pgf@xc%
+ \pgfpathmoveto{\pgfpointadd{}{#2}}%
+}
+
+\def\pgf@nfold@token@curveto#1#2#3#4#5#6{%
+ \def\pgf@tmp@tang@i{#5}%
+ \def\pgf@tmp@tang@ii{#6}%
+ \pgf@offset@bezier@segment@{#1}{#2}{#3}{#4}{\pgf@nfold@shiftamount}%
+ \pgfpathmoveto{\pgf@bezier@offset@i}%
+ \pgfpathcurveto{\pgf@bezier@offset@ii}{\pgf@bezier@offset@iii}{\pgf@bezier@offset@iv}%
+}
+
+\def\pgf@nfold@token@curveto@continue#1#2#3#4#5#6{%
+ \def\pgf@tmp@tang@i{#5}%
+ \def\pgf@tmp@tang@ii{#6}%
+ \pgf@offset@bezier@segment@{#1}{#2}{#3}{#4}{\pgf@nfold@shiftamount}%
+ \pgfpathcurveto{\pgf@bezier@offset@ii}{\pgf@bezier@offset@iii}{\pgf@bezier@offset@iv}%
+}
+
+\def\pgf@nfold@token@closepath{%
+ \pgfpathclose%
+}
+
+\def\pgf@nfold@token@edgecase@movetostart#1#2{%
+ \pgfpathmoveto{\pgfpointadd%
+ {#1}{\pgfpointpolar{#2+90}{\pgf@nfold@shiftamount}}}%
+}
+
+
+\def\pgf@nfold@parser@setupfirst{%
+ \let\pgf@nfold@next@type=f%
+ \let\pgf@nfold@next@visible=0%
+ \edef\pgf@nfold@next@last{\pgf@x\the\pgf@path@lastx\pgf@y\the\pgf@path@lasty}%
+}
+
+\def\pgf@nfold@clampangle{
+ \ifdim\pgfmathresult pt<-180pt\relax
+ \pgfutil@tempdima=\pgfmathresult pt
+ \advance\pgfutil@tempdima by 360pt
+ \edef\pgfmathresult{\pgf@sys@tonumber\pgfutil@tempdima}
+ \else\ifdim\pgfmathresult pt>180pt\relax
+ \pgfutil@tempdima=\pgfmathresult pt
+ \advance\pgfutil@tempdima by -360pt
+ \edef\pgfmathresult{\pgf@sys@tonumber\pgfutil@tempdima}
+ \fi\fi
+}
+
+
+\def\pgf@nfold@process@moveup{%
+ \let\pgf@nfold@prev@type\pgf@nfold@cur@type%
+ \let\pgf@nfold@prev@visible\pgf@nfold@cur@visible%
+ \let\pgf@nfold@prev@tang@i\pgf@nfold@cur@tang@i%
+ \let\pgf@nfold@prev@tang@ii\pgf@nfold@cur@tang@ii%
+ \let\pgf@nfold@prev@angle@i\pgf@nfold@cur@angle@i%
+ \let\pgf@nfold@prev@angle@ii\pgf@nfold@cur@angle@ii%
+ \let\pgf@nfold@prev@first\pgf@nfold@cur@first%
+ \let\pgf@nfold@prev@supporta\pgf@nfold@cur@supporta%
+ \let\pgf@nfold@prev@supportb\pgf@nfold@cur@supportb%
+ \let\pgf@nfold@prev@last\pgf@nfold@cur@last%
+ \let\pgf@nfold@cur@type\pgf@nfold@next@type%
+ \let\pgf@nfold@cur@visible\pgf@nfold@next@visible%
+ \let\pgf@nfold@cur@tang@i\pgf@nfold@next@tang@i%
+ \let\pgf@nfold@cur@tang@ii\pgf@nfold@next@tang@ii%
+ \let\pgf@nfold@cur@angle@i\pgf@nfold@next@angle@i%
+ \let\pgf@nfold@cur@angle@ii\pgf@nfold@next@angle@ii
+ \let\pgf@nfold@cur@first\pgf@nfold@next@first%
+ \let\pgf@nfold@cur@supporta\pgf@nfold@next@supporta%
+ \let\pgf@nfold@cur@supportb\pgf@nfold@next@supportb%
+ \let\pgf@nfold@cur@last\pgf@nfold@next@last%
+}
+
+
+\def\pgfoffsetpath#1#2{%
+ \begingroup
+ \pgfmathsetlengthmacro\pgf@nfold@parsed@hwidth{#2}
+ \pgf@x=\pgf@nfold@parsed@hwidth\relax
+ \ifdim\pgf@x<0pt\relax
+ \pgf@x=-\pgf@x
+ \def\pgf@nfold@shift@fraction{-1}
+ \else
+ \def\pgf@nfold@shift@fraction{1}
+ \fi
+ \edef\pgf@nfold@parsed@hwidth{\the\pgf@x}
+ \pgfoffsetpathqfraction{#1}{\pgf@nfold@parsed@hwidth}{\pgf@nfold@shift@fraction}
+ \endgroup
+}
+
+\def\pgfoffsetpathfraction#1#2#3{%
+ \begingroup
+ \pgfmathsetlengthmacro\pgf@nfold@parsed@hwidth{#2}
+ \pgfmathsetmacro\pgf@nfold@shift@fraction{#3}
+ \pgfoffsetpathqfraction{#1}{\pgf@nfold@parsed@hwidth}{\pgf@nfold@shift@fraction}
+ \endgroup
+}
+
+\def\pgfoffsetpathindex#1#2#3#4{%
+ \begingroup
+ \pgfmathsetmacro\pgf@nfold@shift@fraction{-1+2*(#3-1)/(#4-1)}
+ \pgfoffsetpathqfraction{#1}{#2}{\pgf@nfold@shift@fraction}
+ \endgroup
+}
+
+\def\pgfoffsetpathqfraction#1#2#3{%
+ \begingroup
+ \pgf@x=#2\relax
+ \edef\pgf@nfold@hwidth{\the\pgf@x}
+ \edef\pgf@nfold@shift@fraction{#3}
+ \pgf@x=\pgf@nfold@shift@fraction\pgf@x\relax
+ \edef\pgf@nfold@shiftamount{\pgf@sys@tonumber\pgf@x}
+ \pgfprocessround{#1}{\pgf@nfold@cachedpath}%
+ \pgf@nfold@parsesoftpath{\pgf@nfold@cachedpath}{\parsedpath}%
+ \pgftransformreset%
+ \parsedpath%
+ \endgroup
+}
+
+\endinput
diff --git a/graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.pdf b/graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.pdf
index 9df9c937ac..8dad39e27f 100644
--- a/graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.pdf
+++ b/graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.tex b/graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.tex
index 46132fb7f5..094924d2e8 100644
--- a/graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.tex
+++ b/graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.tex
@@ -1,4 +1,4 @@
-%% tikz-nfold.sty
+%% tikz-nfold-doc.tex
%% Copyright 2023 Jonathan Schulz
%
% This work may be distributed and/or modified under the
@@ -13,8 +13,12 @@
%
% The Current Maintainer of this work is Jonathan Schulz.
%
-% This work consists of the files pgflibrarybezieroffset.code.tex,
-% tikzlibrarynfold.code.tex, tikz-nfold-doc.tex, and tikz-nfold-doc.pdf.
+% This work consists of the files
+% pgflibrarybezieroffset.code.tex, pgflibrarynfold.code.tex, pgflibraryoffsetpath.code.tex, tikz-nfold-doc.tex, tikzlibrarynfold.code.tex, tikz-nfold-doc.tex, and tikz-nfold-doc.pdf.
+%
+%
+% A commented version of this file can be found on https://github.com/jonschz/tikz-nfold .
+%
\documentclass[12pt,a4paper]{article}
@@ -27,7 +31,6 @@
\usepackage{parskip}
\usepackage[margin=2.5cm]{geometry}
-% recommended order: 1) hyperref 2) amsthm 3) cleveref 4) \newtheorem
\usepackage[colorlinks]{hyperref}
\usepackage{amsmath}
\usepackage{amsthm}
@@ -38,7 +41,6 @@
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]
-%\newcommand{\todo}[1]{{\color{red}\bfseries#1}}
\newcommand{\tikzdouble}{\texttt{/tikz/double}}
\newcommand{\nfold}{\texttt{nfold}}
\newcommand{\tikznfold}{\texttt{/tikz/nfold}}
@@ -52,7 +54,6 @@
\newcommand{\uv}{\vec{u}}
\newcommand{\vv}{\vec{v}}
-% to be used in pre=... to stop the proparation of warnings outside of tkzexample environments
\makeatletter
\def\disablewarnings{\def\pgfutil@packagewarning##1##2{}}
\makeatother
@@ -209,6 +210,19 @@ This package is by no means perfect, and even if it were, there would still be s
\subsection{Impossible or very hard to fix}
\begin{itemize}
+ \item Self-intersecting paths do not have the expected intersections:
+\begin{tkzexample}[latex=4.5cm]
+\begin{tikzpicture}
+ \draw[double distance=5pt, line width=1pt]
+ (0,2.5) -- (1,2.5) (1,3) -- (1,2)
+ (2,2) -- (3,2) rectangle (4,3);
+ \node[right] at (0,3.5) {double:};
+ \draw[double distance=5pt, line width=1pt, nfold]
+ (0,.5) -- (1,.5) (1,1) -- (1,0)
+ (2,0) -- (3,0) rectangle (4,1);
+ \node[right] at (0,1.5) {nfold:};
+\end{tikzpicture}
+\end{tkzexample}
\item \nfold{} struggles with high curvatures and wide paths: Let $\kappa(t)$ be the curvature of the path in a given point, and let $\texttt{double distance} = \alpha$. If $\kappa(t) > \frac{2}{\alpha}$ (i.e. the radius of the osculating circle is smaller than half the width of the path) for some $0 \leq t \leq 1$, the output of \nfold{} will not be correct:
\begin{tkzexample}[latex=4.25cm]
\begin{tikzpicture}
@@ -268,12 +282,14 @@ This package is by no means perfect, and even if it were, there would still be s
\section{The basic layer \texttt{pgf} commands}
+This package contains three \emph{pgf} libraries building upon one another: \texttt{bezieroffset}, \texttt{offsetpath}, and \nfold. All of these are contained in the \emph{TikZ} library \nfold.
+
\subsection{Offsetting curves}
-This package provides some basic layer commands for offsetting curves and straight lines. Use
+This library provides some basic layer commands for offsetting curves and straight lines. Use
\begin{verbatim}
\usepgflibrary{bezieroffset}
\end{verbatim}
-to only import the base layer library. The following commands are provided:
+to only import this base layer library. The following commands are provided:
\begin{itemize}
\item \verb|\pgfoffsetcurve{pt1}{pt2}{pt3}{pt4}{distance}|\\%
This macro draws the parallel of a Bézier curve. The first four parameters are the control points of the Bézier curve (e.g.\ in the form of \verb|\pgfpoint{}{}|), the fifth parameter is the distance by which the curve should be offset. A negative value offsets the curve in the opposite direction. This macro begins with a \verb|\pgfpointmoveto| to the offset of \texttt{pt1}.
@@ -286,7 +302,7 @@ to only import the base layer library. The following commands are provided:
\end{itemize}
\subsection{Offsetting paths}
-The following macros are part of the TikZ library \nfold{} and offset an entire soft path.
+The following macros are part of the pgf library \texttt{offsetpath} and offset the whole softpath.
\begin{itemize}
\item \verb|\pgfoffsetpath{softpath}{distance}|\\%
This macro offsets \texttt{softpath} by \texttt{distance}. The latter may be negative.
@@ -295,7 +311,7 @@ The following macros are part of the TikZ library \nfold{} and offset an entire
\item \verb|\pgfoffsetpathqfraction{softpath}{hwidth}{fraction}|\\%
This macro is a quicker version of the previous macro does not parse the input values using the \texttt{pgfmath}-engine.
\item \verb|\pgfoffsetpathindex{softpath}{width}{i}{n}|\\%
- In this convenience method, \texttt{i} and \texttt{n} are integers with $1 \leq i \leq n$. It calls the previous macro with \texttt{fraction=-1.0} for \texttt{i=1} and with \texttt{fraction=1.0} for \texttt{i=n} and is thus capable of reproducing the output of \texttt{/tikz/nfold=n} (albeit in a less efficient way).
+ In this convenience method, \texttt{i} and \texttt{n} are integers with $1 \leq i \leq n$. It calls the previous macro with \texttt{fraction=-1.0} for \texttt{i=1} and with \texttt{fraction=1.0} for \texttt{i=n}, hence it is capable of reproducing the output of \texttt{/tikz/nfold=n} (albeit in a less efficient way).
\end{itemize}
In the following example we see how \verb|\pgfoffsetpath{..}{0pt}| reproduces the input path (rendered in black) and how \verb|\pgfoffsetpathfraction{..}{8pt}{0}| differs.
\begin{tkzexample}[latex=4cm]
@@ -329,6 +345,7 @@ Here we see how the commands can be used to customise $n$-fold paths:
\section{Version history}
\begin{itemize}
+ \item \textbf{v1.0.0}: Restructure and bug fixes
\item \textbf{v0.1.3}: Bug fixes
\item \textbf{v0.1.2}: Bug fixes
\item \textbf{v0.1.1}: Closing paths and structural changes
@@ -497,7 +514,6 @@ Note that $-\tfrac{\pi}{3} \leq \beta \leq \tfrac{\pi}{3}$ (and hence $\cos(\bet
\end{equation}
and all of these terms can be computed directly from dot and cross products of vectors between the original control points. To summarise, let $\vv_{ij} := \overrightarrow{A_iA_j}$, and let $\vv_0$, $\vv_1$ be the normalised tangents at $t=0$ and $t=1$, respectively (see \cref{subsec:stabilisation} how they are computed). Then
\begin{equation}
-% for checking
\overline{A'_1A'_2} = \overline{A_1A_2} + \frac{d}{\overline{A_1A_4}^2}\cdot\left(\vv_{12} \times \vv_{14} - \vv_{12}\cdot\vv_{14} \frac{\vv_{14}\times\tv_1}{\vv_{14}\cdot\tv_1} \right) \ .
\end{equation}
Let furthermore $\uv_{ij} := \vv_{ij}/|\vv_{ij}|$ be the normalised vectors. Then we find
diff --git a/graphics/pgf/contrib/tikz-nfold/tikzlibrarynfold.code.tex b/graphics/pgf/contrib/tikz-nfold/tikzlibrarynfold.code.tex
index 342191b0ad..799fa6b4d9 100644
--- a/graphics/pgf/contrib/tikz-nfold/tikzlibrarynfold.code.tex
+++ b/graphics/pgf/contrib/tikz-nfold/tikzlibrarynfold.code.tex
@@ -1,4 +1,4 @@
-%% tikz-nfold.sty
+%% tikzlibrarynfold.code.tex
%% Copyright 2023 Jonathan Schulz
%
% This work may be distributed and/or modified under the
@@ -13,1312 +13,30 @@
%
% The Current Maintainer of this work is Jonathan Schulz.
%
-% This work consists of the files pgflibrarybezieroffset.code.tex,
-% tikzlibrarynfold.code.tex, tikz-nfold-doc.tex, and tikz-nfold-doc.pdf.
-
-\usetikzlibrary{arrows.meta}
-\usepgflibrary{bezieroffset}
-
-
-%
-% General idea
-% ============
-%
-% In order to offset a path, we must first analyse and slightly modify it. For example,
-% the start and end points of segments need to be relocated slightly in order to make room
-% for the joins, and most curves must be subdivided for the offsetting algorithm. To avoid
-% redundant computations in n-fold paths, we pre-compute as much data as possible and store
-% all this information in a "parsed path" macro. The structure of the parsed path resembles
-% the structure of a pgf softpath, but it consists of different tokens.
-%
-
-
-
-%
-% Intercepting join settings
-% --------------------------
-%
-% The current settings of the line joins are not stored in any TeX registers; instead, direct system
-% calls are made to apply the settings. Therefore, we need to modify the pgf macros in order
-% to cache the current settings.
-%
-
-% According to the pgf documentation, miter limit=10 is the default value,
-% but I couldn't find and verify this setting in the pgf code
-\gdef\pgf@nfold@cached@miterlimit{10}
-\let\pgf@nfold@old@miterlimit\pgfsetmiterlimit
-\def\pgfsetmiterlimit#1{%
- \pgf@nfold@old@miterlimit{#1}%
- \edef\pgf@nfold@cached@miterlimit{#1}%
-}
-
-% default line join is "miter"
-\global\let\pgf@cached@linejoin=m% % b = bevel, m=miter, r=round
-\let\pgf@nfold@old@setbeveljoin\pgfsetbeveljoin
-\let\pgf@nfold@old@setmiterjoin\pgfsetmiterjoin
-\let\pgf@nfold@old@setroundjoin\pgfsetroundjoin
-\def\pgfsetbeveljoin{%
- \pgf@nfold@old@setbeveljoin%
- % do NOT change this globally! Needs to be changed back at the end of groups for scoping reasons
- \let\pgf@cached@linejoin=b%
-}
-\def\pgfsetmiterjoin{%
- \pgf@nfold@old@setmiterjoin%
- \let\pgf@cached@linejoin=m%
-}
-\def\pgfsetroundjoin{%
- \pgf@nfold@old@setroundjoin%
- \let\pgf@cached@linejoin=r%
-}
-
-
-%
-% Joining offset lines
-% --------------------
-%
-% One of the more difficult aspects is joining the segments of an offset path. Without this step,
-% the path would be interrupted or self-intersect whenever there is a non-zero angle between
-% two segments. This code reproduces the existing line joins "bevel", "miter" and "round".
-%
-
-\def\pgf@nfold@miterjoin{
- % The tip of the miter join is computed starting from the original (unshifted) centre of the join;
- % we then move orthorgonal to the average of the old and new angle
- \pgfpathlineto{
- \pgfpointadd{\pgf@nfold@join@centre}{%
- \pgfpointpolar{\pgf@nfold@firstang+.5*\pgf@nfold@deltaphi+90}% do not change
- {\pgf@nfold@shiftamount/cos(.5*\pgf@nfold@deltaphi)}%
- }%
- }%
-}
-
-\def\pgf@nfold@beveljoin{
- % The bevel join for one component line consists of three parts:
- % 1) an extension of the ingoing line,
- % 2) a middle line, angled at the average of the incoming and outgoing line,
- % 3) an extension of the outgoing line.
- % Different components of the ingoing and outgoing lines have a constant distance from each other.
- % For a good-looking output, the mittle parts of the component lines thus should also have a constant distance,
- % which is a non-trivial condition. To generate such an output the outer lines get a bevel-like join
- % and the inner lines get a miter-like join; the threshold depends on deltaphi.
- % We first compute by how much the outermost line must be continued from the beginning of the join.
- % The protrusion amount must be lowered by a little bit for a rather complicated reason: The offset would be
- % dead on if the outermost offset line were centered on the _edge_ of the wide line, but we want to draw
- % the outside line _fully inside_ the wide line. The factor of tan(deltaphi/4) can be derived, but is not obvious.
- \pgfmathsetlengthmacro{\bevelouterprotrusion}%
- {\pgf@nfold@shortenstartjoin pt - .5*\pgflinewidth*abs(tan(.25*\pgf@nfold@deltaphi))}
- % The following applies to middle lines only: We compute by how much they need to be shortened so the distance
- % between the lines in the join is correct.
- \pgfmathsetmacro{\bevelshorten}{2*\insidepercentage*abs(tan(.25*\pgf@nfold@deltaphi))}
- % This threshold decides if the inside line has a bevel or a miter join
- \pgfmathparse{\bevelshorten < abs(sin(.5*\pgf@nfold@deltaphi))}
- \ifnum\pgfmathresult=1\relax
- \pgfmathsetlengthmacro{\bevelextension}{\bevelouterprotrusion-\bevelshorten*\pgf@nfold@hwidth}
- \pgfpointadd{\pgf@nfold@join@start}{\pgfpointpolar{\pgf@nfold@firstang}{\bevelextension}}
- \pgfpathlineto{}
- \pgfpointadd{\pgf@nfold@join@end}{\pgfpointpolar{\pgf@nfold@secondang}{-\bevelextension}}
- \pgfpathlineto{}
- \else
- \pgf@nfold@miterjoin
- \fi
-}
-
-\def\pgf@nfold@roundjoin{
- % The outer half of the lines get arcs, the others get miters
- \ifdim\insidepercentage pt<.5pt\relax
- \pgfpointadd{\pgf@nfold@join@start}{\pgfpointpolar{\pgf@nfold@firstang}{\pgf@nfold@shortenstartjoin}}
- \pgfpathlineto{}
- % TODO needs unit tests for all cases left, right, across the 360 gap etc.
- \pgfmathsetmacro\pgf@tmp@firstang{\pgf@nfold@firstang+90*\turnindicator}
- \pgfpatharc%
- {\pgf@tmp@firstang}%
- {\pgf@tmp@firstang+\pgf@nfold@deltaphi}%
- {abs(\pgf@nfold@shift@fraction)*\pgf@nfold@hwidth}%
- \else
- \pgf@nfold@miterjoin
- \fi
-}
-
-% The handler that will be added to the parsed path
-% #1: The centre of the join
-% #2: The end point of the first segment
-% #3: The starting point of the second segment
-% #4: The angle of the first segment
-% #5: The angle of the second segment
-% #6: deltaphi in the range [-180, 180]
-% #7: the distance between #1 and #2
-% #8: the join + finish macro
-\def\pgf@nfold@token@join#1#2#3#4#5#6#7#8{%
- \def\pgf@nfold@join@centre{#1}%
- \def\pgf@nfold@join@prevend{#2}%
- \def\pgf@nfold@join@nextstart{#3}%
- \def\pgf@nfold@firstang{#4}%
- \def\pgf@nfold@secondang{#5}%
- % Offset the start and end of this join
- \pgfextract@process\pgf@nfold@join@start{%
- \pgfpointadd{#2}{\pgfpointpolar{\pgf@nfold@firstang+90}{\pgf@nfold@shiftamount}}}%
- \pgfextract@process\pgf@nfold@join@end{%
- \pgfpointadd{#3}{\pgfpointpolar{\pgf@nfold@secondang+90}{\pgf@nfold@shiftamount}}}%
- \pgf@process{\pgfpointdiff{\pgf@nfold@join@start}{\pgf@nfold@join@end}}
- % Check if the start of this segment is very close to the end of the previous segment.
- % In that case we don't need a join at all
- \pgfpointtaxicabnorm\pgfutil@tempdima
- \ifdim\pgfutil@tempdima>0.1pt\relax
- \def\pgf@nfold@deltaphi{#6}%
- \def\pgf@nfold@shortenstartjoin{#7}%
- % First step: Check if left or right turn (-1=left, 1=right)
- \ifdim\pgf@nfold@deltaphi pt<0pt
- \def\turnindicator{1}
- \else
- \def\turnindicator{-1}
- \fi
- % \insidepercentage: between 0.0 and 1.0;
- % 0=no distance to cover in the join, 1=maximum distance to cover
- \pgfutil@tempdima=\pgf@nfold@shift@fraction pt\relax
- \pgfutil@tempdima=\turnindicator\pgfutil@tempdima
- \advance\pgfutil@tempdima by-1pt\relax
- \pgfutil@tempdima=-.5\pgfutil@tempdima
- % \insidepercentage = .5 * (1 - \turnindicator*\pgf@nfold@shift@fraction)
- \edef\insidepercentage{\pgf@sys@tonumber\pgfutil@tempdima}%
- #8%
- \fi
-}
-
-
-%
-% Parser: Join handler
-%
-\def\pgf@nfold@parser@handlejoin{%
- % \pgf@xa := abs(deltaphi@start)
- \pgf@xa=\pgf@nfold@deltaphi@start pt\relax
- \ifdim\pgf@xa<0pt\relax
- \pgf@xa=-\pgf@xa
- \fi
- % Skip the entire join if abs(deltaphi) is too small
- \ifdim\pgf@xa>1pt\relax
- \edef\pgf@nfold@jointype{\pgf@cached@linejoin}
- \if\pgf@cached@linejoin m% \ifx is not needed because both are only one character
- % miter join
- % First we implement the miter limit: If the angle is too sharp, the miter join is replaced
- % by a bevel join. This is controlled by /tikz/miter limit=..., initially 10.
- \pgf@xa=.5\pgf@xa
- \pgfmathcos@{\pgf@sys@tonumber\pgf@xa}
- \pgf@xa=\pgfmathresult pt\relax
- \pgf@xa=\pgf@nfold@cached@miterlimit\pgf@xa
- % Switch to bevel if miterlimit*cos(.5*abs(deltaphi)) <= 1
- \ifdim\pgf@xa>1pt\relax
- \def\pgf@nfold@tmp@joinmacro{\pgf@nfold@miterjoin}
- \else
- \def\pgf@nfold@tmp@joinmacro{\pgf@nfold@beveljoin}
- \fi
- \else
- \if b\pgf@cached@linejoin\relax
- \def\pgf@nfold@tmp@joinmacro{\pgf@nfold@beveljoin}
- \else
- \def\pgf@nfold@tmp@joinmacro{\pgf@nfold@roundjoin}
- \fi
- \fi
- % The last parameter is a macro to be called when this segment of the join is non-trivial.
- % It consists of
- % - the macro to actually draw the join,
- % - either finish@normal or finish@edgecase.
- \edef\pgf@nfold@macrotoadd{%
- \noexpand\pgf@nfold@token@join{\pgf@nfold@cur@first}{\pgf@nfold@prev@segment@end}
- {\pgf@nfold@cur@movedfirst}{\pgf@nfold@prev@angle@ii}{\pgf@nfold@cur@angle@i}%
- {\pgf@nfold@deltaphi@start}{\pgf@nfold@shortenstartjoin}{%
- \expandafter\noexpand\pgf@nfold@tmp@joinmacro%
- \expandafter\noexpand\ifpgf@nfold@closejoinsedgecase%
- \pgf@nfold@token@finish@edgecase{\pgf@nfold@cur@movedlast}%
- \else%
- \pgf@nfold@token@finish@normal%
- \fi%
- }%
- }%
- \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
- \fi% end if abs(deltaphi) > 1
-}
-
-
-% All non-trivial joins connect to the end of the join, which is the starting point of the next segment.
-% Note that this entire macro is skipped by if the start and end of the join coincide, so we never create a zero length segment here.
-%
-% There is one edge case here: If two subsequent joins are so close that \pgf@nfold@cur@movedlast
-% and \pgf@nfold@cur@movedfirst exchange places *and* we are on the outside of the first join
-% (implying that we are on the inside of the second join), the first join must not connect all the way to
-% to \pgf@nfold@cur@movedfirst, because that would overshoot the second join. Instead we connect to
-% \pgf@nfold@cur@movedlast (which is *closer* to the first join than \pgf@nfold@cur@movedfirst in this edge case).
-% To accomodate for the vertical offset we connect to \pgf@nfold@join@end which is the vertical
-% offset of \pgf@nfold@cur@movedlast by definition.
-\def\pgf@nfold@token@finish@normal{%
- \pgfpathlineto{\pgf@nfold@join@end}%
-}
-
-% parameter #1: @movedlast of the next segment
-\def\pgf@nfold@token@finish@edgecase#1{%
- \pgf@nfold@join@end%
- \ifdim\insidepercentage pt<.5pt\relax%
- \pgf@process{\pgfpointadd{#1}{\pgfpointpolar{\pgf@nfold@secondang+90}{\pgf@nfold@shiftamount}}}
- \fi%
- \pgfpathlineto{}%
-}
-
-
-%
-% Main rendering pipeline
-% -----------------------
-%
-
-% This stores whether the current segment should begin with a moveto to its offset
-\newif\ifpgf@nfold@continuesegment
-% This stores whether we are in some edge case of very close joins, see below for details
-\newif\ifpgf@nfold@closejoinsedgecase
-% This stores whether we are in an error case where we need to avoid dividing by zero
-\newif\ifpgf@nfold@angletoosharp
-% This stores whether we need the intersections library for an arrow tip but it is not loaded
-\newif\ifpgf@nfold@intersectionsnotloaded
-% This stores whether the currently processed connected sub-path is the final one on this path
-\newif\ifpgf@nfold@lastconnsubpath
-
-
-\def\pgf@nfold@parser@handlesegment{%
- \if\pgf@nfold@cur@visible0
- % first, last and moveto are invisible
- \if\pgf@nfold@cur@type m
- % We don't need to do anything for a moveto; if a visible segment follows, it will move to
- % its starting location by itself. However, we might need to draw the arrow tip extension
- % at the start (if present).
- % Draw a tip extension only if all of the following conditions are met:
- % 1. There is an Implies tip at the start of this path
- % 2. We are currently on the last connected sub-path of this path
- % 3. The next segment is visible
- % 4. This moveto is the first segment on this path
- \if\pgf@nfold@start@arrowcode1
- \ifpgf@nfold@lastconnsubpath
- \if\pgf@nfold@prev@type f
- \if\pgf@nfold@next@visible1
- \edef\pgf@nfold@macrotoadd{%
- \noexpand\pgf@nfold@extendtotip{s}{\pgf@nfold@cur@last}{\pgf@nfold@next@angle@i}
- }%
- \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
- % hack: We make the next segment believe that this segment was a lineto
- % so the path does not get interrupted
- \let\pgf@nfold@cur@type l
- \let\pgf@nfold@cur@visible1
- \let\pgf@nfold@cur@angle@ii\pgf@nfold@next@angle@i
- \let\pgf@nfold@cur@tang@ii\pgf@nfold@next@tang@i
- \def\pgf@nfold@deltaphi@end{0}
- \pgf@nfold@angletoosharpfalse
- \fi
- \fi%
- \fi
- \fi
- \fi%
- \else%
- \let\pgf@nfold@cur@movedfirst\pgf@nfold@cur@first
- \let\pgf@nfold@cur@movedlast\pgf@nfold@cur@last
- %%% Step 1: Make room for joins if necessary
- % In order to make room for the join, it may be necessary to shorten the current segment
- % at the start and/or the end. In here we store by how much the segment needs to be shortened.
- \def\pgf@nfold@shortenstartjoin{0}
- \def\pgf@nfold@shortenendjoin{0}
- \pgf@nfold@closejoinsedgecasefalse
- % Step 1.1: Make room for the join at the start if needed
- \if\pgf@nfold@prev@visible0
- \pgf@nfold@continuesegmentfalse
- \else
- \pgf@nfold@continuesegmenttrue
- % deltaphi@start can be recycled from deltaphi@end;
- % \ifpgf@nfold@angletoosharp is also still set
- \let\pgf@nfold@deltaphi@start\pgf@nfold@deltaphi@end
- % set \pgf@xb := abs(deltaphi@start)
- \pgf@xb=\pgf@nfold@deltaphi@start pt\relax
- \ifdim\pgf@xb<0pt\relax
- \pgf@xb=-\pgf@xb
- \fi
- \ifpgf@nfold@angletoosharp\else
- \ifdim\pgf@xb>0.5pt\relax
- % make room for the start join if the angle is nonzero;
- % shortenstartjoin := hwidth*tan(.5*abs(deltaphi@start))
- \pgf@yb=.5\pgf@xb
- \pgfmathtan@{\pgf@sys@tonumber\pgf@yb}
- \pgf@yb=\pgf@nfold@hwidth\relax
- \pgf@yb=\pgfmathresult\pgf@yb
- \edef\pgf@nfold@shortenstartjoin{\pgf@sys@tonumber\pgf@yb}
- \pgfextract@process\pgf@nfold@cur@movedfirst{%
- \pgfpointadd{\pgf@nfold@cur@first}%
- {\pgfqpointscale{\pgf@nfold@shortenstartjoin}{\pgf@nfold@cur@tang@i}}}%
- % If the current segment is a curve, we need to relocate @supporta point as well,
- % as otherwise the @first point could overtake it
- \if\pgf@nfold@cur@type c
- \pgf@process{\pgfpointdiff{\pgf@nfold@cur@first}{\pgf@nfold@cur@supporta}}
- \pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}
- \ifdim\pgfmathresult pt>0.1pt\relax
- % regular curves (supporta != first):
- % Increase dist(first, supporta) to sqrt(a^2 + b^2) where a=dist(first, supporta) and b=shortenstart. This way, the order of first and supporta is guaranteed to be preserved, and the change to supporta is as small as reasonably possible.
- \pgfmathveclen@{\pgfmathresult}{\pgf@sys@tonumber\pgf@yb}
- \pgfextract@process\pgf@nfold@cur@supporta{\pgfpointadd%
- {\pgf@nfold@cur@first}%
- {\pgfqpointscale{\pgfmathresult}{\pgf@nfold@cur@tang@i}}}%
- \else
- % special treatment for singular curves (supporta = first) to avoid rounding error glitches.
- % In this special case, a slight corner at the end of the join is unavoidable unless we
- % also relocate @supportb, which may have unintended side effects
- \let\pgf@nfold@cur@supporta\pgf@nfold@cur@movedfirst
- \fi
- \fi
- \fi
- \fi
- \fi
- % Step 1.2: Make room for the join at the end if needed
- \if\pgf@nfold@next@visible1
- % Compute the angle difference at the end (between -180 and +180 degrees)
- % using \pgfmathsubtract@ is more readable and no less efficient than computing this manually
- \pgfmathsubtract@{\pgf@nfold@next@angle@i}{\pgf@nfold@cur@angle@ii}
- \pgf@nfold@clampangle
- % Edge case handling: If the next segment is a closepath and has length zero, deltaphi is set
- % to zero to prevent glitches (a zero length segment has no well-defined angle anyway)
- \edef\pgf@nfold@deltaphi@end{\pgfmathresult}
- \pgf@xb=\pgf@nfold@deltaphi@end pt\relax
- \ifdim\pgf@xb<0pt\relax
- \pgf@xb=-\pgf@xb
- \fi
- \ifdim\pgf@xb>178pt\relax
- \pgfutil@packagewarning{tikz-nfold}{Angle too sharp, expect visual errors}
- \pgf@nfold@angletoosharptrue
- \else
- \pgf@nfold@angletoosharpfalse
- \ifdim\pgf@xb>0.5pt\relax
- % make room for the start join if the angle is nonzero
- % shortenendjoin := hwidth*tan(.5*abs(deltaphi@end))
- \pgf@yb=.5\pgf@xb
- \pgfmathtan@{\pgf@sys@tonumber\pgf@yb}
- \pgf@yb=\pgf@nfold@hwidth\relax
- \pgf@yb=\pgfmathresult\pgf@yb
- \edef\pgf@nfold@shortenendjoin{\pgf@sys@tonumber\pgf@yb}
- \pgf@yb=-\pgf@yb
- \pgfextract@process\pgf@nfold@cur@movedlast{%
- % the use of the minus sign is fine here because \pgf@nfold@shortenendjoin >= 0.0
- \pgfpointadd{\pgf@nfold@cur@last}%
- {\pgfqpointscale{-\pgf@nfold@shortenendjoin}{\pgf@nfold@cur@tang@ii}}}%
- \pgfextract@process\pgf@nfold@cur@movedlast{%
- \pgfpointadd{\pgf@nfold@cur@last}%
- {\pgfqpointpolar{\pgf@nfold@cur@angle@ii}{\pgf@yb}}}%
- \if\pgf@nfold@cur@type c
- % Same procedure as above: relocate supportb if we have a curve
- \pgf@process{\pgfpointdiff{\pgf@nfold@cur@supportb}{\pgf@nfold@cur@last}}
- \pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}
- \ifdim\pgfmathresult pt>0.1pt\relax
- \pgfmathveclen@{\pgfmathresult}{\pgf@sys@tonumber\pgf@yb}
- \pgfextract@process\pgf@nfold@cur@supportb{\pgfpointadd%
- {\pgf@nfold@cur@last}%
- % can use qpointscale and a minus because \pgfmathresult is guaranteed to be positive
- {\pgfqpointscale{-\pgfmathresult}{\pgf@nfold@cur@tang@ii}}}%
- \else
- \let\pgf@nfold@cur@supportb\pgf@nfold@cur@movedlast
- \fi
- \fi
- \fi
- \fi
- % Step 1.3: Detect an edge case
- % This edge case appears whenever the current segment is such a short line that we would
- % have to reduce its length to less than zero to make room for the joins. In such cases,
- % the line is not drawn at all, and slight modifications must be made to the joins to ensure
- % a correct output (i.e. one join is immediately followed by the next without a segment in between).
- %
- % This edge case can appear for curves as well, but they are much harder to deal with.
- \if\pgf@nfold@cur@type l
- % No need to check for \pgf@nfold@inputsegmentclosepath as it should not be followed by any further segments
- % Now: Check if the total amount of shortening is larger than the length of the segment
- \pgf@process{\pgfpointdiff{\pgf@nfold@cur@first}{\pgf@nfold@cur@last}}
- \pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}
- \pgf@xa=\pgf@nfold@shortenstartjoin pt\relax
- \advance\pgf@xa by\pgf@nfold@shortenendjoin pt\relax
- \ifdim\pgf@xa>\pgfmathresult pt\relax
- \pgf@nfold@closejoinsedgecasetrue
- \fi
- \fi
- \fi% end if next segment visible
- %
- % Step 2.1: Draw the join at the start if applicable
- %
- \if\pgf@nfold@prev@visible0%
- \ifpgf@nfold@closejoinsedgecase
- % If the previous segment is a moveto and the current segment is a "close joins" edge case,
- % nothing needs to be drawn here (the relevant draw call will be made at the join of the subsequent
- % segment). We must therefore make sure that we move to the correct end point of this segment.
- % Counterintuitively, this is given by the offset of \pgf@nfold@cur@movedFIRST since the start and end
- % are reversed in the edge case.
- \edef\pgf@nfold@macrotoadd{%
- \noexpand\pgf@nfold@token@edgecase@movetostart{\pgf@nfold@cur@movedfirst}{\pgf@nfold@cur@angle@i}%
- }%
- \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
- \fi
- \else
- % If we draw the join when the start angle is close to 180 degrees, we get a division by zero
- \ifpgf@nfold@angletoosharp\else
- \if\pgf@nfold@cur@type z\else
- \pgf@nfold@parser@handlejoin
- \fi
- \fi
- \fi
- % Step 2.2: Store information that may be needed later
- % Step 2.2.1: Store where the current (non-offset) end point was relocated
- % in order to make space for the end join. This may be used if the next
- % segment begins with a join
- \let\pgf@nfold@prev@segment@end\pgf@nfold@cur@movedlast
- % Step 2.2.2: Store the tangent of the first proper segment of closed path.
- % This is needed in case the \pgfpathclose-segment has length zero,
- % since in that case its tangent cannot be computed.
- \if\pgf@nfold@cur@type i
- \let\pgf@nfold@connsubpath@tang@i\pgf@nfold@next@tang@i%
- \let\pgf@nfold@connsubpath@angle@i\pgf@nfold@next@angle@i%
- \fi
- %
- % Step 3: Draw the new segment.
- %
- % The value of \ifpgf@nfold@continuesegment decides whether we start with a moveto.
- \if\pgf@nfold@cur@type l
- % In the edge case, one join is followed immediately by the next. The line segment
- % thus has a negative length and will be skipped.
- \ifpgf@nfold@closejoinsedgecase\else
- \edef\pgf@nfold@macrotoadd{%
- \expandafter\noexpand\ifpgf@nfold@continuesegment%
- \pgf@nfold@token@lineto@continue%
- \else%
- \pgf@nfold@token@lineto%
- \fi{\pgf@nfold@cur@movedfirst}{\pgf@nfold@cur@movedlast}{\pgf@nfold@cur@tang@i}%
- }%
- \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
- \fi
- \fi
- \if\pgf@nfold@cur@type o
- \def\pgf@nfold@macrotoadd{\pgf@nfold@token@closepath}%
- \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
- \fi
- \if\pgf@nfold@cur@type z
- % zero and non-zero closepath's differ in the join handling, but are identical in rendering
- \def\pgf@nfold@macrotoadd{\pgf@nfold@token@closepath}%
- \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
- \fi
- \if\pgf@nfold@cur@type c
- \ifpgf@nfold@continuesegment
- \pgf@subdividecurve{\pgf@nfold@cur@movedfirst}{\pgf@nfold@cur@supporta}{\pgf@nfold@cur@supportb}{\pgf@nfold@cur@movedlast}{\pgf@offset@max@recursion}{0}{\pgf@nfold@addcurvesegment@callback@continue}
- \else
- \pgf@subdividecurve{\pgf@nfold@cur@movedfirst}{\pgf@nfold@cur@supporta}{\pgf@nfold@cur@supportb}{\pgf@nfold@cur@movedlast}{\pgf@offset@max@recursion}{0}{\pgf@nfold@addcurvesegment@callback}%
- \fi
- \fi
- \if\pgf@nfold@cur@type i
- \edef\pgf@nfold@macrotoadd{%
- \noexpand\pgf@nfold@token@invisibleline{\pgf@nfold@cur@movedfirst}{\pgf@nfold@cur@movedlast}{\pgf@nfold@cur@tang@i}%
- }%
- \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
- \fi
- % Step 4: Extend into the arrow tip at the end (if present)
- \if\pgf@nfold@next@type t%
- \ifnum\pgf@nfold@end@arrowcode=1
- \edef\pgf@nfold@macrotoadd{%
- \noexpand\pgf@nfold@extendtotip{e}{\pgf@nfold@cur@last}{\pgf@nfold@cur@angle@ii}}%
- \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
- \fi%
- \fi%
- \fi% end if current visible
-}
-
-
-\def\pgf@nfold@addcurvesegment@callback#1#2#3#4#5{%
- \if#50%
- \edef\pgf@nfold@macrotoadd{%
- % The subdivision algorithm has already computed the tangents
- \noexpand\pgf@nfold@token@curveto{#1}{#2}{#3}{#4}{\pgf@tmp@tang@i}{\pgf@tmp@tang@ii}%
- }%
- \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
- \else%
- \pgf@nfold@addcurvesegment@callback@continue{#1}{#2}{#3}{#4}{#5}%
- \fi%
-}
-
-\def\pgf@nfold@addcurvesegment@callback@continue#1#2#3#4#5{%
- % The subdivision algorithm has already computed the tangents
- \edef\pgf@nfold@macrotoadd{%
- \noexpand\pgf@nfold@token@curveto@continue{#1}{#2}{#3}{#4}{\pgf@tmp@tang@i}{\pgf@tmp@tang@ii}%
- }%
- \pgf@nfold@addmacro\pgf@parsed@cur@conn@seg%
-}
-
-
-% Rendering arrow tips
-% --------------------
-
-% Precomputed intersections
-%
-% For arrows of order n > 2 with an Implies tip, the constituent parts of the n-fold arrow
-% end somewhere in the middle of the tip. The exact end point must be computed using
-% the intersections library. To speed up compilation times, the intersection points are precomputed
-% up to n = 5. If your document contains arrows of order 6 or larger, consider adding those
-% as well; the values are output in the log file.
-\expandafter\def\csname pgf@nfold@intersec@cache@2@3\endcsname{\pgfqpoint{2pt}{0pt}}
-\expandafter\def\csname pgf@nfold@intersec@cache@2@4\endcsname{\pgfqpoint{0.94063pt}{-0.33333pt}}
-\expandafter\def\csname pgf@nfold@intersec@cache@3@4\endcsname{\pgfqpoint{0.94063pt}{0.33333pt}}
-\expandafter\def\csname pgf@nfold@intersec@cache@2@5\endcsname{\pgfqpoint{0.64167pt}{-0.5pt}}
-\expandafter\def\csname pgf@nfold@intersec@cache@3@5\endcsname{\pgfqpoint{2pt}{0pt}}
-\expandafter\def\csname pgf@nfold@intersec@cache@4@5\endcsname{\pgfqpoint{0.64167pt}{0.5pt}}
-% intersections are precomputed up to this order
-\def\pgf@nfold@intersec@numcached{5}
-
-% This macro extends the arrow body to the tips
-% #1: s=start, e=end
-% #2: start/end point of the path
-% #3: angle
-\newif\ifpgf@nfold@ontheedge
-\def\pgf@nfold@extendtotip#1#2#3{
- \ifpgf@nfold@intersectionsnotloaded
- \pgfutil@packageerror{tikz-nfold}{%
- If `nfold' is larger than \pgf@nfold@intersec@numcached\space and you use
- an `Implies' arrow tip you need to say \string\usetikzlibrary{intersections}}{}
- \else
- \pgf@nfold@ontheedgetrue
- % Do not extend the arrow for index=1 and index=order, it already ends in the right place
- \ifnum\pgf@nfold@index>1\relax\ifnum\pgf@nfold@index<\pgf@nfold@order\relax%
- \pgf@nfold@ontheedgefalse
- \fi\fi
- \ifpgf@nfold@ontheedge%
- % the extension at the start needs a moveto to the correct starting point
- \if#1s
- \pgfpathmoveto{\pgfpointadd{#2}{\pgfpointpolar{#3+90}{\pgf@nfold@shiftamount}}}%
- \fi
- \else
- % Step 1: Find the intersection of the arrow's path with the head
- \ifcsname pgf@nfold@intersec@cache@\the\pgf@nfold@index @\the\pgf@nfold@order\endcsname
- \pgfextract@process\pgf@nfold@arrowintersect
- {\csname pgf@nfold@intersec@cache@\the\pgf@nfold@index @\the\pgf@nfold@order\endcsname}%
- \else
- % the intersection has not been precomputed, thus compute on the fly here
- \pgfintersectionofpaths{
- % specify the tip
- \pgfpathmoveto{\pgfqpoint{-1.4pt}{2.65pt}}
- \pgfpathcurveto{\pgfqpoint{-0.75pt}{1.25pt}}{\pgfqpoint{1pt}{0.05pt}}{\pgfqpoint{2pt}{0pt}}
- \pgfpathcurveto{\pgfqpoint{1pt}{-0.05pt}}{\pgfqpoint{-0.75pt}{-1.25pt}}{\pgfqpoint{-1.4pt}{-2.65pt}}
- }{
- % extend the body to intersect the tip
- \pgfpathmoveto{\pgfqpoint{-3pt}{\pgf@nfold@shift@fraction pt}}
- \pgfpathlineto{\pgfqpoint{3pt}{\pgf@nfold@shift@fraction pt}}
- }
- \ifnum\pgfintersectionsolutions>0
- \pgfextract@process\pgf@nfold@arrowintersect{\pgfpointintersectionsolution{1}}%
- \immediate\write17{tikz-nfold: computed intersection cache@\the\pgf@nfold@index @\the\pgf@nfold@order: \string\pgfqpoint{\the\pgf@x}{\the\pgf@y}^^J}
- % add the new intersection to the cache
- \expandafter\xdef\csname pgf@nfold@intersec@cache@\the\pgf@nfold@index @\the\pgf@nfold@order\endcsname{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
- \else
- % this is a failsafe and should never be reached
- \pgfutil@packagewarning{tikz-nfold}{did not find intersection}
- \pgfextract@process\pgf@nfold@arrowintersect{\pgfqpoint{0pt}{\pgf@nfold@shift@fraction pt}}%
- \fi
- \fi% if precomputed
- % Step 2: Extend the arrow body to the intersection point.
- % If the tip is at the beginning of the path, we have to move to the intersection
- % and then draw a line to the "regular" starting point. The subsequent segment then
- % should omit its moveto.
- % If the tip is at the end, we are already in the right position and only need to extend
- % the current path to the intersection point.
- \begingroup
- \pgftransformreset
- \pgftransformshift{#2}
- \pgftransformrotate{#3}
- \if#1s
- \pgftransformxscale{-1}
- \fi
- % we don't want to undo the shift by .42\pgflinewidth after the scaling
- \pgfutil@tempdima=\pgf@nfold@hwidth
- \pgfutil@tempdima=\pgf@nfold@shift@fraction\pgfutil@tempdima
- \pgfextract@process\pgf@nfold@startofextension
- {\pgfpointtransformed{\pgfqpoint{0pt}{\pgfutil@tempdima}}}
- % 0.5 - 0.06 = 0.42
- \pgftransformshift{\pgfqpoint{.42\pgflinewidth}{0pt}}
- \pgftransformscale{\pgf@nfold@hwidth}
- \pgfextract@process\pgf@nfold@arrowintersect{\pgfpointtransformed{\pgf@nfold@arrowintersect}}
- \global\let\pgf@nfold@startofextension\pgf@nfold@startofextension
- \global\let\pgf@nfold@arrowintersect\pgf@nfold@arrowintersect
- \endgroup
- \if#1s
- \pgfpathmoveto{\pgf@nfold@arrowintersect}
- % This is precisely the start of the body, shifted vertically
- \pgfpathlineto{\pgf@nfold@startofextension}
- \else\if#1e
- \pgfpathlineto{\pgf@nfold@arrowintersect}
- \else
- \pgfutil@packageerror{tikz-nfold}{Invalid argument to \string\pgf@nfold@extendtotip: \meaning#1}{}
- \fi\fi
- \pgftransformreset
- \fi% if 1 < i < nArrows
- \fi% if intersections is needed and not loaded
-}
-
-% Parsing the arrow tips
-% ----------------------
-%
-% We need to detect if the user has set Implies[] arrows at the start and/or end tip.
-% To do so, we parse \pgf@start@tip@sequence. If the user specifies Implies[] manually,
-% we find that
-% pgf@start@tip@sequence=\pgf@arrow@handle{Implies}{...}
-% However, in other cases (like tikz-cd) we may find
-% \pgf@arrow@handle@shorthand@empty {\csname pgf@ar@means@tikzcd implies cap\endcsname }
-% In such cases we must expand the first parameter once and then match as above.
-
-% Set global defaults
-\def\pgf@nfold@start@arrowcode{0}
-\def\pgf@nfold@end@arrowcode{0}
-
-\def\pgf@nfold@parsearrows{
- \ifpgfutil@tempswa% this is set in \pgfusepath and stores whether we draw arrow tips at all
- \expandafter\pgf@nfold@parsearrowmacro\pgf@start@tip@sequence\relax
- \let\pgf@nfold@start@arrowcode\pgf@nfold@detectedarrow
- \expandafter\pgf@nfold@parsearrowmacro\pgf@end@tip@sequence\relax
- \let\pgf@nfold@end@arrowcode\pgf@nfold@detectedarrow
- \else
- \def\pgf@nfold@start@arrowcode{0}
- \def\pgf@nfold@end@arrowcode{0}
- \fi
-}
-
-\def\pgf@nfold@parsearrowmacro#1{%
- \def\pgf@nfold@detectedarrow{0}
- \ifx#1\relax
- \let\pgf@next\relax
- \else
- \ifx#1\pgf@arrow@handle
- % found \pgf@arrow@handle{...}, now parse the first parameter
- \let\pgf@next\pgf@nfold@parse@arrow@handle
- \else
- \ifx#1\pgf@arrow@handle@shorthand@empty
- \let\pgf@next\pgf@nfold@parse@shorthandempty
- \else
- % found nothing
- \let\pgf@next\pgfutil@gobble@until@relax
- \fi
- \fi
- \fi
- \pgf@next
-}
-
-\def\pgf@nfold@param@Implies{Implies}
-
-\def\pgf@nfold@parse@arrow@handle#1{%
- \def\pgf@tmp{#1}
- \ifx\pgf@tmp\pgf@nfold@param@Implies
- \def\pgf@nfold@detectedarrow{1}
- \fi
- \pgfutil@gobble@until@relax
-}
-
-\def\pgf@nfold@parse@shorthandempty#1{
- % Expand #1 once (\pgf@arrow@handle@shorthand@empty is just an identity operator)
- \expandafter\def\expandafter\pgf@tmp\expandafter{#1}
- \expandafter\pgf@nfold@parsearrowmacro\pgf@tmp\relax
- % still need to gobble the rest of the orginal arrow definition
- \pgfutil@gobble@until@relax
-}
-
-
-%
-% Hooking into pgf's rendering pipeline
-% -------------------------------------
-%
-% The new code has to be injected into \pgfusepath (pgfcorepathusage.code.tex). For rendering the new paths,
-% \pgf@stroke@inner@line is a natural choice as this is where /tikz/double is rendered. However, we also
-% need to disable rendering the ordinary path, which is not as easy. In the future I will make a pull request
-% to TikZ to simplify such injections.
-%
-% The call to draw the path comes right before \pgf@stroke@inner@line. The macro before \pgf@stroke@inner@line
-% is either \pgf@path@check@proper or \pgf@prepare@start@of@path (depending on the result of the proper check).
-% We therefore must inject code into both of them to see if nfold is enabled. If it is, we call the old macro,
-% cache and delete the current softpath (so the call to \pgfsyssoftpath@invokecurrentpath has no effect), then we
-% restore and offset the cached softpath in \pgf@stroke@inner@line.
-%
-% The macros \pgf@path@check@proper and \pgf@prepare@start@of@path are also used in \pgf@up@draw@arrows@only,
-% so we must make sure that the latter is unaffected by the modifications. Luckily, this turns out not to be
-% a problem - the only macros that are called after the modified ones are \pgf@add@arrow@at@start and
-% \pgf@add@arrow@at@end, which do not change their behaviour even if we modify the paths.
-%
-
-\newcount\pgf@nfold@order
-\pgf@nfold@order=1
-
-\def\pgf@nfold@preparenfoldpath{%
- \ifnum\pgf@nfold@order>1\relax
- \ifdim\pgfinnerlinewidth>0pt\relax
- % Hack the rendering pipeline: There is a \pgfsyssoftpath@invokecurrentpath call following
- % which we do not want if nfold is active. We therefore clear the current path here
- % and then perform the nfold drawing in our modification of \pgf@stroke@inner@line
- \pgfsyssoftpath@getcurrentpath\pgf@nfold@cachedpath%
- \pgfsyssoftpath@setcurrentpath\pgfutil@empty%
- \else
- \pgfutil@packageerror{tikz-nfold}{Must set \string\pgfinnerlinewidth\space to use nfold, e.g. by setting /tikz/double distance}{}
- \fi
- \fi
-}
-
-\let\pgf@nfold@old@path@check@proper\pgf@path@check@proper
-\def\pgf@path@check@proper{%
- \pgf@nfold@old@path@check@proper%
- \ifpgfutil@tempswa\else%
- % if \pgfutil@tempswa is false, this is the last macro we can overwrite before the draw call.
- % Otherwise, we inject into \pgf@prepare@start@of@path%
- \pgf@nfold@preparenfoldpath%
- \fi%
-}
-
-\let\pgf@nfold@old@prepare@start@of@path\pgf@prepare@start@of@path
-\def\pgf@prepare@start@of@path{%
- \pgf@nfold@old@prepare@start@of@path%
- \pgf@nfold@preparenfoldpath%
-}
-
-\let\pgf@nfold@old@stroke@inner@line\pgf@stroke@inner@line
-\def\pgf@stroke@inner@line{%
- \ifnum\pgf@nfold@order>1\relax%
- \pgf@nfold@render@cached@softpath%
- \else%
- % Old behaviour
- \pgf@nfold@old@stroke@inner@line%
- \fi%
-}
-
-
-%
-% Parsing the soft path
-% ---------------------
-%
-% A significant part of the code below is based on pgfmoduledecorations.code.tex (c) 2019 Mark Wibrow and Till Tantau.
-% Quite similar to decorations we parse the current soft path and put it into a form that makes it easier
-% to iterate over.
-%
+% This work consists of the files
+% pgflibrarybezieroffset.code.tex, pgflibrarynfold.code.tex, pgflibraryoffsetpath.code.tex, tikz-nfold-doc.tex, tikzlibrarynfold.code.tex, tikz-nfold-doc.tex, and tikz-nfold-doc.pdf.
%
-
-
%
-% In order to correctly implement \pgfpathclose we already need to know about
-% the \pgfpathclose (and the penultimate point) at the beginning of this
-% connected sub-path as these data affect the first/last join.
-% We therefore parse one connected sub-path of the softpath and store it in a modified
-% form in \pgf@cur@conn@subpath. When reaching the end of the connected sub-path we call
-% the proper parser to turn \pgf@cur@conn@subpath into a parsed path. We do this for
-% all connected sub-paths and concatenate all the parsed paths.
+% A commented version of this file can be found on https://github.com/jonschz/tikz-nfold .
%
-\def\pgf@nfold@parsesoftpath#1#2{%
- \let\pgf@cur@conn@subpath\pgfutil@empty%
- \let\pgf@all@parsed@subpaths\pgfutil@empty%
- \edef\pgf@nfold@parser@last@moveto{{\the\pgf@path@lastx}{\the\pgf@path@lasty}}%
- \let\pgf@nfold@last@closepath@from\pgfutil@empty%
- \pgf@nfold@parse@setupfirst%
- \expandafter\pgf@nfold@@parsesoftpath#1\pgf@stop{}{}%
- \let#2\pgf@all@parsed@subpaths%
-}%
-
-\def\pgf@nfold@@parsesoftpath#1#2#3{%
- \let\pgf@next\pgf@nfold@@parsesoftpath%
- \ifx#1\pgf@stop%
- \def\pgf@nfold@macrotoadd{\pgf@nfold@parselast}%
- \pgf@nfold@addmacro\pgf@cur@conn@subpath%
- \pgf@nfold@lastconnsubpathtrue%
- \pgf@nfold@process@conn@subpath%
- \let\pgf@next\relax%
- \else%
- \ifx#1\pgfsyssoftpath@movetotoken%
- \ifx\pgf@cur@conn@subpath\pgfutil@empty%
- % This case happens for the very first segment or for double movetos.
- % We need special treatment here, as otherwise the arrow tip extension
- % does not work correctly. The \pgf@nfold@parsemoveto will be called
- % in \pgf@nfold@process@conn@subpath.
- \def\pgf@nfold@parser@last@moveto{{#2}{#3}}%
- % Make sure \pgf@cur@conn@subpath is no longer empty so double movetos are not
- % treated the same as single movetos. This is also relevant to arrow tip extensions
- \def\pgf@cur@conn@subpath{\relax}%
- \else%
- \def\pgf@nfold@macrotoadd{\pgf@nfold@parsemoveto{#2}{#3}}%
- \pgf@nfold@addmacro\pgf@cur@conn@subpath%
- \pgf@nfold@lastconnsubpathfalse%
- % A moveto marks the beginning/end of one connected sub-path
- \pgf@nfold@process@conn@subpath%
- \let\pgf@nfold@last@closepath@from\pgfutil@empty%
- \let\pgf@cur@conn@subpath\pgfutil@empty%
- % set up "first" again which may be needed for the arrow tip extension
- \pgf@nfold@parse@setupfirst%
- \def\pgf@nfold@parser@last@moveto{{#2}{#3}}%
- \fi
- \else%
- \ifx#1\pgfsyssoftpath@linetotoken%
- \def\pgf@nfold@macrotoadd{\pgf@nfold@parselineto{#2}{#3}}%
- \pgf@nfold@addmacro\pgf@cur@conn@subpath%
- \else%
- \ifx#1\pgfsyssoftpath@curvetosupportatoken%
- \def\pgf@nfold@parse@supporta{{#2}{#3}}%
- \else%
- \ifx#1\pgfsyssoftpath@curvetosupportbtoken%
- \def\pgf@nfold@parse@supportb{{#2}{#3}}%
- \else%
- \ifx#1\pgfsyssoftpath@curvetotoken%
- \edef\pgf@nfold@macrotoadd{\noexpand\pgf@nfold@parsecurveto\pgf@nfold@parse@supporta\pgf@nfold@parse@supportb{#2}{#3}}%
- \pgf@nfold@addmacro\pgf@cur@conn@subpath%
- \else%
- \ifx#1\pgfsyssoftpath@closepathtoken%
- \let\pgf@nfold@last@closepath@from\pgf@nfold@parser@previous@pt%
- \def\pgf@nfold@macrotoadd{\pgf@nfold@parseclosepath{#2}{#3}}%
- \pgf@nfold@addmacro\pgf@cur@conn@subpath%
- \else%
- \ifx#1\pgfsyssoftpath@rectcornertoken%
- \def\pgf@nfold@parse@rectcorner{{#2}{#3}}%
- \else%
- \ifx#1\pgfsyssoftpath@rectsizetoken%
- \edef\pgf@nfold@macrotoadd{\noexpand\pgf@nfold@parserect\pgf@nfold@parse@rectcorner{#2}{#3}}%
- \pgf@nfold@addmacro\pgf@cur@conn@subpath%
- \else%
- \pgfutil@packageerror{tikz-nfold}{Unrecognised soft path token `#1'}{}%
- \fi%
- \fi%
- \fi%
- \fi%
- \fi%
- \fi%
- \fi%
- \fi%
- \fi%
- \def\pgf@nfold@parser@previous@pt{{#2}{#3}}%
- % store the last two segments, as they might be needed for zero-length \pgfpathclose-segments
- \let\pgf@nfold@sectolast@segment\pgf@nfold@last@segment%
- \let\pgf@nfold@last@segment\pgf@nfold@macrotoadd%
- \pgf@next}%
-
-\def\pgf@nfold@process@conn@subpath{%
- \let\pgf@parsed@cur@conn@seg\pgfutil@empty%
- \ifx\pgf@nfold@last@closepath@from\pgfutil@empty%
- \expandafter\pgf@nfold@parsemoveto\pgf@nfold@parser@last@moveto%
- \else%
- % This connected sub-path ends on a closepath. In order to get
- % the join right, we prepend the current sub-path with an invisible line
- % identical to the line of the \pgfpathclose.
- \expandafter\pgf@nfold@parsemoveto\pgf@nfold@last@closepath@from%
- \expandafter\pgf@nfold@parseinvisibleline\pgf@nfold@parser@last@moveto%
- \fi%
- \pgf@cur@conn@subpath%
- \let\pgf@nfold@macrotoadd\pgf@parsed@cur@conn@seg%
- \pgf@nfold@addmacro\pgf@all@parsed@subpaths%
-}
-
-%
-% Values for \pgf@nfold@next@type:
-% f=first, m=moveto, c=curveto, l=lineto, r=rect, o=closepath, z=zero length closepath, t=last, i=invisibleline
-%
-
-\def\pgf@nfold@parsemoveto#1#2{%
- \pgf@nfold@parser@moveup%
- \let\pgf@nfold@next@type=m%
- \let\pgf@nfold@next@visible=0%
- \edef\pgf@nfold@next@last{\pgf@x#1\pgf@y#2}%
- \pgf@nfold@parser@handlesegment%
-}%
-
-
-% Common code for parselineto and parseclosepath
-\def\pgf@nfold@parse@line@common#1#2#3{%
- \pgf@nfold@parser@moveup%
- \pgfextract@process\pgf@tmp@tang@i{\pgfpointnormalised{}\global\let\pgf@nfold@tmp\pgf@tmp}
- \let\pgf@nfold@next@type=#3%
- \let\pgf@nfold@next@visible=1%
- \let\pgf@nfold@next@tang@i\pgf@tmp@tang@i
- \let\pgf@nfold@next@tang@ii\pgf@tmp@tang@i
- \let\pgf@nfold@next@angle@i\pgf@nfold@tmp
- \let\pgf@nfold@next@angle@ii\pgf@nfold@tmp
- \let\pgf@nfold@next@first\pgf@nfold@cur@last
- \def\pgf@nfold@next@last{\pgf@x#1\pgf@y#2}%
- \pgf@nfold@parser@handlesegment%
-}
-
-\def\pgf@nfold@parselineto#1#2{%
- % the current end is still stored in next@last because parser@moveup has not been called yet
- \pgf@process{\pgfpointdiff{\pgf@nfold@next@last}{\pgf@x#1\pgf@y#2}}%
- \pgfpointtaxicabnorm\pgf@xa%
- % remove degenerate line segments (reduces glitches)
- \ifdim\pgf@xa>.1pt\relax%
- \pgf@nfold@parse@line@common{#1}{#2}{l}%
- \fi%
-}%
-
-\def\pgf@nfold@parsecurveto#1#2#3#4#5#6{%
- \pgf@nfold@parser@moveup%
- \pgf@offset@compute@tangents{\pgf@nfold@cur@last}{\pgf@x#1\pgf@y#2}{\pgf@x#3\pgf@y#4}{\pgf@x#5\pgf@y#6}%
- \let\pgf@nfold@next@type=c%
- \let\pgf@nfold@next@visible=1%
- % the following only need to be set if visible=1
- \let\pgf@nfold@next@tang@i=\pgf@tmp@tang@i
- \let\pgf@nfold@next@tang@ii=\pgf@tmp@tang@ii
- \let\pgf@nfold@next@angle@i\pgf@tmp@angle@i
- \let\pgf@nfold@next@angle@ii\pgf@tmp@angle@ii
- \let\pgf@nfold@next@first\pgf@nfold@cur@last
- \def\pgf@nfold@next@supporta{\pgf@x#1\pgf@y#2}
- \def\pgf@nfold@next@supportb{\pgf@x#3\pgf@y#4}
- \def\pgf@nfold@next@last{\pgf@x#5\pgf@y#6}
- \pgf@nfold@parser@handlesegment%
-}%
-
-\def\pgf@nfold@parseclosepath#1#2{%
- \pgf@process{\pgfpointdiff{\pgf@nfold@next@last}{\pgf@x#1\pgf@y#2}}%
- % closepath segments should always be processed even if they have zero length
- \pgfpointtaxicabnorm\pgf@xa%
- \ifdim\pgf@xa<0.1pt\relax%
- \pgf@nfold@parse@closepath@zerolength{#1}{#2}%
- \else%
- \pgf@nfold@parse@line@common{#1}{#2}{o}%
- \fi%
-}%
-
-\def\pgf@nfold@parse@closepath@zerolength#1#2{%
- \pgf@nfold@parser@moveup%
- \let\pgf@nfold@next@type=z%
- \let\pgf@nfold@next@visible=1%
- % Set the start and end tangent to the tangent of the first segment
- \let\pgf@nfold@next@tang@i\pgf@nfold@connsubpath@tang@i
- \let\pgf@nfold@next@tang@ii\pgf@nfold@connsubpath@tang@i
- \let\pgf@nfold@next@angle@i\pgf@nfold@connsubpath@angle@i
- \let\pgf@nfold@next@angle@ii\pgf@nfold@connsubpath@angle@i
- \let\pgf@nfold@next@first\pgf@nfold@cur@last
- % If problems arise, we need to put a fake point here (like \pgf@nfold@next@first + \pgf@nfold@next@tang@i)
- \def\pgf@nfold@next@last{\pgf@x#1\pgf@y#2}%
- \pgf@nfold@parser@handlesegment%
-}
-
-\def\pgf@nfold@parseinvisibleline#1#2{%
- \pgf@process{\pgfpointdiff{\pgf@nfold@next@last}{\pgf@x#1\pgf@y#2}}%
- \pgfpointtaxicabnorm\pgf@xa%
- % In order to correctly render the start/end join in a closed path,
- % the \pgfpathclose segment is copied to the start of the path as an invisible line.
- % Counterintuitively, an "invisibleline" segment has next@visible=1 because
- % we want its end join to be rendered.
- % In case the \pgfpathclose segment has non-zero length, we can just use a copy of
- % this segment for the invisible line. Otherwise, the invisble line segment must will receive
- % the same angle/tangent as the last finite-sized segment, which is the second-to-last
- % segment overall (cached in \pgf@nfold@sectolast@segment).
- \ifdim\pgf@xa>.1pt\relax%
- \pgf@nfold@parse@line@common{#1}{#2}{i}%
- \else%
- \begingroup%
- % find the tangent of the second-to-last segment
- \let\pgf@nfold@parser@handlesegment\relax%
- \pgf@nfold@sectolast@segment%
- \global\let\pgf@nfold@tmp\pgf@nfold@next@tang@ii%
- \endgroup%
- % Construct an invisible line with length 1pt and the correct tangent.
- % This step might not be needed since the join computations only require the tangent,
- % but the invisibleline segment would be inconsistent otherwise, so better play it safe.
- \pgfextract@process\pgf@nfold@next@first{\pgfpointdiff{\pgf@nfold@tmp}{\pgfqpoint{#1}{#2}}}%
- % write the tangent into (\pgf@x, \pgf@y) where the next macro expects it to be
- \pgf@nfold@tmp%
- \pgf@nfold@parse@line@common{#1}{#2}{i}%
- \fi%
-}%
-
-\def\pgf@nfold@parselast{%
- \pgf@nfold@parser@moveup%
- \let\pgf@nfold@next@type=t%
- \let\pgf@nfold@next@visible=0%
- \pgf@nfold@parser@handlesegment%
-}
-
-% Mostly for the sake of completeness; using TikZ' "\path (0,0) rectangle (1,1);" does not call this code
-\def\pgf@nfold@parserect#1#2#3#4{%
- \pgf@nfold@parsemoveto{#1}{#2}%
- \pgf@xc=#1\relax
- \pgf@yc=#2\relax
- \pgf@xd=#3\relax
- \pgf@yd=#4\relax
- \advance\pgf@yc\pgf@yd%
- \edef\pgf@temp{{\the\pgf@xc}{\the\pgf@yc}}%
- \expandafter\pgf@nfold@parselineto\pgf@temp%
- \advance\pgf@xc\pgf@xd%
- \edef\pgf@temp{{\the\pgf@xc}{\the\pgf@yc}}%
- \expandafter\pgf@nfold@parselineto\pgf@temp%
- \advance\pgf@yc-\pgf@yd%
- \edef\pgf@temp{{\the\pgf@xc}{\the\pgf@yc}}%
- \expandafter\pgf@nfold@parselineto\pgf@temp%
- \advance\pgf@xc-\pgf@xd%
- \edef\pgf@temp{{\the\pgf@xc}{\the\pgf@yc}}%
- \expandafter\pgf@nfold@parselineto\pgf@temp%
- \edef\pgf@marshal{\noexpand\pgf@nfold@parsemoveto{\the\pgf@xc}{\the\pgf@yc}}%
- \pgf@marshal%
-}
-
-% adds the contents of \pgf@nfold@macrotoadd to #1
-\def\pgf@nfold@addmacro#1{%
- % need a \gdef because we have nested groups in the subdivision
- \expandafter\expandafter\expandafter\gdef%
- \expandafter\expandafter\expandafter#1%
- \expandafter\expandafter\expandafter{%
- \expandafter#1\pgf@nfold@macrotoadd}%
-}
-
-
-%
-% Tokens for the parsed path
-%
-
-%#3: cached normalised tangent (for efficiency)
-\def\pgf@nfold@token@lineto#1#2#3{%
- \pgfoffsetline@{#1}{#2}{\pgf@nfold@shiftamount}{#3}%
-}
-
-\def\pgf@nfold@token@lineto@continue#1#2#3{%
- \pgfoffsetlinenomove@{#1}{#2}{\pgf@nfold@shiftamount}{#3}%
-}
-
-\def\pgf@nfold@token@invisibleline#1#2#3{%
- % An invisible line should execute a moveto to the end point of the line
- \pgfqpointscale{\pgf@nfold@shiftamount}{#3}%
- \pgf@xc=-\pgf@y%
- \pgf@y=\pgf@x%
- \pgf@x=\pgf@xc%
- \pgfpathmoveto{\pgfpointadd{}{#2}}%
-}
-
-% #5, #6: cached normalised tangents at start and end (for efficiency)
-\def\pgf@nfold@token@curveto#1#2#3#4#5#6{%
- \def\pgf@tmp@tang@i{#5}%
- \def\pgf@tmp@tang@ii{#6}%
- \pgf@offset@bezier@segment@{#1}{#2}{#3}{#4}{\pgf@nfold@shiftamount}%
- \pgfpathmoveto{\pgf@bezier@offset@i}%
- \pgfpathcurveto{\pgf@bezier@offset@ii}{\pgf@bezier@offset@iii}{\pgf@bezier@offset@iv}%
-}
-
-\def\pgf@nfold@token@curveto@continue#1#2#3#4#5#6{%
- \def\pgf@tmp@tang@i{#5}%
- \def\pgf@tmp@tang@ii{#6}%
- \pgf@offset@bezier@segment@{#1}{#2}{#3}{#4}{\pgf@nfold@shiftamount}%
- \pgfpathcurveto{\pgf@bezier@offset@ii}{\pgf@bezier@offset@iii}{\pgf@bezier@offset@iv}%
-}
-
-\def\pgf@nfold@token@closepath{%
- \pgfpathclose%
-}
-
-% This is needed for some edge case explained above.
-% #1: segment@start, which is actually the end point of the current segment in the edge case
-% #2: the angle of the current segment (start or end does not matter for straight lines)
-\def\pgf@nfold@token@edgecase@movetostart#1#2{%
- \pgfpathmoveto{\pgfpointadd%
- {#1}{\pgfpointpolar{#2+90}{\pgf@nfold@shiftamount}}}%
-}
-
-
-\def\pgf@nfold@parse@setupfirst{%
- \let\pgf@nfold@next@type=f%
- % technically, @visible can be derived from @type, but I think this is more efficient
- \let\pgf@nfold@next@visible=0%
- \edef\pgf@nfold@next@last{\pgf@x\the\pgf@path@lastx\pgf@y\the\pgf@path@lasty}%
- % the following only need to be set if visible=1
- % TODO these are disabled temporarily; an attempt to read them suggests that there
- % is a bug, because their content has no meaning at this point. Consider reenabling
- % if compile errors show up, but if they do, the root of the problem is likely to be elsewhere
- %\let\pgf@nfold@next@tang@i=\pgfpointorigin%
- %\let\pgf@nfold@next@tang@ii=\pgfpointorigin%
- % \def\pgf@nfold@next@angle@i{0}%
- % \def\pgf@nfold@next@angle@ii{0}%
- % \let\pgf@nfold@next@first\pgfpointorigin%
- % the following only need to be set if type=c
- % \let\pgf@nfold@next@supporta\pgfpointorigin%
- % \let\pgf@nfold@next@supportb\pgfpointorigin%
-}
-
-\def\pgf@nfold@clampangle{
- % The computed angles are values between 0 and 360, so their difference is between 360 and -360;
- % we want the difference to be between -180 and 180
- \ifdim\pgfmathresult pt<-180pt\relax
- \pgfutil@tempdima=\pgfmathresult pt
- \advance\pgfutil@tempdima by 360pt
- \edef\pgfmathresult{\pgf@sys@tonumber\pgfutil@tempdima}
- \else\ifdim\pgfmathresult pt>180pt\relax
- \pgfutil@tempdima=\pgfmathresult pt
- \advance\pgfutil@tempdima by -360pt
- \edef\pgfmathresult{\pgf@sys@tonumber\pgfutil@tempdima}
- \fi\fi
-}
-
-
-
-\def\pgf@nfold@parser@moveup{%
- \let\pgf@nfold@prev@type\pgf@nfold@cur@type%
- \let\pgf@nfold@prev@visible\pgf@nfold@cur@visible%
- \let\pgf@nfold@prev@tang@i\pgf@nfold@cur@tang@i%
- \let\pgf@nfold@prev@tang@ii\pgf@nfold@cur@tang@ii%
- \let\pgf@nfold@prev@angle@i\pgf@nfold@cur@angle@i%
- \let\pgf@nfold@prev@angle@ii\pgf@nfold@cur@angle@ii%
- \let\pgf@nfold@prev@first\pgf@nfold@cur@first%
- \let\pgf@nfold@prev@supporta\pgf@nfold@cur@supporta%
- \let\pgf@nfold@prev@supportb\pgf@nfold@cur@supportb%
- \let\pgf@nfold@prev@last\pgf@nfold@cur@last%
- \let\pgf@nfold@cur@type\pgf@nfold@next@type%
- \let\pgf@nfold@cur@visible\pgf@nfold@next@visible%
- \let\pgf@nfold@cur@tang@i\pgf@nfold@next@tang@i%
- \let\pgf@nfold@cur@tang@ii\pgf@nfold@next@tang@ii%
- \let\pgf@nfold@cur@angle@i\pgf@nfold@next@angle@i%
- \let\pgf@nfold@cur@angle@ii\pgf@nfold@next@angle@ii
- \let\pgf@nfold@cur@first\pgf@nfold@next@first%
- \let\pgf@nfold@cur@supporta\pgf@nfold@next@supporta%
- \let\pgf@nfold@cur@supportb\pgf@nfold@next@supportb%
- \let\pgf@nfold@cur@last\pgf@nfold@next@last%
-}
-
-%
-% Iterating over the parsed soft path
-% -----------------------------------
-%
-
-\newcount\pgf@nfold@index
-\def\pgf@nfold@run@loop{%
- \pgf@nfold@index=\pgf@nfold@order%
- \pgf@nfold@run@loop@%
-}
-
-\def\pgf@nfold@run@loop@{%
- \pgf@nfold@loop@inner%
- \advance\pgf@nfold@index by -1\relax
- \ifnum\pgf@nfold@index>0\relax%
- \pgf@nfold@run@loop@%
- \fi%
-}
-
-\def\pgf@nfold@loop@inner{%
- \pgfmathsetmacro{\pgf@nfold@shift@fraction}%
- {-1+2*(\pgf@nfold@index-1)/(\pgf@nfold@order-1)}%
- % Do not store shiftamount as a length (i.e. with pt) because we want to use it in \pgfqpointscale{}{}
- \pgfmathsetmacro{\pgf@nfold@shiftamount}{\pgf@nfold@hwidth*\pgf@nfold@shift@fraction}
- % Transformations are already baked into the path; without this call, they would be applied twice
- \pgftransformreset%
- \parsedpath%
- \pgfsyssoftpath@flushcurrentpath%
- \pgf@up@action%
-}
-
-% Computes both the width of the component lines into \pgf@x and the distance
-% from the center to the outermost line centers into \pgf@y
-% from the current values of \pgflinewidth and \pgfinnerlinewidth.
-\def\pgf@nfold@compute@widths@from@double{
- \pgf@x=\pgflinewidth\relax%
- \pgf@y=\pgf@x\relax%
- \advance\pgf@x-\pgfinnerlinewidth\relax%
- \advance\pgf@y+\pgfinnerlinewidth\relax%
- \pgf@x=.5\pgf@x\relax%
- \pgf@y=.25\pgf@y\relax%
-}
-
-\def\pgf@nfold@render@cached@softpath{%
- \pgfscope% must use a scope, otherwise we break the arrow tips
- % Compute the full and constituent part line widths
- \pgf@nfold@compute@widths@from@double%
- \pgfsetlinewidth\pgf@x%
- \edef\pgf@nfold@hwidth{\the\pgf@y}%
- \pgfprocessround{\pgf@nfold@cachedpath}{\pgf@nfold@cachedpath}% remove tokens from the soft path
- \pgf@nfold@parsearrows%
- \pgf@nfold@parsesoftpath{\pgf@nfold@cachedpath}{\parsedpath}%
- \pgf@nfold@run@loop%
- \endpgfscope%
-}
-
-
-%
-% user interface and pgf/TikZ keys
-% --------------------------------
-%
-
-% Outputs a provided soft path in #1 offset by a distance provided in #2.
-\def\pgfoffsetpath#1#2{%
- \begingroup
- \pgfmathsetlengthmacro\pgf@nfold@parsed@hwidth{#2}
- % \pgf@nfold@hwidth must always be positive
- \pgf@x=\pgf@nfold@parsed@hwidth\relax
- \ifdim\pgf@x<0pt\relax
- \pgf@x=-\pgf@x
- \def\pgf@nfold@shift@fraction{-1}
- \else
- \def\pgf@nfold@shift@fraction{1}
- \fi
- \edef\pgf@nfold@parsed@hwidth{\the\pgf@x}
- \pgfoffsetpathqfraction{#1}{\pgf@nfold@parsed@hwidth}{\pgf@nfold@shift@fraction}
- \endgroup
-}
-
-% Outputs a provided soft path in #1 offset by #3*#2 where #2 is a length (>= 0 pt)
-% and #3 is a number between -1.0 and 1.0. This differs from \pgfoffsetpath{#1}{#2*#3}
-% in how the joins between segments are rendered. In particular, \pgfoffsetpathfraction{#1}{10pt}{0}
-% does *not* yield the original path, but a new path in the centre of #1 drawn at line width 20pt.
-%
-\def\pgfoffsetpathfraction#1#2#3{%
- \begingroup
- \pgfmathsetlengthmacro\pgf@nfold@parsed@hwidth{#2}
- \pgfmathsetmacro\pgf@nfold@shift@fraction{#3}
- \pgfoffsetpathqfraction{#1}{\pgf@nfold@parsed@hwidth}{\pgf@nfold@shift@fraction}
- \endgroup
-}
-
-% This has the same output as the #3-th segment of nfold=#4.
-\def\pgfoffsetpathindex#1#2#3#4{%
- \begingroup
- \pgfmathsetmacro\pgf@nfold@shift@fraction{-1+2*(#3-1)/(#4-1)}
- \pgfoffsetpathqfraction{#1}{#2}{\pgf@nfold@shift@fraction}
- \endgroup
-}
-
-% A quick version that skips processing the input values
-\def\pgfoffsetpathqfraction#1#2#3{%
- \begingroup
- \pgf@x=#2\relax
- \edef\pgf@nfold@hwidth{\the\pgf@x}
- \edef\pgf@nfold@shift@fraction{#3}
- \pgf@x=\pgf@nfold@shift@fraction\pgf@x\relax
- \edef\pgf@nfold@shiftamount{\pgf@sys@tonumber\pgf@x}
- \pgfprocessround{#1}{\pgf@nfold@cachedpath}% remove tokens from the soft path
- \pgf@nfold@parsesoftpath{\pgf@nfold@cachedpath}{\parsedpath}%
- % Transformations are already baked into the path; without this call, they would be applied twice
- \pgftransformreset%
- \parsedpath%
- \endgroup
-}
-
-
-\pgfkeys{
- /pgf/nfold/.code={%
- \pgf@nfold@order=#1\relax%
- \ifnum\pgf@nfold@order<1\relax%
- \pgfutil@packageerror{tikz-nfold}{The key /pgf/nfold must take a value of at least 1, got \the\pgf@nfold@order}{}%
- \fi%
- % If nfold > numcached AND intersections is not loaded AND we draw an Implies tip, we get an error.
- % We check the first two conditions now and set the respective flag
- \ifnum\pgf@nfold@order>\pgf@nfold@intersec@numcached\relax
- \ifdefined\pgfintersectionofpaths\else
- \pgf@nfold@intersectionsnotloadedtrue
- \fi
- \fi
- },
- /pgf/nfold/.default=2
-}
-
+\usepgflibrary{nfold}
+\usetikzlibrary{arrows.meta}
-% use \tikzset for scoping reasons, does not appear to be equivalent to \pgfset{/tikz/...=...}
\tikzset{
nfold/.code={
\edef\pgf@tmp{\noexpand\pgfkeys{/pgf/nfold=#1}}
- % patch \tikz@double@setup to set /pgf/nfold=#1 as well
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@double@setup%
\expandafter\expandafter\expandafter{\expandafter\tikz@double@setup\pgf@tmp}
},
nfold/.default=2,
scaling nfold/.code={%
- \pgfscope% scope to contain \tikz@double@setup
+ \pgfscope%
\tikz@double@setup
- % extract double distance between line centers into \pgf@x
\pgf@nfold@compute@widths@from@double
\pgf@y=2\pgf@y
- % store (order-1)*\pgf@x in \pgf@xa
\c@pgf@counta=#1
\advance\c@pgf@counta by -1\relax
\global\pgf@y=\c@pgf@counta\pgf@y
@@ -1329,21 +47,16 @@
}
},
scaling nfold/.default=2,
- % This simply defines the key if tikzcd is not loaded, so we don't run into any errors
commutative diagrams/scaling nfold/.code={
- \pgfscope% scope to contain \tikz@double@setup
+ \pgfscope%
\tikz@double@setup
- % extract double distance between line centers into \pgf@x
\pgf@nfold@compute@widths@from@double
- % store (order-1)*\pgf@y in \pgf@ya
\c@pgf@counta=#1
\advance\c@pgf@counta by -1\relax
\pgf@ya=\c@pgf@counta\pgf@y
- % compute the label offset, which is (order-2)*\pgf@y + .5*\pgf@x
\advance\c@pgf@counta by -1\relax
\pgf@xa=\c@pgf@counta\pgf@y
\advance\pgf@xa by .5\pgf@x
- % save the results in \pgf@x and \pgf@y
\global\pgf@x=\pgf@xa
\global\pgf@y=2\pgf@ya
\endpgfscope
diff --git a/graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.pdf b/graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.pdf
index a6610abd58..68574d0bff 100644
--- a/graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.pdf
+++ b/graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.tex b/graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.tex
index 5793927f74..287d240690 100644
--- a/graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.tex
+++ b/graphics/pgf/contrib/tikz3d-fr/doc/tikz3d-fr-doc.tex
@@ -4,8 +4,8 @@
\documentclass[french,a4paper,11pt]{article}
\usepackage[margin=2cm,includefoot]{geometry}
-\def\TPversion{0.1.1}
-\def\TPdate{24 Mai 2023}
+\def\TPversion{0.1.2}
+\def\TPdate{22 juillet 2023}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
@@ -246,6 +246,8 @@
\part{Historique}
+\verb|v0.1.2|~:~~~~Option pour l'épaisseur des traits + \textsf{[line join=round]} pour les cubes
+
\verb|v0.1.1|~:~~~~Tracé des segments individuels avec l'option \textsf{[line cap=round]}
\verb|v0.1.0|~:~~~~Version initiale
@@ -592,7 +594,7 @@ Il existe également la commande \texttt{\textbackslash PlaqueVide} pour \textit
\begin{PresCodeTex}{listing only}
\begin{EmpilementCubes}[échelle]<options tikz>
- \PlaquePetitsCubes[couleur(s)]{empilement}
+ \PlaquePetitsCubes[couleur(s)]{empilement}[épaisseur traits]
\PlaqueVide[nb]
\end{EmpilementCubes}
\end{PresCodeTex}
@@ -619,6 +621,10 @@ Le second argument, obligatoire et entre \texttt{\{...\}} est quant à lui la li
\item un \texttt{-} code un \textit{trou}, et un numéro code une couleur (comme définie(s) précédemment).
\end{itemize}
+Le dernier argument, optionnel et entre \texttt{[...]} permet de spécifier une dimension pour les tracés (\texttt{0.2pt} par défaut).
+
+\medskip
+
Cette manière permet de créer des plaques avec couleurs \textit{individuelles} et des \textit{trous} éventuels.
\end{tipblock}
@@ -633,13 +639,13 @@ Cette manière permet de créer des plaques avec couleurs \textit{individuelles}
\begin{PresCode}{}
\begin{EmpilementCubes}
%plaque n°1 (fond)
- \PlaquePetitsCubes{ 1111 / 1111 }
+ \PlaquePetitsCubes{ 1111 / 1111 }[0.4pt]
\PlaqueVide[2]
%plaque n°2
- \PlaquePetitsCubes[cyan/red]{ 111- / -211 }
+ \PlaquePetitsCubes[cyan/red]{ 111- / -211 }[0.4pt]
\PlaqueVide[2]
%plaque n°3 (devant)
- \PlaquePetitsCubes{ 1111 / ---1 }
+ \PlaquePetitsCubes{ 1111 / ---1 }[0.4pt]
\end{EmpilementCubes}
\end{PresCode}
@@ -657,9 +663,9 @@ Cette manière permet de créer des plaques avec couleurs \textit{individuelles}
\begin{PresCode}{}
\begin{EmpilementCubes}[1.75]
- \PlaquePetitsCubes[cyan/red/green/yellow]{ 3111-1-4 / 233123 / 2-1112 }
- \PlaquePetitsCubes[cyan/red]{ 111 / -21 }
- \PlaquePetitsCubes[cyan/red/green]{ 3-2 }
+ \PlaquePetitsCubes[cyan/red/green/yellow]{ 3111-1-4 / 233123 / 2-1112 }[1pt]
+ \PlaquePetitsCubes[cyan/red]{ 111 / -21 }[1pt]
+ \PlaquePetitsCubes[cyan/red/green]{ 3-2 }[1pt]
\end{EmpilementCubes}
\end{PresCode}
@@ -678,13 +684,13 @@ La commande qui permet de réaliser cet empilement est \texttt{\textbackslash Bl
\begin{PresCodeTex}{listing only}
%création dans un environnement dédié
\begin{EmpilementCubes}[échelle]<options tikz>
- \BlocPetitsCubes*[couleur]{grille des hauteurs}
+ \BlocPetitsCubes*[couleur]{grille des hauteurs}[epaisseur traits]
\end{EmpilementCubes}
\end{PresCodeTex}
\begin{PresCodeTex}{listing only}
%création autonome
-\BlocPetitsCubes[couleur]{grille des hauteurs}
+\BlocPetitsCubes[couleur]{grille des hauteurs}[epaisseur traits]
\end{PresCodeTex}
\begin{cautionblock}
@@ -721,7 +727,8 @@ Le second argument, obligatoire et entre \texttt{\{...\}} est quant à lui la li
\item le caractère de séparation des \textit{plaques} est le \texttt{/} ;
\item pour chaque plaque, le caractère de séparation des colonnes est le \texttt{,}.
\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
+
+Le dernier argument, optionnel et entre \texttt{[...]} permet de spécifier une dimension pour les tracés (\texttt{0.2pt} par défaut).
\end{tipblock}
\begin{importantblock}
@@ -747,7 +754,7 @@ Par exemple, la \textit{grille} associée à l'empilement précédent est :
\begin{PresCode}{}
\begin{EmpilementCubes}[2]
- \BlocPetitsCubes*[violet]{1,2,3,4,5 / 0,2,1,1,3 / 0,2,1,1,2 / 1,1,1,1,1}
+ \BlocPetitsCubes*[violet]{1,2,3,4,5 / 0,2,1,1,3 / 0,2,1,1,2 / 1,1,1,1,1}[0.8pt]
\end{EmpilementCubes}
\end{PresCode}
diff --git a/graphics/pgf/contrib/tikz3d-fr/tex/tikz3d-fr.sty b/graphics/pgf/contrib/tikz3d-fr/tex/tikz3d-fr.sty
index 6ee9118c66..5056c951a8 100644
--- a/graphics/pgf/contrib/tikz3d-fr/tex/tikz3d-fr.sty
+++ b/graphics/pgf/contrib/tikz3d-fr/tex/tikz3d-fr.sty
@@ -3,8 +3,9 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tikz3d-fr}[2023/05/24 0.1.1 Aide pour l'utilisation de TikZ 3D]
-%0.1.1 Segments avec line cap=round
+\ProvidesPackage{tikz3d-fr}[2023/07/22 0.1.2 Aide pour l'utilisation de TikZ 3D]
+%0.1.2 Option pour l'épaisseur des traits + [line join=round] pour les cubes
+%0.1.1 Segments avec [line cap=round]
%0.1.0 Version initiale
%------Packages utiles
@@ -255,18 +256,18 @@
\end{tikzpicture}
}
-\NewDocumentCommand\PetitCube{ O{cyan} m }{%
- \StrBefore[1]{#2}{,}[\xtmp]%
- \StrBetween[1,2]{#2}{,}{,}[\ytmp]%
- \StrBehind[2]{#2}{,}[\ztmp]%
- \draw[fill=#1!70,very thin,line join=bevel] ({\xtmp+1},\ytmp,\ztmp)--++(0,1,0)--++(0,0,-1)--++(0,-1,0)--cycle;
- \draw[fill=#1!80,very thin,line join=bevel] (\xtmp,{\ytmp+1},\ztmp)--++(1,0,0)--++(0,0,-1)--++(-1,0,0)--cycle;
- \draw[fill=#1!35!white,very thin,line join=bevel] (\xtmp,\ytmp,\ztmp)--++(1,0,0)--++(0,1,0)--++(-1,0,0)--cycle;
+\NewDocumentCommand\PetitCube{ O{cyan} O{0.2pt} m }{%
+ \StrBefore[1]{#3}{,}[\xtmp]%
+ \StrBetween[1,2]{#3}{,}{,}[\ytmp]%
+ \StrBehind[2]{#3}{,}[\ztmp]%
+ \draw[fill=#1!70,line width=#2,line join=round,line cap=round] ({\xtmp+1},\ytmp,\ztmp)--++(0,1,0)--++(0,0,-1)--++(0,-1,0)--cycle;
+ \draw[fill=#1!80,line width=#2,line join=round,line cap=round] (\xtmp,{\ytmp+1},\ztmp)--++(1,0,0)--++(0,0,-1)--++(-1,0,0)--cycle;
+ \draw[fill=#1!35!white,line width=#2,line join=round,line cap=round] (\xtmp,\ytmp,\ztmp)--++(1,0,0)--++(0,1,0)--++(-1,0,0)--cycle;
}
\newcounter{lgblocs}%compteur des lignes, qui sera incrémenté
\NewDocumentCommand\PlaqueVide{ O{1} }{\addtocounter{lgblocs}{#1}}%passer une plaque
-\NewDocumentCommand\PlaquePetitsCubes{ O{cyan} m }{%poser un cube (attention à l'ordre)
+\NewDocumentCommand\PlaquePetitsCubes{ O{cyan} m O{0.2pt} }{%poser un cube (attention à l'ordre)
\setsepchar[.]{/}
%lecture des couleurs
\readlist*\ListeCouleurs{#1}
@@ -288,13 +289,13 @@
{}%
{%
\itemtomacro\ListeCouleurs[\elementtmp]{\elementcouleur}
- \PetitCube[\elementcouleur]{-\j,\y,\i}
+ \PetitCube[\elementcouleur][#3]{-\j,\y,\i}
}%
}%
}%
}
-\NewDocumentCommand\BlocPetitsCubes{ s O{cyan} m }{%
+\NewDocumentCommand\BlocPetitsCubes{ s O{cyan} m O{0.2pt} }{%
%*pour autonome
%2=couleur unique
%3=liste des hauteurs (attention à l'ordre)
@@ -318,7 +319,7 @@
\xintifboolexpr{\Hauteur == 0}%
{}%
{%
- \foreach \z in {1,...,\Hauteur}{\PetitCube[#2]{-\x,\y,\z}}
+ \foreach \z in {1,...,\Hauteur}{\PetitCube[#2][#4]{-\x,\y,\z}}
}%
}%
}%
diff --git a/language/japanese/BX/bxcjkjatype/LICENSE b/language/japanese/BX/bxcjkjatype/LICENSE
index 9e7e5a082c..8c47ee7c40 100644
--- a/language/japanese/BX/bxcjkjatype/LICENSE
+++ b/language/japanese/BX/bxcjkjatype/LICENSE
@@ -1,6 +1,6 @@
The MIT License
-Copyright (c) 2016 Takayuki YATO (aka. "ZR")
+Copyright (c) 2013-2023 Takayuki YATO (aka. "ZR")
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/language/japanese/BX/bxcjkjatype/README-ja.md b/language/japanese/BX/bxcjkjatype/README-ja.md
index f92de5499f..c5dbe9768f 100644
--- a/language/japanese/BX/bxcjkjatype/README-ja.md
+++ b/language/japanese/BX/bxcjkjatype/README-ja.md
@@ -28,236 +28,35 @@ pLaTeX カーネルや pLaTeX 用パッケージのものに類似した命令
bxcjkjatype パッケージ
----------------------
-### パッケージ読込
+本バンドルの本体のパッケージである。
- \usepackage[<option>,...]{bxcjkjatype}
+詳細についてはユーザマニュアルを参照されたい。
-利用可能なオプションを以下で挙げる。
+ * bxcjkjatype.pdf: ユーザマニュアル(英語版)
+ * bxcjkjatype-ja.pdf: ユーザマニュアル(日本語版)
-#### 自動囲み込み
-
-文書本体を `CJK(*)` 環境で自動的かつ安全に囲うためのオプション。文書中に
-多量の CJK テキストが含まれる場合、或いは「動く引数」に CJK テキストが
-含まれる場合はこれを指定するのが適切である。
-
- * `whole`、`wholeCJK*`: 文書全体を `CJK*` 環境で囲む。(厳密に言うと
- `\begin{uCJK*}`~`\end{uCJK*}` で囲む。)
- * `wholeCJK`: 文書全体を `CJK` 環境で囲む。(厳密に言うと
- `\begin{uCJK}`~`\end{uCJK}` で囲む。)
- * `nowhole`(既定): `wholeCJK*` 及び `wholeCJK` の否定。
-
-#### 「自動チルダ」
-
-`autotilde` オプションを指定すると、`\CJKtilde` が自動的に呼び出されて
-`~` が和欧文間空白(四分空き)の意味になる。なお、`\CJKtilde` 有効時は
-`\nbs` で非分割欧文空白(本来の `~` の意味)が挿入できる。また、
-`\standardtilde` は `\CJKtilde` の効力を打ち消す。(これらは CJK
-パッケージの機能である。)
-
- * `autotilde`: 全ての `CJK(*)` 環境の先頭で `\autotilde` が呼び出され
- るようにする。
- * `noautotilde`(既定): `autotilde` の否定。
-
-#### フォントマップ設定
-
-[pxchfon パッケージ] と同等のフォントマップのプリセットが利用できる。
-詳細についてはそちらの解説文書を参照されたい。
-
- * `oneweight`、`nooneweight`: pxchfon と同様。
- * pxchfon で利用可能なプリセットオプション(`ms` 等)が利用できる。
- (旧式のものを除く。)
- * `ttfname=<パターン>`: TTC 代替(後述)を行う場合の TTF フォント名の
- パターンを指定する。
- * `ipaex-type1`: 本パッケージのフォント管理を無効にし、ipaex-type1
- パッケージのファミリ(`ipxm` と `ipxg`)を直接用いる。この設定では
- `\mcdefault` の値は `ipxm` に、`\gtdefault` の値は `ipxg` になる。
-
-[pxchfon パッケージ]: http://www.ctan.org/pkg/pxchfon
-
-#### CJK フォントスケール
-
- * `scale=<実数>`: CJK フォントに対するスケール値を設定する。
-
-※0.3 版より、`ipaex-type1` 指定時も CJK フォントスケールが利用できるよう
-になった。
-
-#### その他のオプション
-
- * `everypage`: フォントマップ情報を出力 DVI 文書の全てのページに出力
- する。`dvipdfmx` ドライバでのみ有効。
- * `noeverypage`(既定): `everypage` の否定。
- * ドライバオプション:
- `pdftex`、`dvipdfmx`、`dvips`、`none` が指定できる。ドライバ設定は
- 既定(ipaex-type1)以外のフォントマップの使用時にのみ意味をもつ。
- さらに、フォントマップ変更は `pdftex` と `dvipdfmx` でのみサポート
- されまたこの 2 つの値は常に自動判定可能(PDF モードでは `pdftex`、
- DVI モードでは `dvipdfmx` が既定)なので、実際にはドライバを指定する
- 必要はない。
- * `substmingoth`: CJK パッケージの日本語用総称ファミリとして慣習的に
- 使われているファミリの `min`/`goth`/`maru` について、LaTeX レベル
- で、本パッケージにおける標準ファミリである `mc`/`gt`/`mg` への代替
- を設定する。これにより、`min` 等のファミリの使用を前提とした日本語湯
- テンプレート等を使う場合においても、論理フォントレベルでの代替設定を
- 行う必要がなくなる。
- * `nosubstmingoth`(既定): `substmingoth` の否定。
- * `boldbyembolden`(既定): CJK パッケージの“擬似太字”(`\CJKbold`)
- の処理方法を“重ね打ち”から“合成太字”に変更する。
- * `noboldbyembolden`: `boldbyembolden` の否定。
-
-#### TTC 代替
-
-pdfTeX エンジンは TTC 形式のフォントをサポートしていない(サポートして
-いる OpenType の形式は単体の TTF グリフのものだけである)。従って、
-`\setminchofont` 命令などで TTC フォントを使おうと望むなら、適当なツール
-を使って TTC フォントファイルを個々の TTF フォントファイルに分解する処理
-を行うことが必須になる。
-
-これはエンジン側の制限仕様のため仕方がないだろう。しかし本パッケージを
-用いる場合には他に問題がある。変換後の TTF フォントはファイル名が元のもの
-と異なるため、プリセット設定(`mobo-moga` 等のオプション)が使えないので
-ある。これを解決するために、0.3 版で `ttfname` オプションが新設された。
-
-例えば、パッケージ読込時に `ttfname=*_1` が指定されたとする。この状態で
-本パッケージの処理において「mogam.ttc の最初(0 番)」が要求された場合、
-代わりに「mogam_1.ttf」というファイルが使われる。同様に、「mogam.ttc の
-1 番、2 番、……」については「mogam_2.ttf」「mogam_3.ttf」……での代替が
-行われる。
-
-`ttfname` で指定するファイル名のパターンには「`*_1`」「`TEMP-*-00.TTF`」
-のように「`*` を 1 つ含み、数字列を含む文字列」が指定できる。この `*` の
-部分は要求の TTC ファイルのベース名(`mogam` 等)で置き換えられ、かつ、
-拡張子がない場合は `.ttf` が補われる。その結果の文字列が TTC の最初(0
-番)のフォントに対する代替ファイル名となる。後続(1 番、2 番、……)の
-代替ファイル名は数字部分をインクリメントしたものになる。
-
-### 機能
-
-#### CJK フォントの選択
-
-本パッケージでは、pLaTeX + [japanese-otf パッケージ] で用いられるものと
-同等の 3 つの「総称」CJK ファミリを用意する: 明朝(`\mcfamily`)、
-ゴシック(`\gtfamily`)、丸ゴシック(`\mgfamily`)。既定では ipaex-type1
-パッケージのフォントが割り当てられている:明朝→IPAex明朝、ゴシック→
-IPAexゴシック。この割り当ては変更可能である。
-
- * `\mcfamily`: CJK ファミリを明朝ファミリに変更する。
- `\CJKfamily{\mcdefault}` と等価である。
- * `\gtfamily`: CJK ファミリをゴシックファミリに変更する。
- `\CJKfamily{\gtdefault}` と等価である。
- * `\mgfamily`: CJK ファミリを丸ゴシックファミリに変更する。
- `\CJKfamily{\mgdefault}` と等価である。
-
-高度な命令:
-
- * `\mcdefault`/`\gtdefault`/`\mgdefault`: 総称ファミリに対応する
- CJK ファミリ名である。標準の割当ではこれらの値は `mc`/`gt`/`mg` で
- ありこの割当が既定で用いられる。
-
- * `\setCJKfamilydefault{<CJKファミリ>}`: 既定の CJK ファミリを設定
- する。この既定値は、ある種の命令(例えば `\CJKfamily{}` や
- `\begin{CJK}{UTF8}{}`)でファミリ名が省略された時に用いられる。
- (再定義後の)`\normalfont` は CJK ファミリをこの命令で設定した既定
- ファミリに変更する。
-
- この既定ファミリの既定値は、文書の本体の先頭で有効である欧文ファミリ
- の「対応ファミリ」となる。(次小節を参照。)
-
-[japanese-otf パッケージ]: http://www.ctan.org/pkg/japanese-otf
-
-#### CJK と欧文のファミリの連動
-
-CJK パッケージ(および pTeX エンジン)では CJK と欧文で別々の「現在
-ファミリ」を管理する。この取扱は利点もあるが、多くの場合はこの 2 つの
-「現在ファミリ」を連動させた方が都合がよい。この為、本パッケージでは現在
-欧文フォントを切り替える幾つかの LaTeX 命令について、CJK ファミリを欧文
-の「対応ファミリ」に切り替えるように再定義する。ここで「対応ファミリ」は
-以下のように定められる:
-
- * `\rmfamily`(セリフ) → `\mcfamily`(明朝)
- * `\sffamily`(サンセリフ) → `\gtfamily`(ゴシック)
- * `\ttfamily`(等幅) → `\gtfamily`(ゴシック)
- * その他のファミリについては、対応ファミリは `\mcfamily` とする。
-
-再定義される命令:
-
- * `\rmfamily`/`\sffamily`/`\ttfamily`: 本来の動作の後、CJKファミリ
- を欧文ファミリの「対応ファミリ」に変更する。
- * `\normalfont`: CJK ファミリを、`\setCJKfamilydefault` 命令により
- 指定された既定 CJK ファミリに変更する。
-
-`CJK`/`CJK*` 環境の省略系:
-
- * `\begin{uCJK*}...\end{uCJK*}`: 次のものと等価:
-
- \begin{CJK*}{UTF8}{対応ファミリ}...\end{CJK*}
-
- ただし `対応ファミリ` は現在の欧文ファミリの対応ファミリを表す。
-
- 次のものと等価ではないことに注意:
-
- \begin{CJK*}{UTF8}{}...\end{CJK*}
-
- こちらは既定の CJK ファミリを使用する。
-
- * `\begin{uCJK}...\end{uCJK}`: 次のものと等価:
-
- \begin{CJK}{UTF8}{対応ファミリ}...\end{CJK}
-
-#### フォントマップ設定
-
-これらの命令の使い方は pxchfon パッケージの時と同じであるので、詳細に
-ついてはそちらの解説文書を参照されたい。
-
- * `\setminchofont[<ID>]{<フォントファイル名>}`
- * `\setgothicfont[<ID>]{<フォントファイル名>}`
- * `\setmarugothicfont[<ID>]{<フォントファイル名>}`
- * `\setmediumminchofont[<ID>]{<フォントファイル名>}`
- * `\setboldminchofont[<ID>]{<フォントファイル名>}`
- * `\setmediumgothicfont[<ID>]{<フォントファイル名>}`
- * `\setboldgothicfont[<ID>]{<フォントファイル名>}`
- * `\setxboldgothicfont[<ID>]{<フォントファイル名>}`
-
-ところが、pdfTeX エンジンについてはフォントマップの仕様に関して重大な
-制限が存在する。TrueType グリフであってかつ TTC 形式でないフォントのみ
-が使用できる。(dvipdfmx 使用時は全ての種類の OpenType フォントが使用
-可能。)
-
-注意: 本パッケージは「明朝・細字」のフォントをサポートしない。従って、
-`\setlightminchofont` は動作しない。
-
-#### その他の命令
-
- * `\UTF{<16進数字>}`: CJK 文字を Unicode 符号値で入力する。例えば、
- `\UTF{5B57}` は `\Unicode{"5B}{"57}` と等価である。
-
- * `\CJKforce{<character>...}`: 以降は引数の中にある各々の文字を CJK
- 文字として扱う(CJK フォントで出力される)。
-
- * `\CJKunforce{<character>...}`: `\CJKforce` の効果を打ち消す。
-
- * `\@<character>`: 非 ASCII 文字の前に `\@` がある場合は、その文字
- (その出現のみ)を CJK 文字として扱う。ASCII 文字の前の `\@` は
- LaTeX 本来の意味を保持する。
-
- * `\CJKecglue`: 和欧文間空白を挿入する。`\CJKtilde` が有効な時は `~`
- はこの命令を呼び出す。この命令をユーザが再定義して和欧文間空白の量を
- 調節することができる(和文間空白の `\CJKglue` と同様)。
-
- 使用例:
+bxcjkvert パッケージ
+--------------------
- \renewcommand{\CJKecglue}{\hspace{0.125em minus 0.125em}}
+CJKvert パッケージの改造版であり、縦組と横組の混在が普通に起こりうる
+日本語組版に適合させたものである。
-### 補足事項
+詳細についてはユーザマニュアルを参照されたい。
- * 本パッケージで標準に用いられるフォントは、例えそれに ipaex-type1 の
- フォントが割り当てられている場合でも、縦書きをサポートしない。しかし
- ipaex-type1 が提供するファミリ(`ipxm` と `ipxg`)は縦書きをサポート
- しており、`ipaex-type1` オプションを指定することでそれらのファミリを
- 直接使うことができる。
+ * bxcjkvert.pdf: ユーザマニュアル(英語版)
+ * bxcjkvert-ja.pdf: ユーザマニュアル(日本語版)
更新履歴
--------
+ * Version 0.5 ‹2023/07/23›
+ - 最新の LaTeX への対応。
+
+ * Version 0.4 ‹2016/11/11›
+ - bxcjkvert パッケージを追加。
+ - `CJKtildeasspace` オプションを追加。
+ - (試験的) `defaultmingoth` オプションを追加。
+
* Version 0.3 ‹2016/10/15›
- CJKvert パッケージによる縦組と共存を可能にした。
- hyperref での PDF 文字列の文字化けを防止し。
@@ -281,4 +80,4 @@ CJK パッケージ(および pTeX エンジン)では CJK と欧文で別
--------------------
Takayuki YATO (aka. "ZR")
-http://zrbabbler.sp.land.to/
+https://github.com/zr-tex8r
diff --git a/language/japanese/BX/bxcjkjatype/README.md b/language/japanese/BX/bxcjkjatype/README.md
index 1a2fe8242d..fdc4ae63d2 100644
--- a/language/japanese/BX/bxcjkjatype/README.md
+++ b/language/japanese/BX/bxcjkjatype/README.md
@@ -34,228 +34,36 @@ This package is distributed under the MIT License.
The bxcjkjatype Package
-----------------------
-### Package Loading
+This is the main package of this bundle.
- \usepackage[<option>,...]{bxcjkjatype}
+Please refer to the user manual for detail.
-The available options are described hereafter.
+ * bxcjkjatype.pdf: the user manual (in English)
+ * bxcjkjatype-ja.pdf: the user manual (in Japanese)
-#### Options for auto-wrapping
+The bxcjkvert Package
+---------------------
-These options enable one to wrap the document body with a `CJK(*)`
-environemnt automatically and safely. They are suitable when a document
-contains much amount of CJK text, or some “moving arguemnts” hold
-CJK text.
+Thia package is a tailored version of the CJKvert package,
+accommodated for Japanese typesetting, where mixture of horizontal
+and vertical writings is common.
- * `whole`, `wholeCJK*`: Wraps the whole document body with a `CJK*`
- environment (precisely speaking, with
- `\begin{uCJK*}` ... `\end{uCJK*}` ).
- * `wholeCJK`: Wraps the whole document body with a `CJK` environment
- (precisely speaking, with
- `\begin{uCJK}` ... `\end{uCJK}` ).
- * `nowhole` (default): Negation of `wholeCJK*` or `wholeCJK`.
+Please refer to the user manual for detail.
-#### Options for “auto-tilde”
-
-The option `autotilde` triggers automatic invocation of `\CJKtilde`,
-which makes a tilde character (`~`) insert “shibuaki” (a thin space
-between alphabetic and ideographic letters) rather than a no-break
-space (standard). No-break spaces can still be inserted by the command
-`\nbs`, and `\standardtilde` cancels the effect of `\CJKtilde`. (The
-commands mentioned here belong to CJK package.)
-
- * `autotilde`: Makes `\CJKtilde` invoked at the beginning of every
- `CJK(*)` environemnt.
- * `noautotilde` (default): Negation of `autotilde`.
-
-#### Options for font-mapping
-
-One can use preset font mappings in the same way as in the [pxchfon
-package]. Please refer to the manual of that package for detailed
-explanation of this feature.
-
- * `oneweight`, `nooneweight`: The same as in pxchfon.
- * One can use font preset options (such as `ms`) which are available
- in pxchfon (except obsolete ones).
- * `ttfname=<pattern>`: Specifies the pattern of the TTF font names
- which are used when TTC substitution is employed. For example,
- when `ttfname=*_1` is given, the font “index 0 of mogam.ttc” will
- map to “mogam_1.ttf”, and similarly, “index 1” to “mogam_2.ttf”
- and so on.
- * `ipaex-type1`: Disables the font management of this package and
- directly uses the families provided by the ipaex-type1 package,
- namely `ipxm` and `ipxg`. In this setting the value of `\mcdefault`
- is `ipxm` and the value of `\gtdefault` and `\mgdefault` is `ipxg`,
- so that the higher level commands (such as `\sffamily` and
- `\gtfamily`) can work correctly.
-
-[pxchfon package]: http://www.ctan.org/pkg/pxchfon
-
-#### Options for CJK font scaling
-
- * `scale=<real>`: Sets the scaling factor for CJK fonts.
-
-(With version 0.3 or later, one can employ the scaling even with the
-`ipaex-type1` option.)
-
-#### Other options
-
- * `everypage`: Outputs the font mapping information on every page of
- the resulted DVI document. Available only with `dvipdfmx` driver.
- * `noeverypage` (default): Negation of `everypage`.
- * driver options:
- `pdftex`, `dvipdfmx`, `dvips` and `none` are available. The driver
- setting is relevant only when using font mappings other than the
- default one (ipaex-type1 fonts), so one need not care of drivers
- in using default fonts. Moreover, non-default font mappings are
- supported only by `pdftex` and `dvipdfmx`, and these two values are
- auto-detected (`pdftex` is default in PDF mode and `dvipdfmx` in
- DVI mode). Thus one will never need to specify the driver.
- * `substmingoth`: Applies the substituion of families `min`, `goth`
- and `maru` (used conventionally for Japanese) with families `mc`,
- `gt` and `mg` (standard in this package).
- * `nosubstmingoth` (default): Negation of `substmingoth`.
- * `boldbyembolden` (default): Changes the implemention of `\CJKbold`
- (pseudo-bold) from “overstriking” to “synthetic emboldening”.
- * `noboldbyembolden`: Negation of `boldbyembolden`.
-
-### Usage
-
-#### Selecting CJK fonts
-
-The present package provides three “generic” CJK families in the same
-way as pLaTeX plus the [japanese-otf package]: Mincho family
-(`\mcfamily`), Gothic family (`\gtfamily`), and Maru-gothic family
-(`\mgfamily`). In default setting, the font set from the ipaex-type1
-package are allocated; Mincho family uses IPAex Mincho font, and Gothic
-and Maru-gothic families use IPAex Gothic font. This allocation can be
-altered by users.
-
- * `\mcfamily`: Changes the CJK family to Mincho family. Equivalent
- to `\CJKfamily{\mcdefault}`.
- * `\gtfamily`: Changes the CJK family to Gothic family. Equivalent
- to `\CJKfamily{\gtdefault}`.
- * `\mgfamily`: Changes the CJK family to Maru-gothic family.
- Equivalent to `\CJKfamily{\mgdefault}`.
-
-More advanced commands:
-
- * `\mcdefault`/`\gtdefault`/`\mgdefault`: The names of CJK families
- corresponding to the three generic families. In the standard
- allocation their values are `mc`/`gt`/`mg` respectively and the
- allocation is used as default.
-
- * `\setCJKfamilydefault{<CJK-family>}`: Declares the default CJK
- family. This default value is used when family names are missing
- in some commands, such as `\CJKfamily{}` and `\begin{CJK}{UTF8}{}`.
- The (redefined) `\normalfont` also switches the CJK family to the
- family specified by this command.
-
- The default value of this default family is the “counterpart” of
- the alphabetic font family which is in effect at the beginning of
- the document body. (See the next subsection.)
-
-[japanese-otf package]: http://www.ctan.org/pkg/japanese-otf
-
-#### Synchronization of CJK and non-CJK families
-
-The CJK package (and pTeX engine) manages separate “current families”
-for CJK and alphabetic (non-CJK) families. While this treatment has its
-merit, synchronization of the two “current families” is convenient in
-many cases. Accordingly, tHe present package redefines some of the
-LaTeX commands that switches current alphabetic font families so that
-the CJK family will be switched to the counterpart of the current
-alphabetic family, where the “counterpart” is defined as follows:
-
- * `\rmfamily` (Serif) → `\mcfamily` (Mincho)
- * `\sffamily` (Sans-serif) → `\gtfamily` (Gothic)
- * `\ttfamily` (Monospace) → `\gtfamily` (Gothic)
- * The counterpart of the other families is `\mcfamily`.
-
-Redefined commands:
-
- * `\rmfamily`/`\sffamily`/`\ttfamily`: Changes the CJK family to
- the counterpart of the alphabetic font family after executing the
- original function.
- * `\normalfont`: Changes the CJK family to the default CJK family
- specified by `\setCJKfamilydefault` command.
-
-There are shorthand forms of `CJK`/`CJK*` environemnts:
-
- * `\begin{uCJK*}...\end{uCJK*}`: Equivalent to:
-
- \begin{CJK*}{UTF8}{counterpart}...\end{CJK*}
-
- where `counterpart` means the counterpart of the current alphabetic
- font family.
-
- Note that this is *not* equivalent to
-
- \begin{CJK*}{UTF8}{}...\end{CJK*}
-
- structure, which uses the default CJK family.
-
- * `\begin{uCJK}...\end{uCJK}`: Equivalent to:
-
- \begin{CJK}{UTF8}{counterpart}...\end{CJK}
-
-#### Font mapping
-
-The usage of these commands are the same as in the pxchfon package.
-Please refer to the manual of that package for detail.
-
- * `\setminchofont[<id>]{<font-file>}`
- * `\setgothicfont[<id>]{<font-file>}`
- * `\setmarugothicfont[<id>]{<font-file>}`
- * `\setmediumminchofont[<id>]{<font-file>}`
- * `\setboldminchofont[<id>]{<font-file>}`
- * `\setmediumgothicfont[<id>]{<font-file>}`
- * `\setboldgothicfont[<id>]{<font-file>}`
- * `\setxboldgothicfont[<id>]{<font-file>}`
-
-However there is a major limitation as to the use of font mapping with
-the pdfTeX engine. One can use only TrueType fonts and moreover
-TTC format is not allowed. (One can use any flavor of OpenType fonts
-when using dvipdfmx.)
-
-Note: The present package does not support the light-weight Mincho font,
-and thus `\setlightminchofont` does nothing useful.
-
-#### Other commands
-
- * `\UTF{<hexadecimal-number>}`: Inputs a CJK character through Unicode
- codepoint value. `\UTF{5B57}` is equivalent to `\Unicode{"5B}{"57}`.
-
- * `\CJKforce{<character>...}`: Afterwards Treats the characters given
- in the argument as CJK characters (printed using CJK fonts).
-
- * `\CJKunforce{<character>...}`: Cancels the effect of the `\CJKforce`
- command.
-
- * `\@<character>`: Treats the next character (only that occurrence)
- as a CJK character, when the character is outside ASCII; othersize
- the normal meaning of `\@` is retained.
-
- * `\CJKecglue`: Insers a “shibuaki” space. This will be invoked by
- `~` when `\CJKtilde` is in effect. This command can be redefined by
- users to adjust the value of shibuaki space, just as `\CJKglue` can
- be redefined to adjust inter-ideographic space.
-
- For example:
-
- \renewcommand{\CJKecglue}{\hspace{0.125em minus 0.125em}}
-
-### Remarks
-
- * The standard font families provided by this package does *not*
- support vertical writing, even when using default ipaex-type1 font
- set. However, the families provided by ipaex-type1 (`ipxm` and
- `ipxg`) do support vertical writing, and one can utilize these
- families directly by specifying `ipaex-type1` option.
+ * bxcjkvert.pdf: the user manual (in English)
+ * bxcjkvert-ja.pdf: the user manual (in Japanese)
Revision History
----------------
+ * Version 0.5 ‹2023/07/23›
+ - Adjustment for the recent LaTeX kernel.
+
+ * Version 0.4 ‹2016/11/11›
+ - Added bxcjkvert package.
+ - Added `CJKtildeasspace` option.
+ - (Experimental) Added `defaultmingoth` option.
+
* Version 0.3 ‹2016/10/15›
- Made the vertical writing work well (with CJKvert).
- Avoided garbling of PDF strings created by hyperref.
@@ -279,4 +87,4 @@ Revision History
--------------------
Takayuki YATO (aka. "ZR")
-http://zrbabbler.sp.land.to/
+https://github.com/zr-tex8r
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.pdf b/language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.pdf
new file mode 100644
index 0000000000..c626abe273
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.pdf
Binary files differ
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.tex b/language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.tex
new file mode 100644
index 0000000000..663599bfe4
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.tex
@@ -0,0 +1,400 @@
+% LuaLaTeX 文書; 文字コードは UTF-8
+\documentclass[a4paper]{ltjsarticle}
+\renewcommand{\headfont}{\gtfamily\romanseries{sbc}\sffamily}
+\usepackage{geometry}
+\usepackage{xcolor}
+\usepackage[unicode,colorlinks,hyperfootnotes=false]{hyperref}
+\hypersetup{linkcolor=blue!75!black,urlcolor=green!45!black}
+\usepackage{shortvrb}
+\MakeShortVerb{\|}
+\usepackage{verbatim}
+\newenvironment{myverbatim}
+ {\begin{quote}\small\verbatim}
+ {\endverbatim\end{quote}}
+\newcommand{\PkgVersion}{0.5}
+\newcommand{\PkgDate}{2023/07/23}
+\newcommand{\Pkg}[1]{\textsf{#1}}
+\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
+\newcommand{\Note}{\par\noindent ※}
+\newcommand{\Means}{:\quad}
+\newcommand{\Strong}{\textsf}
+\newcommand{\wbr}{\linebreak[0]}
+\providecommand{\pTeX}{p\TeX}
+\providecommand{\pLaTeX}{p\LaTeX}
+\providecommand{\pdfTeX}{pdf\/\TeX}
+%-----------------------------------------------------------
+\begin{document}
+\title{\Pkg{bxcjkjatype} パッケージ}
+\author{八登崇之\ (Takayuki YATO; aka.~``ZR'')}
+\date{v\PkgVersion\quad[\PkgDate]}
+\maketitle
+
+\begin{abstract}
+本パッケージは、日本語組版に適した\Pkg{CJK}パッケージの設定を提供する。
+その上で、{\pLaTeX}ユーザにとって\Pkg{CJK}パッケージの使用が容易に
+するために、{\pLaTeX}カーネルや{\pLaTeX}用パッケージのものに
+類似した命令を提供する。
+\end{abstract}
+
+\tableofcontents
+
+%===========================================================
+\section{パッケージ読込}
+\label{sec:loading}
+
+\begin{verbatim}
+\usepackage[オプション,...]{bxcjkjatype}
+\end{verbatim}
+
+利用可能なオプションを以下で挙げる。
+
+%-------------------
+\subsection{CJK環境の自動付加}
+
+文書本体を |CJK(*)| 環境で自動的かつ安全に囲うためのオプション。
+文書全体においてCJKを有効にしたい場合、
+および「動く引数」にCJKテキストが含まれる場合は
+これを使うのが適切である。
+
+\begin{itemize}
+\item |whole|、|wholeCJK*|\Means
+ 文書全体を |CJK*| 環境で囲う。
+ \Note 厳密に言うと |\begin{uCJK*}~\end{uCJK*}| で囲う。
+\item |wholeCJK|\Means
+ 文書全体を |CJK| 環境で囲う。
+ \Note 厳密に言うと |\begin{uCJK}~\end{uCJK}| で囲う。
+\item |nowhole|(既定)\Means
+ |wholeCJK*| 及び |wholeCJK| の否定。
+\end{itemize}
+
+%-------------------
+\subsection{「自動チルダ」}
+
+{\pTeX}エンジンや\Pkg{luatexja}パッケージと異なり、
+\Pkg{CJK}パッケージには和欧文間空白(いわゆる“四分空き”)を
+自動挿入する機能はないので、
+文書作成者が手動で入れる必要がある。
+この負担を軽減するため、\Pkg{CJK}パッケージでは
+「非分割欧文空白を入れる命令であるチルダ“|~|”を
+和欧文間空白を入れる命令に切り替える」
+ための機構を用意している。
+|\CJKtilde| という命令を実行すると“|~|”が和欧文間空白に切り替わる%
+\footnote{|\standardtilde| は |\CJKtilde| の効力を打ち消して
+“|~|”の意味を本来の非分割欧文空白に戻す。
+また、|\CJKtilde| 有効時に非分割欧文空白を入れるために、
+常に非分割欧文空白を表す |\nbs| という命令が用意されている。}。
+
+本パッケージで |autotilde| オプションを指定すると、
+|CJK(*)| 環境に入ったときに |\CJKtilde| が自動的に呼び出される
+ようになる。
+このため |CJK(*)| 環境内では“|~|”が和欧文間空白の意味になる。
+
+\begin{itemize}
+\item |autotilde|\Means
+ 全ての |CJK(*)| 環境の先頭で |\autotilde| が呼び出されるようにする。
+\item |noautotilde|(既定)\Means
+ |autotilde| の否定。
+\end{itemize}
+
+%-------------------
+\subsection{PDF文字列中の和欧文間空白の扱い}
+
+先述の通り、{\LaTeX}の文法ではチルダ“|~|”は非分割欧文空白を表す。
+従って、\Pkg{hyperref}パッケージがPDF文字列を生成する際には、
+{\LaTeX}テキスト中の“|~|”は空白文字に変換される。
+
+ところが |\CJKtilde| が有効である場合はこの挙動には問題がある。
+|\CJKtilde| 適用時は“|~|”の意味が和欧文間空白に変わるが、
+和欧文間空白は組版上の現象でありテキスト情報としての空白ではない
+からである。
+従って、本パッケージを読み込んだ場合には、
+|\CJKtilde| 適用時の“|~|”はPDF文字列への変換の際には
+削除される仕様に変更される。
+
+さらに、この挙動はオプションで制御することができる。
+
+\begin{itemize}
+\item |noCJKtildeasspace|(既定)\Means
+ |\CJKtilde| 適用時の“|~|”はPDF文字列では削除される。
+\item |CJKtildeasspace|\Means
+ |\CJKtilde| 適用時の“|~|”はPDF文字列では空白文字に
+ 変換される。
+ \Note 本来の\Pkg{hyperref}の挙動と同じ。
+\end{itemize}
+
+%-------------------
+\subsection{フォントマップ設定}
+
+\href{http://www.ctan.org/pkg/pxchfon}{\Pkg{pxchfon}パッケージ}%
+と同等のフォントマップのプリセットが利用できる。
+詳細についてはそちらの解説文書を参照されたい。
+
+\begin{itemize}
+\item |oneweight|、|nooneweight|\Means
+ \Pkg{pxchfon}と同様。
+\item \Pkg{pxchfon}で利用可能なプリセットオプション(|ms| 等)が
+ 利用できる。
+ (非推奨のものを除く。)
+\item |ttfname=|\Meta{パターン}\Means
+ TTC代替(\ref{ssec:ttfname}節)を行う場合のTTFフォント名のパターン。
+\item |ipaex-type1|\Means
+ 本パッケージのフォント管理を無効にし、\Pkg{ipaex-type1}パッケージ
+ のファミリ(|ipxm| と |ipxg|)を直接用いる。
+ この設定では |\mcdefault| の値は |ipxm| に、|\gtdefault| の
+ 値は |ipxg| になる。
+\end{itemize}
+
+%-------------------
+\subsection{CJKフォントスケール}
+
+\begin{itemize}
+\item |scale=|\Meta{実数}\Means
+ CJKフォントに対するスケール値を設定する。
+\end{itemize}
+
+\Note 0.3版より、|ipaex-type1| 指定時もCJKフォントスケールが
+利用できるようになった。
+
+%-------------------
+\subsection{その他のオプション}
+
+\begin{itemize}
+\item |everypage|\Means
+ フォントマップ情報を出力DVI文書の全てのページに出力する。
+ |dvipdfmx| ドライバでのみ有効。
+\item |noeverypage|(既定)\Means
+ |everypage| の否定。
+\item ドライバオプション\Means
+ |pdftex|、|dvipdfmx|、|dvips|、|none| が指定できる。
+ ドライバ設定は既定(ipaex-type1)以外のフォントマップの使用時に
+ のみ意味をもつ。
+ さらに、フォントマップ変更は |pdftex| と |dvipdfmx| でのみ
+ サポートされ、またこの2つの値は常に自動判定可能
+ (PDFモードでは |pdftex|、DVIモードでは |dvipdfmx| が既定)
+ なので、実際にはドライバを指定する必要はない。
+\item |substmingoth|\Means
+ CJKパッケージの日本語用総称ファミリとして慣習的に使われている
+ ファミリの |min|/|goth|/|maru| について、{\LaTeX} レベルで、
+ 本パッケージにおける標準ファミリである |mc|/|gt|/|mg| への
+ 代替を設定する。
+ これにより、|min| 等のファミリの使用を前提とした日本語用
+ テンプレート等を使う場合においても、論理フォントレベルでの代替設定を
+ 行う必要がなくなる。
+\item |nosubstmingoth|(既定)\Means
+ |substmingoth| の否定。
+\item |boldbyembolden|(既定)\Means
+ \Pkg{CJK}パッケージの“擬似太字”(|\CJKbold|)の処理方法を
+ “重ね打ち”から“合成太字”に変更する。
+\item |noboldbyembolden|\Means
+ |boldbyembolden| の否定。
+\end{itemize}
+
+%-------------------
+\subsection{TTC代替}
+\label{ssec:ttfname}
+
+{\pdfTeX}エンジンはTTC形式のフォントをサポートしていない
+(サポートしているOpenTypeの形式は単体のTTFグリフのものだけである)。
+従って、|\setminchofont| 命令等でTTCフォントを使おうと望むなら、
+適当なツールを使ってTTCフォントファイルを個々のTTFフォントファイル
+に分解する処理を行うしかない\footnote{%
+もちろん、ライセンスの規定のためそれができない場合もある。}。
+
+これはエンジン側の制限仕様のため仕方がないだろう。
+しかし本パッケージを用いる場合には他に問題がある。
+変換後のTTFフォントはファイル名が元のものと異なるため、
+プリセット設定(|mobo-moga| 等のオプション)が使えないのである。
+これを解決するために、0.3版で |ttfname| オプションが新設された。
+
+例えば、パッケージ読込時に |ttfname=*_1| が指定されたとする。
+この状態で本パッケージの処理において「mogam.ttcの最初(0番)」
+が要求された場合、代わりに「mogam\_1.ttf」というファイルが使われる。
+同様に、「mogam.ttcの1番、2番、……」については
+「mogam\_2.ttf」「mogam\_3.ttf」……での代替が行われる。
+
+|ttfname| で指定するファイル名のパターンには「|*_1|」
+「|TEMP-*-00.TTF|」のように「|*| を1つ含み、数字列を含む文字列」
+が指定できる。
+この |*| の部分はプリセットが要求するTTCファイルの
+ベース名(|mogam| 等)で
+置き換えられ、かつ、拡張子がない場合は |.ttf| が補われる。
+その結果の文字列がTTCの最初(0番)のフォントに対する
+代替ファイル名となる。
+後続(1番、2番、……)の代替ファイル名は数字部分を
+インクリメントしたものになる。
+
+%===========================================================
+\section{機能}
+\label{sec:usage}
+
+%-------------------
+\subsection{CJKフォントの選択}
+
+本パッケージでは、{\pLaTeX} +
+\href{http://www.ctan.org/pkg/japanese-otf}{\Pkg{japanese-otf}パッケージ}%
+で用いられるものと同等の3つの「総称」CJKフォントファミリを用意している:
+明朝(|\mcfamily|)、ゴシック(|\gtfamily|)、
+丸ゴシック(|\mgfamily|)。
+既定では\Pkg{ipaex-type1}パッケージのフォントが割り当てられている:
+明朝→IPAex明朝、ゴシック・丸ゴシック→IPAexゴシック。
+この割当は変更可能である。
+
+\begin{itemize}
+\item |\mcfamily|\Means
+ CJKファミリを明朝ファミリに変更する。
+ \Note |\CJKfamily{mcdefault}| と等価である。
+\item |\gtfamily|\Means
+ CJKファミリをゴシックファミリに変更する。
+ \Note |\CJKfamily{gtdefault}| と等価である。
+\item |\mgfamily|\Means
+ CJKファミリを丸ゴシックファミリに変更する。
+ \Note |\CJKfamily{mgdefault}| と等価である。
+\end{itemize}
+
+高度な命令\Means
+
+\begin{itemize}
+\item |\mcdefault|/|\gtdefault|/|\mgdefault|\Means
+ 総称ファミリに対応するCJKファミリ名である。
+ 標準の割当ではこれらの値は |mc|/|gt|/|mg| でありこの割当が
+ 既定で用いられる。
+\item |\setCJKfamilydefault{|\Meta{CJKファミリ}|}|\Means
+ 既定のCJKファミリを設定する。
+ この既定値は、ある種の命令(例えば |\CJKfamily{}|
+ や |\begin{CJK}{UTF8}{}|)でファミリ名が省略された時に用いられる。
+ (再定義後の)|\normalfont| はCJKファミリをこの命令で設定した
+ 既定ファミリに変更する。
+
+ この既定ファミリの既定値は、文書の本体の先頭で有効になっている
+ 欧文ファミリの「対応ファミリ」
+ (\ref{ssec:sync-families}節)となる。
+\end{itemize}
+
+%-------------------
+\subsection{CJKと欧文のファミリの連動}
+\label{ssec:sync-families}
+
+\Pkg{CJK}パッケージ(および{\pTeX}エンジン)ではCJKと欧文で
+別々の「現在ファミリ」を管理する。
+この取扱は利点もあるが、多くの場合はこの2つの「現在ファミリ」を
+連動させた方が都合がよい。
+このため、本パッケージでは現在欧文フォントを切り替える幾つかの
+{\LaTeX}命令について、CJKファミリを欧文の「対応ファミリ」に
+切り替えるように改修する。
+ここで「対応ファミリ」は以下のように定められる:
+
+\begin{itemize}
+\item |\rmfamily|(セリフ) → |\mcfamily|(明朝)
+\item |\sffamily|(サンセリフ) → |\gtfamily|(ゴシック)
+\item |\ttfamily|(等幅) → |\gtfamily|(ゴシック)
+\item その他のファミリについては、対応ファミリは |\mcfamily| とする。
+\end{itemize}
+
+改修される命令:
+
+\begin{itemize}
+\item |\rmfamily|/|\sffamily|/|\ttfamily|\Means
+ 本来の動作の後、CJKファミリを欧文ファミリの「対応ファミリ」
+ に変更する。
+\item
+ |\normalfont|\Means
+ CJKファミリを、|\setCJKfamilydefault| 命令により指定された
+ 既定CJKファミリに変更する。
+\end{itemize}
+
+|CJK|/|CJK*| 環境の省略系\Means
+
+\begin{itemize}
+\item |\begin{uCJK*}...\end{uCJK*}|\Means
+ 次のものと等価\Means
+\begin{verbatim}
+\begin{CJK*}{UTF8}{対応ファミリ}...\end{CJK*}
+\end{verbatim}
+ ただし“|対応ファミリ|”は現在の欧文ファミリの対応ファミリを表す。
+
+ 次のものと等価では\Strong{ない}ことに注意\Means
+\begin{verbatim}
+\begin{CJK*}{UTF8}{}...\end{CJK*}
+\end{verbatim}
+ こちらは既定のCJKファミリ(|\setCJKfamilydefault| の設定)
+ を使用する。
+
+\item |\begin{uCJK}...\end{uCJK}|\Means
+ 次のものと等価\Means
+\begin{verbatim}
+\begin{CJK}{UTF8}{対応ファミリ}...\end{CJK}
+\end{verbatim}
+\end{itemize}
+
+%-------------------
+\subsection{フォントマップ設定}
+
+これらの命令の使い方は\Pkg{pxchfon}パッケージの時と同じであるので、
+詳細については\Pkg{pxchfon}の解説文書を参照されたい。
+
+\begin{itemize}
+\item |\setminchofont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setgothicfont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setmarugothicfont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setmediumminchofont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setboldminchofont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setmediumgothicfont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setboldgothicfont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setxboldgothicfont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\end{itemize}
+
+ただし、{\pdfTeX}エンジン使用時は、
+エンジン自体の制限仕様のため、
+「TrueTypeグリフであってかつTTC形式で\Strong{ない}フォント」
+のみが使用できる。
+(dvipdfmx使用時は全ての種類のOpenTypeフォントが使用可能。)
+
+\Note
+本パッケージは「明朝・細字」のフォントをサポートしない。
+従って、|\setlightminchofont| は動作しない。
+
+%-------------------
+\subsection{その他の命令}
+
+\begin{itemize}
+\item |\UTF{|\Meta{16進数字}|}|\Means
+ CJK文字をUnicode符号値で入力する。
+ 例えば、|\UTF{5B57}| は |\Unicode{"5B}{"57}| と等価である。
+\item |\CJKforce{|\Meta{文字}…|}|\Means
+ 以降は引数の中にある各々の文字をCJK文字として扱う
+ (CJKフォントで出力される)。
+\item
+ |\CJKunforce{|\Meta{文字}…|}|\Means
+ |\CJKforce| の効果を打ち消す。
+\item |\@|\Meta{文字}\Means
+ 非ASCII文字の前に |\@| がある場合は、その文字(その出現のみ)を
+ CJK文字として扱う。
+ ASCII文字の前の |\@| は{\LaTeX}本来の意味を維持する。
+\item |\CJKecglue|\Means
+ 和欧文間空白を挿入する。
+ |\CJKtilde| が有効時の“|~|”に相当する
+ (“|~|”実際にこの命令を呼び出す)。
+ この命令をユーザが再定義して和欧文間空白の量を調節することが
+ できる(和文間空白の |\CJKglue| と同様)。
+
+ 使用例\Means
+\begin{verbatim}
+\renewcommand{\CJKecglue}{\hspace{0.125em minus 0.125em}}
+\end{verbatim}
+\end{itemize}
+
+%===========================================================
+\section{補足事項}
+\label{sec:remarks}
+
+\begin{itemize}
+\item 本パッケージで標準に用いられるフォントは、例えそれに
+ ipaex-type1のフォントが割り当てられている場合でも、縦書きを
+ サポートしない。
+ しかし\Pkg{ipaex-type1}が提供するファミリ(|ipxm| と |ipxg|)そのものは
+ 縦書きをサポートしており、|ipaex-type1| オプションを指定することで
+ それらのファミリを直接使うことができる。
+\end{itemize}
+
+%===========================================================
+\end{document}
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkjatype.pdf b/language/japanese/BX/bxcjkjatype/bxcjkjatype.pdf
new file mode 100644
index 0000000000..a29061a3a3
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkjatype.pdf
Binary files differ
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkjatype.sty b/language/japanese/BX/bxcjkjatype/bxcjkjatype.sty
index f530e030e9..c116773672 100644
--- a/language/japanese/BX/bxcjkjatype/bxcjkjatype.sty
+++ b/language/japanese/BX/bxcjkjatype/bxcjkjatype.sty
@@ -1,7 +1,7 @@
%%
%% This is file 'bxcjkjatype.sty'.
%%
-%% Copyright (c) 2016 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2013-2023 Takayuki YATO (aka. "ZR")
%% GitHub: https://github.com/zr-tex8r
%% Twitter: @zr_tex8r
%%
@@ -10,13 +10,40 @@
%% package declaration
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{bxcjkjatype}[2016/10/15 v0.3]
+\ProvidesPackage{bxcjkjatype}[2023/07/23 v0.5]
\def\bxjy@pkgname{bxcjkjatype}
-
-%% definitions
\def\bxjy@error{\PackageError\bxjy@pkgname}
-\def\bxjy@warn{\PackageWarning\bxjy@pkgname}
-\def\bxjy@info{\PackageInfo\bxjy@pkgname}
+
+%--------------------------------------- environment check
+
+%% \bxjy@ifprimitive\CS{<true>}{<false>}
+\@onlypreamble\bxjy@ifprimitive
+\def\bxjy@ifprimitive#1{%
+ \edef\bxjy@tmpa{\string#1}\edef\bxjy@tmpb{\meaning#1}%
+ \ifx\bxjy@tmpa\bxjy@tmpb\expandafter\@firstoftwo
+ \else\expandafter\@secondoftwo\fi
+}
+
+%% engine check
+\@tempswatrue
+\bxjy@ifprimitive\eTeXversion{}{%else
+ \IfFileExists{bxcjkjatype-lite.sty}{%
+ \PackageWarningNoLine\bxjy@pkgname
+ {The e-TeX extension is missing,\MessageBreak
+ so Lite version is used instead}%
+ \RequirePackageWithOptions{bxcjkjatype-lite}\relax
+ \endinput\relax
+ }{\@tempswafalse}%
+}
+\bxjy@ifprimitive\kanjiskip{\@tempswafalse}{}
+\bxjy@ifprimitive\luatexversion{\@tempswafalse}{}
+\bxjy@ifprimitive\XeTeXversion{\@tempswafalse}{}
+\if@tempswa\else
+ \PackageError\bxjy@pkgname
+ {The engine in use is not supported}%
+ {Only pdfTeX engine is supported.\MessageBreak
+ Package loading is aborted.}
+\expandafter\endinput\fi\relax
%--------------------------------------- helpers
@@ -29,34 +56,11 @@
\def\bxjy@mark{\bxjy@mark@}
\def\bxjy@end{\bxjy@end@}
-%% \bxjy@ifprimitive\CS{<true>}{<false>}
-\@onlypreamble\bxjy@ifprimitive
-\def\bxjy@ifprimitive#1{%
- \edef\bxjy@tmpa{\string#1}%
- \edef\bxjy@tmpb{\meaning#1}%
- \ifx\bxjy@tmpa\bxjy@tmpb \expandafter\@firstoftwo
- \else \expandafter\@secondoftwo \fi
-}
-
%% \bxjy@cond\ifXX...\fi{<true>}{<false>}
\@gobbletwo\if\if \def\bxjy@cond#1\fi{%
#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
}
-%--------------------------------------- environment check
-
-%% engine check
-\bxjy@oktrue
-\bxjy@ifprimitive\kanjiskip{\bxjy@okfalse}{}
-\bxjy@ifprimitive\luatexversion{\bxjy@okfalse}{}
-\bxjy@ifprimitive\XeTeXversion{\bxjy@okfalse}{}
-\bxjy@ifprimitive\eTeXversion{}{\bxjy@okfalse}
-\ifbxjy@ok\else
- \bxjy@error{The engine in use is not supported}%
- {Only pdfTeX engine is supported.\MessageBreak
- Package loading is aborted.}
-\expandafter\endinput\fi\relax
-
%--------------------------------------- option handling
%% using keyval
@@ -80,8 +84,10 @@
\DeclareOption{everypage}{\bxjy@everypagetrue}
\DeclareOption{noeverypage}{\bxjy@everypagefalse}
\newif\ifbxjy@ipaex
+\newif\ifbxjy@defaultmin
\let\bxjy@oneweight=f
\DeclareOption{ipaex-type1}{\bxjy@ipaextrue}
+\DeclareOption{defaultmingoth}{\bxjy@defaultmintrue}
\DeclareOption{oneweight}{\let\bxjy@oneweight=t}
\DeclareOption{nooneweight}{\let\bxjy@oneweight=f}
\newif\ifbxjy@autotilde
@@ -99,14 +105,20 @@
\newif\ifbxjy@substmin
\DeclareOption{substmingoth}{\bxjy@substmintrue}
\DeclareOption{nosubstmingoth}{\bxjy@substminfalse}
+\newif\ifbxjy@tildespace
+\DeclareOption{CJKtildeasspace}{\bxjy@tildespacetrue}
+\DeclareOption{noCJKtildeasspace}{\bxjy@tildespacefalse}
% preset spec options
+% NB. All of the (non-obsolete) options of pxchfon are also
+% listed here, but some of them are useless in this package.
\def\bxjy@all@main@preset{%
%(uniweight)
ms,ipa,ipaex,%
%(multiweight)
- ms-hg,ipa-hg,moga-mobo,moga-maruberi,%
- kozuka-pro,kozuka-pr6,kozuka-pr6n,%
- hiragino-pro,hiragino-pron,morisawa-pro,morisawa-pr6n}
+ ms-hg,ipa-hg,ipaex-hg,moga-mobo,moga-maruberi,%
+ kozuka-pro,kozuka-pr6,kozuka-pr6n,hiragino-pro,hiragino-pron,%
+ hiragino-elcapitan-pro,hiragino-elcapitan-pron,%
+ morisawa-pro,morisawa-pr6n,yu-win,yu-win10,yu-osx}
\let\bxjy@main@preset\relax
\def\bxjy@do#1{\DeclareOption{#1}{\def\bxjy@main@preset{#1}}}
\@for\bxjy@x:=\bxjy@all@main@preset\do{%
@@ -119,14 +131,15 @@
\let\bxjy@scale\relax
\define@key{bxjy}{scale}{%
\def\bxjy@scale{#1}}
-% 'verrtical=<val>'
-\let\bxjy@vertical\@empty
-\define@key{bxjy}{vertical}[true]{%
- \def\bxjy@vertical{#1}}
% 'ttfname=<val>'
\let\bxjy@ttfname\@empty
\define@key{bxjy}{ttfname}{%
\def\bxjy@ttfname{#1}}
+% 'vertical' (removed)
+\define@key{bxjy}{vertical}[true]{%
+ \PackageError\bxjy@pkgname
+ {Option 'vertical' is abolished}%
+ {\@ehc}}
%% Dispatch options
\ProcessOptions*
@@ -134,10 +147,13 @@
%% Check the driver specified
\def\bxjy@tmpa#1#2{%
- \bxjy@info{Driver auto-detected: #2}%
+ \PackageInfo\bxjy@pkgname
+ {Driver auto-detected: #2}%
\let\bxjy@driver#1}
\def\bxjy@tmpb#1#2{%
- \bxjy@error{Wrong driver specified, changed to: #2}\@ehc%
+ \PackageError\bxjy@pkgname
+ {Wrong driver specified, changed to: #2}%
+ {\@ehc}%
\let\bxjy@driver#1}
\ifnum\ifdefined\pdfoutput\pdfoutput\else\z@\fi>\z@
\unless\ifdefined\bxjy@driver
@@ -158,11 +174,11 @@
\bxjy@error{Preset options cannot go with 'ipaex-type1'}\@ehc
\let\bxjy@main@preset\relax
\fi\fi
-\ifx \bxjy@driver\bxjy@none \unless\ifx\bxjy@main@preset\relax
+\ifx\bxjy@driver\bxjy@none \unless\ifx\bxjy@main@preset\relax
\bxjy@error{Preset options require a valid driver}\@ehc
\let\bxjy@main@preset\relax
\fi\fi
-\ifx \bxjy@driver\bxjy@none
+\ifx\bxjy@driver\bxjy@none
\bxjy@boldbyemboldenfalse
\fi
@@ -198,7 +214,6 @@
\ifbxjy@everypage\ifx\bxjy@driver\bxjy@dvipdfmx
\RequirePackage{atbegshi}
\fi\fi
-%%
%%<+> \FirstCJKUse
%%<+> \EveryCJKUse
@@ -213,39 +228,6 @@
\newcommand*\EveryCJKUse{%
\gappto\bxjy@every@cjk@use@hook}
-%--------------------------------------- vertical
-
-%% constants
-\chardef\bxjy@vert@none=0
-\chardef\bxjy@vert@false=0
-\chardef\bxjy@vert@=0
-\chardef\bxjy@vert@sub=1
-\chardef\bxjy@vert@main=2
-\chardef\bxjy@vert@true=2
-
-%% \bxjy@vert
-\let\bxjy@vert\bxjy@vert@none
-\ifcsdef{bxjy@vert@\bxjy@vertical}{%
- \letcs\bxjy@vert{bxjy@vert@\bxjy@vertical}
-}{%else
- \bxjy@error{Invalid value of 'vertical': \bxjy@vertical}\@ehc
-}
-\ifcase\bxjy@vert %none
- \AfterEndPreamble{\csuse{CJKhorz}}
-\or %sub
- \RequirePackage{CJKvert}[]%
- \AfterEndPreamble{\CJKhorz}
-\or %main
- \RequirePackage{CJKvert}[]%
- \AfterEndPreamble{\CJKvert}
-\fi
-\AtBeginDocument{%
- \@ifpackageloaded{CJKvert}{%
- \bxjy@patch@CJKsymbol@CJKvert
- \patchcmd{\CJKvert}{\normalfont}{\bxjy@normalafont}{}{}%
- \patchcmd{\CJKhorz}{\normalfont}{\bxjy@normalafont}{}{}%
- }{}}
-
%--------------------------------------- user interface
%%%%<*> \setminchofont/\setgothicfont/etc.
@@ -290,7 +272,6 @@
}
%%<*> \setCJKfamilydefault{<fam>}
-%\newif\ifbxjy@default@set
\newrobustcmd*\setCJKfamilydefault[1]{%
\bxjy@default@settrue
\CJKencfamily{UTF8}{#1}}
@@ -319,8 +300,15 @@
\fi
%%<*> \>
+\bxjy@okfalse
\def\bxjy@tmpa{\mskip\medmuskip}
-\ifx\>\bxjy@tmpa
+\ifx\>\bxjy@tmpa \bxjy@oktrue
+\else\ifx\>\medspace
+ \long\def\bxjy@tmpa{\tmspace+\medmuskip{.2222em}}
+ \begingroup\expandafter\endgroup\expandafter
+ \ifx\csname : \endcsname\bxjy@tmpa \bxjy@oktrue \fi
+\fi\fi
+\ifbxjy@ok
\def\>{\ifmmode\mskip\medmuskip\else \CJKecglue\ignorespaces \fi}
\fi
@@ -401,8 +389,8 @@
}
\def\bxjy@cjk@force#1{%
\expandafter\bxjy@cjkforce@do
- \csname u8:#1\expandafter\endcsname
- \csname bxjy@U/#1\endcsname{#1}%
+ \csname u8:#1\expandafter\endcsname
+ \csname bxjy@U/#1\endcsname{#1}%
}
%%<*> \CJKforced{<kanji>}
@@ -429,12 +417,12 @@
\bxjy@cond\ifcat\noexpand\bxjy@tok\@sptoken\fi{\bxjy@org@at}{%
\bxjy@cond\ifcat\noexpand\bxjy@tok\bgroup\fi{\CJKforced}{%
\bxjy@cond\ifcat\noexpand\bxjy@tok\relax\fi{\bxjy@at@c}{%
- \bxjy@org@at
+ \bxjy@org@at
}}}}%
}
\def\bxjy@at@c#1{%
\bxjy@cond\ifcat\noexpand#1\noexpand~\fi{\CJKforced}{%
- \bxjy@org@at
+ \bxjy@org@at
}#1%
}
@@ -483,7 +471,7 @@
\fi
\fi
\ifx\bxjy@ttfname@ptn\relax
- \@latex@warning@no@line
+ \PackageWarningNoLine\bxjy@pkgname
{Option 'ttfname' has an invalid value:\MessageBreak
"\bxjy@ttfname"}%
\fi
@@ -511,9 +499,10 @@
\ifdefined\pdfmatch
\bxjy@set@ttfname@ptn
\else
- \bxjy@error
+ \PackageError\bxjy@pkgname
{Option 'ttfname' cannot be used because your\MessageBreak
- pdfTeX engine is too old}\@ehc
+ pdfTeX engine is too old}%
+ {\@ehc}%
\fi
\fi
@@ -636,7 +625,7 @@
\letcs\bxjy@normalafont{normalfont }
%% Add patches to \rmfamily, etc.
-\csappto{rmfamily }{%
+\csappto{rmfamily }{% FIXME
\CJKfamily{\mcdefault}}
\csappto{sffamily }{%
\CJKfamily{\gtdefault}}
@@ -721,6 +710,15 @@
\let\extract@font\relax \pickup@font
\endgroup}
+%--------------------------------------- defaultmingoth
+\ifbxjy@defaultmin
+
+%% default changed
+\renewcommand{\mcdefault}{min}
+\renewcommand{\gtdefault}{goth}
+\renewcommand{\mgdefault}{maru}
+
+\fi
%--------------------------------------- ipaex-type1
\ifbxjy@ipaex
@@ -922,8 +920,13 @@
%%<+> \bxcjkjatypeHyperrefPatchDone
%% Informs that the patch is applied.
+\ifbxjy@tildespace
+\let\bxcjkjatypeHyperrefPatchDone=f
+\else
\let\bxcjkjatypeHyperrefPatchDone=t
+\fi
+\unless\ifbxjy@tildespace %----<*!CJKtildeasspace>
%% prepare
\begingroup
\CJK@input{UTF8.bdg}% emerge CJK@UTF8Binding
@@ -945,6 +948,7 @@
\bxjy@org@LetUnexpandableSpace#1%
\fi
}
+\fi %----</!CJKtildeasspace>
%--------------------------------------- preset font mappings
@@ -998,6 +1002,9 @@
\bxjy@declare@preset{ipa-hg}{%
\bxjy@multiweight{ipam.ttf}{ipam.ttf}{:0:hgrme.ttc}%
{:0:hgrgm.ttc}{:0:hgrge.ttc}{:0:hgrsgu.ttc}{ipag.ttf}{hgrsmp.ttf}}
+\bxjy@declare@preset{ipaex-hg}{%
+ \bxjy@multiweight{ipaexm.ttf}{ipaexm.ttf}{:0:hgrme.ttc}%
+ {:0:hgrgm.ttc}{:0:hgrge.ttc}{:0:hgrsgu.ttc}{ipaexg.ttf}{hgrsmp.ttf}}
\bxjy@declare@preset{moga-mobo}{%
\bxjy@enable@switch@realfont
\bxjy@multiweight{\bxjy@MI mogam.ttc}{\bxjy@MI mogam.ttc}%
@@ -1033,6 +1040,16 @@
\bxjy@multiweight{HiraMinProN-W2.otf}{HiraMinProN-W3.otf}%
{HiraMinProN-W6.otf}{HiraKakuProN-W3.otf}{HiraKakuProN-W6.otf}%
{HiraKakuStdN-W8.otf}{HiraKakuProN-W6.otf}{HiraMaruProN-W4.otf}}
+\bxjy@declare@preset{hiragino-elcapitan-pro}{%
+ \usecmapforalphabet
+ \bxjy@multiweight{HiraMinPro-W2.otf}{:1:HiraginoSerif-W3.ttc}%
+ {:1:HiraginoSerif-W6.ttc}{:3:HiraginoSans-W3.ttc}{:3:HiraginoSans-W6.ttc}%
+ {:2:HiraginoSans-W8.ttc}{:3:HiraginoSans-W6.ttc}{:0:HiraginoSansR-W4.ttc}}
+\bxjy@declare@preset{hiragino-elcapitan-pron}{%
+ \usecmapforalphabet
+ \bxjy@multiweight{HiraMinProN-W2.otf}{:0:HiraginoSerif-W3.ttc}%
+ {:0:HiraginoSerif-W6.ttc}{:2:HiraginoSans-W3.ttc}{:2:HiraginoSans-W6.ttc}%
+ {:3:HiraginoSans-W8.ttc}{:2:HiraginoSans-W6.ttc}{:1:HiraginoSansR-W4.ttc}}
\bxjy@declare@preset{morisawa-pro}{%
\usecmapforalphabet
\bxjy@multiweight{A-OTF-RyuminPro-Light.otf}{A-OTF-RyuminPro-Light.otf}%
@@ -1045,6 +1062,19 @@
{A-OTF-FutoMinA101Pr6N-Bold.otf}{A-OTF-GothicBBBPr6N-Medium.otf}%
{A-OTF-FutoGoB101Pr6N-Bold}{A-OTF-MidashiGoPr6N-MB31.otf}%
{A-OTF-GothicBBBPr6N-Medium.otf}{A-OTFJun101Pr6N-Light.otf}}
+\bxjy@declare@preset{yu-win}{%
+ \bxjy@multiweight{yuminl.ttf}{yumin.ttf}%
+ {yumindb.ttf}{yugothic.ttf}{yugothib.ttf}%
+ {yugothib.ttf}{yugothic.ttf}{yugothic.ttf}}
+\bxjy@declare@preset{yu-win10}{%
+ \bxjy@multiweight{yuminl.ttf}{yumin.ttf}%
+ {yumindb.ttf}{:0:YuGothR.ttc}{:0:YuGothB.ttc}%
+ {:0:YuGothB.ttc}{:0:YuGothM.ttc}{:0:YuGothM.ttc}}
+\bxjy@declare@preset{yu-osx}{%
+ \usecmapforalphabet
+ \bxjy@multiweight{YuMin-Medium.otf}{YuMin-Medium.otf}%
+ {YuMin-Demibold.otf}{YuGo-Medium.otf}{YuGo-Bold.otf}%
+ {YuGo-Bold.otf}{YuGo-Medium.otf}{YuGo-Medium.otf}}
%% ... and invokes the specified one!
\ifx\bxjy@main@preset\relax\else
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkjatype.tex b/language/japanese/BX/bxcjkjatype/bxcjkjatype.tex
new file mode 100644
index 0000000000..2b153fd648
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkjatype.tex
@@ -0,0 +1,406 @@
+% pdfLaTeX document; UTF-8
+\documentclass[a4paper]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern,textcomp}
+\usepackage{geometry}
+\usepackage{xcolor}
+\usepackage[unicode,colorlinks]{hyperref}
+\hypersetup{linkcolor=blue!75!black,urlcolor=green!45!black}
+\usepackage{shortvrb}
+\MakeShortVerb{\|}
+\usepackage{verbatim}
+\newenvironment{myverbatim}
+ {\begin{quote}\small\verbatim}
+ {\endverbatim\end{quote}}
+\newcommand*{\Cs}[1]{\texttt{\textbackslash #1}}
+\newcommand{\PkgVersion}{0.5}
+\newcommand{\PkgDate}{2023/07/23}
+\newcommand{\Pkg}[1]{\textsf{#1}}
+\newcommand{\Meta}[1]{$\langle$\textit{#1}$\rangle$}
+\newcommand{\Note}{\par\noindent \emph{Note:}\quad}
+\newcommand{\Means}{:\hspace{1em plus 1em}}
+\newcommand{\wbr}{\linebreak[0]}
+\providecommand{\pTeX}{p\TeX}
+\providecommand{\pLaTeX}{p\LaTeX}
+\providecommand{\pdfTeX}{pdf\/\TeX}
+%-----------------------------------------------------------
+\begin{document}
+\title{The \Pkg{bxcjkjatype} Package}
+\author{Takayuki YATO (aka.~``ZR'')}
+\date{v\PkgVersion\quad[\PkgDate]}
+\maketitle
+
+\begin{abstract}
+This package provides working configuration of the \Pkg{CJK} package
+suitable for Japanese typesetting of moderate quality.
+Moreover, it facilitates use of the \Pkg{CJK} package for {\pLaTeX}
+users, by providing commands that are similar to those used by the
+{\pLaTeX} kernel and some other packages used with it.
+\end{abstract}
+
+\tableofcontents
+
+%===========================================================
+\section{Package Loading}
+\label{sec:loading}
+
+\begin{verbatim}
+\usepackage[<option>,...]{bxcjkjatype}
+\end{verbatim}
+
+The available options are described hereafter.
+
+%-------------------
+\subsection{Options for auto-wrapping by CJK environments}
+
+These options wrap the document body with a |CJK(*)|
+environment automatically and safely.
+They are suitable
+when CJK needs to be effective in the whole document,
+or some ``moving arguments'' hold CJK text.
+
+\begin{itemize}
+\item |whole|, |wholeCJK*|\Means
+ Wraps the whole document body with a |CJK*| environment.
+ \Note Precisely speaking,
+ it wraps with |\begin{uCJK*}|\ldots\wbr|\end{uCJK*}|.
+\item |wholeCJK|\Means
+ Wraps the whole document body with a |CJK| environment.
+ \Note Precisely speaking,
+ it wraps with |\begin{uCJK}|\ldots\wbr|\end{uCJK}|.
+\item |nowhole| (default)\Means
+ Negation of |wholeCJK*| or |wholeCJK|.
+\end{itemize}
+
+%-------------------
+\subsection{Options for ``auto-tilde''}
+
+The \Pkg{CJK} package does not support auto-insertion of ``shibuaki''
+(a thin space between alphabetic and ideographic letters)
+and thus authors must manually insert ``shibuaki''.
+To help them \Pkg{CJK} package provides a mechanism
+to switch the meaning of the tilde character ``|~|''
+between a non-breaking space (the original meaning)
+and ``shibuaki''.
+The |\autotilde| command changes ``|~|'' to ``shibuaki''%
+\footnote{\Cs{standardtilde} cancels the effect of \Cs{CJKtilde}
+ and changes ``\texttt{\textasciitilde}'' back to non-breaking space.
+ \Cs{nbs} always inserts non-breaking space,
+ which is useful in CJK environemtns.}.
+
+The option |autotilde| triggers automatic invocation of |\CJKtilde|,
+which makes ``|~|'' in CJK environments insert ``shibuaki''
+by default.
+
+\begin{itemize}
+\item |autotilde|\Means
+ Makes |\CJKtilde| invoked at the beginning of every |CJK(*)|
+ environment.
+\item |noautotilde| (default)\Means
+ Negation of |autotilde|.
+\end{itemize}
+
+%-------------------
+\subsection{Options for configuring ``shibuaki'' in PDF strings}
+
+As explained above,
+in {\LaTeX} grammar ``|~|'' represents a non-breaking space.
+Accordingly, when the \Pkg{hyperref} package generates PDF strings,
+``|~|'' in {\LaTeX} text will be converted to a space character.
+
+However, when |\CJKtilde| is effective
+the meaning of ``|~|'' changes to ``shibuaki''.
+The ``shibuaki'' is device on typesetting
+and is not a space as text data,
+and thus the behavior of \Pkg{hyperref} is undesirable.
+When this package is loaded, ``|~|'' with |\CJKtilde| effective
+is tailored to be deleted at conversion to PDF strings.
+
+Moreover this behavior can be configured by options.
+
+\begin{itemize}
+\item |noCJKtildeasspace| (default)\Means
+ When |\CJKtilde| is effective,
+ ``|~|'' will be deleted in PDF strings.
+\item |CJKtildeasspace|\Means
+ When |\CJKtilde| is effective,
+ ``|~|'' will be converted to a space character in PDF strings.
+ \Note This is the original behavior of \Pkg{hyperref}.
+\end{itemize}
+
+%-------------------
+\subsection{Options for font-mapping}
+
+You can use preset font mappings in the same way as in the
+\href{http://www.ctan.org/pkg/pxchfon}{\Pkg{pxchfon} package}.
+Please refer to the manual of that package for detailed explanation
+of this feature.
+
+\begin{itemize}
+\item |oneweight|, |nooneweight|\Means
+ The same as in \Pkg{pxchfon}.
+\item You can use font preset options (such as |ms|) which are available
+ in \Pkg{pxchfon} (except obsolete ones).
+\item |ttfname=|\Meta{pattern}\Means
+ Specifies the pattern of the TTF font names which are used when TTC
+ substitution (Section~\ref{ssec:ttfname}) is employed.
+
+\item |ipaex-type1|\Means
+ Disables the font management of this package and directly uses the
+ families provided by the \Pkg{ipaex-type1} package,
+ namely |ipxm| and |ipxg|.
+ In this setting the value of |\mcdefault| is |ipxm| and the value of
+ |\gtdefault| and |\mgdefault| is |ipxg|, so that the higher level
+ commands (such as |\sffamily| and |\gtfamily|) can work correctly.
+\end{itemize}
+
+%-------------------
+\subsection{Options for CJK font scaling}
+
+\begin{itemize}
+\item |scale=|\Meta{real}\Means
+ Sets the scaling factor for CJK fonts.
+\end{itemize}
+
+\Note When using version 0.3 or later,
+one can employ the scaling even with the
+|ipaex-type1| option.
+
+%-------------------
+\subsection{Other options}
+
+\begin{itemize}
+\item |everypage|\Means
+ Outputs the font mapping information on every page of the resulted
+ DVI document.
+ Available only with |dvipdfmx| driver.
+\item |noeverypage| (default)\Means
+ Negation of |everypage|.
+\item Driver options\Means
+ |pdftex|, |dvipdfmx|, |dvips| and |none| are available.
+ The driver setting is relevant only when using font mappings other
+ than the default one (ipaex-type1 fonts), so you need not care of
+ drivers in using default fonts.
+ Moreover, non-default font mappings are supported only by |pdftex|
+ and |dvipdfmx|, and these two values are auto-detected
+ (|pdftex| is default in PDF mode and |dvipdfmx| in DVI mode).
+ Thus you will never need to specify the driver.
+\item |substmingoth|\Means
+ Applies the substituion of families |min|, |goth| and |maru|
+ (used conventionally for Japanese) with families |mc|, |gt| and |mg|
+ (standard in this package).
+\item |nosubstmingoth| (default)\Means
+ Negation of |substmingoth|.
+\item |boldbyembolden| (default)\Means
+ Changes the implementation of |\CJKbold| (pseudo-bold) from
+ ``overstriking'' to ``synthetic emboldening''.
+\item |noboldbyembolden|\Means
+ Negation of |boldbyembolden|.
+\end{itemize}
+
+%-------------------
+\subsection{TTC substitution}
+\label{ssec:ttfname}
+
+The {\pdfTeX} engine does not support fonts in TTC format.
+Thus when you want to use TTC fonts for this package,
+all you can do is to decompose a TTC font
+into several TTF fonts.
+
+Moreover there is another problem when you use this package.
+The decomposed TTF files have names
+different from the original TTC font,
+which means that
+the preset settings (options such as |moba-moga|) no longer work.
+The |ttfname| option is a workaround for this problem.
+
+The |ttfname| option key must have a file name pattern,
+which is a string containing (exactly) one occurrence of ``|*|''
+and one occurrence of a numeral string,
+such as ``|*_1|'' and ``|TEMP-*-00.TTF|''.
+(If the pattern does not have an extension, ``|.ttf|'' is appended.)
+
+For example, when the option |ttfname=*_1| is given, the font
+``index 0 of mogam.ttc'' will map to ``mogam\_1.ttf'', and similarly,
+``index 1'' to ``mogam\_2.ttf''
+(the numeral part is incremented) and so on.
+
+
+%===========================================================
+\section{Usage}
+\label{sec:usage}
+
+%-------------------
+\subsection{Selecting CJK fonts}
+
+The present package provides three ``generic'' CJK font familie
+in the same way as {\pLaTeX} plus the
+\href{http://www.ctan.org/pkg/japanese-otf}{\Pkg{japanese-otf} package}:
+Mincho family (|\mcfamily|), Gothic family (|\gtfamily|), and
+Maru-gothic family (|\mgfamily|).
+In default setting, the font set from the \Pkg{ipaex-type1} package
+is allocated;
+Mincho family uses IPAex Mincho font, and Gothic and Maru-gothic
+families use IPAex Gothic font.
+This allocation can be altered by users.
+
+\begin{itemize}
+\item |\mcfamily|\Means
+ Changes the CJK family to Mincho family.
+ \Note Equivalent to |\CJKfamily{\mcdefault}|.
+\item |\gtfamily|\Means
+ Changes the CJK family to Gothic family.
+ \Note Equivalent to |\CJKfamily{\gtdefault}|.
+\item |\mgfamily|\Means
+ Changes the CJK family to Maru-gothic family.
+ \Note Equivalent to |\CJKfamily{\mgdefault}|.
+\end{itemize}
+
+More advanced commands:
+
+\begin{itemize}
+\item |\mcdefault|/|\gtdefault|/|\mgdefault|\Means
+ The names of CJK families corresponding to the three generic families.
+ In the standard allocation their values are
+ |mc|/\wbr|gt|/\wbr|mg| respectively
+ and the allocation is used as default.
+\item
+ |\setCJKfamilydefault{|\Meta{CJK-family}|}|\Means
+ Declares the default CJK family.
+ This default value is used when family names are missing in some
+ commands, such as |\CJKfamily{}| and
+ |\begin{CJK}{UTF8}{}|.
+ The (redefined) |\normalfont| also switches the CJK family to the
+ family specified by this command.
+
+ The default value of this default family is
+ the ``counterpart'' (Section~\ref{ssec:sync-families}) of the
+ alphabetic font family which is in effect at the beginning of the
+ document body.
+\end{itemize}
+
+%-------------------
+\subsection{Synchronization of CJK and non-CJK families}
+\label{ssec:sync-families}
+
+The \Pkg{CJK} package (and {\pTeX} engine) manages separate
+``current families'' for CJK and alphabetic (non-CJK) families.
+While this treatment has its merit, synchronization of the two
+``current families'' is convenient in many cases.
+Accordingly, the present package redefines some of the {\LaTeX}
+commands that switches current alphabetic font families so that
+the CJK family will be switched to the counterpart of the current
+alphabetic family, where the ``counterpart'' is defined as follows:
+
+\begin{itemize}
+\item |\rmfamily| (Serif) → |\mcfamily| (Mincho)
+\item |\sffamily| (Sans-serif) → |\gtfamily| (Gothic)
+\item |\ttfamily| (Monospace) → |\gtfamily| (Gothic)
+\item The counterpart of the other families is |\mcfamily|.
+\end{itemize}
+
+Redefined commands:
+
+\begin{itemize}
+\item |\rmfamily|/|\sffamily|/|\ttfamily|\Means
+ Changes the CJK family to the counterpart of the alphabetic font
+ family after executing the original function.
+\item |\normalfont|\Means
+ Changes the CJK family to the default CJK family that is specified
+ by the |\setCJKfamilydefault| command.
+\end{itemize}
+
+There are shorthand forms of |CJK|/\wbr|CJK*| environments:
+
+\begin{itemize}
+\item |\begin{uCJK*}|\ldots|\end{uCJK*}|\Means
+ Equivalent to:
+\begin{verbatim}
+\begin{CJK*}{UTF8}{<counterpart>}...\end{CJK*}
+\end{verbatim}
+ where |<counterpart>| means the counterpart of the current alphabetic
+ font family.
+
+ Note that this is \emph{not} equivalent to
+\begin{verbatim}
+\begin{CJK*}{UTF8}{}...\end{CJK*}
+\end{verbatim}
+ structure, which uses the default CJK family.
+\item |\begin{uCJK}|\ldots|\end{uCJK}|\Means
+ Equivalent to:
+\begin{verbatim}
+\begin{CJK}{UTF8}{counterpart}...\end{CJK}
+\end{verbatim}
+\end{itemize}
+
+%-------------------
+\subsection{Font mapping}
+
+The usage of these commands are the same as in the \Pkg{pxchfon}
+package.
+Please refer to the manual of that package for detail.
+
+\begin{itemize}
+\item |\setminchofont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setgothicfont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setmarugothicfont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setmediumminchofont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setboldminchofont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setmediumgothicfont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setboldgothicfont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setxboldgothicfont{|\Meta{id}|]{|\Meta{font-file}|}|
+\end{itemize}
+
+However there is a major limitation as to the use of font mapping with
+the {\pdfTeX} engine.
+You can use only TrueType fonts and moreover TTC format is not allowed.
+(You can use any flavor of OpenType fonts when using dvipdfmx.)
+
+\Note The present package does not support the light-weight Mincho
+font, and thus the |\setlightminchofont| command does nothing useful.
+
+%-------------------
+\subsection{Other commands}
+
+\begin{itemize}
+\item |\UTF{|\Meta{hexadecimal-number}|}|\Means
+ Inputs a CJK character through Unicode codepoint value.
+ |\UTF{5B57}| is equivalent to |\Unicode{"5B}{"57}|.
+\item |\CJKforce{|\Meta{character}\ldots|}|\Means
+ Afterwards treats the characters given in the argument as CJK
+ characters (printed using CJK fonts).
+\item |\CJKunforce{|\Meta{character}\ldots|}|\Means
+ Cancels the effect of the |\CJKforce| command.
+\item |\@|\Meta{character}\Means
+ Treats the next character (only that occurrence) as a CJK character,
+ when the character is outside the ASCII range; othersize the
+ standard meaning of |\@| is retained.
+\item |\CJKecglue|\Means
+ Inserts a ``shibuaki'' space.
+ This will be invoked by |~| when |\CJKtilde| is in effect.
+ This command can be redefined by users to adjust the value of
+ shibuaki space, just as |\CJKglue| can be redefined to adjust
+ inter-ideographic space.
+
+ For example, you can write:
+\begin{verbatim}
+\renewcommand{\CJKecglue}{\hspace{0.125em minus 0.125em}}
+\end{verbatim}
+\end{itemize}
+
+%===========================================================
+\section{Remarks}
+\label{sec:remarks}
+
+\begin{itemize}
+\item The standard font families provided by this package does
+ \emph{not} support vertical writing, even when using default
+ ipaex-type1 font set.
+ However, the families provided by \Pkg{ipaex-type1}
+ (|ipxm| and |ipxg|) do support vertical writing, and you can
+ utilize these families directly by specifying |ipaex-type1| option.
+\end{itemize}
+
+%===========================================================
+\end{document}
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkvert-ja.pdf b/language/japanese/BX/bxcjkjatype/bxcjkvert-ja.pdf
new file mode 100644
index 0000000000..248ccbee16
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkvert-ja.pdf
Binary files differ
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkvert-ja.tex b/language/japanese/BX/bxcjkjatype/bxcjkvert-ja.tex
new file mode 100644
index 0000000000..90757e6f16
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkvert-ja.tex
@@ -0,0 +1,129 @@
+% LuaLaTeX 文書; 文字コードは UTF-8
+\documentclass[a4paper]{ltjsarticle}
+\renewcommand{\headfont}{\gtfamily\romanseries{sbc}\sffamily}
+\usepackage{geometry}
+\usepackage{xcolor}
+\usepackage[unicode,colorlinks,hyperfootnotes=false]{hyperref}
+\hypersetup{linkcolor=blue!75!black,urlcolor=green!45!black}
+\usepackage{bxtexlogo}
+\bxtexlogoimport{*}
+\usepackage{shortvrb}
+\MakeShortVerb{\|}
+\usepackage{verbatim}
+\newenvironment{myverbatim}
+ {\begin{quote}\small\verbatim}
+ {\endverbatim\end{quote}}
+\newcommand{\PkgVersion}{0.5}
+\newcommand{\PkgDate}{2023/07/23}
+\newcommand{\Pkg}[1]{\textsf{#1}}
+\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
+\newcommand{\Note}{\par\noindent ※}
+\newcommand{\Means}{:\quad}
+\newcommand{\jemph}{\textsf}
+\newcommand{\wbr}{\linebreak[0]}
+\newcommand{\Cs}[1]{\texttt{\symbol{`\\}#1}}
+%-----------------------------------------------------------
+\begin{document}
+\title{\Pkg{bxcjkvert} パッケージ}
+\author{八登崇之\ (Takayuki YATO; aka.~``ZR'')}
+\date{v\PkgVersion\quad[\PkgDate]}
+\maketitle
+
+\begin{abstract}
+本パッケージは\Pkg{CJKvert}パッケージの改造版であり、
+縦組と横組の混在が普通に起こりうる日本語組版に
+パッケージの機能を適合させたものである。
+\end{abstract}
+
+\tableofcontents
+
+%===========================================================
+\section{パッケージ読込}
+\label{sec:loading}
+
+\begin{verbatim}
+\usepackage[オプション,...]{bxcjkvert}
+\end{verbatim}
+
+本パッケージは\Pkg{CJKvert}パッケージを内部で読み込む。
+
+利用可能なオプションを以下で挙げる。
+
+%-------------------
+\subsection{フォントリセットに関する設定}
+
+\Pkg{CJKvert}パッケージは、書字方向変更の命令
+(|\CJKhorz| および |\CJKvert|)の呼出の際に、
+|\normalfont| を実行して現在フォントをリセットする。
+この挙動は異なる書字方向を混在させる場合には特に不便である。
+従って、\Pkg{bxcjkvert}は既定ではこの挙動を抑止している。
+ただし |resetfont| オプションによりこの挙動は調整可能である。
+
+\begin{itemize}
+\item |resetfont=true|\Means
+ 書字方向命令が現在フォントをリセット(|\normalfont|)する。
+ \Note 本来の\Pkg{CJKvert}の挙動。
+\item |resetfont=false|(既定)\Means
+ 書字方向命令が現在フォントを変更しない。
+\end{itemize}
+
+%-------------------
+\subsection{ベースライン伸長の補正に関する設定}
+
+\Pkg{CJKvert}は書字方向変更時に |\baselinestretch| の値に対する
+補正を行う。
+具体的には、|\CJKvert| が有効な間は
+ベースライン伸長値が |\CJKbaselinestretch| 倍
+\footnote{\Cs{CJKbaselinestretch}の既定値は$1.3$である。}
+に増大する。
+ところが、日本語組版を考慮する限り、ベースライン伸長値を
+変えるべき理由はどこにもない。
+従って、\Pkg{bxcjkvert}はこの機能を無効化している。
+ただし |usebaselinestretch| オプションによりこの挙動は
+調整可能である。
+
+
+\begin{itemize}
+\item |usebaselinestretch=true|\Means
+ |usebaselinestretch| オプション付きの\Pkg{CJKvert}パッケージと同じ。
+ すなわち、|\CJKvert| 実行時にはベースライン伸長値
+ を |\CJKbaselinestretch| 倍にし、|\CJKhorz| 実行時には
+ ベースライン伸長値を復元する。%
+ \footnote{ただし、この場合、ベースライン伸長値は
+ 「\Pkg{CJKvert}パッケージ読込時に保持されていた値」に戻される
+ ことに注意。}
+\item |usebaselinestretch=false|\Means
+ |usebaselinestretch| オプション無しの\Pkg{CJKvert}パッケージと同じ。
+ すなわち、|\CJKvert| 実行時にはベースライン伸長値
+ を |\CJKbaselinestretch| の値に設定し、|\CJKhorz| 実行時には
+ ベースライン伸長値を$1$に設定する。
+ (ユーザによるベースライン伸長値の設定は無視される。)
+\item |usebaselinestretch=retain|(既定)\Means
+ ベースライン伸長値に対する変更を一切行わない。
+\end{itemize}
+
+\Note \Pkg{CJKvert}が予め |usebaselinestretch| オプション付きで
+読み込まれていた場合は、本パッケージの |usebaselinestretch| の
+既定値は(|retain| ではなく)|true| になる。
+
+%-------------------
+\subsection{書字方向の初期値に関する設定}
+
+\Pkg{CJKvert}では初期(文書開始時)の書字方向は縦組と
+定められている。
+本パッケージでは初期の書字方向をユーザが選択することができる。
+
+\begin{itemize}
+\item |main=true|\Means
+ 書字方向の初期値を縦組とする。
+ \Pkg{CJKvert}ではこれが既定である。
+\item |main=false|\Means
+ 書字方向の初期値を横組とする。
+\item |main=retain|(既定)\Means
+ 書字方向の初期値を何も指定しない。
+ この場合、プレアンブルで |\CJKvert| や |\CJKhorz| を実行することで
+ 書字方向の初期値を決めることができる。
+\end{itemize}
+
+%===========================================================
+\end{document}
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkvert.pdf b/language/japanese/BX/bxcjkjatype/bxcjkvert.pdf
new file mode 100644
index 0000000000..802045cefd
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkvert.pdf
Binary files differ
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkvert.tex b/language/japanese/BX/bxcjkjatype/bxcjkvert.tex
new file mode 100644
index 0000000000..5bbeb6ff63
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkvert.tex
@@ -0,0 +1,138 @@
+% pdfLaTeX document; UTF-8
+\documentclass[a4paper]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern,textcomp}
+\usepackage{geometry}
+\usepackage{xcolor}
+\usepackage[unicode,colorlinks]{hyperref}
+\hypersetup{linkcolor=blue!75!black,urlcolor=green!45!black}
+\usepackage{bxtexlogo}
+\bxtexlogoimport{*}
+\usepackage{shortvrb}
+\MakeShortVerb{\|}
+\usepackage{verbatim}
+\newenvironment{myverbatim}
+ {\begin{quote}\small\verbatim}
+ {\endverbatim\end{quote}}
+\newcommand{\PkgVersion}{0.5}
+\newcommand{\PkgDate}{2023/07/23}
+\newcommand{\Pkg}[1]{\textsf{#1}}
+\newcommand{\Meta}[1]{$\langle$\textit{#1}$\rangle$}
+\newcommand{\Note}{\par\noindent \emph{Note:}\quad}
+\newcommand{\Means}{:\hspace{1em plus 1em}}
+\newcommand{\wbr}{\linebreak[0]}
+\newcommand{\Cs}[1]{\texttt{\symbol{`\\}#1}}
+%-----------------------------------------------------------
+\begin{document}
+\title{The \Pkg{bxcjkvert} Package}
+\author{Takayuki YATO (aka.~``ZR'')}
+\date{v\PkgVersion\quad[\PkgDate]}
+\maketitle
+
+\begin{abstract}
+This package is a tailored version of the \Pkg{CJKvert} package,
+accommodated for Japanese typesetting,
+where mixture of horizontal and vertical writings is common.
+\end{abstract}
+
+\tableofcontents
+
+%===========================================================
+\section{Package Loading}
+\label{sec:loading}
+
+\begin{verbatim}
+\usepackage[<option>,...]{bxcjkvert}
+\end{verbatim}
+
+The \Pkg{CJKvert} package will be automatically loaded,
+if not yet loaded.
+
+The available options are described hereafter.
+
+%-------------------
+\subsection{Options for configuring font reset}
+
+When a command for switching direction (|\CJKhorz| or |\CJKvert|)
+is invoked, \Pkg{CJKvert} resets the current font parameter
+by issuing |\normalfont|.
+This feature is inconvenient, particularly
+when authors mix different writing directions.
+Thus \Pkg{bxcjkvert} suppresses the feature by default,
+but it can be configured by the |resetfont| option.
+
+\begin{itemize}
+\item |resetfont=true|\Means
+ Makes direction comamnds reset the current font by issuing
+ the |\normalfont| command.
+ \Note This is the original behavior of \Pkg{CJKvert}.
+\item |resetfont=false| (default)\Means
+ Makes direction comamnds retain the current font.
+\end{itemize}
+
+%-------------------
+\subsection{Options for configuring adjustment of the baseline stretch}
+
+\Pkg{CJKvert} makes some adjustment to the value of |\baselinestretch|
+when the writing direction is changed.
+Namely it makes the baseline stretch enlarged by the factor of
+|\CJKbaselinestretch|%
+\footnote{The value of \Cs{CJKbaselinestretch} is $1.3$ by default.}
+when |\CJKvert| is used.
+
+However as far as Japanese typesetting is concerned,
+there is no need to tweak the baseline stretch value.
+Thus \Pkg{bxcjkvert} suppresses this feature, but again
+it can be configured by the |usebaselinestretch| option.
+
+
+\begin{itemize}
+\item |usebaselinestretch=true|\Means
+ This is the same as the behavior of \Pkg{CJKvert} \emph{with}
+ the |usebaselinestretch| option.
+ When |\CJKvert| is invoked, the baseline stretch will be multiplied
+ by the value of |\CJKbaselinestretch|.
+ When |\CJKhorz| is invoked, the baseline stretch will be reverted.%
+ \footnote{Note that, however, in this case the baseline stretch will
+ be reverted to the value at the time when \Pkg{CJKvert} was loaded.
+ it might be against authors' expectation.}
+\item |usebaselinestretch=false|\Means
+ This is the same as the behavior of \Pkg{CJKvert} \emph{without}
+ the |usebaselinestretch| option.
+ When |\CJKvert| is invoked, the baseline stretch will be set
+ to the value of |\CJKbaselinestretch|.
+ When |\CJKhorz| is invoked, the baseline stretch will be
+ reset to $1$.
+ This option ignores the user's setting to the baseline stretch.
+\item |usebaselinestretch=retain| (default)\Means
+ Makes direction comamnds leave the baseline stretch
+ unchanged.
+\end{itemize}
+
+\Note If \Pkg{CJKvert} is loaded with the |usebaselinestretch|
+option in advance,
+then the value of |usebaselinestretch| of this package
+will default to |true| instead of |retain|.
+
+%-------------------
+\subsection{Options for configuring initial writing direction}
+
+\Pkg{CJKvert} sets the initial writing direction of the document
+to vertical.
+But \Pkg{bxcjkvert} allows authors to choose the initial direction.
+
+\begin{itemize}
+\item |main=true|\Means
+ Sets the initial direction to vertical.
+ \Note This is the original behavior of \Pkg{CJKvert}.
+\item |main=false|\Means
+ Sets the initial direction to horizontal.
+\item |main=retain| (default)\Means
+ Does not specify the initial direction.
+ In this case, authors can use |\CJKvert| or |\CJKhorz|
+ in the preamble to decide the initial direction.
+\end{itemize}
+
+%===========================================================
+\end{document}
diff --git a/macros/latex/contrib/crefthe/README.md b/macros/latex/contrib/crefthe/README.md
index db578d078f..44a00effb6 100644
--- a/macros/latex/contrib/crefthe/README.md
+++ b/macros/latex/contrib/crefthe/README.md
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2021-2022 by Jinwen XU -->
+<!-- Copyright (C) 2021-2023 by Jinwen XU -->
# crefthe - cross referencing with proper definite articles
@@ -45,6 +45,7 @@ Before everything, you need to define the names, which can be done with `\crefth
```latex
\crefthename{theorem}[le]{théorème}[les]{théorèmes}
```
+(*In French*)
Then you can use the command `\crefthe` as follows:
- `\crefthe[<prep>]{<labels>}`
@@ -54,7 +55,47 @@ Then you can use the command `\crefthe` as follows:
> There is also a stared version `\crefthe*` for generating the same text but without hyperlinks.
-*For more information, please refer to its documentation.*
+## Regarding German
+
+In German, there are four declensions: nominative (`Nominativ`), genitive (`Genitiv`), dative (`Dativ`) and accusative (`Akkusativ`). For such situation, we introduce the command `\crefthevariantname` to specify the referencing name for the correspond environment. Below is an example of usage:
+```latex
+\crefthevariantname{theorem}
+ {
+ {Satz}{Sätze}
+ , Nominativ = [der]{Satz}[die]{Sätze}
+ , Genitiv = [des]{Satzes}[der]{Sätze}
+ , Dativ = [dem]{Satz}[den]{Sätzen}
+ , Akkusativ = [den]{Satz}[die]{Sätze}
+ }
+```
+The first line in the configuration is the default set of names when no variant is specified. It is recommended, though not required.
+
+After this, you may refer to a theorem via
+
+```latex
+\crefthe[<prep>,variant=<declension>]{<label>}
+```
+
+You may also use the shortcuts (`nom.`, `gen.`, `dat.` and `akk.`), such as:
+
+```latex
+\crefthe[<prep>,Nom]{<label>} \crefthe[<prep>,Nom.]{<label>}
+\crefthe[<prep>,nom]{<label>} \crefthe[<prep>,nom.]{<label>}
+```
+
+These four are all equivalent and you may choose one to use according to your preference.
+
+> *For more information, please refer to the documentation.*
+
+# Acknowledgement
+
+There are so many people I wish to express my gratitude to during the development of this package, including:
+
+- Patrick Bideault, without whose advice and careful explanation, this package probably would never have been born. Merci !
+
+- Enrico Gregorio, Phelype Oleinik and Joseph Wright (in alphabetical order). They made valuable suggestions in the early development of this package and even edited some of the code themselves.
+
+- Jonathan P. Spratte, without whose help the German support would probably take much longer to complete.
# License
diff --git a/macros/latex/contrib/crefthe/crefthe-doc.pdf b/macros/latex/contrib/crefthe/crefthe-doc.pdf
index a91ff44b53..3cc6dce323 100644
--- a/macros/latex/contrib/crefthe/crefthe-doc.pdf
+++ b/macros/latex/contrib/crefthe/crefthe-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/crefthe/crefthe-doc.tex b/macros/latex/contrib/crefthe/crefthe-doc.tex
index 44cd81fd5e..82d7460683 100644
--- a/macros/latex/contrib/crefthe/crefthe-doc.tex
+++ b/macros/latex/contrib/crefthe/crefthe-doc.tex
@@ -48,6 +48,7 @@
crefformat,
crefthe,crefthename,
Crefthe,Crefthename,
+ crefthevariantname,Crefthevariantname,
namecrefthe,namecrefsthe,
nameCrefthe,nameCrefsthe,
crefthemark,
@@ -116,12 +117,12 @@
\begin{document}
-\def\PackageVersion{2022/09/24}
+\def\PackageVersion{2023/07/22}
\title{\crefthepackage{}\\\smallskip\itshape Cross referencing with proper definite articles}
\author{Jinwen XU}
\thanks{Corresponding to: \texttt{\crefthepackage{} \PackageVersion}}
-\date{\TheDate{\PackageVersion}[only-year-month], in Paris}
+\date{\TheDate{\PackageVersion}[only-year-month], in Beijing}
\maketitle
@@ -132,7 +133,7 @@
\section{The motivation}
-By default, with \textsf{cleveref}'s \lstinline|\cref| to reference theorem-like environments, the names do not contain definite articles. While this might be acceptable for English, it is certainly not good enough for languages such as French, Italian, Portuguese, Spanish, etc. -- in these cases there shall be grammatical errors and would give you a strong feeling that it is machine-generated.
+By default, with \textsf{cleveref}'s \lstinline|\cref| to reference theorem-like environments, the names do not contain definite articles. While this might be acceptable for English, it is certainly not good enough for languages such as French, Italian, Portuguese, Spanish, etc. --- in these cases there shall be grammatical errors and would give you a strong feeling that it is machine-generated.
However, even if we manually add the definite articles to the names, there would still be other problems. As an example, if we define the French names to be:
@@ -241,6 +242,38 @@ which would result in (provided that you have done \lstinline|\selectlanguage{fr
Voilà !
+\section{What about German}
+
+In German, there are four declensions: nominative (\texttt{Nominativ}), genitive (\texttt{Genitiv}), dative (\texttt{Dativ}) and accusative (\texttt{Akkusativ}), making the previously presented mechanism insufficient. For such situation, we introduce the command \lstinline|\crefthevariantname| to specify the referencing name for the correspond environment. Below is an example of usage:
+
+\begin{code}
+\crefthevariantname{theorem}
+ {
+ {Satz}{Sätze}
+ , Nominativ = [der]{Satz}[die]{Sätze}
+ , Genitiv = [des]{Satzes}[der]{Sätze}
+ , Dativ = [dem]{Satz}[den]{Sätzen}
+ , Akkusativ = [den]{Satz}[die]{Sätze}
+ }
+\end{code}
+
+The first line in the configuration is the default set of names when no variant is specified. It is recommended, though not required.
+
+After this, you may refer to a theorem via
+
+\begin{code}
+\crefthe[(*\meta{prep}*),variant=(*\meta{declension}*)]{(*\meta{label}*)}
+\end{code}
+
+You may also use the shortcuts (\texttt{nom.}, \texttt{gen.}, \texttt{dat.} and \texttt{akk.}), such as:
+
+\begin{code}
+\crefthe[(*\meta{prep}*),Nom]{(*\meta{label}*)} \crefthe[(*\meta{prep}*),Nom.]{(*\meta{label}*)}
+\crefthe[(*\meta{prep}*),nom]{(*\meta{label}*)} \crefthe[(*\meta{prep}*),nom.]{(*\meta{label}*)}
+\end{code}
+
+These four are all equivalent and you may choose one to use according to your preference.
+
\section{Regarding the upper and lower cases}
As in \textsf{cleveref}, these commands have corresponding uppercased version: \lstinline|\Crefthename|,\linebreak \lstinline|\Crefthe|, \lstinline|\nameCrefthe| and \lstinline|\nameCrefsthe|, similar to \lstinline|\Crefname|, \lstinline|\Cref|, \lstinline|\nameCref|\linebreak and \lstinline|\nameCrefs|, reserved for using at the beginning of a sentence. \lstinline|\Crefthe| (and the name-only relatives) can handle case changing automatically: for example, with \lstinline|\Crefthe[À]{thm1,thm2,prop3}|, you will get something like
@@ -271,17 +304,33 @@ For those preset names defined with \lstinline|\crefname|\,/\,\lstinline|\Crefna
\section{The relationship with \textsf{cleveref}}
-\crefthepackage{} loads \textsf{cleveref} automatically and pass related options to it. All its commands, used without optional arguments, degenerate to those in \textsf{cleveref}. For example, \lstinline|\crefthe{...}| is the same as \lstinline|\cref{...}|, and \lstinline|\crefthename| is the same as \lstinline|\crefname| if the definite articles are not specified. That said, you can safely use the command \lstinline|\crefthe| everywhere in your document without causing extra trouble.
+\crefthepackage{} loads \textsf{cleveref} automatically and passes related options to it. All its commands, used without optional arguments, degenerate to those in \textsf{cleveref}. For example, \lstinline|\crefthe{...}|%
+will produce the same result as \lstinline|\cref{...}|, and \lstinline|\crefthename| shall behave the same as \lstinline|\crefname| if the definite articles are not specified. That said, you may safely use the command \lstinline|\crefthe| everywhere in your document without causing extra trouble.
-With the package option \packageoption{overwrite}, user commands in \textsf{cleveref} will be replaced by those offered here, thus you can simply write \lstinline|\cref| for \lstinline|\crefthe| -- and similarly with \lstinline|\Cref|, \lstinline|\crefname| and \lstinline|\Crefname|.
+With the package option \packageoption{overwrite}, user commands in \textsf{cleveref} will be replaced by those offered here, thus you can simply write \lstinline|\cref| for \lstinline|\crefthe| --- and similarly with \lstinline|\Cref|, \lstinline|\crefname| and \lstinline|\Crefname|.
\clearpage
+
+\section{Acknowledgement}
+
+There are so many people I wish to express my gratitude to during the development of this package, including:
+
+\begin{itemize}
+ \item Patrick Bideault, without whose advice and careful explanation, this package would probably never have been born. Merci !
+ \item Enrico Gregorio, Phelype Oleinik and Joseph Wright (in alphabetical order). They made valuable suggestions in the early development of this package and even edited some of the code themselves.
+ \item Jonathan P. Spratte, without whose help the German support would probably take much longer to complete.
+\end{itemize}
+
+
+% \clearpage
+
\section{Known issues}
\begin{itemize}
- \item \crefthepackage{} currently works for French, Italian, Portuguese (European and Brazilian) and Spanish, certainly more would be added to this list.
- \item The current mechanism does not work for German. The author plans to adopt a more refined approach in later versions in order to support the various situations in German. Meanwhile, you may consider the package \textsf{zref-clever}, which has a much more powerful and sophisticated interface for configuring cross referencing.
+ \item \crefthepackage{} currently works for French, German, Italian, Portuguese (European and Brazilian) and Spanish --- certainly more languages would be added to this list in the future.
+ \item For now, you cannot specify the masculine/masculine/... of words. This means, for instance, that you cannot make the suffix adjective automatically adopted to the word when using \lstinline|\namecref| --- as an example, if you wish to say \textquote{la proposition suivante} (in French), you would have to write the feminine adjective manually. The situation should be improved with the introduction of a new key-value configuration system, which is currently on the todo-list.
+ Meanwhile, you may consider the package \textsf{zref-clever}, which has a much more powerful and sophisticated interface for configuring cross referencing.
\item The names of theorem-like environments are not provided here, you need to define them by yourself. However, users are encouraged to use the \ProjLib{} toolkit (more specifically, the internal package \textsf{create-theorem}), which already handles everything for you.
\end{itemize}
diff --git a/macros/latex/contrib/crefthe/crefthe.sty b/macros/latex/contrib/crefthe/crefthe.sty
index a561c4e1de..e1ce211bb6 100644
--- a/macros/latex/contrib/crefthe/crefthe.sty
+++ b/macros/latex/contrib/crefthe/crefthe.sty
@@ -1,5 +1,5 @@
%%
-%% Copyright (C) 2021-2022 by Jinwen XU
+%% Copyright (C) 2021-2023 by Jinwen XU
%% ------------------------------------
%%
%% This file may be distributed and/or modified under the conditions of
@@ -12,7 +12,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplPackage
{crefthe}
- {2022/09/24} {}
+ {2023/07/22} {}
{Cross referencing with proper definite articles}
\keys_define:nn { crefthe }
@@ -87,34 +87,104 @@
\__crefthe_cref_general:NNNnnN \c_false_bool #1 #2 { #3 } { #4 } \crefthe_nameCrefs_original:w
}
+\keys_define:nn { crefthe-setting }
+ {
+ , variant .tl_set:N = \l__crefthe_variant_tl
+
+ % , nom .meta:n = { variant = Nominativ }
+ % , nom. .meta:n = { variant = Nominativ }
+ % , Nom .meta:n = { variant = Nominativ }
+ % , Nom. .meta:n = { variant = Nominativ }
+ % , gen .meta:n = { variant = Genitiv }
+ % , gen. .meta:n = { variant = Genitiv }
+ % , Gen .meta:n = { variant = Genitiv }
+ % , Gen. .meta:n = { variant = Genitiv }
+ % , dat .meta:n = { variant = Dativ }
+ % , dat. .meta:n = { variant = Dativ }
+ % , Dat .meta:n = { variant = Dativ }
+ % , Dat. .meta:n = { variant = Dativ }
+ % , akk .meta:n = { variant = Akkusativ }
+ % , akk. .meta:n = { variant = Akkusativ }
+ % , Akk .meta:n = { variant = Akkusativ }
+ % , Akk. .meta:n = { variant = Akkusativ }
+
+ % , unknown .code:n = {
+ % \bool_gset_true:N \g__crefthe_has_prep_bool
+ % \tl_set:No \l__crefthe_prep_tl { \l_keys_key_tl }
+ % }
+
+ , unknown .code:n = {}
+ }
+
+\bool_new:N \l__crefthe_variant_matched_bool
\cs_new_protected:Nn \__crefthe_cref_general:NNNnnN
+ % #1 = star or not
+ % #2 = -
+ % #3 = +
+ % #4 = key-value
+ % #5 = label
+ % #6 = original command, such as \crefthe_cref_original:w or \crefthe_Cref_original:w
{
- \tl_if_blank:eTF { #4 }
- {
- \bool_gset_false:N \g__crefthe_has_prep_bool
- }
+ \tl_set:Nn \l__crefthe_variant_tl {}
+ \bool_gset_false:N \g__crefthe_has_prep_bool
+ \tl_set:Nn \l__crefthe_prep_tl {}
+
+ \keys_set:nn { crefthe-setting } { #4 }
+
+ % This should actually be part of the keys parsing
+ \clist_map_inline:nn { #4 }
{
- \bool_gset_true:N \g__crefthe_has_prep_bool
+ \bool_set_false:N \l__crefthe_variant_matched_bool
+ \str_if_in:nnF { ##1 } { = }
+ {% for keys without values
+ \str_if_eq:VnT \languagename { ngerman }
+ {
+ \str_case:nnT { ##1 }
+ {
+ { nom } { \tl_set:Nn \l__crefthe_variant_tl { Nominativ } }
+ { nom. } { \tl_set:Nn \l__crefthe_variant_tl { Nominativ } }
+ { Nom } { \tl_set:Nn \l__crefthe_variant_tl { Nominativ } }
+ { Nom. } { \tl_set:Nn \l__crefthe_variant_tl { Nominativ } }
+ { gen } { \tl_set:Nn \l__crefthe_variant_tl { Genitiv } }
+ { gen. } { \tl_set:Nn \l__crefthe_variant_tl { Genitiv } }
+ { Gen } { \tl_set:Nn \l__crefthe_variant_tl { Genitiv } }
+ { Gen. } { \tl_set:Nn \l__crefthe_variant_tl { Genitiv } }
+ { dat } { \tl_set:Nn \l__crefthe_variant_tl { Dativ } }
+ { dat. } { \tl_set:Nn \l__crefthe_variant_tl { Dativ } }
+ { Dat } { \tl_set:Nn \l__crefthe_variant_tl { Dativ } }
+ { Dat. } { \tl_set:Nn \l__crefthe_variant_tl { Dativ } }
+ { akk } { \tl_set:Nn \l__crefthe_variant_tl { Akkusativ } }
+ { akk. } { \tl_set:Nn \l__crefthe_variant_tl { Akkusativ } }
+ { Akk } { \tl_set:Nn \l__crefthe_variant_tl { Akkusativ } }
+ { Akk. } { \tl_set:Nn \l__crefthe_variant_tl { Akkusativ } }
+ } { \bool_set_true:N \l__crefthe_variant_matched_bool }
+ }
+ \bool_if:NF \l__crefthe_variant_matched_bool
+ {
+ \tl_set:Nn \l__crefthe_prep_tl { ##1 }
+ }
+ }
}
+
\bool_if:NTF #2
- { \tl_set:Nn \l__crefthe_prep_once_tl { #4 } }
+ { \tl_set:No \l__crefthe_prep_once_tl { \l__crefthe_prep_tl } }
{
\bool_if:NTF #3
- { \tl_set:Nn \l__crefthe_prep_each_tl { #4 } }
+ { \tl_set:No \l__crefthe_prep_each_tl { \l__crefthe_prep_tl } }
{
% \str_set:Nx fully expands \__crefthe_prep_mode: into a string,
% then \str_case:Vn compares the value of the resulting string:
\str_set:Nx \l__crefthe_tmpa_str { \__crefthe_prep_mode: }
\str_case:Vn \l__crefthe_tmpa_str
{
- { - } { \tl_set:Nn \l__crefthe_prep_once_tl { #4 } }
- { + } { \tl_set:Nn \l__crefthe_prep_each_tl { #4 } }
+ { - } { \tl_set:No \l__crefthe_prep_once_tl { \l__crefthe_prep_tl } }
+ { + } { \tl_set:No \l__crefthe_prep_each_tl { \l__crefthe_prep_tl } }
}
}
}
\group_begin:
\bool_if:NTF #1
- { #6 * { #5 } } % here #6 is \crefthe_cref_original:w or \crefthe_Cref_original:w
+ { #6 * { #5 } }
{ #6 { #5 } }
\group_end:
\tl_gclear:N \l__crefthe_prep_each_tl
@@ -123,14 +193,15 @@
% \__crefthe_prep_mode: defines the default mode for supported languages
\cs_new:Nn \__crefthe_prep_mode:
{
- \str_case:Vn \languagename
+ \str_case:VnF \languagename
{
{french} { + }
+ {ngerman} { - }
{italian} { + }
{spanish} { - }
{portuguese} { + }
{brazilian} { + }
- }
+ } { + }
}
\NewDocumentCommand \crefthename { m O{} m O{} m }
@@ -143,13 +214,13 @@
\__crefthe_name_general:nnnnnn { #1 } { #2 } { #3 } { #4 } { #5 } { C }
}
-\cs_new:Npn \crefthe_width_of_space_dim { \tex_fontdimen:D 2 \tex_font:D~plus -\tex_fontdimen:D 3 \tex_font:D~minus -\tex_fontdimen:D 4 \tex_font:D }
+\cs_new:Npn \crefthe_retrieve_space: { \skip_horizontal:n { -\tex_fontdimen:D 2 \tex_font:D~plus -\tex_fontdimen:D 3 \tex_font:D~minus -\tex_fontdimen:D 4 \tex_font:D } }
\cs_new:Nn \crefthe_empty_adjust:n
{
\tl_if_blank:nTF { #1 }
{
- \skip_horizontal:n { -\crefthe_width_of_space_dim }
+ \crefthe_retrieve_space:
}
{
#1
@@ -157,8 +228,13 @@
}
\cs_new_protected:Nn \__crefthe_name_general:nnnnnn
+ % #1 = environment name
+ % #2 = singular definite article
+ % #3 = singular name
+ % #4 = plural definite article
+ % #5 = plural name
+ % #6 = c or C
{
- % #6 is c or C
\__crefthe_name_general_do:nnnnnn
{ #1 }
{ \crefthemark { \crefthe_empty_adjust:n { #2 } } }
@@ -183,6 +259,130 @@
}
}
+\NewDocumentCommand \crefthevariantname { m m }
+ {
+ \crefthe_parse_variant:n { #2 }
+ \crefthe_pass_variant_to:n { \crefthename { #1 } }
+ }
+
+\NewDocumentCommand \Crefthevariantname { m m }
+ {
+ \crefthe_parse_variant:n { #2 }
+ \crefthe_pass_variant_to:n { \Crefthename { #1 } }
+ }
+
+\tl_new:N \l__crefthe_variant_noun_singular_tl
+\tl_new:N \l__crefthe_variant_noun_plural_tl
+\tl_new:N \l__crefthe_variant_article_singular_tl
+\tl_new:N \l__crefthe_variant_article_plural_tl
+\tl_new:N \l__crefthe_variant_default_noun_singular_tl
+\tl_new:N \l__crefthe_variant_default_noun_plural_tl
+\tl_new:N \l__crefthe_variant_default_article_singular_tl
+\tl_new:N \l__crefthe_variant_default_article_plural_tl
+\bool_new:N \l__crefthe_variant_default_bool
+\cs_new_protected:Npn \crefthe_parse_variant:n #1
+ {
+ \tl_clear:N \l__crefthe_variant_noun_singular_tl
+ \tl_clear:N \l__crefthe_variant_noun_plural_tl
+ \tl_clear:N \l__crefthe_variant_article_singular_tl
+ \tl_clear:N \l__crefthe_variant_article_plural_tl
+ \tl_clear:N \l__crefthe_variant_default_noun_singular_tl
+ \tl_clear:N \l__crefthe_variant_default_noun_plural_tl
+ \tl_clear:N \l__crefthe_variant_default_article_singular_tl
+ \tl_clear:N \l__crefthe_variant_default_article_plural_tl
+ \bool_set_false:N \l__crefthe_variant_default_bool
+ \keyval_parse:NNn
+ \__crefthe_parse_variant_default:n
+ \__crefthe_parse_variant_value:nn
+ { #1 }
+ }
+\tl_new:N \l__crefthe_parsed_tl
+\NewDocumentCommand \__crefthe_variant_parser:w { O{} m O{} m }
+ {
+ \tl_if_blank:nTF { #1 }
+ {
+ \tl_set:Nn \l__crefthe_parsed_tl { { \crefthe_retrieve_space: } { #2 } { \crefthe_retrieve_space: } { #4 } }
+ }
+ {
+ \tl_set:Nn \l__crefthe_parsed_tl { { #1 } { #2 } { #3 } { #4 } }
+ }
+ \use_none_delimit_by_q_stop:w
+ }
+\cs_new_protected:Npn \__crefthe_parse_variant_default:n #1
+ {
+ \bool_set_true:N \l__crefthe_variant_default_bool
+ \__crefthe_variant_parser:w #1 \q_stop
+ \tl_set:Nx \l__crefthe_variant_default_article_singular_tl
+ { \tl_item:Nn \l__crefthe_parsed_tl { 1 } }
+ \tl_set:Nx \l__crefthe_variant_default_noun_singular_tl
+ { \tl_item:Nn \l__crefthe_parsed_tl { 2 } }
+ \tl_set:Nx \l__crefthe_variant_default_article_plural_tl
+ { \tl_item:Nn \l__crefthe_parsed_tl { 3 } }
+ \tl_set:Nx \l__crefthe_variant_default_noun_plural_tl
+ { \tl_item:Nn \l__crefthe_parsed_tl { 4 } }
+ }
+\cs_new_protected:Npn \__crefthe_parse_variant_value:nn #1#2
+ {
+ \__crefthe_variant_parser:w #2 \q_stop
+ \tl_put_right:Nx \l__crefthe_variant_article_singular_tl
+ { { \tl_to_str:n { #1 } } { \tl_item:Nn \l__crefthe_parsed_tl { 1 } } }
+ \tl_put_right:Nx \l__crefthe_variant_noun_singular_tl
+ { { \tl_to_str:n { #1 } } { \tl_item:Nn \l__crefthe_parsed_tl { 2 } } }
+ \tl_put_right:Nx \l__crefthe_variant_article_plural_tl
+ { { \tl_to_str:n { #1 } } { \tl_item:Nn \l__crefthe_parsed_tl { 3 } } }
+ \tl_put_right:Nx \l__crefthe_variant_noun_plural_tl
+ { { \tl_to_str:n { #1 } } { \tl_item:Nn \l__crefthe_parsed_tl { 4 } } }
+ }
+
+\cs_new_protected:Npn \crefthe_pass_variant_to:n #1
+ {
+ \use:e
+ {
+ \exp_not:n { #1 }
+ \bool_if:NTF \l__crefthe_variant_default_bool
+ {
+ [
+ \exp_not:n { \str_case:NnF \l__crefthe_variant_tl }
+ { \exp_not:o \l__crefthe_variant_article_singular_tl }
+ { \exp_not:o \l__crefthe_variant_default_article_singular_tl }
+ ]
+ {
+ \exp_not:n { \str_case:NnF \l__crefthe_variant_tl }
+ { \exp_not:o \l__crefthe_variant_noun_singular_tl }
+ { \exp_not:o \l__crefthe_variant_default_noun_singular_tl }
+ }
+ [
+ \exp_not:n { \str_case:NnF \l__crefthe_variant_tl }
+ { \exp_not:o \l__crefthe_variant_article_plural_tl }
+ { \exp_not:o \l__crefthe_variant_default_article_plural_tl }
+ ]
+ {
+ \exp_not:n { \str_case:NnF \l__crefthe_variant_tl }
+ { \exp_not:o \l__crefthe_variant_noun_plural_tl }
+ { \exp_not:o \l__crefthe_variant_default_noun_plural_tl }
+ }
+ }
+ {
+ [
+ \exp_not:n { \str_case:Nn \l__crefthe_variant_tl }
+ { \exp_not:o \l__crefthe_variant_article_singular_tl }
+ ]
+ {
+ \exp_not:n { \str_case:Nn \l__crefthe_variant_tl }
+ { \exp_not:o \l__crefthe_variant_noun_singular_tl }
+ }
+ [
+ \exp_not:n { \str_case:Nn \l__crefthe_variant_tl }
+ { \exp_not:o \l__crefthe_variant_article_plural_tl }
+ ]
+ {
+ \exp_not:n { \str_case:Nn \l__crefthe_variant_tl }
+ { \exp_not:o \l__crefthe_variant_noun_plural_tl }
+ }
+ }
+ }
+ }
+
\seq_new:N \g__crefthe_already_patched_seq
\cs_new_protected:Nn \crefthe_patch_format:nnnn
@@ -209,19 +409,18 @@
{ format-patch-failed }
{ Failed~to~patch~the~format~"\iow_char:N \\#1"! }
-\cs_generate_variant:Nn \text_lowercase:n { V }
\NewDocumentCommand \crefthemark { m }
{
\crefthe_contraction:Ve \l__crefthe_prep_each_tl
{ \crefthe_contraction:Vn \l__crefthe_prep_once_tl { #1 } }
\tl_gclear:N \l__crefthe_prep_once_tl
\tl_gset:Nx \l__crefthe_prep_each_tl
- { \text_lowercase:V \l__crefthe_prep_each_tl }
+ { \text_lowercase:n { \l__crefthe_prep_each_tl } }
\str_if_eq:eeF { \str_tail:n { #1 } } { ' } { ~ }
\bool_gset_false:N \g__crefthe_uppercase_bool
}
-\prg_generate_conditional_variant:Nnn \str_case_e:nn { nv } { T, F, TF }
+\prg_generate_conditional_variant:Nnn \str_case_e:nn { ev } { T, F, TF }
\cs_new:Nn \crefthe_contraction:nn
{
\exp_args:Ne \__crefthe_contraction:nnn
@@ -239,7 +438,7 @@
{
\exp_args:Ne \__crefthe_conditional_uppercase:n
{
- \str_case_e:nvF { #2~#1 }
+ \str_case_e:evF { #2~#1 }
{ c_crefthe_contraction_rule_ \languagename _tl }
{ #2~#1 }
}
@@ -249,6 +448,7 @@
}
\cs_new:Nn \__crefthe_conditional_uppercase:n
{
+ % \bool_set_false:N \l_text_titlecase_check_letter_bool
\bool_if:NTF \g__crefthe_uppercase_bool
{ \text_titlecase_first:n }
{ \use:n }
@@ -293,6 +493,25 @@
{ De~le } { Du }
{ De~les } { Des }
}
+\tl_const:Nn \c_crefthe_contraction_rule_ngerman_tl
+ {
+ { an~dem } { am }
+ { an~das } { ans }
+ { bei~dem } { beim }
+ { in~dem } { im }
+ { in~das } { ins }
+ { von~dem } { vom }
+ { zu~dem } { zum }
+ { zu~der } { zur }
+ { An~dem } { Am }
+ { An~das } { Ans }
+ { Bei~dem } { Beim }
+ { In~dem } { Im }
+ { In~das } { Ins }
+ { Von~dem } { Vom }
+ { Zu~dem } { Zum }
+ { Zu~der } { Zur }
+ }
\tl_const:Nn \c_crefthe_contraction_rule_italian_tl
{
{ a~il } { al }
diff --git a/macros/latex/contrib/esami/README b/macros/latex/contrib/esami/README
index c81c86eb43..22f183f8d8 100644
--- a/macros/latex/contrib/esami/README
+++ b/macros/latex/contrib/esami/README
@@ -1,6 +1,6 @@
-The esami package v. 2.7
+The esami package v. 2.8
For generation of texts and solutions of exams in LaTeX
-2022/01/11
+2023/07/21
File: README
Author: Grazia Messineo and Salvatore Vassallo
@@ -14,7 +14,7 @@ varying in random order, with closed or open answer, matching, problems, and so
of each group are randomly scrambled across the exam and variants of each exercise are chosen
randomly from a file which contains them all and.
-Copyright: (C) 2008--2022 Grazia Messineo & Salvatore Vassallo
+Copyright: (C) 2008--2023 Grazia Messineo & Salvatore Vassallo
Licence: LPPL
FILES IN DISTRIBUTION
@@ -23,16 +23,16 @@ FILES IN DISTRIBUTION
BASE DISTRIBUTION:
VERSION
- README This file.
- esami.sty The main file
+ README This file.
+ esami.sty The main file
esami-xyz.cfg A template of configuration file
- es-*.lng Localisation files
+ es-*.lng Localisation files
DOCUMENTATION:
esami-doc-en.pdf User manual in English
- esami-doc-it.pdf User manual in Italian
- esami-doc-*.tex Sources for documentation
+ esami-doc-it.pdf User manual in Italian
+ esami-doc-*.tex Sources for documentation
esami.bib Source for references
EXAMPLES:
@@ -57,23 +57,25 @@ FILES IN DISTRIBUTION
Exercises with open answers
problem1.tex
- problem2.tex
+ problem2.tex
problem2-tabella.tex
problem3-matching.tex
problem4-fillin.tex
Examples of an exam (and solutions) built using above exercises using pdflatex, xelatex and lualatex
- testA.pdf
- testA.tex
+ testA-luatex.pdf
testA-luatex-sol.pdf
- testA-luatex.pdf
- testA-sol.pdf
- testA-sol.tex
- testA-xetex-sol.pdf
+ testA-luatex-sol.tex
+ testA-luatex.tex
+ testA-pdflatex.pdf
+ testA-pdflatex-sol.pdf
+ testA-pdflatex-sol.tex
+ testA-pdflatex.tex
testA-xetex.pdf
- testA.pdf
- testA.tex
- testA-sol.loe
+ testA-xetex-sol.pdf
+ testA-xetex-sol.tex
+ testA-xetex.tex
+
BASIC INSTALLATION
====================
diff --git a/macros/latex/contrib/esami/VERSION b/macros/latex/contrib/esami/VERSION
index d312737d7e..64fbb8d2f3 100644
--- a/macros/latex/contrib/esami/VERSION
+++ b/macros/latex/contrib/esami/VERSION
@@ -1 +1 @@
-VERSION 2.7 DATE=January 11, 2022
+VERSION 2.8 DATE=July 17, 2023
diff --git a/macros/latex/contrib/esami/doc/esami-doc-en.pdf b/macros/latex/contrib/esami/doc/esami-doc-en.pdf
index d7dddc90ab..d2d96db33a 100644
--- a/macros/latex/contrib/esami/doc/esami-doc-en.pdf
+++ b/macros/latex/contrib/esami/doc/esami-doc-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/esami/doc/esami-doc-en.tex b/macros/latex/contrib/esami/doc/esami-doc-en.tex
index 05788c147f..44da55a481 100644
--- a/macros/latex/contrib/esami/doc/esami-doc-en.tex
+++ b/macros/latex/contrib/esami/doc/esami-doc-en.tex
@@ -80,7 +80,7 @@
\changes{Version 2.5}{2018/05/06}{Corrected a misprint in the code. Improved the selection of random exercises.}
\changes{Version 2.6}{2021/10/11}{Improved the spacing in \cmd{\FPsignpol}. Corrected the code to avoid some spourios spaces. }
\changes{Version 2.7}{2022/01/11}{Improved the spacing in \cmd{\sempli} and \cmd{\FPsignpol}. Corrected a misprint in the code.}
-
+\changes{Versione 2.8}{2023/07/21}{Documentation modified to solve a problem with the Spanish Language.}
%\IndexPrologue{\section*{Index} Numbers written in italic refer to the page where the item is described; underlined numebers refer to the line of code in which the item is described; other references are to the line of code where the item is used.}
\GlossaryPrologue{\section*{Changelog}}
\def\MacroFont{\fontencoding\encodingdefault
@@ -89,8 +89,8 @@
\fontshape\updefault
\footnotesize}
\GetFileInfo{esami.sty}
-\def\fileversion{versione 2.7}
-\def\filedate{2022/01/11}
+\def\fileversion{versione 2.8}
+\def\filedate{2023/07/21}
\title{Package esami\thanks{This document
@@ -770,6 +770,8 @@ The elements of the list must be comma separated.
The package has localisations in Italian (the default), UK English, US English, French, Spanish (thanks to Maria Hernandez Cifre), German (thanks to Kerstin von Kirschhausen), Serbian with latin alphabet (thanks to Dusko Latas), Greek (thanks to Sotiris Hasapis). Using greek language (and maybe other non latin localisations) it's necessary to load the packages \pkgname{fontenc}, \pkgname{inputenc} e \pkgname{babel} before the package \pkgname{esami}\footnote{The option \optname{greek} requires at this moment the option \optname{iso-8859-7} for the package \pkgname{inputenc}}. In this file one can also load some language dependent packages, such as \pkgname{numprint}, \pkgname{geometry}, etc. and there are the definitions of the commands \cmd{\shortdate} and \cmd{\longdate} to write the date.
\textcolor[rgb]{1.00,0.00,0.00}{\textbf{N.B.:} There is an known incompatibility between the package \pkgname{babel} for the French language (which is not necessary for the localization) and the package \pkgname{fp}: to manage this incompatibility, one can use the macro \cmd{\shorthandoff\{:\}} immediately after \cmd{\begin\{document\}}.}
+
+The \pkgname{babel} package for the Spanish language makes a lot of characters active and this causes many incompatibilities (for instance in the \pkgname{iffthen} package it is not possible to make number confrontations, sidely used in the \pkgname{esami}) package. To solve this problem, you can use the \optname{spanish} option when loading the article class, load the \pkgname{babel} package with the option \optname{spanish} and at least one among the options \optname{es-minimal, es-sloppy} (for a complete list of the options and the possible incompatibilities, see the doc of the \pkgname{babel-spanish} package\cite{babel-spanish}.
\subsection{The configuration file}\label{sec:cfg}
The configuration file \texttt{esami-xyz.cfg} contains various definitions, i.e. the header (command \cmd{\testa}), the footer, the format for the solution file, the page style, the instructions for the exam.
\subsection{The \texttt{master} and \texttt{master-sol} files}
@@ -794,8 +796,9 @@ Inside this file you should use only one command, \cmd{\def \textbackslash eserc
\item[Version 2.3 (2017/09/18)] Corrected a misprint in the code.
\item[Version 2.4 (2018/02/10)] Documentation corrected.
\item[Version 2.5 (2018/05/06)] Corrected a misprint in the code. Improved the selection of random exercises.
- \item[Version 2.6 (2021/10/11)] Improved the spacing in \cmd{\FPsignpol}. Corrected the code to avoid some spourios spaces.
+ \item[Version 2.6 (2021/10/11)] Improved the spacing in \cmd{\FPsignpol}. Corrected the code to avoid some spourios spaces.
\item[Version 2.7 (2021/10/11)] Improved the spacing in \cmd{\sempli} and \cmd{\FPsignpol}. Corrected a misprint in the code
+\item[Versione 2.8 (2023/07/21)] Documentation modified to solve a problem with the spanish language.
\end{description}
\bibliographystyle{plain}
diff --git a/macros/latex/contrib/esami/doc/esami-doc-it.pdf b/macros/latex/contrib/esami/doc/esami-doc-it.pdf
index b706c809d3..c4c9c5f20e 100644
--- a/macros/latex/contrib/esami/doc/esami-doc-it.pdf
+++ b/macros/latex/contrib/esami/doc/esami-doc-it.pdf
Binary files differ
diff --git a/macros/latex/contrib/esami/doc/esami-doc-it.tex b/macros/latex/contrib/esami/doc/esami-doc-it.tex
index 3ac7495edb..0a2b92414f 100644
--- a/macros/latex/contrib/esami/doc/esami-doc-it.tex
+++ b/macros/latex/contrib/esami/doc/esami-doc-it.tex
@@ -74,11 +74,11 @@
\changes{Versione 2.1}{2016/04/11}{Modificato \texttt{es-german.lng} e \texttt{es-spanish.lng} per errore nell'input delle soluzioni. Introdotto il comando \texttt{randestrai}. Introdotto il comando \texttt{FPsignpol}. Introdotto controllo punteggio totale degli esercizi. Rimossa l'incompatibilità tra il comando \texttt{fillin} e i comandi \texttt{sempli} e \texttt{semplix}.}
\changes{Versione 2.2}{2017/07/01}{Introdotta la possibilità di avere due semi diversi per la scelta degli esercizi (\cmd{\semeex}) e per le permutazioni e scelta dei parametri (\cmd{\seme}): di default sono uguali. Leggermente modificato il comando \cmd{\estrai} così da poter essere usato per estrarre parametri numerici da una lista. Integrata la documentazione.}
\changes{Versione 2.3}{2017/09/18}{Corretto un errore di battitura nel codice.}
-\changes{Versione 2.4}{2018/02/10}{Corretta la documentazione .}
+\changes{Versione 2.4}{2018/02/10}{Corretta la documentazione.}
\changes{Versione 2.5}{2018/05/06}{Corretto un errore di battitura nel codice. Migliorata la scelta aleatoria degli esercizi.}
\changes{Versione 2.6}{2021/10/11}{Migliorata la spaziatura in \cmd{\FPsignpol}. Corretto il codice per eliminare alcuni spazi spuri.}
\changes{Versione 2.7}{2022/01/11}{Migliorata la spaziatura in \cmd{\sempli} e \cmd{\FPsignpol}. Corretto un errore nel codice}
-
+\changes{Versione 2.8}{2023/07/21}{Modificata la documentazione per risolvere un problema con la lingua spagnola.}
%\IndexPrologue{\section*{Indice} I numeri scritti in italico rimandano alla pagina dove è descritto l'item; i numeri sottolineati rimandano alla riga di codice in cui l'item è descritto; le altre referenze sono alla riga di codice dove l'item è usato.}
\GlossaryPrologue{\section*{Changelog}}
\def\MacroFont{\fontencoding\encodingdefault
@@ -87,8 +87,8 @@
\fontshape\updefault
\footnotesize}
\GetFileInfo{esami.sty}
-\def\fileversion{versione 2.7}
-\def\filedate{2022/01/11}
+\def\fileversion{versione 2.8}
+\def\filedate{2023/07/17}
\title{Il pacchetto esami\thanks{Questo documento
@@ -771,7 +771,9 @@ Gli elementi della lista devono essere separati da virgole.
\section{I file ausiliari}
\subsection{Il file di localizzazione}\label{sec:lng}
Al momento sono presenti le localizzazioni in italiano (default), inglese (UK), inglese (US), francese, spagnolo (contributo di Maria Hernandez Cifre), tedesco (contributo di Kerstin von Kirschhausen), serbo con alfabeto latino (contributo di Dusko Latas), greco (contributo di Sotiris Hasapis). Usando la lingua greca (e forse altre localizzazioni in caratteri non latini) è necessario caricare i pacchetti \pkgname{fontenc}, \pkgname{inputenc} e \pkgname{babel} prima del caricamento del pacchetto \pkgname{esami}\footnote{L'opzione \optname{greek} prevede al momento l'utilizzo dell'opzione \optname{iso-8859-7} per il pacchetto \pkgname{inputenc}}. In questo file possono venire caricati anche alcuni pacchetti dipendenti dalla localizzazione, quali \pkgname{numprint}, \pkgname{geometry}, ecc. e vengono definiti i comandi \cmd{\shortdate} e \cmd{\longdate} per esprimere la data.
-\textcolor[rgb]{1.00,0.00,0.00}{\textbf{N.B.:} È nota un'incompatibilità tra il pacchetto \pkgname{babel} per la lingua francese (che non è comunque necessario per la localizzazione) e il pacchetto \pkgname{fp}: per ovviare a tale incompatibilità è sufficiente usare il comando \cmd{\shorthandoff\{:\}} subito dopo \cmd{\begin\{document\}}.}
+
+\textcolor[rgb]{1.00,0.00,0.00}{\textbf{N.B.:} È nota un'incompatibilità tra il pacchetto \pkgname{babel} per la lingua francese (che non è comunque necessario per la localizzazione) e il pacchetto \pkgname{fp}: per ovviare a tale incompatibilità è sufficiente usare il comando \cmd{\shorthandoff\{:\}} subito dopo \cmd{\begin\{document\}}.\\[2mm]
+Il pacchetto \pkgname{babel} per la lingua spagnola rende attivi molti caratteri e questo provoca notevoli incompatibilità (ad esempio nel pacchetto \pkgname{iffthen} non è possibile fare il confronto tra numeri, ampiamente utilizzato nel pacchetto \pkgname{esami}). Per ovviare a tale problema è sufficiente non usare l'opzione \optname{spanish} quando si carica la classe article, caricare il pacchetto \pkgname{babel} con l'opzione \optname{spanish} e almeno con le opzioni \optname{es-minimal, es-sloppy} (per un elenco completo delle opzioni e dei problemi che possono insorgere si veda la documentazione del pacchetto \pkgname{babel-spanish}\cite{babel-spanish}.}
\subsection{Il file di configurazione}\label{sec:cfg}
Il file di configurazione \texttt{esami-xyz.cfg} contiene varie definizioni tra cui la testata (comando \cmd{\testa}), il piè di pagina, la formattazione della stringa delle soluzioni, lo stile di pagina, le istruzioni per l'esame.
\subsection{I file \texttt{master} e \texttt{master-sol}}
@@ -793,11 +795,11 @@ Al suo interno si deve usare un solo comando, \cmd{\def \textbackslash esercizio
\item[Versione 2.1 (2016/07/25)] Modificato \texttt{es-german.lng} e \texttt{es-spanish.lng} per errore nell'input delle soluzioni. Introdotto il comando \texttt{randestrai}. Introdotto il comando \texttt{FPsignpol}. Introdotto controllo punteggio totale degli esercizi. Risolta l'incompatibilità con \pkgname{babel} per la lingua spagnola. Rimossa l'incompatibilità tra il comando \cmd{\fillin} e i comandi \cmd{\sempli} e \cmd{\semplix}.
\item[Versione 2.2 (2017/07/01)] Introdotta la possibilità di avere due semi diversi per la scelta degli esercizi (\cmd{\semeex}) e per le permutazioni e scelta dei parametri (\cmd{\seme}): di default sono uguali. Leggermente modificato il comando \cmd{\estrai} così da poter essere usato per estrarre parametri numerici da una lista. Integrata la documentazione.
\item[Versione 2.3 (2017/09/18)] Corretto un errore di battitura nel codice.
- \item[Versione 2.4 (2018/02/10)] Corretta la documentazione .
+ \item[Versione 2.4 (2018/02/10)] Corretta la documentazione.
\item[Versione 2.5 (2018/05/06)] Corretto un errore di battitura nel codice. Migliorata la scelta aleatoria degli esercizi.
\item[Versione 2.6 (2021/10/11)] Migliorata la spaziatura in \cmd{\FPsignpol}. Corretto il codice per eliminare alcuni spazi spuri.
\item[Versione 2.7 (2022/01/11)] Migliorata la spaziatura in \cmd{\sempli} e \cmd{\FPsignpol}. Corretto un errore nel codice
-
+ \item[Versione 2.8 (2023/07/21)] Modificata la documentazione per risolvere un problema con la lingua spagnola.
\end{description}
diff --git a/macros/latex/contrib/esami/doc/esami.bib b/macros/latex/contrib/esami/doc/esami.bib
index 5ca60ecc07..42daa3133b 100644
--- a/macros/latex/contrib/esami/doc/esami.bib
+++ b/macros/latex/contrib/esami/doc/esami.bib
@@ -1,5 +1,12 @@
% Encoding: UTF-8
+@MISC{babel-spanish,
+ author = {Javier Bezos},
+ title = {Estilo spanish para el sistema babel.},
+ howpublished = {\url{CTAN:/macros/latex/contrib/babel-contrib/spanish}},
+ year = {2021}
+}
+
@MISC{examdesign,
author = {Jason Alexander},
title = {The package \pkgname{examdesign}},
diff --git a/macros/latex/contrib/esami/doc/examples/problem4-fillin.tex b/macros/latex/contrib/esami/doc/examples/problem4-fillin.tex
index 6ddbeb1f86..b958cd821a 100644
--- a/macros/latex/contrib/esami/doc/examples/problem4-fillin.tex
+++ b/macros/latex/contrib/esami/doc/examples/problem4-fillin.tex
@@ -22,4 +22,4 @@ If $A=\left\{a,b,c,d,\a,\c,\k\right\}$ and $B=\left\{c,a,\c,1,\b\right\}$ then \
$ A\cap B=$\fillin[u]{4cm}{$\left\{a,c,\c\right\}$} \\
$A\setminus B$=\fillin{60pt}{$\left\{b,d,\k\right\}$}
\end{problem}
- } \ No newline at end of file
+ }
diff --git a/macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie1.parametri.tex b/macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie1.parametri.tex
new file mode 100644
index 0000000000..107265dbc4
--- /dev/null
+++ b/macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie1.parametri.tex
@@ -0,0 +1,4 @@
+\FPeval{a}{round(12:0)}
+\FPeval{b}{round(13:0)}
+\FPeval{c}{round(3:0)}
+\FPeval{k}{round(4:0)}
diff --git a/macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie2.parametri.tex b/macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie2.parametri.tex
new file mode 100644
index 0000000000..e736caa6a0
--- /dev/null
+++ b/macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie2.parametri.tex
@@ -0,0 +1,4 @@
+\FPeval{a}{round(14:0)}
+\FPeval{b}{round(15:0)}
+\FPeval{c}{round(2:0)}
+\FPeval{k}{round(5:0)}
diff --git a/macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie3.parametri.tex b/macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie3.parametri.tex
new file mode 100644
index 0000000000..98ef510098
--- /dev/null
+++ b/macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie3.parametri.tex
@@ -0,0 +1,4 @@
+\FPeval{a}{round(12:0)}
+\FPeval{b}{round(15:0)}
+\FPeval{c}{round(2:0)}
+\FPeval{k}{round(4:0)}
diff --git a/macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie4.parametri.tex b/macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie4.parametri.tex
new file mode 100644
index 0000000000..ab468d8a75
--- /dev/null
+++ b/macros/latex/contrib/esami/doc/examples/qftest5-fillinqiie4.parametri.tex
@@ -0,0 +1,4 @@
+\FPeval{a}{round(13:0)}
+\FPeval{b}{round(14:0)}
+\FPeval{c}{round(2:0)}
+\FPeval{k}{round(4:0)}
diff --git a/macros/latex/contrib/esami/doc/examples/test5-fillin.tex b/macros/latex/contrib/esami/doc/examples/test5-fillin.tex
index 14fcc410e4..adb06c3c68 100644
--- a/macros/latex/contrib/esami/doc/examples/test5-fillin.tex
+++ b/macros/latex/contrib/esami/doc/examples/test5-fillin.tex
@@ -23,4 +23,4 @@ $$ \b:\k= \fillin[b]{3cm}{ \FPsv[2]{b/k}}$$
Evaluate with two exact decimals
-$$ \a:\c= \fillin[b]{3cm}{ \FPsv[2]{a/c}}$$ } \ No newline at end of file
+$$ \a:\c= \fillin[b]{3cm}{ \FPsv[2]{a/c}}$$ }
diff --git a/macros/latex/contrib/esami/doc/examples/testA-pdflatex-sol.pdf b/macros/latex/contrib/esami/doc/examples/testA-pdflatex-sol.pdf
new file mode 100644
index 0000000000..de49c0d47d
--- /dev/null
+++ b/macros/latex/contrib/esami/doc/examples/testA-pdflatex-sol.pdf
Binary files differ
diff --git a/macros/latex/contrib/esami/doc/examples/testA-sol.tex b/macros/latex/contrib/esami/doc/examples/testA-pdflatex-sol.tex
index 5302238910..0bffb54fdc 100644
--- a/macros/latex/contrib/esami/doc/examples/testA-sol.tex
+++ b/macros/latex/contrib/esami/doc/examples/testA-pdflatex-sol.tex
@@ -1,21 +1,6 @@
\documentclass[a4paper,italian]{article}
-\usepackage{ifxetex}%%NUOVO
-\usepackage{ifluatex}%%%NUOVO
-
-%\usepackage[shuffle,xyz,pointsonright,nosolutions,noquizsolutions,twocolumns]{esami}%%%%% TEMA
-\ifluatex
- \usepackage{luatextra} % also loads fixltx2e, fontspec, xunicode
- \usepackage[utf8]{luainputenc}
-\else\ifxetex
- \usepackage{fixltx2e}
- \usepackage{fontspec}
- \XeTeXinputencoding utf8
-\else
- \usepackage{fixltx2e}
- \usepackage[T1]{fontenc}
- \usepackage[utf8]{inputenc}
- \usepackage{lmodern,textcomp}
-\fi\fi
+
+
\usepackage[shuffle,xyz,pointsonright,solutions,quizsolutions,twocolumns]{esami}%%%%% TEMA
% +=============================+
@@ -24,7 +9,7 @@
\def\examname{The name of the exam}
\def\numcompiti{4}%%% The number of the versions
-\date{2022/01/22}%%% THE DATE IN THE FORMAT YYYY/M/D or D/M/YYYY
+\date{2023/07/14}%%% THE DATE IN THE FORMAT YYYY/M/D or D/M/YYYY
\def\Data{\longdate}%%% or \shortdate: the date in the heading
%\def\cartella{pop}%%% The folder where are the exercises: by default the current folder%
%\def\Acapo{\newpage}
diff --git a/macros/latex/contrib/esami/doc/examples/testA-pdflatex.pdf b/macros/latex/contrib/esami/doc/examples/testA-pdflatex.pdf
new file mode 100644
index 0000000000..152d2ca5e3
--- /dev/null
+++ b/macros/latex/contrib/esami/doc/examples/testA-pdflatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/esami/doc/examples/testA.tex b/macros/latex/contrib/esami/doc/examples/testA-pdflatex.tex
index 0a443d7518..e97d43f2e0 100644
--- a/macros/latex/contrib/esami/doc/examples/testA.tex
+++ b/macros/latex/contrib/esami/doc/examples/testA-pdflatex.tex
@@ -1,20 +1,5 @@
\documentclass[a4paper,italian]{article}
-\usepackage{ifxetex}
-\usepackage{ifluatex}
-
-\ifluatex
- \usepackage{luatextra} % also loads fixltx2e, fontspec, xunicode
- \usepackage[utf8]{luainputenc}
-\else\ifxetex
- \usepackage{fixltx2e}
- \usepackage{fontspec}
- \XeTeXinputencoding utf8
-\else
- \usepackage{fixltx2e}
- \usepackage[T1]{fontenc}
- \usepackage[utf8]{inputenc}
- \usepackage{lmodern,textcomp}
-\fi\fi
+
\usepackage[shuffle,xyz,pointsonright,nosolutions,noquizsolutions,twocolumns]{esami}
% +=============================+
diff --git a/macros/latex/contrib/esami/doc/examples/testA-sol.pdf b/macros/latex/contrib/esami/doc/examples/testA-sol.pdf
deleted file mode 100644
index 634f2950b0..0000000000
--- a/macros/latex/contrib/esami/doc/examples/testA-sol.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/esami/doc/examples/testA-xetex-sol.sol.tex b/macros/latex/contrib/esami/doc/examples/testA-xetex-sol.sol.tex
deleted file mode 100644
index 00cc5e002c..0000000000
--- a/macros/latex/contrib/esami/doc/examples/testA-xetex-sol.sol.tex
+++ /dev/null
@@ -1,84 +0,0 @@
-\begin{minipage}{.33\textwidth}{\large\textbf{Soluzione\ Versione\ n. 1}}
-\begin{enumerate}
-\item\ref{e:1-file:test2-q:i}
-\item\ref{e:1-file:test3-q:ii}
-\item\ref{e:1-file:test2-q:ii}
-\item\ref{e:1-file:test2-q:iii}
-\item\ref{e:1-file:test3-q:i}
-\item\ref{e:1-file:test1-q:i}
-\item\ref{e:1-file:test9-q:ii}
-\item\ref{e:1-file:test14-q:i}
-\item\ref{e:1-file:test4-q:v}
-\item \makeatletter \input{qftest5-fillinqiie1.parametri}\makeatother
- \FPsv [2]{b/k}
-\item\ref{e:1-file:test11-q:i}
-\item\ref{e:1-file:test11-q:ii}
-\par\end{enumerate}\vspace{3ex}
-\begin{enumerate}
-\item\ref{e:1-file:test12-q:i}
-\item\ref{e:1-file:test13-q:ii}
-\par\end{enumerate}\vspace{3ex}
-\end{minipage}
-\begin{minipage}{.33\textwidth}{\large\textbf{Soluzione\ Versione\ n. 2}}
-\begin{enumerate}
-\item\ref{e:2-file:test2-q:iii}
-\item\ref{e:2-file:test3-q:i}
-\item\ref{e:2-file:test2-q:ii}
-\item\ref{e:2-file:test3-q:iv}
-\item\ref{e:2-file:test2-q:i}
-\item\ref{e:2-file:test1-q:ii}
-\item \makeatletter \input{qftest5-fillinqiie2.parametri}\makeatother
- \FPsv [2]{a/c}
-\item\ref{e:2-file:test9-q:iii}
-\item\ref{e:2-file:test14-q:i}
-\item\ref{e:2-file:test4-q:ii}
-\item\ref{e:2-file:test11-q:i}
-\item\ref{e:2-file:test11-q:ii}
-\par\end{enumerate}\vspace{3ex}
-\begin{enumerate}
-\item\ref{e:2-file:test13-q:iii}
-\item\ref{e:2-file:test12-q:iii}
-\par\end{enumerate}\vspace{3ex}
-\end{minipage}
-\begin{minipage}{.33\textwidth}{\large\textbf{Soluzione\ Versione\ n. 3}}
-\begin{enumerate}
-\item\ref{e:3-file:test2-q:iii}
-\item\ref{e:3-file:test3-q:i}
-\item\ref{e:3-file:test2-q:i}
-\item\ref{e:3-file:test3-q:ii}
-\item\ref{e:3-file:test2-q:ii}
-\item\ref{e:3-file:test14-q:i}
-\item \makeatletter \input{qftest5-fillinqiie3.parametri}\makeatother
- \FPsv [2]{b/k}
-\item\ref{e:3-file:test4-q:iii}
-\item\ref{e:3-file:test1-q:i}
-\item\ref{e:3-file:test9-q:iv}
-\item\ref{e:3-file:test11-q:i}
-\item\ref{e:3-file:test11-q:ii}
-\par\end{enumerate}\vspace{3ex}
-\begin{enumerate}
-\item\ref{e:3-file:test12-q:i}
-\item\ref{e:3-file:test13-q:iv}
-\par\end{enumerate}\vspace{3ex}
-\end{minipage}
-\begin{minipage}{.33\textwidth}{\large\textbf{Soluzione\ Versione\ n. 4}}
-\begin{enumerate}
-\item\ref{e:4-file:test2-q:ii}
-\item\ref{e:4-file:test2-q:i}
-\item\ref{e:4-file:test3-q:i}
-\item\ref{e:4-file:test3-q:ii}
-\item\ref{e:4-file:test2-q:iii}
-\item\ref{e:4-file:test4-q:v}
-\item\ref{e:4-file:test9-q:iii}
-\item\ref{e:4-file:test1-q:ii}
-\item\ref{e:4-file:test14-q:i}
-\item \makeatletter \input{qftest5-fillinqiie4.parametri}\makeatother
- \FPsv [2]{a/c}
-\item\ref{e:4-file:test11-q:i}
-\item\ref{e:4-file:test11-q:ii}
-\par\end{enumerate}\vspace{3ex}
-\begin{enumerate}
-\item\ref{e:4-file:test13-q:iii}
-\item\ref{e:4-file:test12-q:iii}
-\par\end{enumerate}\vspace{3ex}
-\end{minipage}
diff --git a/macros/latex/contrib/esami/doc/examples/testA.pdf b/macros/latex/contrib/esami/doc/examples/testA.pdf
deleted file mode 100644
index 78f7234f83..0000000000
--- a/macros/latex/contrib/esami/doc/examples/testA.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/esami/esami-xyz.cfg b/macros/latex/contrib/esami/esami-xyz.cfg
index 13484158d2..b4c4604713 100644
--- a/macros/latex/contrib/esami/esami-xyz.cfg
+++ b/macros/latex/contrib/esami/esami-xyz.cfg
@@ -1,11 +1,11 @@
%% Package `esami' to use with LaTeX 2e
-%% Copyright (C) 2008-2022 G. Messineo e S. Vassallo
+%% Copyright (C) 2008-2023 G. Messineo e S. Vassallo
%%
%% This is file `esami-xyz.cfg',
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% esami-xyz.cfg, 2022-01-11 %%
-%% Copyright (C) 2008-2022 G. Messineo e S. Vassallo %%
+%% esami-xyz.cfg, 2023-07-21 %%
+%% Copyright (C) 2008-2023 G. Messineo e S. Vassallo %%
%% %%
%% This program can be redistributed and/or modified %%
%% under the terms of the LaTeX Project Public License %%
diff --git a/macros/latex/contrib/esami/esami.sty b/macros/latex/contrib/esami/esami.sty
index 2968a0d60d..12bf761379 100644
--- a/macros/latex/contrib/esami/esami.sty
+++ b/macros/latex/contrib/esami/esami.sty
@@ -2,8 +2,8 @@
%% This is file `esami.sty',
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% esami.sty package, 2022-01-11 %%
-%% Copyright (C) 2008-2022 G. Messineo e S. Vassallo %%
+%% esami.sty package, 2023-07-21 %%
+%% Copyright (C) 2008-2023 G. Messineo e S. Vassallo %%
%% %%
%% This program can be redistributed and/or modified %%
%% under the terms of the LaTeX Project Public License %%
@@ -51,10 +51,11 @@
% Version 2.7
% 2022/01/11
%Improved the spacing in \cmd{\sempli} and \cmd{\FPsignpol}. Corrected a misprint in the code.
-%
+% 2013/07/21
+%Documentation modified to solve a problem with the Spanish Language.
\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{esami}
- [2022/01/11 v2.7 An Exam Construction Package]
+ [2023/07/21 v2.8 An Exam Construction Package]
% +=============================+
% | THE OPTIONS |
diff --git a/macros/latex/contrib/mitthesis/MIT-Thesis.pdf b/macros/latex/contrib/mitthesis/MIT-Thesis.pdf
index 51f4a87371..169e05b2e0 100644
--- a/macros/latex/contrib/mitthesis/MIT-Thesis.pdf
+++ b/macros/latex/contrib/mitthesis/MIT-Thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex
index c0a22d37d7..66deabb5d0 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex
@@ -3,15 +3,14 @@
% !BIB program = biber
% This file is MIT-Thesis.tex, a template for producing MIT theses with the mitthesis class.
-% Version: 1.04, 2023/07/03
+% Version: 1.05, 2023/07/21
% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation: https://ctan.org/pkg/mitthesis
%% Don't modify the \DocumentMetadata command unless you know what it does.
%% If this command throws an "undefined" error, your latex system is out of date: try commenting this command out.
-\DocumentMetadata
-{
+\DocumentMetadata{
pdfstandard = a-2b,
pdfversion = 1.7,
lang = en-US,
@@ -19,7 +18,7 @@
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[twoside]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2,fontset=stix2
+\documentclass[twoside]{mitthesis} %,fontset=libertine ,fontset=newtx-sans-text, fontset=heros-stix2, fontset=stix2
%
% option [twoside] gives facing-page behavior for printing; omitting it will eliminate even-numbered blank pages.
% option [lineno] provides line numbers, as for editing
@@ -115,7 +114,6 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
@@ -125,9 +123,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -155,9 +153,9 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -187,14 +185,15 @@
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+%\Supervisor{Secunda Castor}{Professor of Research}
%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
@@ -245,21 +244,11 @@
\cleardoublepage
-%%% Table of contents and lists of stuff (edit only if you want different lists) %%%%%%%%%%%%%%%%
+%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
- \pdfbookmark[0]{Table of Contents}{toc}%
\tableofcontents
- \cleardoublepage
-
- \phantomsection
\listoffigures
- \addcontentsline{toc}{chapter}{\protect\textbf{\listfigurename}}%
- \cleardoublepage
-
- \phantomsection
\listoftables
- \addcontentsline{toc}{chapter}{\protect\textbf{\listtablename}}%
- \cleardoublepage
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex
index 07a90bce08..a7914cb851 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/appendixa.tex
@@ -1,5 +1,5 @@
% From mitthesis package
-% Version: 1.00, 2023/06/17
+% Version: 1.01, 2023/07/04
% Documentation: https://ctan.org/pkg/mitthesis
@@ -35,27 +35,27 @@ function print_rate(kappa,xMin,xMax,npoints,option)
psi0 = (1/c)*math.exp((kappa*arg0)^2)*(erfc(kappa*arg0)-erfc(arg0))
if option~=[[]] then
- tex.sprint("\\addplot+["..option.."] coordinates{")
- -- addplot+ for color cycle to work
+ tex.sprint("\\addplot+["..option.."] coordinates{")
+ -- addplot+ for color cycle to work
else
- tex.sprint("\\addplot+ coordinates{")
+ tex.sprint("\\addplot+ coordinates{")
end
tex.sprint("("..xMin..","..psi0..")")
for i=1, (npoints-1) do
- x = math.exp(logx + xstep)
+ x = math.exp(logx + xstep)
arg = math.sqrt(x/c)
- karg = kappa*arg
- if karg<5 then
+ karg = kappa*arg
+ if karg<5 then
-- this break compensates for exp(karg^2), which multiplies the error in the erf approximation...
- logpsi = -math.log(croot) + karg^2 + math.log(erfc(karg)-erfc(arg))
- psi = math.exp(logpsi)
- else
- psi = (1/(karg) - 1/(2*(karg^3)) + 3/(4*(arg^5)) )/(1.77245385*croot)
- -- this is the large x asymptote of the reaction rate
- end
- logx = math.log(x)
- tex.sprint("("..x..","..psi..")")
+ logpsi = -math.log(croot) + karg^2 + math.log(erfc(karg)-erfc(arg))
+ psi = math.exp(logpsi)
+ else
+ psi = (1/(karg) - 1/(2*(karg^3)) + 3/(4*(arg^5)) )/(1.77245385*croot)
+ -- this is the large x asymptote of the reaction rate
+ end
+ logx = math.log(x)
+ tex.sprint("("..x..","..psi..")")
end
tex.sprint("}")
end
diff --git a/macros/latex/contrib/mitthesis/MIT-thesis-template/chapter1.tex b/macros/latex/contrib/mitthesis/MIT-thesis-template/chapter1.tex
index 7170486dac..fda5b48ea2 100644
--- a/macros/latex/contrib/mitthesis/MIT-thesis-template/chapter1.tex
+++ b/macros/latex/contrib/mitthesis/MIT-thesis-template/chapter1.tex
@@ -1,5 +1,5 @@
% From mitthesis package
-% Version: 1.01, 2023/06/19
+% Version: 1.02, 2023/07/21
% Documentation: https://ctan.org/pkg/mitthesis
@@ -70,7 +70,7 @@ We begin with some ideas from the literature \cite{Fong2015,sharpe1}.
\centering\includegraphics[height=5cm]{example-image-b}
%\includegraphics[scale=0.5]{example-image-c}
%\includegraphics[width=3cm]{example-image}
-\caption{Caption text\label{mantissa-format}}
+\caption{Caption text\label{example-image-b}}
\end{figure}
@@ -160,3 +160,4 @@ Baroclinic generation of vorticity accounts for the sea breeze and various other
\end{tabular*}
}%
\end{table*}
+
diff --git a/macros/latex/contrib/mitthesis/README.md b/macros/latex/contrib/mitthesis/README.md
index be1ebfe217..46bef90606 100644
--- a/macros/latex/contrib/mitthesis/README.md
+++ b/macros/latex/contrib/mitthesis/README.md
@@ -1,7 +1,7 @@
#mitthesis --- A LaTeX template for MIT theses#
- v1.04 dated 2023/07/03.
+ v1.05 dated 2023/07/21
####Overview####
This class provides a LaTeX template for MIT theses formatted according to
@@ -53,6 +53,12 @@
---
####Change log####
+ v1.05 (21 July 2023):
+ - Fix bug in toc page number affecting some lists of figures or tables (note: for backward compatibility, remove code in .tex file around \tableofcontents, \listoffigures, and \listoftables so that your code will match the present version)
+ - Include thesis submission date in abstract, remove previous degrees from abstract page, and allow May for degree month, per MIT Libraries
+ - Fill pdflicenseurl in class file; update a class warning message
+ - Clean-up documentation and code
+
v1.04 (3 July 2023):
- Embed default fontset in class file, in case fontset directory is missing
diff --git a/macros/latex/contrib/mitthesis/examples/cover_page_samples/No_cc_license.pdf b/macros/latex/contrib/mitthesis/examples/cover_page_samples/No_cc_license.pdf
index 87814f209e..340044523a 100644
--- a/macros/latex/contrib/mitthesis/examples/cover_page_samples/No_cc_license.pdf
+++ b/macros/latex/contrib/mitthesis/examples/cover_page_samples/No_cc_license.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_one_degree.pdf b/macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_one_degree.pdf
index dd5c7a11da..1fd375e31a 100644
--- a/macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_one_degree.pdf
+++ b/macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_one_degree.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees.pdf b/macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees.pdf
index 9dd38df179..aebc0eb3f3 100644
--- a/macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees.pdf
+++ b/macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees_from_one_department.pdf b/macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees_from_one_department.pdf
index 4e9832bb38..601ef58e9c 100644
--- a/macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees_from_one_department.pdf
+++ b/macros/latex/contrib/mitthesis/examples/cover_page_samples/One_author_two_degrees_from_one_department.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_one_degree.pdf b/macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_one_degree.pdf
index 32fdc98d14..98db2f7306 100644
--- a/macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_one_degree.pdf
+++ b/macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_one_degree.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_two_degrees.pdf b/macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_two_degrees.pdf
index 41053554ee..509ca6bf17 100644
--- a/macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_two_degrees.pdf
+++ b/macros/latex/contrib/mitthesis/examples/cover_page_samples/Two_authors_two_degrees.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/No_cc_license.tex b/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/No_cc_license.tex
index 4d83fc7106..90af70cb5d 100644
--- a/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/No_cc_license.tex
+++ b/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/No_cc_license.tex
@@ -33,8 +33,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -43,9 +42,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -57,11 +56,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=blue,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -73,13 +72,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\begin{document}
@@ -92,25 +93,30 @@
% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
+% For two degrees from one department, leave the department argument blank for the second degree {}.
\Degree{Bachelor of Science in Physics}{Department of Physics}
+%\Degree{Master of Science in Physics}{}
%\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+%\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small}
+%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
diff --git a/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_one_degree.tex b/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_one_degree.tex
index ec649b2c5f..9b426eb0e3 100644
--- a/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_one_degree.tex
+++ b/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_one_degree.tex
@@ -33,8 +33,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -43,9 +42,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -57,11 +56,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=blue,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -73,13 +72,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\begin{document}
@@ -92,25 +93,30 @@
% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
+% For two degrees from one department, leave the department argument blank for the second degree {}.
\Degree{Bachelor of Science in Physics}{Department of Physics}
+%\Degree{Master of Science in Physics}{}
%\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+%\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small}
+%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
diff --git a/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees.tex b/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees.tex
index 1d750578db..b03232b383 100644
--- a/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees.tex
+++ b/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees.tex
@@ -33,8 +33,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -43,9 +42,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -57,11 +56,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=blue,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -73,13 +72,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\begin{document}
@@ -92,25 +93,31 @@
% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
+% For two degrees from one department, leave the department argument blank for the second degree {}.
\Degree{Bachelor of Science in Physics}{Department of Physics}
+%\Degree{Master of Science in Physics}{}
\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
-\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+%\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, Department of Physics}
+\Acceptor{Qunitus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+\Acceptor{Tertia Castor}{Professor of Log Dams}{Undergraduate Officer, of Mechanical Engineering}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small}
+%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
@@ -120,6 +127,7 @@
\ThesisDate{May 18, 1876}
+
%%%%%% Choose whether to have a CREATIVE COMMONS License %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% If you are using a cc license, put details of your cc license here.
diff --git a/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees_from_one_department.tex b/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees_from_one_department.tex
index 7158893a8e..9589bc981f 100644
--- a/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees_from_one_department.tex
+++ b/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/One_author_two_degrees_from_one_department.tex
@@ -33,8 +33,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -43,9 +42,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -57,11 +56,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=blue,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -73,13 +72,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\begin{document}
@@ -90,27 +91,32 @@
% \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][...
% Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted
-% note on names: most of the following names are made up; Joseph H. Keenan was a 20th century thermodynamicist at MIT.
+% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Jinsoo Kim}{Department of Mechanical Engineering}%[B.S. Physics, MIT, 1876]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
-\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
-\Degree{Master of Science in Mechanical Engineering}{}% <=== NOTE BLANK ARGUMENT!! <======== !!!!! <========== !!!!!
+% For two degrees from one department, leave the department argument blank for the second degree {}.
+\Degree{Bachelor of Science in Physics}{Department of Physics}
+\Degree{Master of Science in Physics}{}
+%\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
-\Supervisor{Joseph H. Keenan}{Professor of Mechanical Engineering}
-%\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+\Supervisor{Edward C. Pickering}{Professor of Physics}
+%\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, Department of Mechanical Engineering}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Physics}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small}
+%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
diff --git a/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_one_degree.tex b/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_one_degree.tex
index c1ed0817e1..711264986e 100644
--- a/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_one_degree.tex
+++ b/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_one_degree.tex
@@ -33,8 +33,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -43,9 +42,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -57,11 +56,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=blue,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -73,13 +72,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\begin{document}
@@ -92,25 +93,31 @@
% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
+% For two degrees from one department, leave the department argument blank for the second degree {}.
\Degree{Bachelor of Science in Physics}{Department of Physics}
+%\Degree{Master of Science in Physics}{}
%\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+%\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+%\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, Department of Physics}
+\Acceptor{Quintus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small}
+%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
diff --git a/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_two_degrees.tex b/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_two_degrees.tex
index c967973f36..dc92f65998 100644
--- a/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_two_degrees.tex
+++ b/macros/latex/contrib/mitthesis/examples/cover_page_samples/latex_sources/Two_authors_two_degrees.tex
@@ -33,8 +33,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -43,9 +42,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -57,11 +56,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=blue,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -73,13 +72,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\begin{document}
@@ -92,26 +93,30 @@
% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876]
-\Author{Aadhya Acharya}{Department of Research}[B.S. Physics, Indian Institute of Science, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
+\Author{Luisa Hernández}{Department of Research}%[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
-\Degree{Bachelor of Science in Physics}{Department of Physics}
-\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
+% For two degrees from one department, leave the department argument blank for the second degree {}.
+\Degree{Master of Science in Physics}{Department of Physics}
+%\Degree{Master of Science in Physics}{}
+\Degree{Master of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Graduate Officer, First Degree Department}{}
-\Acceptor{Tertius Castor}{Graduate Officer, Second Degree Department}{}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, Department of Physics}
+\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Mechanical Engineering}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Undergraduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-
-\SignatureBlockSize{\small}% could do \footnotesize here if desired!
+\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
@@ -121,6 +126,7 @@
\ThesisDate{May 18, 1876}
+
%%%%%% Choose whether to have a CREATIVE COMMONS License %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% If you are using a cc license, put details of your cc license here.
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf
index fef6586b08..5c080c9afd 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Defaultfonts.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf
index 4278312d94..4b95649c1c 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Fira_Newtxsf.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf
index efb798a418..5eb395eb5f 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Heros-Stix2.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf
index 03f6191af5..59314cd515 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Libertine.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf
index 8401fc8eee..5455942967 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Lucida.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf
index 8feac0397d..ae8977d4df 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Newtx-sans-text.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf
index 689846eaf6..4df3847882 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Newtx.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf
index 65ab2b2f1d..1fb37710cd 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Stix2.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Termes-Stix2.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Termes-Stix2.pdf
index b032e4e8e9..ca04ea5d18 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Termes-Stix2.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Termes-Stix2.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf b/macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf
index c772045a6d..792607b351 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/Termes.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex
index 42148dbcb3..f700e4ba80 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Defaultfonts.tex
@@ -3,7 +3,7 @@
% !BIB program = biber
% This file is MIT-Thesis.tex, a template for producing MIT theses with the mitthesis class.
-% Version: 1.00, 2023/06/17
+% Version: 1.01, 2023/07/21
% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation: https://ctan.org/pkg/mitthesis
@@ -115,8 +115,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -125,9 +124,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -139,11 +138,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=violet,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -155,9 +154,9 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -190,7 +189,7 @@
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
@@ -244,19 +243,9 @@
%%% Table of contents and lists of stuff (edit only if you want different lists) %%%%%%%%%%%%%%%%
- \pdfbookmark[0]{Table of Contents}{toc}%
\tableofcontents
- \cleardoublepage
-
- \phantomsection
\listoffigures
- \addcontentsline{toc}{chapter}{\protect\textbf{\listfigurename}}%
- \cleardoublepage
-
- \phantomsection
\listoftables
- \addcontentsline{toc}{chapter}{\protect\textbf{\listtablename}}%
- \cleardoublepage
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex
index 21a5827913..69d491ff84 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Fira_Newtxsf.tex
@@ -3,7 +3,7 @@
% !BIB program = biber
% This file is MIT-Thesis.tex, a template for producing MIT theses with the mitthesis class.
-% Version: 1.00, 2023/06/17
+% Version: 1.01, 2023/07/21
% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation: https://ctan.org/pkg/mitthesis
@@ -115,8 +115,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -125,9 +124,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -139,11 +138,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=violet,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -155,9 +154,9 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -190,7 +189,7 @@
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
@@ -244,19 +243,9 @@
%%% Table of contents and lists of stuff (edit only if you want different lists) %%%%%%%%%%%%%%%%
- \pdfbookmark[0]{Table of Contents}{toc}%
\tableofcontents
- \cleardoublepage
-
- \phantomsection
\listoffigures
- \addcontentsline{toc}{chapter}{\protect\textbf{\listfigurename}}%
- \cleardoublepage
-
- \phantomsection
\listoftables
- \addcontentsline{toc}{chapter}{\protect\textbf{\listtablename}}%
- \cleardoublepage
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex
index d8b5ab1eee..3985d9f560 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Heros-Stix2.tex
@@ -3,7 +3,7 @@
% !BIB program = biber
% This file is MIT-Thesis.tex, a template for producing MIT theses with the mitthesis class.
-% Version: 1.00, 2023/06/17
+% Version: 1.01, 2023/07/21
% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation: https://ctan.org/pkg/mitthesis
@@ -115,8 +115,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -125,9 +124,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -139,11 +138,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=violet,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -155,16 +154,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\begin{document}
@@ -177,25 +175,30 @@
% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
+% For two degrees from one department, leave the department argument blank for the second degree {}.
\Degree{Bachelor of Science in Physics}{Department of Physics}
+%\Degree{Master of Science in Physics}{}
%\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+%\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small}
+%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
@@ -242,21 +245,11 @@
\cleardoublepage
-%%% Table of contents and lists of stuff (edit only if you want different lists) %%%%%%%%%%%%%%%%
+%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
- \pdfbookmark[0]{Table of Contents}{toc}%
\tableofcontents
- \cleardoublepage
-
- \phantomsection
\listoffigures
- \addcontentsline{toc}{chapter}{\protect\textbf{\listfigurename}}%
- \cleardoublepage
-
- \phantomsection
\listoftables
- \addcontentsline{toc}{chapter}{\protect\textbf{\listtablename}}%
- \cleardoublepage
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex
index a238dca346..a4c37ddedb 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Libertine.tex
@@ -3,7 +3,7 @@
% !BIB program = biber
% This file is MIT-Thesis.tex, a template for producing MIT theses with the mitthesis class.
-% Version: 1.00, 2023/06/17
+% Version: 1.01, 2023/07/21
% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation: https://ctan.org/pkg/mitthesis
@@ -115,8 +115,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -125,9 +124,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -139,11 +138,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=violet,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -155,16 +154,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\begin{document}
@@ -177,25 +175,30 @@
% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
+% For two degrees from one department, leave the department argument blank for the second degree {}.
\Degree{Bachelor of Science in Physics}{Department of Physics}
+%\Degree{Master of Science in Physics}{}
%\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+%\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small}
+%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
@@ -242,21 +245,11 @@
\cleardoublepage
-%%% Table of contents and lists of stuff (edit only if you want different lists) %%%%%%%%%%%%%%%%
+%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
- \pdfbookmark[0]{Table of Contents}{toc}%
\tableofcontents
- \cleardoublepage
-
- \phantomsection
\listoffigures
- \addcontentsline{toc}{chapter}{\protect\textbf{\listfigurename}}%
- \cleardoublepage
-
- \phantomsection
\listoftables
- \addcontentsline{toc}{chapter}{\protect\textbf{\listtablename}}%
- \cleardoublepage
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex
index 63f0ca4d01..2c3a8e342c 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Lucida.tex
@@ -3,7 +3,7 @@
% !BIB program = biber
% This file is MIT-Thesis.tex, a template for producing MIT theses with the mitthesis class.
-% Version: 1.00, 2023/06/17
+% Version: 1.01, 2023/07/21
% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation: https://ctan.org/pkg/mitthesis
@@ -115,8 +115,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -125,9 +124,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -139,11 +138,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=violet,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -155,16 +154,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\begin{document}
@@ -177,25 +175,30 @@
% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
+% For two degrees from one department, leave the department argument blank for the second degree {}.
\Degree{Bachelor of Science in Physics}{Department of Physics}
+%\Degree{Master of Science in Physics}{}
%\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+%\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small}
+%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
@@ -242,21 +245,11 @@
\cleardoublepage
-%%% Table of contents and lists of stuff (edit only if you want different lists) %%%%%%%%%%%%%%%%
+%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
- \pdfbookmark[0]{Table of Contents}{toc}%
\tableofcontents
- \cleardoublepage
-
- \phantomsection
\listoffigures
- \addcontentsline{toc}{chapter}{\protect\textbf{\listfigurename}}%
- \cleardoublepage
-
- \phantomsection
\listoftables
- \addcontentsline{toc}{chapter}{\protect\textbf{\listtablename}}%
- \cleardoublepage
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex
index f4ef5fb7eb..31832cc0ce 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx-sans-text.tex
@@ -3,7 +3,7 @@
% !BIB program = biber
% This file is MIT-Thesis.tex, a template for producing MIT theses with the mitthesis class.
-% Version: 1.00, 2023/06/17
+% Version: 1.01, 2023/07/21
% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation: https://ctan.org/pkg/mitthesis
@@ -115,8 +115,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -125,9 +124,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -139,11 +138,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=violet,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -155,16 +154,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\begin{document}
@@ -177,25 +175,30 @@
% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
+% For two degrees from one department, leave the department argument blank for the second degree {}.
\Degree{Bachelor of Science in Physics}{Department of Physics}
+%\Degree{Master of Science in Physics}{}
%\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+%\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small}
+%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
@@ -242,21 +245,11 @@
\cleardoublepage
-%%% Table of contents and lists of stuff (edit only if you want different lists) %%%%%%%%%%%%%%%%
+%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
- \pdfbookmark[0]{Table of Contents}{toc}%
\tableofcontents
- \cleardoublepage
-
- \phantomsection
\listoffigures
- \addcontentsline{toc}{chapter}{\protect\textbf{\listfigurename}}%
- \cleardoublepage
-
- \phantomsection
\listoftables
- \addcontentsline{toc}{chapter}{\protect\textbf{\listtablename}}%
- \cleardoublepage
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex
index f000774474..fcc126e440 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Newtx.tex
@@ -3,7 +3,7 @@
% !BIB program = biber
% This file is MIT-Thesis.tex, a template for producing MIT theses with the mitthesis class.
-% Version: 1.00, 2023/06/17
+% Version: 1.01, 2023/07/21
% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation: https://ctan.org/pkg/mitthesis
@@ -115,8 +115,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -125,9 +124,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -139,11 +138,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=violet,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -155,16 +154,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\begin{document}
@@ -177,25 +175,30 @@
% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
+% For two degrees from one department, leave the department argument blank for the second degree {}.
\Degree{Bachelor of Science in Physics}{Department of Physics}
+%\Degree{Master of Science in Physics}{}
%\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+%\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small}
+%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
@@ -242,21 +245,11 @@
\cleardoublepage
-%%% Table of contents and lists of stuff (edit only if you want different lists) %%%%%%%%%%%%%%%%
+%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
- \pdfbookmark[0]{Table of Contents}{toc}%
\tableofcontents
- \cleardoublepage
-
- \phantomsection
\listoffigures
- \addcontentsline{toc}{chapter}{\protect\textbf{\listfigurename}}%
- \cleardoublepage
-
- \phantomsection
\listoftables
- \addcontentsline{toc}{chapter}{\protect\textbf{\listtablename}}%
- \cleardoublepage
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex
index 2226971f3f..7ac6317072 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Stix2.tex
@@ -3,7 +3,7 @@
% !BIB program = biber
% This file is MIT-Thesis.tex, a template for producing MIT theses with the mitthesis class.
-% Version: 1.00, 2023/06/17
+% Version: 1.01, 2023/07/21
% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation: https://ctan.org/pkg/mitthesis
@@ -115,8 +115,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -125,9 +124,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -139,11 +138,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=violet,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -155,16 +154,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\begin{document}
@@ -177,25 +175,30 @@
% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
+% For two degrees from one department, leave the department argument blank for the second degree {}.
\Degree{Bachelor of Science in Physics}{Department of Physics}
+%\Degree{Master of Science in Physics}{}
%\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+%\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small}
+%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
@@ -242,21 +245,11 @@
\cleardoublepage
-%%% Table of contents and lists of stuff (edit only if you want different lists) %%%%%%%%%%%%%%%%
+%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
- \pdfbookmark[0]{Table of Contents}{toc}%
\tableofcontents
- \cleardoublepage
-
- \phantomsection
\listoffigures
- \addcontentsline{toc}{chapter}{\protect\textbf{\listfigurename}}%
- \cleardoublepage
-
- \phantomsection
\listoftables
- \addcontentsline{toc}{chapter}{\protect\textbf{\listtablename}}%
- \cleardoublepage
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-Stix2.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-Stix2.tex
index 33e372943c..5da99c4c83 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-Stix2.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes-Stix2.tex
@@ -3,7 +3,7 @@
% !BIB program = biber
% This file is MIT-Thesis.tex, a template for producing MIT theses with the mitthesis class.
-% Version: 1.00, 2023/06/17
+% Version: 1.01, 2023/07/21
% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation: https://ctan.org/pkg/mitthesis
@@ -115,8 +115,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -125,9 +124,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -139,11 +138,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=violet,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -155,16 +154,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\begin{document}
@@ -177,25 +175,30 @@
% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
+% For two degrees from one department, leave the department argument blank for the second degree {}.
\Degree{Bachelor of Science in Physics}{Department of Physics}
+%\Degree{Master of Science in Physics}{}
%\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+%\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small}
+%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
@@ -242,21 +245,11 @@
\cleardoublepage
-%%% Table of contents and lists of stuff (edit only if you want different lists) %%%%%%%%%%%%%%%%
+%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
- \pdfbookmark[0]{Table of Contents}{toc}%
\tableofcontents
- \cleardoublepage
-
- \phantomsection
\listoffigures
- \addcontentsline{toc}{chapter}{\protect\textbf{\listfigurename}}%
- \cleardoublepage
-
- \phantomsection
\listoftables
- \addcontentsline{toc}{chapter}{\protect\textbf{\listtablename}}%
- \cleardoublepage
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex
index 3eed29fa3b..586c7419a9 100644
--- a/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex
+++ b/macros/latex/contrib/mitthesis/examples/font_samples/latex_sources/Termes.tex
@@ -4,7 +4,7 @@
% !BIB program = biber
% This file is MIT-Thesis.tex, a template for producing MIT theses with the mitthesis class.
-% Version: 1.00, 2023/06/17
+% Version: 1.01, 2023/07/21
% Author: John H. Lienhard (c) 2023. Reuse under the MIT license: https://ctan.org/license/mit
% Documentation: https://ctan.org/pkg/mitthesis
@@ -116,8 +116,7 @@
%%%%%%%%%%% Hyperref setting and metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
+\newcommand*\YourName{John H. Lienhard}% <====== CHANGE TO YOUR NAME !!!
\hypersetup{%
%
@@ -126,9 +125,9 @@
pdftitle={MIT thesis template},
pdfkeywords={\YourName, Massachusetts Institute of Technology, MIT},
pdfauthor={\YourName},
+% pdfauthor={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfauthortitle={Professor of Mechanical Engineering},
pdfcaptionwriter={\YourName},
-% pdfcaptionwriter={{John H. Lienhard, V}},% if you have a comma in your name, surround by {..}
pdfurl={https://lienhard.mit.edu},
pdfcontactemail={lienhard@mit.edu},
pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
@@ -140,11 +139,11 @@
pdfsubject={Template for writing MIT theses with the mitthesis class},% briefly state what this document is about
%
colorlinks=true,
- linkcolor=blue,
- citecolor=blue,
- urlcolor=violet,
+ linkcolor=Blue3,% from xcolor package
+ citecolor=Blue3,% from xcolor package
+ urlcolor=violet,% from xcolor package
filecolor=red,
-% anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
+% anchorcolor=yellow,% not all pdf viewers recognize this field (although Firefox does)
% colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
%
pdfborder={0 0 0},
@@ -156,16 +155,15 @@
pdfdisplaydoctitle=true,
pdfstartview=Fit,
pdfnewwindow=true,
-%
- pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},% definitions made by class file, don't change
- pdflicenseurl={\CCurl},% definition made by class file, don't change
+}
+\AtEndDocument{
+ \hypersetup{pdfcopyright={Copyright © \DegreeYear\ by \YourName. \PDFRightsText},}% 1st and 3rd commands are defined by class file.
}
%%%%%%%%%%%%%% End preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\begin{document}
@@ -178,25 +176,30 @@
% note on names: most of the following names are made up; Silas Holman was a professor at MIT in the 19th century.
-\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876]
+\Author{Silas W. Holman}{Department of Physics}%[B.S. Physics, MIT, 1876][MBA, Ferengi School of Management, 2022]
%\Author{Luisa Hernández}{Department of Research}[B.S. Mechanical Engineering, UCLA, 2018][M.S. Stellar Interiors, Vulcan Science Academy, 2020][MBA, Ferengi School of Management, 2022]
% Use once for each degree fulfilled by thesis
+% For two degrees from one department, leave the department argument blank for the second degree {}.
\Degree{Bachelor of Science in Physics}{Department of Physics}
+%\Degree{Master of Science in Physics}{}
%\Degree{Bachelor of Science in Mechanical Engineering}{Department of Mechanical Engineering}
% If there is more than one supervisor, use the \Supervisor command for each.
\Supervisor{Edward C. Pickering}{Professor of Physics}
-%\Supervisor{Secunda Castor}{Department of Mechanical Engineering}
+%\Supervisor{Secunda Castor}{Professor of Research}
+%\Supervisor{Quintus Castor}{Professor of Log Dams}
% Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...)
% If more than one department, use more than once
-\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Graduate Officer, First Degree Department}
-%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Second Degree Department}
+% If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}.
+\Acceptor{Primus Castor}{Professor of Wetlands Engineering}{Undergraduate Officer, Department of Physics}
+%\Acceptor{Tertius Castor}{Professor of Log Dams}{Graduate Officer, Department of Research}
+%\Acceptor{Quarta Castor}{Professor of Lodge Building}{Graduate Officer, Department of Mechanical Engineering}
% If your title page is overflowing (from too many names, degrees, etc.), you can scale
% down the Signature block at the bottom with this command, or use another creative solution...
-%\SignatureBlockSize{\small}
+%\SignatureBlockSize{\small} %\SignatureBlockSize{\footnotesize}
% Usage: \DegreeDate{Month}{year}
% Valid degree months are September, February, or June.
@@ -243,21 +246,11 @@
\cleardoublepage
-%%% Table of contents and lists of stuff (edit only if you want different lists) %%%%%%%%%%%%%%%%
+%%% Table of contents and lists of stuff (delete lists you don't need, e.g., if no tables) %%%%%%%%
- \pdfbookmark[0]{Table of Contents}{toc}%
\tableofcontents
- \cleardoublepage
-
- \phantomsection
\listoffigures
- \addcontentsline{toc}{chapter}{\protect\textbf{\listfigurename}}%
- \cleardoublepage
-
- \phantomsection
\listoftables
- \addcontentsline{toc}{chapter}{\protect\textbf{\listtablename}}%
- \cleardoublepage
%%% Chapters of thesis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf b/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf
index 9dd1f7d528..ddc3fcfafe 100644
--- a/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf
+++ b/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex b/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
index 20f4b3ec35..a896751c37 100644
--- a/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
+++ b/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
@@ -266,7 +266,7 @@ Note that third, fourth, fifth, and sixth arguments are optional [..] and may be
\item \verb|\Acceptor{acceptor name}{acceptor title}{thesis related position}|. Professor who accepts theses for your department (e.g., the Graduate Officer). Use once for each department.
-\item \verb|\DegreeDate{Month}{year}|. Date degree is awarded (February, June, or September).
+\item \verb|\DegreeDate{Month}{year}|. Date degree is awarded (February, May, June, or September).
\item \verb|\ThesisDate{date}|. Date that your final thesis is submitted to the department.
\end{itemize}
@@ -361,6 +361,7 @@ The sample template uses the option \texttt{[twosided]}, which starts major sect
\toprule
Package & Class & User \\
\midrule
+bm & defines commands to access bold math symbols (loaded for default fonts) & with \pdfTeX, the command \verb|\bm{..}| produces a bold math symbol \\
bookmarks& is loaded automatically under the new pdf-management system & --- \\
doi & support for hyperlinking DOIs & hyperlink a doi number: \verb|\doi{..}| \\
etoolbox & extend or modify other macros & can use in preamble if needed \\
@@ -374,7 +375,7 @@ kvoptions& key values for systems pre 2022/11/01 & ---\\
mathtools& loads and extends \texttt{amsmath} & \textbf{many useful math macros available}. See documentation for \texttt{amsmath} and \texttt{mathtools} \\
xparse & for systems older than 2020/10/01 & macros to define new commands\\[0.7em]
\midrule
-lineno & option for the class & keyvalue \texttt{lineno} will give line numbers; \texttt{lineno} package has additional commands that control line numbering\\[3em]
+lineno & loaded if class option is given & keyvalue \texttt{lineno} will give line numbers; \texttt{lineno} package has additional commands that control line numbering\\[3em]
\midrule
caption & also loaded by \texttt{mydesign.tex} & support for caption styling \\
subcaption & also loaded by \texttt{mydesign.tex} & support for subfigures within figures \\
diff --git a/macros/latex/contrib/mitthesis/mitthesis.cls b/macros/latex/contrib/mitthesis/mitthesis.cls
index b0453036a9..8acd3e6358 100644
--- a/macros/latex/contrib/mitthesis/mitthesis.cls
+++ b/macros/latex/contrib/mitthesis/mitthesis.cls
@@ -7,8 +7,8 @@
%% MIT Libraries' requirements as of 2023.
%%
%% This file's version and date:
- \def\versionno{1.04}
- \def\versiondate{2023/07/03\space}
+ \def\versionno{1.05}
+ \def\versiondate{2023/07/21\space}
%%
%% Author: John H. Lienhard, V
%% Department of Mechanical Engineering
@@ -187,6 +187,19 @@
\providecommand{\@LN@col}[1]{\relax}
\providecommand{\@LN}[2]{\relax}
+%%%%%%%%%%%%% Patch table of contents, list of figures, and list of tables %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% We'd like these to have pdf bookmarks and to have the lists appear in the table of contents
+
+\pretocmd{\tableofcontents}{\pdfbookmark[0]{Table of Contents}{toc}}{}{}
+\apptocmd{\tableofcontents}{\cleardoublepage}{}{}
+\pretocmd{\listoffigures}{\phantomsection}{}{}
+\patchcmd{\listoffigures}{\chapter*{\listfigurename}}{\chapter*{\listfigurename}\addcontentsline{toc}{chapter}{\protect\textbf{\listfigurename}}}{}{}
+\apptocmd{\listoffigures}{\cleardoublepage}{}{}
+\pretocmd{\listoftables}{\phantomsection}{}{}
+\patchcmd{\listoftables}{\chapter*{\listtablename}}{\chapter*{\listtablename}\addcontentsline{toc}{chapter}{\protect\textbf{\listtablename}}}{}{}
+\apptocmd{\listoftables}{\cleardoublepage}{}{}
+
%%%%%%%%%%%%% Geometry, mathtools, design, graphics, bibliography, hyperrefs, bookmarks %%%%%%%%%%%%%%%%%%%%%%%
@@ -218,7 +231,7 @@
\fi
\fi
\fi
- \usepackage[hyperref,\MyColorOption,dvipsnames,svgnames,x11names]{xcolor}
+ \RequirePackage[hyperref,\MyColorOption,dvipsnames,svgnames,x11names]{xcolor}
%
\RequirePackage{caption,subcaption}
%
@@ -235,7 +248,7 @@
\IfFileExists{fontsets/\ClassName-\mit@fontset.tex}{% 2023/07/03
\input{fontsets/\ClassName-\mit@fontset.tex}
}{%
- \typeout{^^JFontset file \ClassName-\mit@fontset.tex not found, using defaultfonts.}
+ \ClassWarning{\ClassName}{^^JFontset file \ClassName-\mit@fontset.tex not found, using default fonts.}
\ifpdftex
\typeout{^^JLoading Computer Modern text and math fonts (default for pdftex).^^J}
\RequirePackage[T1]{fontenc}
@@ -254,7 +267,7 @@
\ClassInfo{\ClassName}{pdfmanagement is defined. Will not load hyperxmp}%
\else
\ClassInfo{\ClassName}{pdfmanagement is not defined. Will load hyperxmp}%
- \RequirePackage{hyperxmp}
+ \RequirePackage{hyperxmp}
\fi
\RequirePackage[psdextra]{hyperref}
@@ -326,10 +339,10 @@
\ExplSyntaxOn
\NewExpandableDocumentCommand\MonthCheck{mm}{%
- \str_case_e:nnF {#1}{ {June}{} {September}{} {February}{}
- {\space June}{} {\space September}{} {\space February}{}
- {June\space}{} {September\space}{} { February\space}{}
- {\space June\space}{} {\space September\space}{} {\space February\space}{}
+ \str_case_e:nnF {#1}{ {May}{} {June}{} {September}{} {February}{}
+ {\space May}{} {\space June}{} {\space September}{} {\space February}{}
+ {May\space}{} {June\space}{} {September\space}{} { February\space}{}
+ {\space May\space}{} {\space June\space}{} {\space September\space}{} {\space February\space}{}
}{#2}
}
\ExplSyntaxOff
@@ -394,6 +407,18 @@
}%
}
+\NewDocumentCommand\@AbstractAuthorBlock{}{% Revised 2023/07/20
+ \setcounter{authorno}{1}%
+ {by\par
+ \whiledo{\value{authorno}<\value{authorcnt}}{%
+ \ignorespaces\csname aut@\theauthorno\endcsname
+ \par and\par
+ \addtocounter{authorno}{1}%
+ }%
+ \ignorespaces\csname aut@\theauthorno\endcsname
+ }%
+}
+
\newcounter{autcrcnt}
\setcounter{autcrcnt}{1}
@@ -458,6 +483,31 @@
\MakeUppercase{\ignorespaces\csname deg@\thedegno\endcsname}\par\medskip
}
+\NewDocumentCommand\@AbstractDegreeBlock{}{% 2023/07/19
+ \setcounter{degno}{1}
+ \setcounter{depno}{1}
+ \newcommand*\PrevDept{\csname degdep@\thedepno\endcsname}
+ \newcommand*\CurrDept{}
+ Submitted to the \mbox{\PrevDept}%
+ \whiledo{\value{depno}<\value{degcnt}}{%
+ \addtocounter{depno}{1}%
+ \renewcommand*\CurrDept{\csname degdep@\thedepno\endcsname}%
+ \ifnum\value{depflag}=\value{depno}\relax\else
+ \space and the\linebreak
+ \mbox{\CurrDept}%
+ \fi%
+ }%
+ \linebreak on \@ThesisDate \space \mbox{in partial fulfillment of the requirements for the\space
+ \ifnum\value{degcnt}>1 degrees\else degree\fi\space of}%
+ \par\medskip
+ \whiledo{\value{degno}<\value{degcnt}}{%
+ \MakeUppercase{\ignorespaces\csname deg@\thedegno\endcsname}\par and\par
+ \addtocounter{degno}{1}%
+ }%
+ \MakeUppercase{\ignorespaces\csname deg@\thedegno\endcsname}\par\medskip
+}
+
+
\newcounter{supcnt}
\setcounter{supcnt}{0}
\newcounter{supno}
@@ -558,14 +608,18 @@
%%%%%%%%%%%%%%%%%%% Copyright related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\CCurl{}% empty by default
+\ExplSyntaxOn
\newif\ifmit@cclicense\mit@cclicensefalse
\NewDocumentCommand\CClicense{m m}{%
\def\CClicensetext{\hrefurl{#2}{\ignorespaces#1}}% #1 - text, #2 - url
- \def\CCname{#1}
- \def\CCurl{#2}% for use in metadata
+ \def\CCname{#1}%
+ \def\CCurl{#2}% only for backward compatibility
\mit@cclicensetrue
+ \cs_if_exist:NT \pdfmeta_xmp_add:n {%
+ \pdfmeta_xmp_add:n {<xmpRights:WebStatement>#2</xmpRights:WebStatement>}
+ }
}
+\ExplSyntaxOff
%%%%%%%%%%%%%%%%%%% Create titlepage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -605,8 +659,8 @@
\MIT\par
\@DegreeMonth\space\@DegreeYear
\MonthCheck{\@@DegreeMonth}{%
- \ClassError{\ClassName}{Acceptable months for the degree date are February, June, and September}{Change %
- the month of your degree date to one of February, June, or September.}%
+ \ClassError{\ClassName}{Acceptable months for the degree date are February, May, June, and September}{Change %
+ the month of your degree date to one of February, May, June, or September.}%
}%
\par
\copyright\space\@DegreeYear\space\@CopyrightAuthor. \CopyrightLicense
@@ -627,9 +681,9 @@
\begin{center}
{\large{\textbf{\@title}}\par}
\setlength{\parskip}{0.5\baselineskip plus 2pt minus 2pt}
- \@AuthorBlock
+ \@AbstractAuthorBlock
\par
- \@DegreeBlock
+ \@AbstractDegreeBlock
\end{center}
\vskip\baselineskip
\textbf{ABSTRACT}\par\vskip0.5em
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index 9aaba6e36c..f18c06e97c 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -17,6 +17,7 @@ $mirrors = {
'https://mirrors.cqu.edu.cn/CTAN/' => 1,
'https://mirrors.hit.edu.cn/CTAN/' => 1,
'https://mirrors.jlu.edu.cn/CTAN/' => 1,
+ 'https://mirrors.nju.edu.cn/CTAN/' => 1,
'https://mirrors.pku.edu.cn/ctan/' => 1,
'https://mirrors.sjtug.sjtu.edu.cn/ctan/' => 1,
'https://mirrors.sustech.edu.cn/CTAN/' => 1,
@@ -31,6 +32,7 @@ $mirrors = {
'https://mirror.niser.ac.in/ctan/' => 1,
},
'Indonesia' => {
+ 'http://repo.ugm.ac.id/ctan/' => 1,
'https://mirror.unpad.ac.id/ctan/' => 1,
},
'Iran' => {
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index b831424311..d61c7572b4 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/2023
-depend revision/67697
+depend revision/67708
name 00texlive.image
category TLCore
@@ -4768,7 +4768,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 67687
+revision 67699
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
@@ -45875,7 +45875,7 @@ catalogue-version 1.1
name bxcjkjatype
category Package
-revision 54080
+revision 67705
shortdesc Typeset Japanese with pdfLaTeX and CJK
relocated 1
longdesc The package provides a working configuration of the CJK
@@ -45883,24 +45883,32 @@ longdesc package, suitable for Japanese typesetting of moderate quality.
longdesc Moreover, it facilitates use of the CJK package for pLaTeX
longdesc users, by providing commands that are similar to those used by
longdesc the pLaTeX kernel and some other packages used with it.
-containersize 8212
-containerchecksum f720106c08ffc3b8f9a2c9279325364d5ae91948d3c61b83423d41a55249cdb205bf330c8f08ce6877a7713e82a67a29f1a71e9ff07f9c1225926a61a858fb5a
-doccontainersize 261872
-doccontainerchecksum cecf43857662a4b1126edbacc017a8d06b366ad8c785db520d6b18a293cdf786b8d7bb7d3981355acf9a4d2759c2a58af25a61a9a06d20b431ba3eb50117b560
-docfiles size=74
+containersize 8556
+containerchecksum 72d3a88c117ea971faf8bc836bfe32ddc52e96c1fe1546ceeb8a9b298b7a28fdfc8aa4b0f43bdb3fd27126383b289ad293b2ca6c4ad95873948be0651de4ea18
+doccontainersize 1189172
+doccontainerchecksum 8118935396e03cf72b0efe04d6e436c6d7b3aad3dd1518561ec36d1fcf35a4e29dcdf86dfe554d06f4814694e7528f238b73c0145dce6ebdd5cc9b587db3f86f
+docfiles size=334
RELOC/doc/latex/bxcjkjatype/LICENSE
RELOC/doc/latex/bxcjkjatype/README-ja.md details="Readme (Japanese)" language="ja"
RELOC/doc/latex/bxcjkjatype/README.md details="Readme (English)" language="en"
+ RELOC/doc/latex/bxcjkjatype/bxcjkjatype-ja.pdf details="bxcjkjatype user manual (Japanese)" language="ja"
+ RELOC/doc/latex/bxcjkjatype/bxcjkjatype-ja.tex
+ RELOC/doc/latex/bxcjkjatype/bxcjkjatype.pdf details="bxcjkjatype user manual (English)"
+ RELOC/doc/latex/bxcjkjatype/bxcjkjatype.tex
+ RELOC/doc/latex/bxcjkjatype/bxcjkvert-ja.pdf details="bxcjkvert user manual (Japanese)" language="ja"
+ RELOC/doc/latex/bxcjkjatype/bxcjkvert-ja.tex
+ RELOC/doc/latex/bxcjkjatype/bxcjkvert.pdf details="bxcjkvert user manual (English)"
+ RELOC/doc/latex/bxcjkjatype/bxcjkvert.tex
RELOC/doc/latex/bxcjkjatype/sample-bxcjkjatype-beamer.pdf details="Sample: Introductory beamer slides (English and Japanese)"
RELOC/doc/latex/bxcjkjatype/sample-bxcjkjatype-beamer.tex
RELOC/doc/latex/bxcjkjatype/sample-bxcjkjatype.pdf details="Small example of use (Japanese and English)" language="ja"
RELOC/doc/latex/bxcjkjatype/sample-bxcjkjatype.tex
-runfiles size=8
+runfiles size=9
RELOC/tex/latex/bxcjkjatype/bxcjkjatype.sty
catalogue-ctan /language/japanese/BX/bxcjkjatype
catalogue-license mit
catalogue-topics japanese
-catalogue-version 0.3
+catalogue-version 0.5
name bxdpx-beamer
category Package
@@ -84052,7 +84060,7 @@ catalogue-topics multilingual maths maths-theorem expl3
name crefthe
category Package
-revision 64498
+revision 67706
shortdesc Cross referencing with proper definite articles
relocated 1
longdesc By default, when using cleveref's \cref to reference
@@ -84062,16 +84070,16 @@ longdesc Spanish, etc. this results in incorrect grammar. For this
longdesc purpose, the current package offers \crefthe, which handles the
longdesc definite articles properly (especially for the article
longdesc contractions in many European languages).
-containersize 3244
-containerchecksum 00e42796dfb4a48ffcf1750562842e0bee1f3216929d05729b9930134bc55521e4e9b9a3840dde0d615539c2206088a1e554dcad41ebaa83a0c3822e66893aa5
-doccontainersize 61900
-doccontainerchecksum b9ce19968dd09744ee594b40c0ad4478675c2530679183e3de0e79e344a106c244ad9201c61cad42f60e24f97b61490b2f103b8ffc591d4fd1388dcd4dcbcf5e
-docfiles size=24
+containersize 4276
+containerchecksum 6dabe7cb343d3b0c00ae1f1c4d523d77fb8b435ab370724de74a4d96626bdd6ccdf793898966ea4d7002ce68cd408df8c92da2d9223898c65e5cfe40a8369edb
+doccontainersize 67824
+doccontainerchecksum f437397a3cbad12e084ebaf2e77d2b4685695759762d42fe491739fed58a801f4c42523ebb3d063dcd0df18d00bdc9fedf79b071f0f263f5e03583d0986d3630
+docfiles size=26
RELOC/doc/latex/crefthe/LICENSE
RELOC/doc/latex/crefthe/README.md details="Readme"
RELOC/doc/latex/crefthe/crefthe-doc.pdf details="Package documentation"
RELOC/doc/latex/crefthe/crefthe-doc.tex
-runfiles size=4
+runfiles size=6
RELOC/tex/latex/crefthe/crefthe.sty
catalogue-alias ccref
catalogue-contact-repository https://github.com/Jinwen-XU/crefthe
@@ -112832,7 +112840,7 @@ catalogue-version 1.97
name esami
category Package
-revision 61596
+revision 67707
shortdesc Typeset exams with scrambled questions and answers
relocated 1
longdesc The package enables the user to typeset exams with multiple
@@ -112843,11 +112851,11 @@ longdesc may contain a wide number of random parameters and it is
longdesc possible to do arithmetical operations on them. The package is
longdesc localised in Italian, English, French, German, Greek, Serbian,
longdesc and Spanish.
-containersize 21180
-containerchecksum 2e0c1bd441ccb4376d1dda69f32cff55bf4d043315dd2c004bf6bebacdc510ddc9a1347bcadbfb96dea7be94b6d59ee050746afb04f50196dd7c99937b7e8505
-doccontainersize 1515176
-doccontainerchecksum 6bc50f4083cc401278a526c44a76e5a9569d0cbb7280d38270e95676fa359c08a25779709576c1532ec9296457d970d2abd82eeb78b2ac4923caad9559da77ed
-docfiles size=498
+containersize 21208
+containerchecksum e5e2656b1f1dcb224652ada214871004828ac04c2ad316250e4ce1ae54f509df5607248eadcb018308ad2eb14ea761224962b751c7998b935540b4de516d4e1c
+doccontainersize 1448364
+doccontainerchecksum 7eda39cb0372f0f500b05196d526a215efddc58aadd1ee6c66504f73129936fbffc65d80183662de665b6fd54d4a9eeb5bdb2c7d5e11ff645c712ca6d712fc18
+docfiles size=471
RELOC/doc/latex/esami/README details="Readme"
RELOC/doc/latex/esami/VERSION
RELOC/doc/latex/esami/doc/esami-doc-en.pdf details="Package documentation (English)" language="en"
@@ -112862,6 +112870,10 @@ docfiles size=498
RELOC/doc/latex/esami/doc/examples/problem2.tex
RELOC/doc/latex/esami/doc/examples/problem3-matching.tex
RELOC/doc/latex/esami/doc/examples/problem4-fillin.tex
+ RELOC/doc/latex/esami/doc/examples/qftest5-fillinqiie1.parametri.tex
+ RELOC/doc/latex/esami/doc/examples/qftest5-fillinqiie2.parametri.tex
+ RELOC/doc/latex/esami/doc/examples/qftest5-fillinqiie3.parametri.tex
+ RELOC/doc/latex/esami/doc/examples/qftest5-fillinqiie4.parametri.tex
RELOC/doc/latex/esami/doc/examples/test1.tex
RELOC/doc/latex/esami/doc/examples/test11.tex
RELOC/doc/latex/esami/doc/examples/test12.tex
@@ -112876,15 +112888,14 @@ docfiles size=498
RELOC/doc/latex/esami/doc/examples/testA-luatex-sol.tex
RELOC/doc/latex/esami/doc/examples/testA-luatex.pdf
RELOC/doc/latex/esami/doc/examples/testA-luatex.tex
- RELOC/doc/latex/esami/doc/examples/testA-sol.pdf
- RELOC/doc/latex/esami/doc/examples/testA-sol.tex
+ RELOC/doc/latex/esami/doc/examples/testA-pdflatex-sol.pdf
+ RELOC/doc/latex/esami/doc/examples/testA-pdflatex-sol.tex
+ RELOC/doc/latex/esami/doc/examples/testA-pdflatex.pdf
+ RELOC/doc/latex/esami/doc/examples/testA-pdflatex.tex
RELOC/doc/latex/esami/doc/examples/testA-xetex-sol.pdf
- RELOC/doc/latex/esami/doc/examples/testA-xetex-sol.sol.tex
RELOC/doc/latex/esami/doc/examples/testA-xetex-sol.tex
RELOC/doc/latex/esami/doc/examples/testA-xetex.pdf
RELOC/doc/latex/esami/doc/examples/testA-xetex.tex
- RELOC/doc/latex/esami/doc/examples/testA.pdf
- RELOC/doc/latex/esami/doc/examples/testA.tex
RELOC/doc/latex/esami/doc/examples/totale-versioni.tex
RELOC/doc/latex/esami/esami-xyz.cfg
runfiles size=28
@@ -112900,7 +112911,7 @@ runfiles size=28
catalogue-ctan /macros/latex/contrib/esami
catalogue-license lppl
catalogue-topics exam
-catalogue-version 2.7
+catalogue-version 2.8
name esdiff
category Package
@@ -210366,7 +210377,7 @@ catalogue-version 2.0
name mitthesis
category Package
-revision 67544
+revision 67708
shortdesc A LaTeX template for MIT theses
relocated 1
longdesc This class provides a LaTeX template for MIT theses formatted
@@ -210381,10 +210392,10 @@ longdesc distributions, ideally 11/2022 or later, but compatible with
longdesc distributions back to 2020. This template replaces the older
longdesc version of mitthesis.cls, which was first composed in the
longdesc 1980s.
-containersize 12888
-containerchecksum baa20bead63669b1acecb1280b4d4202aa51be300c440726c83358a5d0c6e7bb711007c1283fbf10a5519c803b2dad832ec1e36688f5ec9f5e1d1af757ea7b27
-doccontainersize 2337856
-doccontainerchecksum 142eb98db9711afe61270281d70e2dde43d6129e9f4dcfd7df42a6aeec7f4fd34545a447c3621612dfdd8f917fa5e12d9771827328ab47124dd9a008190598fc
+containersize 13180
+containerchecksum 1a8432d1f0225823544df01a0a883bd184ae3a0374cb13c45d729f67221b32e5dd3f778edcd9181887d6de00d4e8a5691b0c68b0695d695e758a919f252b7abb
+doccontainersize 2333360
+doccontainerchecksum 1574892eb4bfeea60eeb07289769b6b88560d18ef7045a95d30cda98fb1d2f60a9698c33be76d5500528b8c4d5a46e336b3af7c1c5998e661495deda1e41655a
docfiles size=1022
RELOC/doc/latex/mitthesis/MIT-Thesis.pdf details="Example of use"
RELOC/doc/latex/mitthesis/MIT-thesis-template/MIT-Thesis.tex
@@ -210431,7 +210442,7 @@ docfiles size=1022
RELOC/doc/latex/mitthesis/examples/font_samples/latex_sources/Termes.tex
RELOC/doc/latex/mitthesis/mitthesis-doc/mitthesis-doc.pdf details="Package documentation"
RELOC/doc/latex/mitthesis/mitthesis-doc/mitthesis-doc.tex
-runfiles size=18
+runfiles size=19
RELOC/tex/latex/mitthesis/fontsets/mitthesis-defaultfonts.tex
RELOC/tex/latex/mitthesis/fontsets/mitthesis-fira-newtxsf.tex
RELOC/tex/latex/mitthesis/fontsets/mitthesis-heros-stix2.tex
@@ -210446,7 +210457,7 @@ runfiles size=18
catalogue-ctan /macros/latex/contrib/mitthesis
catalogue-license mit
catalogue-topics class dissertation engineering humanities scientific-docs doc-templ expl3
-catalogue-version 1.04
+catalogue-version 1.05
name mkgrkindex
category Package
@@ -218042,7 +218053,7 @@ catalogue-topics graphics-use
name mpchess
category Package
-revision 66943
+revision 67704
shortdesc Drawing chess boards and positions with MetaPost
relocated 1
longdesc This package allows you to draw chess boards and positions. The
@@ -218052,11 +218063,11 @@ longdesc on MetaPost probably allows more graphic flexibility than the
longdesc excellent LaTeX packages. This package is in beta version, do
longdesc not hesitate to report bugs, as well as requests for
longdesc improvement
-containersize 29340
-containerchecksum 6f03cc978c47c3764bb7d8a253319399f47ff4ba9e03e3e61b272045a7e6d98447f707f261b397de2762a3debacbd30c7ba30348275bcd8f7b357ee08b881517
-doccontainersize 1207832
-doccontainerchecksum a7c634ecb4d109fcc3267e2aa523fb847cb370faccbbc2e946c5418de5288e1e2faf68693474747f42c0bf2fd6626274d520cfc1aff147170e410e899af5ae5c
-docfiles size=454
+containersize 29916
+containerchecksum b65838b9b3177b069a2e8e4141fdb9ae68ac1dc9378c9fe7534fd23556d93ace29ba1ed9deaeb53fd54d709b77ecd98d9d0fc79dfc8e77b8eec899d4a332bc3f
+doccontainersize 1472768
+doccontainerchecksum c859e9f5df0d24bd1eb59dfd39dc97cd1ba6e713b33e37d17128388928071e2da8f41180da333fea34ee6215585208de193a381205fd866142f341e1856485d2
+docfiles size=524
RELOC/doc/metapost/mpchess/LICENSE
RELOC/doc/metapost/mpchess/README.md details="Readme"
RELOC/doc/metapost/mpchess/ctan.bib
@@ -218083,7 +218094,7 @@ catalogue-contact-repository https://github.com/chupinmaxime/mpchess
catalogue-ctan /graphics/metapost/contrib/macros/mpchess
catalogue-license lppl1.3c gpl2+
catalogue-topics graphics graphics-mpost mp-use games
-catalogue-version 0.6
+catalogue-version 0.7
name mpcolornames
category Package
@@ -313657,7 +313668,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 67687
+revision 67699
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.
@@ -313665,10 +313676,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 114000
-containerchecksum c7e0d0af99cdd94ddfab8df1622922e2732ab2a502601784d3bb8e078aa7047c7a55168fd63a0b48941206b34c248a27355d0074f2f925d88b913985d7d9c0a7
+containersize 114020
+containerchecksum ad9aafde827d5c73c792a0f89872c68afd2ea810f058d1fdb58071dc1da4a2593e3ee8bda7b3d630a0d0ae35213c47d5028d46aa780548a7792022e0d151d01d
doccontainersize 428064
-doccontainerchecksum 93605982d1059ddae8d7c86284be173233ba903d264a0b6a1942e0531183cf7004d1abcf0f13324344f34cfeb6c1619803d6cceb2c950102a05cfc582fcea042
+doccontainerchecksum 1129f02e68d39140f387b252dc5a768e1a213c0640e01f0795ba3ed04d82c5bdeb0f31cea93595c94ef71d7010640b008073799c706375b1dcbf4288a2e7860f
docfiles size=547
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 994b4e1464..844b1609fb 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-c99973e2da736a10453a171a60ef5dc7 texlive.tlpdb
+1b2d31f1b644dc1738f64fa5db11caee texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 977bc20013..3fa7cde606 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-52735a2e64979824f36c2901476577d030733cb007be28e709947cf465cdf13b69f5c4c40c0756c418fbc79abefa720a0c66ee96770b01bf9812a6b80e038741 texlive.tlpdb
+9ff850d40bd1a0e7d2f07ff7d2800128be6d356c01c3a93a8cc46764d12ed93139ae818d1001101b08dc3eba45efc37898928fe472ad7adc1e18a1bed14ab6c4 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 3e6a18259a..187c56c573 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmS7GJEACgkQTOGHfhlD
-jHAbpAf6Ajo7vYTKwcTTeQI+MtZfu0GMeINEgpdxUOjzn2NIQ4ILLLMvz8xRja3E
-7AMdGWsxd6TOcn4/bPLMAprHyvxA8qfva1576OHp30CsTEHnZWThci72yNbAhryd
-Mlrt9oKiLzdN1LQbzi8aSLxwP6OC/zUkLKI9MS7e5s7Y/d/w6kqTjFZUNIbklbjX
-7mbEY7YxfbYtQhcINm7CTIzTjNPF1aPf9g/Bpschw289AeJn/kZbBjZGAFUdQ4qr
-XkGK2IxBG4Zi/USl4vGp4zNB2jv8iOE6PzZYmNJE6wPZqydLIB2+i6h+gs4v+E0o
-X6LWS7aV+Ms30Kvh8zMn38+85aBojA==
-=6bpG
+iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmS8bJIACgkQTOGHfhlD
+jHC35wf/Uf/4R2p+ddZ59/9mYxwYkr5BuLl9hHe/DEoWJsedbtEJdxSCawavVtxc
+ct1DOK8riAhW5BSi3KvGR4T95ZhGA+CfM6wX14MJJU8AXlUxeE38O0Wz73Hmjis4
+o1p7oLWk4htBiqL6SnZB7ZBRzTaFRHGA7KnFpXwE6rnqZjxPB2ETkWgtzKBJkysE
+rtIBoC09pbvQL4oLEeAKRxp6LQhoFIN1lmGvUbfDDn5WSqfBod9b6BQWm49qgmoD
+iMXIsGRZSgfYQ6YaPSuU+rMZQj6xGmi4tHaMyUWJL48Sr/MvSuCrCcystmb/YWRI
+Dj+CUQxmBUYAFbZ3hBaYwkeIqnBRMg==
+=QuXj
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 123dcc66f2..bf3a94e19e 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/timestamp b/timestamp
index 563c012a23..c9be55d704 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:
-2023-07-22-02-02
+2023-07-23-02-02