summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname797
-rw-r--r--FILES.byname.gzbin2555606 -> 2555784 bytes
-rw-r--r--FILES.last07days544
-rw-r--r--biblio/ctan-bibdata/ctan.bib43
-rw-r--r--biblio/ctan-bibdata/ctan.pdfbin3719750 -> 3719904 bytes
-rw-r--r--fonts/newpx/README7
-rw-r--r--fonts/newpx/doc/footsnippet-crop.pdfbin17296 -> 17278 bytes
-rw-r--r--fonts/newpx/doc/newpxdoc.pdfbin432735 -> 432728 bytes
-rw-r--r--fonts/newpx/tex/newpxtext.sty79
-rw-r--r--fonts/newpx/tex/newpxtext1.sty766
-rw-r--r--fonts/newpx/tex/newpxtextX.sty506
-rw-r--r--fonts/xcharter-math/README.md7
-rw-r--r--fonts/xcharter-math/XCharter-Math-Bold.otfbin142392 -> 142704 bytes
-rw-r--r--fonts/xcharter-math/XCharter-Math.ltx8
-rw-r--r--fonts/xcharter-math/XCharter-Math.otfbin326404 -> 327388 bytes
-rw-r--r--fonts/xcharter-math/XCharter-Math.pdfbin205693 -> 206021 bytes
-rw-r--r--fonts/xcharter-math/unimath-xcharter.pdfbin1855887 -> 1855718 bytes
-rw-r--r--fonts/xcharter-math/xcharter-otf.sty6
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md18
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty4
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty6
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty26
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty4
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty14
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdfbin657335 -> 1762739 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pngbin0 -> 1101597 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex13
-rw-r--r--macros/latex/contrib/cje/README.txt8
-rw-r--r--macros/latex/contrib/cje/ageingbib.bib12
-rw-r--r--macros/latex/contrib/cje/cje.cls6
-rw-r--r--macros/latex/contrib/cje/cjebibstyle.bst4
-rw-r--r--macros/latex/contrib/cje/cjeguide.pdfbin611412 -> 0 bytes
-rw-r--r--macros/latex/contrib/cje/cjeguide.tex36
-rw-r--r--macros/latex/contrib/cje/cjenatbib.sty6
-rw-r--r--macros/latex/contrib/cje/cjetemplate.tex14
-rw-r--r--macros/latex/contrib/cje/cjeupmath.sty6
-rw-r--r--macros/latex/contrib/hypdoc/README.md2
-rw-r--r--macros/latex/contrib/hypdoc/hypdoc.dtx32
-rw-r--r--macros/latex/contrib/hypdoc/hypdoc.pdfbin335616 -> 337017 bytes
-rw-r--r--macros/latex/contrib/physics2/README.md3
-rw-r--r--macros/latex/contrib/physics2/doc/physics2-legacy.pdfbin82817 -> 0 bytes
-rw-r--r--macros/latex/contrib/physics2/doc/physics2.pdfbin87994 -> 0 bytes
-rw-r--r--macros/latex/contrib/physics2/phy2docdef.tex (renamed from macros/latex/contrib/physics2/doc/phy2docdef.tex)8
-rw-r--r--macros/latex/contrib/physics2/physics2-code.dtx1345
-rw-r--r--macros/latex/contrib/physics2/physics2-code.pdfbin0 -> 137994 bytes
-rw-r--r--macros/latex/contrib/physics2/physics2-legacy.pdfbin0 -> 82674 bytes
-rw-r--r--macros/latex/contrib/physics2/physics2-legacy.tex (renamed from macros/latex/contrib/physics2/doc/physics2-legacy.tex)42
-rw-r--r--macros/latex/contrib/physics2/physics2.ins104
-rw-r--r--macros/latex/contrib/physics2/physics2.pdfbin0 -> 88146 bytes
-rw-r--r--macros/latex/contrib/physics2/physics2.tex (renamed from macros/latex/contrib/physics2/doc/physics2.tex)52
-rw-r--r--macros/latex/contrib/physics2/tex/phy-ab.braket.sty84
-rw-r--r--macros/latex/contrib/physics2/tex/phy-ab.legacy.sty43
-rw-r--r--macros/latex/contrib/physics2/tex/phy-ab.sty111
-rw-r--r--macros/latex/contrib/physics2/tex/phy-bm-um.legacy.sty62
-rw-r--r--macros/latex/contrib/physics2/tex/phy-braket.sty110
-rw-r--r--macros/latex/contrib/physics2/tex/phy-common.sty68
-rw-r--r--macros/latex/contrib/physics2/tex/phy-diagmat.sty92
-rw-r--r--macros/latex/contrib/physics2/tex/phy-doubleprod.sty40
-rw-r--r--macros/latex/contrib/physics2/tex/phy-explsetup.sty29
-rw-r--r--macros/latex/contrib/physics2/tex/phy-nabla.legacy.sty32
-rw-r--r--macros/latex/contrib/physics2/tex/phy-op.legacy.sty51
-rw-r--r--macros/latex/contrib/physics2/tex/phy-qtext.legacy.sty52
-rw-r--r--macros/latex/contrib/physics2/tex/phy-xmat.sty148
-rw-r--r--macros/latex/contrib/physics2/tex/physics2.sty70
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/README.md73
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-circle.tex259
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-ellipse.tex377
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-line.tex420
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-misc.tex361
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-point.tex217
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-triangle.tex220
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes.tex98
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-convention.tex88
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-examples.tex4308
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-howtouse.tex193
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-intersection.tex315
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-main.tex198
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-presentation.tex167
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/tkz-elements.pdfbin0 -> 421125 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo-1.pdfbin0 -> 20611 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_1.pdfbin0 -> 20611 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_1.tex46
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_2.pdfbin0 -> 7613 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_2.tex59
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_3.pdfbin0 -> 17158 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_3.tex62
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz-elements.sty35
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circles.lua129
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_class.lua48
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_ellipses.lua119
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_circles.lua108
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_intersections.lua207
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_lines.lua120
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_maths.lua123
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_points.lua81
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_triangles.lua315
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_lines.lua183
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_main.lua47
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_point.lua181
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_points.lua98
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangles.lua366
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vectors.lua35
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/README.md14
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdfbin1119088 -> 1118849 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-angles.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-circles.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-compass.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-ellipses.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-lines.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-points.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-polygons.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-protractor.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-sectors.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-show.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-marks.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-shape.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-circles-by.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-circles-by.tex)4
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-circles.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-circles.tex)6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-by.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-by.tex)6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-spc.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-spc.tex)4
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-with.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-with.tex)6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points.tex)6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-axesmin.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles-by.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-grids.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-lines.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-by.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-rnd.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-spc.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-with.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-polygons.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-triangles.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty28
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-angles.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-angles.tex)6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-base.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-base.tex)6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-intersections.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-intersections.tex)6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-math.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-math.tex)6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-BB.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-angles.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-base.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-colors.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-intersections.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-math.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-modules.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-text.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-utilities.tex6
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl6
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb287
-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.xzbin2480980 -> 2481872 bytes
-rw-r--r--systems/win32/miktex/tm/packages/files.csv.lzmabin769496 -> 769453 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/files.csv.lzmabin769452 -> 770747 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini10
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini12
-rw-r--r--timestamp2
161 files changed, 12572 insertions, 3247 deletions
diff --git a/FILES.byname b/FILES.byname
index 7cb40c6d55..d5cfae9221 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2058,12 +2058,12 @@
2023/10/05 | 1710 | biblio/citation-style-language/README.md
2023/10/05 | 12878 | biblio/citation-style-language/vancouver.csl
2023/10/05 | 4531754 | biblio/citation-style-language.zip
-2023/10/25 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/10/26 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2023/10/25 | 2820450 | biblio/ctan-bibdata/ctan.bib
-2023/10/25 | 3720474 | biblio/ctan-bibdata/ctan.pdf
+2023/10/26 | 2820450 | biblio/ctan-bibdata/ctan.bib
+2023/10/26 | 3719750 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2023/10/25 | 4125572 | biblio/ctan-bibdata.zip
+2023/10/26 | 4124627 | 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
@@ -5423,7 +5423,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/10/25 | 65122 | FILES.last07days
+2023/10/26 | 45050 | 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
@@ -84330,9 +84330,9 @@
2023/09/03 | 510444 | fonts/newpx/afm/zplri.afm
2023/09/03 | 382853 | fonts/newpx/afm/zplrsl.afm
2019/09/22 | 2226 | fonts/newpx/doc/ChangesInV1.4.txt
-2023/10/23 | 17296 | fonts/newpx/doc/footsnippet-crop.pdf
+2023/10/26 | 17278 | fonts/newpx/doc/footsnippet-crop.pdf
2015/04/20 | 635 | fonts/newpx/doc/MANIFEST-newpx.txt
-2023/10/24 | 432735 | fonts/newpx/doc/newpxdoc.pdf
+2023/10/26 | 432728 | fonts/newpx/doc/newpxdoc.pdf
2023/10/24 | 70266 | fonts/newpx/doc/newpxdoc.tex
2013/03/29 | 8118 | fonts/newpx/doc/newpxeg-crop.pdf
2013/03/27 | 8858 | fonts/newpx/doc/pxfontseg-crop.pdf
@@ -84367,7 +84367,7 @@
2023/09/06 | 234900 | fonts/newpx/opentype/TeXGyrePagellaX-Italic.otf
2023/09/06 | 212404 | fonts/newpx/opentype/TeXGyrePagellaX-Regular.otf
2023/09/06 | 220664 | fonts/newpx/opentype/TeXGyrePagellaX-Slanted.otf
-2023/10/24 | 24143 | fonts/newpx/README
+2023/10/26 | 24374 | fonts/newpx/README
2016/07/06 | 694 | fonts/newpx/tex/lmsnpxsy.fd
2016/07/06 | 690 | fonts/newpx/tex/lmxnpxexx.fd
2023/10/06 | 2101 | fonts/newpx/tex/ly1minzpl.fd
@@ -84387,9 +84387,7 @@
2023/08/07 | 114939 | fonts/newpx/tex/newpxmath.sty
2023/08/08 | 4031 | fonts/newpx/tex/newpx.sty
2019/09/06 | 151 | fonts/newpx/tex/newpx-subs.tex
-2023/10/03 | 23599 | fonts/newpx/tex/newpxtext1.sty
-2023/10/24 | 24308 | fonts/newpx/tex/newpxtext.sty
-2023/10/03 | 15424 | fonts/newpx/tex/newpxtextX.sty
+2023/10/26 | 24557 | fonts/newpx/tex/newpxtext.sty
2013/04/01 | 1021 | fonts/newpx/tex/omlnpxmi.fd
2023/10/06 | 2101 | fonts/newpx/tex/ot1minzpl.fd
2015/05/01 | 1510 | fonts/newpx/tex/ot1npxtt.fd
@@ -84942,7 +84940,7 @@
2013/03/29 | 980 | fonts/newpx/vf/zplsyc.vf
2023/08/26 | 1668 | fonts/newpx/vf/zplsym.vf
2021/05/31 | 1792 | fonts/newpx/vf/zplsy.vf
-2023/10/24 | 7522180 | fonts/newpx.zip
+2023/10/26 | 7510917 | fonts/newpx.zip
2019/06/17 | 524 | fonts/newtx/afm/LibertineI-5nu.afm
2019/10/26 | 7516 | fonts/newtx/afm/LibertineMathBMI5.afm
2019/10/26 | 7506 | fonts/newtx/afm/LibertineMathBMI7.afm
@@ -149948,15 +149946,15 @@
2023/02/09 | 3517 | fonts/xcharter/enc/xch_z3wvjz.enc
2023/02/09 | 3704 | fonts/xcharter/enc/xch_zqx27h.enc
2023/02/09 | 66515 | fonts/xcharter/map/XCharter.map
-2023/07/20 | 3604 | fonts/xcharter-math/README.md
-2023/07/20 | 17127 | fonts/xcharter-math/unimath-xcharter.ltx
-2023/07/20 | 1855887 | fonts/xcharter-math/unimath-xcharter.pdf
-2023/07/20 | 142392 | fonts/xcharter-math/XCharter-Math-Bold.otf
-2023/07/20 | 26783 | fonts/xcharter-math/XCharter-Math.ltx
-2023/07/20 | 326404 | fonts/xcharter-math/XCharter-Math.otf
-2023/07/20 | 205693 | fonts/xcharter-math/XCharter-Math.pdf
-2023/07/20 | 6878 | fonts/xcharter-math/xcharter-otf.sty
-2023/07/20 | 2332748 | fonts/xcharter-math.zip
+2023/10/26 | 3836 | fonts/xcharter-math/README.md
+2023/10/26 | 17127 | fonts/xcharter-math/unimath-xcharter.ltx
+2023/10/26 | 1855718 | fonts/xcharter-math/unimath-xcharter.pdf
+2023/10/26 | 142704 | fonts/xcharter-math/XCharter-Math-Bold.otf
+2023/10/26 | 26911 | fonts/xcharter-math/XCharter-Math.ltx
+2023/10/26 | 327388 | fonts/xcharter-math/XCharter-Math.otf
+2023/10/26 | 206021 | fonts/xcharter-math/XCharter-Math.pdf
+2023/10/26 | 6988 | fonts/xcharter-math/xcharter-otf.sty
+2023/10/26 | 2332810 | fonts/xcharter-math.zip
2022/02/20 | 115708 | fonts/xcharter/opentype/XCharter-BoldItalic.otf
2022/02/20 | 134920 | fonts/xcharter/opentype/XCharter-Bold.otf
2022/02/20 | 136468 | fonts/xcharter/opentype/XCharter-BoldSlanted.otf
@@ -213480,16 +213478,17 @@
2023/01/31 | 1237 | macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/README.md
2023/01/31 | 24332 | macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/tex/beamerthemeAmurmaple.sty
2023/01/31 | 1778668 | macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple.zip
-2023/03/22 | 561 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
-2023/03/22 | 958 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
-2023/03/22 | 2995 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
-2023/03/22 | 771 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
-2023/03/22 | 2835 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
-2023/03/22 | 657335 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
-2023/03/22 | 3901 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
-2023/03/22 | 1072 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/LICENSE
-2023/03/22 | 7327 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
-2023/03/22 | 660340 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles.zip
+2023/10/26 | 561 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
+2023/10/26 | 1032 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
+2023/10/26 | 3716 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
+2023/10/26 | 771 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
+2023/10/26 | 2879 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
+2023/10/26 | 1762739 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
+2023/10/26 | 1101597 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.png
+2023/10/26 | 4256 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
+2023/08/04 | 1072 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/LICENSE
+2023/10/26 | 7152 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
+2023/10/26 | 2863626 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles.zip
2016/09/24 | 12955 | macros/latex/contrib/beamer-contrib/themes/beamertheme-cuerna/beamertheme-cuerna.dtx
2016/09/24 | 1663 | macros/latex/contrib/beamer-contrib/themes/beamertheme-cuerna/beamertheme-cuerna.ins
2016/09/24 | 418475 | macros/latex/contrib/beamer-contrib/themes/beamertheme-cuerna/beamertheme-cuerna.pdf
@@ -217429,17 +217428,16 @@
2018/04/08 | 1395 | macros/latex/contrib/citeref/README.txt
2018/04/08 | 68407 | macros/latex/contrib/citeref.zip
2015/03/03 | 247563 | macros/latex/contrib/cite.zip
-2016/03/04 | 45160 | macros/latex/contrib/cje/ageingbib.bib
+2023/10/25 | 45552 | macros/latex/contrib/cje/ageingbib.bib
2017/05/20 | 2949 | macros/latex/contrib/cje/canadian-flag.pdf
-2018/02/21 | 31238 | macros/latex/contrib/cje/cjebibstyle.bst
-2018/02/21 | 48503 | macros/latex/contrib/cje/cje.cls
-2018/02/21 | 611412 | macros/latex/contrib/cje/cjeguide.pdf
-2018/02/21 | 48644 | macros/latex/contrib/cje/cjeguide.tex
-2018/02/21 | 35891 | macros/latex/contrib/cje/cjenatbib.sty
-2018/02/21 | 5388 | macros/latex/contrib/cje/cjetemplate.tex
-2018/02/21 | 4111 | macros/latex/contrib/cje/cjeupmath.sty
-2018/02/21 | 2667 | macros/latex/contrib/cje/README.txt
-2018/02/23 | 666534 | macros/latex/contrib/cje.zip
+2023/10/25 | 31238 | macros/latex/contrib/cje/cjebibstyle.bst
+2023/10/25 | 48503 | macros/latex/contrib/cje/cje.cls
+2023/10/25 | 48789 | macros/latex/contrib/cje/cjeguide.tex
+2023/10/25 | 35891 | macros/latex/contrib/cje/cjenatbib.sty
+2023/10/25 | 5478 | macros/latex/contrib/cje/cjetemplate.tex
+2023/10/25 | 4111 | macros/latex/contrib/cje/cjeupmath.sty
+2023/10/25 | 2663 | macros/latex/contrib/cje/README.txt
+2023/10/26 | 59678 | macros/latex/contrib/cje.zip
1999/05/27 | 6226 | macros/latex/contrib/cjw/cjw-env.cls
1999/05/27 | 88780 | macros/latex/contrib/cjw/cjw-latex.dtx
1999/05/27 | 1750 | macros/latex/contrib/cjw/cjw-latex.ins
@@ -225830,10 +225828,10 @@
2020/09/03 | 323028 | macros/latex/contrib/hypdestopt/hypdestopt.pdf
2020/09/03 | 438 | macros/latex/contrib/hypdestopt/README.md
2020/09/03 | 327750 | macros/latex/contrib/hypdestopt.zip
-2023/01/23 | 35541 | macros/latex/contrib/hypdoc/hypdoc.dtx
-2023/01/23 | 335616 | macros/latex/contrib/hypdoc/hypdoc.pdf
-2023/01/23 | 387 | macros/latex/contrib/hypdoc/README.md
-2023/01/23 | 331819 | macros/latex/contrib/hypdoc.zip
+2023/10/26 | 35991 | macros/latex/contrib/hypdoc/hypdoc.dtx
+2023/10/26 | 337017 | macros/latex/contrib/hypdoc/hypdoc.pdf
+2023/10/26 | 387 | macros/latex/contrib/hypdoc/README.md
+2023/10/26 | 333363 | macros/latex/contrib/hypdoc.zip
2019/07/31 | 957496 | macros/latex/contrib/hypdvips/hypdvips.pdf
2019/07/31 | 116957 | macros/latex/contrib/hypdvips/hypdvips.sty
2011/12/01 | 68215 | macros/latex/contrib/hypdvips/images/example1.eps
@@ -234035,27 +234033,16 @@
2021/03/27 | 215721 | macros/latex/contrib/physconst/physconst.pdf
2021/03/27 | 3534 | macros/latex/contrib/physconst/README.md
2021/03/27 | 232403 | macros/latex/contrib/physconst.zip
-2023/04/02 | 2961 | macros/latex/contrib/physics2/doc/phy2docdef.tex
-2023/04/02 | 82817 | macros/latex/contrib/physics2/doc/physics2-legacy.pdf
-2023/03/29 | 21078 | macros/latex/contrib/physics2/doc/physics2-legacy.tex
-2023/04/02 | 87994 | macros/latex/contrib/physics2/doc/physics2.pdf
-2023/03/29 | 21686 | macros/latex/contrib/physics2/doc/physics2.tex
-2023/02/06 | 1020 | macros/latex/contrib/physics2/README.md
-2023/04/02 | 3211 | macros/latex/contrib/physics2/tex/phy-ab.braket.sty
-2023/03/29 | 1487 | macros/latex/contrib/physics2/tex/phy-ab.legacy.sty
-2023/04/02 | 5419 | macros/latex/contrib/physics2/tex/phy-ab.sty
-2023/02/07 | 1823 | macros/latex/contrib/physics2/tex/phy-bm-um.legacy.sty
-2023/03/29 | 3866 | macros/latex/contrib/physics2/tex/phy-braket.sty
-2023/03/30 | 2947 | macros/latex/contrib/physics2/tex/phy-common.sty
-2023/02/07 | 3597 | macros/latex/contrib/physics2/tex/phy-diagmat.sty
-2023/02/07 | 1848 | macros/latex/contrib/physics2/tex/phy-doubleprod.sty
-2023/02/07 | 1069 | macros/latex/contrib/physics2/tex/phy-explsetup.sty
-2023/02/07 | 1318 | macros/latex/contrib/physics2/tex/phy-nabla.legacy.sty
-2023/02/07 | 2351 | macros/latex/contrib/physics2/tex/phy-op.legacy.sty
-2023/02/07 | 1897 | macros/latex/contrib/physics2/tex/phy-qtext.legacy.sty
-2023/04/02 | 2593 | macros/latex/contrib/physics2/tex/physics2.sty
-2023/02/07 | 5514 | macros/latex/contrib/physics2/tex/phy-xmat.sty
-2023/04/02 | 197001 | macros/latex/contrib/physics2.zip
+2023/10/26 | 2954 | macros/latex/contrib/physics2/phy2docdef.tex
+2023/10/26 | 50109 | macros/latex/contrib/physics2/physics2-code.dtx
+2023/10/26 | 137994 | macros/latex/contrib/physics2/physics2-code.pdf
+2023/10/26 | 4237 | macros/latex/contrib/physics2/physics2.ins
+2023/10/26 | 82674 | macros/latex/contrib/physics2/physics2-legacy.pdf
+2023/10/26 | 21021 | macros/latex/contrib/physics2/physics2-legacy.tex
+2023/10/26 | 88146 | macros/latex/contrib/physics2/physics2.pdf
+2023/10/26 | 21762 | macros/latex/contrib/physics2/physics2.tex
+2023/10/26 | 1022 | macros/latex/contrib/physics2/README.md
+2023/10/26 | 327345 | macros/latex/contrib/physics2.zip
2012/12/13 | 249731 | macros/latex/contrib/physics/physics.pdf
2012/12/20 | 29610 | macros/latex/contrib/physics/physics.sty
2012/12/13 | 26241 | macros/latex/contrib/physics/physics.tex
@@ -240844,6 +240831,45 @@
2021/01/20 | 65 | macros/latex/contrib/tkz/tkz-berge/NamedGraphs/examples/tkzpreamblenamed.ltx
2021/01/20 | 1990 | macros/latex/contrib/tkz/tkz-berge/README.md
2021/01/21 | 1065010 | macros/latex/contrib/tkz/tkz-berge.zip
+2023/10/25 | 7643 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-circle.tex
+2023/10/26 | 12900 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-ellipse.tex
+2023/10/25 | 13413 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-line.tex
+2023/10/25 | 9679 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-misc.tex
+2023/10/25 | 7832 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-point.tex
+2023/10/23 | 4960 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes.tex
+2023/10/25 | 9398 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-triangle.tex
+2023/10/23 | 6793 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-convention.tex
+2023/10/25 | 125624 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-examples.tex
+2023/10/26 | 7617 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-howtouse.tex
+2023/10/25 | 9715 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-intersection.tex
+2023/10/23 | 7747 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-main.tex
+2023/10/26 | 8379 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-presentation.tex
+2023/10/26 | 421125 | macros/latex/contrib/tkz/tkz-elements/doc/tkz-elements.pdf
+2023/10/25 | 20611 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_1.pdf
+2023/10/24 | 20611 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo-1.pdf
+2023/10/26 | 1491 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_1.tex
+2023/10/25 | 7613 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_2.pdf
+2023/10/25 | 2248 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_2.tex
+2023/10/25 | 17158 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_3.pdf
+2023/10/25 | 2359 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_3.tex
+2023/10/23 | 3841 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circles.lua
+2023/10/23 | 1271 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_class.lua
+2023/10/23 | 3784 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_ellipses.lua
+2023/10/23 | 2989 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_circles.lua
+2023/10/23 | 6454 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_intersections.lua
+2023/10/23 | 2756 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_lines.lua
+2023/10/23 | 2681 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_maths.lua
+2023/10/23 | 1921 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_points.lua
+2023/10/23 | 8283 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_triangles.lua
+2023/10/23 | 4965 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_lines.lua
+2023/10/23 | 1395 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_main.lua
+2023/10/25 | 4305 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_point.lua
+2023/10/23 | 2471 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_points.lua
+2023/10/25 | 1145 | macros/latex/contrib/tkz/tkz-elements/latex/tkz-elements.sty
+2023/10/23 | 10139 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangles.lua
+2023/10/23 | 1155 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vectors.lua
+2023/10/26 | 2180 | macros/latex/contrib/tkz/tkz-elements/README.md
+2023/10/26 | 549100 | macros/latex/contrib/tkz/tkz-elements.zip
2023/01/17 | 10308 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-angles.tex
2022/06/11 | 5093 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circleby.tex
2023/10/14 | 11711 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex
@@ -240860,7 +240886,7 @@
2023/01/22 | 13418 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-labelling.tex
2022/06/11 | 10307 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex
2023/01/23 | 1471 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lua.tex
-2023/09/01 | 7814 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex
+2023/10/26 | 7814 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex
2023/01/22 | 12001 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-marking.tex
2023/10/20 | 11169 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-news.tex
2023/01/21 | 12703 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-others.tex
@@ -240876,54 +240902,54 @@
2022/04/18 | 18644 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-styles.tex
2023/01/15 | 17327 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex
2022/06/11 | 22352 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-triangles.tex
-2023/10/20 | 1119088 | macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf
-2023/10/20 | 21718 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-angles.tex
-2023/10/20 | 5854 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-circles.tex
-2023/10/20 | 3975 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-compass.tex
-2023/10/20 | 901 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-ellipses.tex
-2023/10/20 | 10203 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-lines.tex
-2023/10/20 | 6360 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-points.tex
-2023/10/20 | 3948 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-polygons.tex
-2023/10/20 | 4601 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-protractor.tex
-2023/10/20 | 12163 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-sectors.tex
-2023/10/20 | 14423 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-show.tex
-2023/10/20 | 4375 | macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-marks.tex
-2023/10/20 | 2005 | macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-shape.tex
-2023/10/20 | 6591 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-circles-by.tex
-2023/10/20 | 8993 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-circles.tex
-2023/10/20 | 18295 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-by.tex
-2023/10/20 | 25253 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-spc.tex
-2023/10/20 | 6521 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points.tex
-2023/10/20 | 10839 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-with.tex
-2023/10/20 | 6765 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-axesmin.tex
-2023/10/20 | 6574 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles-by.tex
-2023/10/20 | 8983 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles.tex
-2023/10/20 | 3473 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-grids.tex
-2023/10/20 | 10450 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-lines.tex
-2023/10/20 | 18510 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-by.tex
-2023/10/20 | 5343 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-rnd.tex
-2023/10/20 | 23353 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-spc.tex
-2023/10/20 | 6837 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points.tex
-2023/10/20 | 10652 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-with.tex
-2023/10/20 | 4085 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-polygons.tex
-2023/10/20 | 17804 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-triangles.tex
-2023/10/20 | 11224 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
-2023/10/20 | 6622 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
-2023/10/20 | 3884 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-angles.tex
-2023/10/20 | 3496 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-base.tex
-2023/10/20 | 19094 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-intersections.tex
-2023/10/20 | 11099 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-math.tex
-2023/10/20 | 3056 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-angles.tex
-2023/10/20 | 3497 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-base.tex
-2023/10/20 | 1224 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-BB.tex
-2023/10/20 | 2268 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-colors.tex
-2023/10/20 | 18272 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-intersections.tex
-2023/10/20 | 9000 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-math.tex
-2023/10/20 | 2749 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-modules.tex
-2023/10/20 | 2987 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-text.tex
-2023/10/20 | 5841 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-utilities.tex
-2023/10/20 | 12129 | macros/latex/contrib/tkz/tkz-euclide/README.md
-2023/10/20 | 1309695 | macros/latex/contrib/tkz/tkz-euclide.zip
+2023/10/26 | 1118849 | macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf
+2023/10/26 | 21718 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-angles.tex
+2023/10/26 | 5854 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-circles.tex
+2023/10/26 | 3975 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-compass.tex
+2023/10/26 | 901 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-ellipses.tex
+2023/10/26 | 10203 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-lines.tex
+2023/10/26 | 6360 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-points.tex
+2023/10/26 | 3948 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-polygons.tex
+2023/10/26 | 4601 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-protractor.tex
+2023/10/26 | 12163 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-sectors.tex
+2023/10/26 | 14423 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-show.tex
+2023/10/26 | 4375 | macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-marks.tex
+2023/10/26 | 2005 | macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-shape.tex
+2023/10/26 | 6591 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-circles-by.tex
+2023/10/26 | 8993 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-circles.tex
+2023/10/26 | 18295 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-by.tex
+2023/10/26 | 25253 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-spc.tex
+2023/10/26 | 6521 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points.tex
+2023/10/26 | 10839 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-with.tex
+2023/10/26 | 6765 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-axesmin.tex
+2023/10/26 | 6574 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles-by.tex
+2023/10/26 | 8983 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles.tex
+2023/10/26 | 3473 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-grids.tex
+2023/10/26 | 10450 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-lines.tex
+2023/10/26 | 18510 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-by.tex
+2023/10/26 | 5343 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-rnd.tex
+2023/10/26 | 23353 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-spc.tex
+2023/10/26 | 6837 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points.tex
+2023/10/26 | 10652 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-with.tex
+2023/10/26 | 4085 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-polygons.tex
+2023/10/26 | 17804 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-triangles.tex
+2023/10/26 | 11224 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
+2023/10/26 | 6652 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
+2023/10/26 | 3884 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-angles.tex
+2023/10/26 | 3496 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-base.tex
+2023/10/26 | 19094 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-intersections.tex
+2023/10/26 | 11099 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-math.tex
+2023/10/26 | 3056 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-angles.tex
+2023/10/26 | 3497 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-base.tex
+2023/10/26 | 1224 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-BB.tex
+2023/10/26 | 2268 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-colors.tex
+2023/10/26 | 18272 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-intersections.tex
+2023/10/26 | 9000 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-math.tex
+2023/10/26 | 2749 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-modules.tex
+2023/10/26 | 2987 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-text.tex
+2023/10/26 | 5841 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-utilities.tex
+2023/10/26 | 12163 | macros/latex/contrib/tkz/tkz-euclide/README.md
+2023/10/26 | 1309430 | macros/latex/contrib/tkz/tkz-euclide.zip
2022/07/15 | 17886 | macros/latex/contrib/tkz/tkzexample/doc/latex/tkzexample.tex
2022/07/15 | 98599 | macros/latex/contrib/tkz/tkzexample/doc/tkzexample.pdf
2022/07/15 | 15954 | macros/latex/contrib/tkz/tkzexample/latex/tkzexample.sty
@@ -286908,7 +286934,7 @@
2021/05/03 | 629 | support/TeX4ht/doc/README
2020/08/24 | 358454 | support/TeX4ht/doc/TeX4ht-doc.tex
2021/05/11 | 262 | support/TeX4ht/README
-2023/10/24 | 235020 | support/TeX4ht/source/ChangeLog
+2023/10/25 | 235167 | support/TeX4ht/source/ChangeLog
2021/05/03 | 1375 | support/TeX4ht/source/checklog.lua
2021/05/03 | 1189 | support/TeX4ht/source/common-code.tex
2021/05/03 | 2727 | support/TeX4ht/source/common-info.tex
@@ -286920,7 +286946,7 @@
2021/05/03 | 1121 | support/TeX4ht/source/README
2021/05/03 | 1744 | support/TeX4ht/source/t1fontmake.lua
2021/05/03 | 297 | support/TeX4ht/source/t1fontsample.tex
-2023/10/24 | 1168201 | support/TeX4ht/source/tex4ht-4ht.tex
+2023/10/25 | 1168227 | support/TeX4ht/source/tex4ht-4ht.tex
2021/05/03 | 7127 | support/TeX4ht/source/tex4ht-auto-script.tex
2021/05/16 | 1539 | support/TeX4ht/source/tex4ht-bibtex2.tex
2023/10/16 | 21307 | support/TeX4ht/source/tex4ht-cond4ht.tex
@@ -286949,7 +286975,7 @@
2021/05/03 | 14218 | support/TeX4ht/source/tex4ht-htcmd.tex
2021/05/03 | 70683 | support/TeX4ht/source/tex4ht-html0.tex
2021/05/03 | 164748 | support/TeX4ht/source/tex4ht-html32.tex
-2023/10/20 | 622580 | support/TeX4ht/source/tex4ht-html4.tex
+2023/10/25 | 622581 | support/TeX4ht/source/tex4ht-html4.tex
2023/10/09 | 12034 | support/TeX4ht/source/tex4ht-html5.tex
2021/06/17 | 648233 | support/TeX4ht/source/tex4ht-html-speech.tex
2021/05/03 | 59483 | support/TeX4ht/source/tex4ht-html-speech-xtpipes.tex
@@ -291116,9 +291142,9 @@
2019/07/12 | 7876 | systems/texlive/tlnet/archive/adtrees.r51618.tar.xz
2019/02/28 | 146672 | systems/texlive/tlnet/archive/advdate.doc.r20538.tar.xz
2019/02/28 | 2228 | systems/texlive/tlnet/archive/advdate.r20538.tar.xz
-2023/10/13 | 7584 | systems/texlive/tlnet/archive/advice.doc.r68525.tar.xz
-2023/10/13 | 4648 | systems/texlive/tlnet/archive/advice.r68525.tar.xz
-2023/10/13 | 12808 | systems/texlive/tlnet/archive/advice.source.r68525.tar.xz
+2023/10/26 | 8080 | systems/texlive/tlnet/archive/advice.doc.r68648.tar.xz
+2023/10/26 | 4764 | systems/texlive/tlnet/archive/advice.r68648.tar.xz
+2023/10/26 | 13220 | systems/texlive/tlnet/archive/advice.source.r68648.tar.xz
2019/02/28 | 7732 | systems/texlive/tlnet/archive/ae.doc.r15878.tar.xz
2019/02/28 | 26984 | systems/texlive/tlnet/archive/aeguill.doc.r15878.tar.xz
2019/02/28 | 2388 | systems/texlive/tlnet/archive/aeguill.r15878.tar.xz
@@ -291713,7 +291739,7 @@
2021/02/07 | 136588 | systems/texlive/tlnet/archive/babel-danish.doc.r57642.tar.xz
2021/02/07 | 2488 | systems/texlive/tlnet/archive/babel-danish.r57642.tar.xz
2021/02/07 | 5792 | systems/texlive/tlnet/archive/babel-danish.source.r57642.tar.xz
-2023/09/30 | 1026216 | systems/texlive/tlnet/archive/babel.doc.r68400.tar.xz
+2023/10/26 | 1031432 | systems/texlive/tlnet/archive/babel.doc.r68651.tar.xz
2021/08/30 | 157392 | systems/texlive/tlnet/archive/babel-dutch.doc.r60362.tar.xz
2021/08/30 | 2920 | systems/texlive/tlnet/archive/babel-dutch.r60362.tar.xz
2021/08/30 | 7968 | systems/texlive/tlnet/archive/babel-dutch.source.r60362.tar.xz
@@ -291802,7 +291828,7 @@
2021/07/10 | 146580 | systems/texlive/tlnet/archive/babel-portuges.doc.r59883.tar.xz
2021/07/10 | 2828 | systems/texlive/tlnet/archive/babel-portuges.r59883.tar.xz
2021/07/10 | 6692 | systems/texlive/tlnet/archive/babel-portuges.source.r59883.tar.xz
-2023/09/30 | 222248 | systems/texlive/tlnet/archive/babel.r68400.tar.xz
+2023/10/26 | 222588 | systems/texlive/tlnet/archive/babel.r68651.tar.xz
2021/04/07 | 113056 | systems/texlive/tlnet/archive/babel-romanian.doc.r58776.tar.xz
2021/04/07 | 2124 | systems/texlive/tlnet/archive/babel-romanian.r58776.tar.xz
2021/04/07 | 4308 | systems/texlive/tlnet/archive/babel-romanian.source.r58776.tar.xz
@@ -291833,7 +291859,7 @@
2021/11/07 | 209804 | systems/texlive/tlnet/archive/babel-sorbian.doc.r60975.tar.xz
2021/11/07 | 3156 | systems/texlive/tlnet/archive/babel-sorbian.r60975.tar.xz
2021/11/07 | 6328 | systems/texlive/tlnet/archive/babel-sorbian.source.r60975.tar.xz
-2023/09/30 | 857044 | systems/texlive/tlnet/archive/babel.source.r68400.tar.xz
+2023/10/26 | 854604 | systems/texlive/tlnet/archive/babel.source.r68651.tar.xz
2021/05/28 | 183140 | systems/texlive/tlnet/archive/babel-spanish.doc.r59367.tar.xz
2021/05/28 | 8876 | systems/texlive/tlnet/archive/babel-spanish.r59367.tar.xz
2021/05/28 | 29800 | systems/texlive/tlnet/archive/babel-spanish.source.r59367.tar.xz
@@ -293291,7 +293317,7 @@
2020/03/04 | 408 | systems/texlive/tlnet/archive/collection-langpolish.r54074.tar.xz
2023/05/16 | 400 | systems/texlive/tlnet/archive/collection-langportuguese.r67125.tar.xz
2023/06/09 | 396 | systems/texlive/tlnet/archive/collection-langspanish.r67307.tar.xz
-2023/10/23 | 6980 | systems/texlive/tlnet/archive/collection-latexextra.r68620.tar.xz
+2023/10/26 | 6988 | systems/texlive/tlnet/archive/collection-latexextra.r68643.tar.xz
2022/06/10 | 700 | systems/texlive/tlnet/archive/collection-latex.r63515.tar.xz
2023/01/11 | 744 | systems/texlive/tlnet/archive/collection-latexrecommended.r65512.tar.xz
2023/08/26 | 1008 | systems/texlive/tlnet/archive/collection-luatex.r68053.tar.xz
@@ -293675,12 +293701,12 @@
2019/02/28 | 340 | systems/texlive/tlnet/archive/ctanbib.amd64-freebsd.r48478.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/ctanbib.amd64-netbsd.r48715.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/ctanbib.armhf-linux.r48478.tar.xz
-2023/09/19 | 57084 | systems/texlive/tlnet/archive/ctanbib.doc.r68315.tar.xz
+2023/10/26 | 60580 | systems/texlive/tlnet/archive/ctanbib.doc.r68650.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/ctanbib.i386-freebsd.r48478.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/ctanbib.i386-linux.r48478.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/ctanbib.i386-netbsd.r48478.tar.xz
2019/02/28 | 336 | systems/texlive/tlnet/archive/ctanbib.i386-solaris.r48478.tar.xz
-2023/09/19 | 3044 | systems/texlive/tlnet/archive/ctanbib.r68315.tar.xz
+2023/10/26 | 3508 | systems/texlive/tlnet/archive/ctanbib.r68650.tar.xz
2021/02/25 | 336 | systems/texlive/tlnet/archive/ctanbib.universal-darwin.r57908.tar.xz
2023/02/20 | 2304 | systems/texlive/tlnet/archive/ctanbib.windows.r65891.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/ctanbib.x86_64-cygwin.r48478.tar.xz
@@ -293818,7 +293844,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/10/23 | 73552 | systems/texlive/tlnet/archive/cweb.doc.r68617.tar.xz
+2023/10/26 | 73552 | systems/texlive/tlnet/archive/cweb.doc.r68647.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
@@ -293826,7 +293852,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/10/23 | 24752 | systems/texlive/tlnet/archive/cweb.r68617.tar.xz
+2023/10/26 | 24784 | systems/texlive/tlnet/archive/cweb.r68647.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
@@ -296905,6 +296931,9 @@
2019/02/28 | 122280 | systems/texlive/tlnet/archive/isorot.doc.r15878.tar.xz
2019/02/28 | 2568 | systems/texlive/tlnet/archive/isorot.r15878.tar.xz
2019/02/28 | 13604 | systems/texlive/tlnet/archive/isorot.source.r15878.tar.xz
+2023/10/26 | 126360 | systems/texlive/tlnet/archive/isosafety.doc.r68643.tar.xz
+2023/10/26 | 2898480 | systems/texlive/tlnet/archive/isosafety.r68643.tar.xz
+2023/10/26 | 2120 | systems/texlive/tlnet/archive/isosafety.source.r68643.tar.xz
2019/02/28 | 48644 | systems/texlive/tlnet/archive/iso.source.r15878.tar.xz
2019/02/28 | 520 | systems/texlive/tlnet/archive/isotope.doc.r23711.tar.xz
2019/02/28 | 1168 | systems/texlive/tlnet/archive/isotope.r23711.tar.xz
@@ -300647,8 +300676,8 @@
2023/10/16 | 1319080 | systems/texlive/tlnet/archive/profcollege.r68558.tar.xz
2022/04/27 | 134096 | systems/texlive/tlnet/archive/proflabo.doc.r63147.tar.xz
2022/04/27 | 2748 | systems/texlive/tlnet/archive/proflabo.r63147.tar.xz
-2023/10/25 | 1637484 | systems/texlive/tlnet/archive/proflycee.doc.r68633.tar.xz
-2023/10/25 | 42324 | systems/texlive/tlnet/archive/proflycee.r68633.tar.xz
+2023/10/26 | 1637092 | systems/texlive/tlnet/archive/proflycee.doc.r68649.tar.xz
+2023/10/26 | 42412 | systems/texlive/tlnet/archive/proflycee.r68649.tar.xz
2023/09/10 | 178328 | systems/texlive/tlnet/archive/profmaquette.doc.r68222.tar.xz
2023/09/10 | 13760 | systems/texlive/tlnet/archive/profmaquette.r68222.tar.xz
2023/09/30 | 344480 | systems/texlive/tlnet/archive/profsio.doc.r68397.tar.xz
@@ -302573,13 +302602,13 @@
2023/08/16 | 108860 | systems/texlive/tlnet/archive/tex4ht.amd64-freebsd.r67940.tar.xz
2023/08/16 | 87320 | systems/texlive/tlnet/archive/tex4ht.amd64-netbsd.r67940.tar.xz
2023/08/16 | 69948 | systems/texlive/tlnet/archive/tex4ht.armhf-linux.r67940.tar.xz
-2023/10/25 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r68640.tar.xz
+2023/10/26 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r68652.tar.xz
2023/08/16 | 93764 | systems/texlive/tlnet/archive/tex4ht.i386-freebsd.r67940.tar.xz
2023/08/16 | 91236 | systems/texlive/tlnet/archive/tex4ht.i386-linux.r67940.tar.xz
2023/08/16 | 76184 | systems/texlive/tlnet/archive/tex4ht.i386-netbsd.r67940.tar.xz
2023/08/16 | 83936 | systems/texlive/tlnet/archive/tex4ht.i386-solaris.r67940.tar.xz
-2023/10/25 | 1103868 | systems/texlive/tlnet/archive/tex4ht.r68640.tar.xz
-2023/10/25 | 1459384 | systems/texlive/tlnet/archive/tex4ht.source.r68640.tar.xz
+2023/10/26 | 1104068 | systems/texlive/tlnet/archive/tex4ht.r68652.tar.xz
+2023/10/26 | 1453980 | systems/texlive/tlnet/archive/tex4ht.source.r68652.tar.xz
2023/08/16 | 184636 | systems/texlive/tlnet/archive/tex4ht.universal-darwin.r67940.tar.xz
2023/10/23 | 62056 | systems/texlive/tlnet/archive/tex4ht.windows.r68621.tar.xz
2023/08/16 | 57992 | systems/texlive/tlnet/archive/tex4ht.x86_64-cygwin.r67940.tar.xz
@@ -302840,7 +302869,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/10/25 | 428296 | systems/texlive/tlnet/archive/texlive-scripts.doc.r68626.tar.xz
+2023/10/26 | 428276 | systems/texlive/tlnet/archive/texlive-scripts.doc.r68642.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
@@ -302862,7 +302891,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/10/25 | 114084 | systems/texlive/tlnet/archive/texlive-scripts.r68626.tar.xz
+2023/10/26 | 114072 | systems/texlive/tlnet/archive/texlive-scripts.r68642.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
@@ -304742,16 +304771,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/08/07 | 125713 | systems/texlive/tlnet/install-tl
-2023/10/25 | 5743988 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2023/10/25 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2023/10/25 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/10/26 | 5742593 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/10/26 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/10/26 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/05/13 | 5083 | systems/texlive/tlnet/install-tl-windows.bat
-2023/10/25 | 21034163 | systems/texlive/tlnet/install-tl-windows.exe
-2023/10/25 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/10/25 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/10/25 | 26029184 | systems/texlive/tlnet/install-tl.zip
-2023/10/25 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/10/25 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/10/26 | 21036914 | systems/texlive/tlnet/install-tl-windows.exe
+2023/10/26 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/10/26 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/10/26 | 26029167 | systems/texlive/tlnet/install-tl.zip
+2023/10/26 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/10/26 | 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
@@ -304761,7 +304790,7 @@
2023/01/17 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2023/09/20 | 50622 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2023/10/24 | 7166 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2023/10/25 | 7086 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/08/23 | 221470 | 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
@@ -304803,12 +304832,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/10/25 | 18286915 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2023/10/25 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/10/26 | 18303221 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/10/26 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2023/10/16 | 87924 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2023/10/25 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2023/10/25 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/10/25 | 2477744 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/10/26 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/10/26 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/10/26 | 2480980 | 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
@@ -308428,9 +308457,9 @@
2022/11/26 | 883135 | systems/win32/miktex/tm/packages/achemso__doc.tar.lzma
2022/11/26 | 31899 | systems/win32/miktex/tm/packages/achemso__source.tar.lzma
2022/11/26 | 19684 | systems/win32/miktex/tm/packages/achemso.tar.lzma
-2023/06/16 | 4668885 | systems/win32/miktex/tm/packages/acmart__doc.tar.lzma
-2023/06/16 | 63070 | systems/win32/miktex/tm/packages/acmart__source.tar.lzma
-2023/06/16 | 43273 | systems/win32/miktex/tm/packages/acmart.tar.lzma
+2023/10/26 | 4897447 | systems/win32/miktex/tm/packages/acmart__doc.tar.lzma
+2023/10/26 | 63364 | systems/win32/miktex/tm/packages/acmart__source.tar.lzma
+2023/10/26 | 43323 | systems/win32/miktex/tm/packages/acmart.tar.lzma
2016/07/19 | 105378 | systems/win32/miktex/tm/packages/acmconf.tar.lzma
2022/04/05 | 1230532 | systems/win32/miktex/tm/packages/acro__doc.tar.lzma
2016/08/30 | 774465 | systems/win32/miktex/tm/packages/acroflex.tar.lzma
@@ -308475,9 +308504,9 @@
2016/07/15 | 48902 | systems/win32/miktex/tm/packages/adrlist.tar.lzma
2019/07/13 | 364658 | systems/win32/miktex/tm/packages/adtrees.tar.lzma
2010/02/22 | 148485 | systems/win32/miktex/tm/packages/advdate.tar.lzma
-2023/10/12 | 8007 | systems/win32/miktex/tm/packages/advice__doc.tar.lzma
-2023/10/12 | 13266 | systems/win32/miktex/tm/packages/advice__source.tar.lzma
-2023/10/12 | 4958 | systems/win32/miktex/tm/packages/advice.tar.lzma
+2023/10/26 | 8472 | systems/win32/miktex/tm/packages/advice__doc.tar.lzma
+2023/10/26 | 13662 | systems/win32/miktex/tm/packages/advice__source.tar.lzma
+2023/10/26 | 5096 | systems/win32/miktex/tm/packages/advice.tar.lzma
2007/05/19 | 743167 | systems/win32/miktex/tm/packages/aebenvelope.tar.lzma
2019/10/08 | 623069 | systems/win32/miktex/tm/packages/aeb-minitoc.tar.lzma
2020/07/19 | 686995 | systems/win32/miktex/tm/packages/aeb-mlink.tar.lzma
@@ -308665,12 +308694,12 @@
2020/01/16 | 186434 | systems/win32/miktex/tm/packages/ascmac.tar.lzma
2020/04/15 | 609335 | systems/win32/miktex/tm/packages/askinclude.tar.lzma
2020/10/27 | 388800 | systems/win32/miktex/tm/packages/askmaps.tar.lzma
-2023/01/06 | 587208 | systems/win32/miktex/tm/packages/asmeconf__doc.tar.lzma
+2023/10/26 | 592357 | systems/win32/miktex/tm/packages/asmeconf__doc.tar.lzma
2022/12/31 | 2500894 | systems/win32/miktex/tm/packages/asmeconf__source.tar.lzma
-2023/01/06 | 29493 | systems/win32/miktex/tm/packages/asmeconf.tar.lzma
-2022/12/31 | 613835 | systems/win32/miktex/tm/packages/asmejour__doc.tar.lzma
-2022/12/31 | 1270388 | systems/win32/miktex/tm/packages/asmejour__source.tar.lzma
-2022/12/31 | 23098 | systems/win32/miktex/tm/packages/asmejour.tar.lzma
+2023/10/26 | 29693 | systems/win32/miktex/tm/packages/asmeconf.tar.lzma
+2023/10/26 | 622526 | systems/win32/miktex/tm/packages/asmejour__doc.tar.lzma
+2023/10/26 | 1274766 | systems/win32/miktex/tm/packages/asmejour__source.tar.lzma
+2023/10/26 | 23692 | systems/win32/miktex/tm/packages/asmejour.tar.lzma
2012/02/01 | 405602 | systems/win32/miktex/tm/packages/aspectratio.tar.lzma
2004/11/11 | 12360 | systems/win32/miktex/tm/packages/assignment.cab
2015/09/30 | 358108 | systems/win32/miktex/tm/packages/assoccnt.tar.lzma
@@ -308743,7 +308772,7 @@
2014/09/29 | 121076 | systems/win32/miktex/tm/packages/babel-croatian.tar.lzma
2014/05/21 | 206798 | systems/win32/miktex/tm/packages/babel-czech.tar.lzma
2021/02/10 | 144839 | systems/win32/miktex/tm/packages/babel-danish.tar.lzma
-2023/10/01 | 1026691 | systems/win32/miktex/tm/packages/babel__doc.tar.lzma
+2023/10/26 | 1031990 | systems/win32/miktex/tm/packages/babel__doc.tar.lzma
2021/09/06 | 157877 | systems/win32/miktex/tm/packages/babel-dutch__doc.tar.lzma
2021/09/06 | 8372 | systems/win32/miktex/tm/packages/babel-dutch__source.tar.lzma
2021/09/06 | 3172 | systems/win32/miktex/tm/packages/babel-dutch.tar.lzma
@@ -308809,11 +308838,11 @@
2021/11/07 | 210288 | systems/win32/miktex/tm/packages/babel-sorbian__doc.tar.lzma
2021/11/07 | 6727 | systems/win32/miktex/tm/packages/babel-sorbian__source.tar.lzma
2021/11/07 | 3401 | systems/win32/miktex/tm/packages/babel-sorbian.tar.lzma
-2023/10/01 | 857672 | systems/win32/miktex/tm/packages/babel__source.tar.lzma
+2023/10/26 | 855221 | systems/win32/miktex/tm/packages/babel__source.tar.lzma
2015/05/25 | 5256 | systems/win32/miktex/tm/packages/babel-spanglish.tar.lzma
2021/05/29 | 222183 | systems/win32/miktex/tm/packages/babel-spanish.tar.lzma
2021/02/10 | 148420 | systems/win32/miktex/tm/packages/babel-swedish.tar.lzma
-2023/10/01 | 227979 | systems/win32/miktex/tm/packages/babel.tar.lzma
+2023/10/26 | 227930 | systems/win32/miktex/tm/packages/babel.tar.lzma
2014/05/21 | 234101 | systems/win32/miktex/tm/packages/babel-thai.tar.lzma
2019/07/06 | 309208 | systems/win32/miktex/tm/packages/babel-turkish.tar.lzma
2021/01/17 | 159246 | systems/win32/miktex/tm/packages/babel-ukrainian.tar.lzma
@@ -309128,9 +309157,9 @@
2016/07/20 | 229228 | systems/win32/miktex/tm/packages/biocon.tar.lzma
2016/10/07 | 6473 | systems/win32/miktex/tm/packages/biolett-bst.tar.lzma
2012/04/04 | 373402 | systems/win32/miktex/tm/packages/bitelist.tar.lzma
-2023/10/03 | 552513 | systems/win32/miktex/tm/packages/bithesis__doc.tar.lzma
-2023/10/03 | 27875 | systems/win32/miktex/tm/packages/bithesis__source.tar.lzma
-2023/10/03 | 21612 | systems/win32/miktex/tm/packages/bithesis.tar.lzma
+2023/10/26 | 731353 | systems/win32/miktex/tm/packages/bithesis__doc.tar.lzma
+2023/10/26 | 28037 | systems/win32/miktex/tm/packages/bithesis__source.tar.lzma
+2023/10/26 | 21793 | systems/win32/miktex/tm/packages/bithesis.tar.lzma
2015/12/15 | 184658 | systems/win32/miktex/tm/packages/bitpattern.tar.lzma
2019/12/13 | 638837 | systems/win32/miktex/tm/packages/bitset.tar.lzma
2023/07/17 | 46998 | systems/win32/miktex/tm/packages/bitter__doc.tar.lzma
@@ -309724,9 +309753,9 @@
2023/09/03 | 154728 | systems/win32/miktex/tm/packages/creationboites__doc.tar.lzma
2023/09/03 | 5597 | systems/win32/miktex/tm/packages/creationboites__source.tar.lzma
2023/09/03 | 2404 | systems/win32/miktex/tm/packages/creationboites.tar.lzma
-2023/07/28 | 71604 | systems/win32/miktex/tm/packages/crefthe__doc.tar.lzma
-2023/07/28 | 6712 | systems/win32/miktex/tm/packages/crefthe__source.tar.lzma
-2023/07/28 | 4519 | systems/win32/miktex/tm/packages/crefthe.tar.lzma
+2023/10/26 | 71795 | systems/win32/miktex/tm/packages/crefthe__doc.tar.lzma
+2023/10/26 | 6774 | systems/win32/miktex/tm/packages/crefthe__source.tar.lzma
+2023/10/26 | 4594 | systems/win32/miktex/tm/packages/crefthe.tar.lzma
2022/10/06 | 34542 | systems/win32/miktex/tm/packages/crimson__doc.tar.lzma
2022/10/06 | 85471 | systems/win32/miktex/tm/packages/crimsonpro__doc.tar.lzma
2022/10/06 | 2542221 | systems/win32/miktex/tm/packages/crimsonpro.tar.lzma
@@ -309770,8 +309799,8 @@
2017/04/23 | 2092323 | systems/win32/miktex/tm/packages/css-colors.tar.lzma
2016/09/06 | 106657 | systems/win32/miktex/tm/packages/cstypo.tar.lzma
2019/08/13 | 235822 | systems/win32/miktex/tm/packages/csvmerge.tar.lzma
-2023/05/10 | 1706879 | systems/win32/miktex/tm/packages/csvsimple__doc.tar.lzma
-2023/05/10 | 11681 | systems/win32/miktex/tm/packages/csvsimple.tar.lzma
+2023/10/26 | 1734543 | systems/win32/miktex/tm/packages/csvsimple__doc.tar.lzma
+2023/10/26 | 11863 | systems/win32/miktex/tm/packages/csvsimple.tar.lzma
2007/07/04 | 215599 | systems/win32/miktex/tm/packages/csvtools.tar.lzma
2015/10/06 | 155555 | systems/win32/miktex/tm/packages/ctablestack.tar.lzma
2015/10/20 | 716564 | systems/win32/miktex/tm/packages/ctable.tar.lzma
@@ -309807,6 +309836,9 @@
2022/08/11 | 361526 | systems/win32/miktex/tm/packages/customdice__doc.tar.lzma
2022/08/11 | 7751 | systems/win32/miktex/tm/packages/customdice__source.tar.lzma
2022/08/11 | 2821 | systems/win32/miktex/tm/packages/customdice.tar.lzma
+2023/10/26 | 412214 | systems/win32/miktex/tm/packages/customenvs__doc.tar.lzma
+2023/10/26 | 8449 | systems/win32/miktex/tm/packages/customenvs__source.tar.lzma
+2023/10/26 | 4740 | systems/win32/miktex/tm/packages/customenvs.tar.lzma
2021/11/01 | 335032 | systems/win32/miktex/tm/packages/cutwin__doc.tar.lzma
2021/11/01 | 9830 | systems/win32/miktex/tm/packages/cutwin__source.tar.lzma
2021/11/01 | 3013 | systems/win32/miktex/tm/packages/cutwin.tar.lzma
@@ -310377,9 +310409,9 @@
2019/01/04 | 232811 | systems/win32/miktex/tm/packages/exercisepoints.tar.lzma
2020/05/18 | 368015 | systems/win32/miktex/tm/packages/exercises.tar.lzma
2014/11/20 | 341246 | systems/win32/miktex/tm/packages/exercise.tar.lzma
-2023/09/10 | 227932 | systems/win32/miktex/tm/packages/exesheet__doc.tar.lzma
-2023/09/10 | 24857 | systems/win32/miktex/tm/packages/exesheet__source.tar.lzma
-2023/09/10 | 6300 | systems/win32/miktex/tm/packages/exesheet.tar.lzma
+2023/10/26 | 230243 | systems/win32/miktex/tm/packages/exesheet__doc.tar.lzma
+2023/10/26 | 25301 | systems/win32/miktex/tm/packages/exesheet__source.tar.lzma
+2023/10/26 | 6410 | systems/win32/miktex/tm/packages/exesheet.tar.lzma
2020/02/25 | 450148 | systems/win32/miktex/tm/packages/exframe.tar.lzma
2008/06/26 | 80109 | systems/win32/miktex/tm/packages/expdlist.tar.lzma
2023/09/03 | 85715 | systems/win32/miktex/tm/packages/expex-acro__doc.tar.lzma
@@ -310506,7 +310538,7 @@
2022/11/01 | 5115 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2023/10/14 | 769496 | systems/win32/miktex/tm/packages/files.csv.lzma
+2023/10/26 | 769453 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -310618,10 +310650,10 @@
2023/07/04 | 247062 | systems/win32/miktex/tm/packages/fonts-churchslavonic__doc.tar.lzma
2023/07/04 | 21763 | systems/win32/miktex/tm/packages/fonts-churchslavonic__source.tar.lzma
2023/07/04 | 2072430 | systems/win32/miktex/tm/packages/fonts-churchslavonic.tar.lzma
-2023/08/19 | 577246 | systems/win32/miktex/tm/packages/fontsetup__doc.tar.lzma
+2023/10/26 | 548842 | systems/win32/miktex/tm/packages/fontsetup__doc.tar.lzma
2021/05/08 | 334066 | systems/win32/miktex/tm/packages/fontsetup-nonfree.tar.lzma
-2023/08/19 | 5723 | systems/win32/miktex/tm/packages/fontsetup__source.tar.lzma
-2023/08/19 | 7255 | systems/win32/miktex/tm/packages/fontsetup.tar.lzma
+2023/10/26 | 5716 | systems/win32/miktex/tm/packages/fontsetup__source.tar.lzma
+2023/10/26 | 7309 | systems/win32/miktex/tm/packages/fontsetup.tar.lzma
2021/08/05 | 379528 | systems/win32/miktex/tm/packages/fontsize__doc.tar.lzma
2021/08/05 | 15380 | systems/win32/miktex/tm/packages/fontsize__source.tar.lzma
2021/08/05 | 5188 | systems/win32/miktex/tm/packages/fontsize.tar.lzma
@@ -310982,9 +311014,9 @@
2023/09/03 | 407774 | systems/win32/miktex/tm/packages/hebrew-fonts__doc.tar.lzma
2023/08/22 | 14087 | systems/win32/miktex/tm/packages/hebrew-fonts__source.tar.lzma
2023/08/22 | 6152 | systems/win32/miktex/tm/packages/hebrew-fonts.tar.lzma
-2021/09/13 | 888455 | systems/win32/miktex/tm/packages/hecthese__doc.tar.lzma
-2021/09/13 | 31139 | systems/win32/miktex/tm/packages/hecthese__source.tar.lzma
-2021/09/13 | 4174 | systems/win32/miktex/tm/packages/hecthese.tar.lzma
+2023/10/26 | 886616 | systems/win32/miktex/tm/packages/hecthese__doc.tar.lzma
+2023/10/26 | 28600 | systems/win32/miktex/tm/packages/hecthese__source.tar.lzma
+2023/10/26 | 3972 | systems/win32/miktex/tm/packages/hecthese.tar.lzma
2014/12/22 | 749378 | systems/win32/miktex/tm/packages/he-le-na.tar.lzma
2020/05/20 | 99111 | systems/win32/miktex/tm/packages/helmholtz-ellis-ji-notation.tar.lzma
2006/09/28 | 745459 | systems/win32/miktex/tm/packages/helvetic.cab
@@ -311026,9 +311058,9 @@
2023/07/17 | 19166 | systems/win32/miktex/tm/packages/hep-title__source.tar.lzma
2023/07/17 | 3623 | systems/win32/miktex/tm/packages/hep-title.tar.lzma
2020/04/15 | 102068 | systems/win32/miktex/tm/packages/hepunits.tar.lzma
-2022/12/12 | 417494 | systems/win32/miktex/tm/packages/hereapplies__doc.tar.lzma
-2022/12/12 | 7494 | systems/win32/miktex/tm/packages/hereapplies__source.tar.lzma
-2022/12/12 | 5512 | systems/win32/miktex/tm/packages/hereapplies.tar.lzma
+2023/10/26 | 419563 | systems/win32/miktex/tm/packages/hereapplies__doc.tar.lzma
+2023/10/26 | 7499 | systems/win32/miktex/tm/packages/hereapplies__source.tar.lzma
+2023/10/26 | 5523 | systems/win32/miktex/tm/packages/hereapplies.tar.lzma
2009/11/27 | 1153 | systems/win32/miktex/tm/packages/here.tar.lzma
2022/11/01 | 272445 | systems/win32/miktex/tm/packages/hershey-mp__doc.tar.lzma
2022/11/01 | 2444 | systems/win32/miktex/tm/packages/hershey-mp__source.tar.lzma
@@ -311082,9 +311114,9 @@
2021/11/20 | 577324 | systems/win32/miktex/tm/packages/hologo__doc.tar.lzma
2021/11/20 | 20086 | systems/win32/miktex/tm/packages/hologo__source.tar.lzma
2021/11/20 | 10139 | systems/win32/miktex/tm/packages/hologo.tar.lzma
-2023/10/06 | 346605 | systems/win32/miktex/tm/packages/homework__doc.tar.lzma
+2023/10/26 | 346689 | systems/win32/miktex/tm/packages/homework__doc.tar.lzma
2023/10/03 | 6917 | systems/win32/miktex/tm/packages/homework__source.tar.lzma
-2023/10/06 | 3777 | systems/win32/miktex/tm/packages/homework.tar.lzma
+2023/10/26 | 3786 | systems/win32/miktex/tm/packages/homework.tar.lzma
2023/01/08 | 320226 | systems/win32/miktex/tm/packages/hopatch__doc.tar.lzma
2023/01/08 | 6475 | systems/win32/miktex/tm/packages/hopatch__source.tar.lzma
2023/01/08 | 2420 | systems/win32/miktex/tm/packages/hopatch.tar.lzma
@@ -311117,13 +311149,13 @@
2023/09/03 | 1125438 | systems/win32/miktex/tm/packages/hvextern__doc.tar.lzma
2023/09/03 | 15328 | systems/win32/miktex/tm/packages/hvextern__source.tar.lzma
2023/09/03 | 8188 | systems/win32/miktex/tm/packages/hvextern.tar.lzma
-2023/05/18 | 7735016 | systems/win32/miktex/tm/packages/hvfloat__doc.tar.lzma
-2023/05/18 | 1844425 | systems/win32/miktex/tm/packages/hvfloat__source.tar.lzma
-2023/05/18 | 13604 | systems/win32/miktex/tm/packages/hvfloat.tar.lzma
+2023/10/26 | 23310831 | systems/win32/miktex/tm/packages/hvfloat__doc.tar.lzma
+2023/10/26 | 1844714 | systems/win32/miktex/tm/packages/hvfloat__source.tar.lzma
+2023/10/26 | 14186 | systems/win32/miktex/tm/packages/hvfloat.tar.lzma
2017/12/14 | 78242 | systems/win32/miktex/tm/packages/hvindex.tar.lzma
-2022/05/15 | 85728 | systems/win32/miktex/tm/packages/hvlogos__doc.tar.lzma
-2022/05/15 | 2695 | systems/win32/miktex/tm/packages/hvlogos__source.tar.lzma
-2022/05/15 | 3070 | systems/win32/miktex/tm/packages/hvlogos.tar.lzma
+2023/10/26 | 85821 | systems/win32/miktex/tm/packages/hvlogos__doc.tar.lzma
+2023/10/26 | 2701 | systems/win32/miktex/tm/packages/hvlogos__source.tar.lzma
+2023/10/26 | 3059 | systems/win32/miktex/tm/packages/hvlogos.tar.lzma
2016/07/19 | 9825 | systems/win32/miktex/tm/packages/hvmath.tar.lzma
2022/03/07 | 21838 | systems/win32/miktex/tm/packages/hvpygmentex__doc.tar.lzma
2022/03/07 | 1595 | systems/win32/miktex/tm/packages/hvpygmentex__source.tar.lzma
@@ -311141,9 +311173,9 @@
2019/08/02 | 853172 | systems/win32/miktex/tm/packages/hypdvips.tar.lzma
2018/07/06 | 450979 | systems/win32/miktex/tm/packages/hyperbar.tar.lzma
2020/01/03 | 188886 | systems/win32/miktex/tm/packages/hypernat.tar.lzma
-2023/07/17 | 3672931 | systems/win32/miktex/tm/packages/hyperref__doc.tar.lzma
-2023/07/17 | 415631 | systems/win32/miktex/tm/packages/hyperref__source.tar.lzma
-2023/07/17 | 90984 | systems/win32/miktex/tm/packages/hyperref.tar.lzma
+2023/10/26 | 3307087 | systems/win32/miktex/tm/packages/hyperref__doc.tar.lzma
+2023/10/26 | 415937 | systems/win32/miktex/tm/packages/hyperref__source.tar.lzma
+2023/10/26 | 91017 | systems/win32/miktex/tm/packages/hyperref.tar.lzma
2016/07/16 | 326320 | systems/win32/miktex/tm/packages/hyper.tar.lzma
2023/09/22 | 1149128 | systems/win32/miktex/tm/packages/hyperxmp__doc.tar.lzma
2023/09/22 | 158099 | systems/win32/miktex/tm/packages/hyperxmp__source.tar.lzma
@@ -311221,9 +311253,9 @@
2023/09/22 | 1571492 | systems/win32/miktex/tm/packages/inconsolata-nerd-font.tar.lzma
2019/06/24 | 478244 | systems/win32/miktex/tm/packages/inconsolata.tar.lzma
2004/04/10 | 184997 | systems/win32/miktex/tm/packages/index.cab
-2023/10/11 | 564503 | systems/win32/miktex/tm/packages/indextools__doc.tar.lzma
-2023/10/11 | 22457 | systems/win32/miktex/tm/packages/indextools__source.tar.lzma
-2023/10/11 | 4831 | systems/win32/miktex/tm/packages/indextools.tar.lzma
+2023/10/26 | 564388 | systems/win32/miktex/tm/packages/indextools__doc.tar.lzma
+2023/10/26 | 22499 | systems/win32/miktex/tm/packages/indextools__source.tar.lzma
+2023/10/26 | 4845 | systems/win32/miktex/tm/packages/indextools.tar.lzma
2006/12/10 | 7740794 | systems/win32/miktex/tm/packages/indic-type1.tar.bz2
2008/10/14 | 23308 | systems/win32/miktex/tm/packages/indxcite.tar.lzma
2019/12/05 | 293465 | systems/win32/miktex/tm/packages/infwarerr.tar.lzma
@@ -311279,6 +311311,9 @@
2010/03/08 | 205097 | systems/win32/miktex/tm/packages/isonums.tar.lzma
2017/10/10 | 62974 | systems/win32/miktex/tm/packages/isopt.tar.lzma
2016/07/15 | 137577 | systems/win32/miktex/tm/packages/isorot.tar.lzma
+2023/10/26 | 126789 | systems/win32/miktex/tm/packages/isosafety__doc.tar.lzma
+2023/10/26 | 2516 | systems/win32/miktex/tm/packages/isosafety__source.tar.lzma
+2023/10/26 | 2916835 | systems/win32/miktex/tm/packages/isosafety.tar.lzma
2011/08/28 | 7897 | systems/win32/miktex/tm/packages/isotope.tar.lzma
2023/09/22 | 81015 | systems/win32/miktex/tm/packages/isphysicalmath__doc.tar.lzma
2023/09/22 | 5479 | systems/win32/miktex/tm/packages/isphysicalmath__source.tar.lzma
@@ -311346,9 +311381,9 @@
2022/12/20 | 85971 | systems/win32/miktex/tm/packages/jourcl__doc.tar.lzma
2022/12/20 | 33602 | systems/win32/miktex/tm/packages/jourcl__source.tar.lzma
2022/12/20 | 3198 | systems/win32/miktex/tm/packages/jourcl.tar.lzma
-2023/06/16 | 87057 | systems/win32/miktex/tm/packages/jourrr__doc.tar.lzma
-2023/06/16 | 16316 | systems/win32/miktex/tm/packages/jourrr__source.tar.lzma
-2023/06/16 | 2852 | systems/win32/miktex/tm/packages/jourrr.tar.lzma
+2023/10/26 | 88957 | systems/win32/miktex/tm/packages/jourrr__doc.tar.lzma
+2023/10/26 | 16493 | systems/win32/miktex/tm/packages/jourrr__source.tar.lzma
+2023/10/26 | 2943 | systems/win32/miktex/tm/packages/jourrr.tar.lzma
2019/01/30 | 3958562 | systems/win32/miktex/tm/packages/joy-of-tex.tar.lzma
2009/01/31 | 6970 | systems/win32/miktex/tm/packages/jphysiol.tar.lzma
2022/07/25 | 155339 | systems/win32/miktex/tm/packages/jpneduenumerate__doc.tar.lzma
@@ -311372,9 +311407,9 @@
2006/03/13 | 163867 | systems/win32/miktex/tm/packages/jurarsp.cab
2016/07/16 | 236252 | systems/win32/miktex/tm/packages/jura.tar.lzma
2011/11/22 | 205736 | systems/win32/miktex/tm/packages/jvlisting.tar.lzma
-2023/09/29 | 183440 | systems/win32/miktex/tm/packages/jwjournal__doc.tar.lzma
+2023/10/26 | 193908 | systems/win32/miktex/tm/packages/jwjournal__doc.tar.lzma
2023/01/06 | 2759 | systems/win32/miktex/tm/packages/jwjournal__source.tar.lzma
-2023/10/03 | 3853 | systems/win32/miktex/tm/packages/jwjournal.tar.lzma
+2023/10/26 | 4120 | systems/win32/miktex/tm/packages/jwjournal.tar.lzma
2018/09/25 | 385239 | systems/win32/miktex/tm/packages/kalendarium.tar.lzma
2008/06/10 | 3111 | systems/win32/miktex/tm/packages/kalender.tar.lzma
2018/06/23 | 372025 | systems/win32/miktex/tm/packages/kanaparser.tar.lzma
@@ -311474,9 +311509,9 @@
2013/08/19 | 270728 | systems/win32/miktex/tm/packages/l2tabu-french.tar.lzma
2012/02/01 | 258354 | systems/win32/miktex/tm/packages/l2tabu-italian.tar.lzma
2016/02/07 | 246670 | systems/win32/miktex/tm/packages/l2tabu.tar.lzma
-2023/10/11 | 891227 | systems/win32/miktex/tm/packages/l3backend__doc.tar.lzma
-2023/10/11 | 34428 | systems/win32/miktex/tm/packages/l3backend__source.tar.lzma
-2023/10/11 | 16458 | systems/win32/miktex/tm/packages/l3backend.tar.lzma
+2023/10/26 | 891330 | systems/win32/miktex/tm/packages/l3backend__doc.tar.lzma
+2023/10/26 | 34419 | systems/win32/miktex/tm/packages/l3backend__source.tar.lzma
+2023/10/26 | 16457 | systems/win32/miktex/tm/packages/l3backend.tar.lzma
2023/09/22 | 737965 | systems/win32/miktex/tm/packages/l3build__doc.tar.lzma
2023/09/22 | 32022 | systems/win32/miktex/tm/packages/l3build__source.tar.lzma
2023/09/22 | 36784 | systems/win32/miktex/tm/packages/l3build.tar.lzma
@@ -311484,9 +311519,9 @@
2023/10/11 | 3499716 | systems/win32/miktex/tm/packages/l3experimental__doc.tar.lzma
2023/10/11 | 80889 | systems/win32/miktex/tm/packages/l3experimental__source.tar.lzma
2023/10/11 | 23969 | systems/win32/miktex/tm/packages/l3experimental.tar.lzma
-2023/10/11 | 12031600 | systems/win32/miktex/tm/packages/l3kernel__doc.tar.lzma
-2023/10/11 | 602890 | systems/win32/miktex/tm/packages/l3kernel__source.tar.lzma
-2023/10/11 | 174964 | systems/win32/miktex/tm/packages/l3kernel.tar.lzma
+2023/10/26 | 12114457 | systems/win32/miktex/tm/packages/l3kernel__doc.tar.lzma
+2023/10/26 | 609014 | systems/win32/miktex/tm/packages/l3kernel__source.tar.lzma
+2023/10/26 | 177225 | systems/win32/miktex/tm/packages/l3kernel.tar.lzma
2023/10/11 | 1835393 | systems/win32/miktex/tm/packages/l3packages__doc.tar.lzma
2023/10/11 | 46865 | systems/win32/miktex/tm/packages/l3packages__source.tar.lzma
2023/10/11 | 22389 | systems/win32/miktex/tm/packages/l3packages.tar.lzma
@@ -311517,9 +311552,9 @@
2023/02/23 | 56149 | systems/win32/miktex/tm/packages/langsci.tar.lzma
2011/09/03 | 2544277 | systems/win32/miktex/tm/packages/lapdf.tar.lzma
2014/06/30 | 259313 | systems/win32/miktex/tm/packages/lastpackage.tar.lzma
-2023/10/07 | 562705 | systems/win32/miktex/tm/packages/lastpage__doc.tar.lzma
-2023/10/07 | 22705 | systems/win32/miktex/tm/packages/lastpage__source.tar.lzma
-2023/10/07 | 4701 | systems/win32/miktex/tm/packages/lastpage.tar.lzma
+2023/10/26 | 564183 | systems/win32/miktex/tm/packages/lastpage__doc.tar.lzma
+2023/10/26 | 22808 | systems/win32/miktex/tm/packages/lastpage__source.tar.lzma
+2023/10/26 | 4728 | systems/win32/miktex/tm/packages/lastpage.tar.lzma
2022/09/07 | 573333 | systems/win32/miktex/tm/packages/latex2e-help-texinfo-fr__source.tar.lzma
2022/09/07 | 1874130 | systems/win32/miktex/tm/packages/latex2e-help-texinfo-fr.tar.lzma
2023/01/17 | 2563534 | systems/win32/miktex/tm/packages/latex2e-help-texinfo__source.tar.lzma
@@ -311596,7 +311631,7 @@
2023/06/16 | 43764 | systems/win32/miktex/tm/packages/latex-tools.tar.lzma
2019/01/19 | 6799 | systems/win32/miktex/tm/packages/latex-uni8.tar.lzma
2020/05/23 | 522678 | systems/win32/miktex/tm/packages/latex-veryshortguide.tar.lzma
-2023/05/10 | 2348206 | systems/win32/miktex/tm/packages/latex-via-exemplos.tar.lzma
+2023/10/26 | 2396624 | systems/win32/miktex/tm/packages/latex-via-exemplos.tar.lzma
2020/01/22 | 5300 | systems/win32/miktex/tm/packages/latino-sine-flexione.tar.lzma
2019/07/05 | 13567431 | systems/win32/miktex/tm/packages/lato.tar.lzma
2011/04/20 | 137578 | systems/win32/miktex/tm/packages/layaureo.tar.lzma
@@ -311764,9 +311799,9 @@
2010/08/09 | 6112 | systems/win32/miktex/tm/packages/logreq.tar.lzma
2016/05/25 | 390962 | systems/win32/miktex/tm/packages/lollipop.tar.lzma
2004/07/24 | 1519 | systems/win32/miktex/tm/packages/longdiv.cab
-2021/07/18 | 140709 | systems/win32/miktex/tm/packages/longdivision__doc.tar.lzma
-2021/07/18 | 4386 | systems/win32/miktex/tm/packages/longdivision__source.tar.lzma
-2021/07/18 | 10709 | systems/win32/miktex/tm/packages/longdivision.tar.lzma
+2023/10/26 | 143937 | systems/win32/miktex/tm/packages/longdivision__doc.tar.lzma
+2023/10/26 | 4374 | systems/win32/miktex/tm/packages/longdivision__source.tar.lzma
+2023/10/26 | 10919 | systems/win32/miktex/tm/packages/longdivision.tar.lzma
2015/12/08 | 355879 | systems/win32/miktex/tm/packages/longfbox.tar.lzma
2014/06/23 | 459000 | systems/win32/miktex/tm/packages/longfigure.tar.lzma
2012/10/04 | 314074 | systems/win32/miktex/tm/packages/longnamefilelist.tar.lzma
@@ -312445,9 +312480,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2022/07/26 | 39695 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2023/10/12 | 45956 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2023/10/14 | 335559 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2023/10/14 | 1956398 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2023/10/14 | 1689072 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2023/10/26 | 335737 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2023/10/26 | 1956849 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2023/10/26 | 1690161 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/07/26 | 13519 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2023/10/12 | 14586 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -312464,22 +312499,22 @@
2014/01/06 | 486298 | systems/win32/miktex/tm/packages/minifp.tar.lzma
2023/09/27 | 7928 | systems/win32/miktex/tm/packages/minimalist__doc.tar.lzma
2022/09/07 | 7956 | systems/win32/miktex/tm/packages/minimalist__source.tar.lzma
-2023/10/06 | 12918 | systems/win32/miktex/tm/packages/minimalist.tar.lzma
-2023/03/17 | 297516 | systems/win32/miktex/tm/packages/minim__doc.tar.lzma
+2023/10/26 | 12913 | systems/win32/miktex/tm/packages/minimalist.tar.lzma
+2023/10/26 | 314242 | systems/win32/miktex/tm/packages/minim__doc.tar.lzma
2022/03/07 | 24845 | systems/win32/miktex/tm/packages/minim-hatching__doc.tar.lzma
2022/03/07 | 2370 | systems/win32/miktex/tm/packages/minim-hatching__source.tar.lzma
2022/03/07 | 2431 | systems/win32/miktex/tm/packages/minim-hatching.tar.lzma
-2022/03/07 | 93023 | systems/win32/miktex/tm/packages/minim-math__doc.tar.lzma
-2022/03/07 | 5267 | systems/win32/miktex/tm/packages/minim-math__source.tar.lzma
-2022/03/07 | 33402 | systems/win32/miktex/tm/packages/minim-math.tar.lzma
-2021/06/10 | 71919 | systems/win32/miktex/tm/packages/minim-mp__doc.tar.lzma
-2021/06/10 | 6204 | systems/win32/miktex/tm/packages/minim-mp__source.tar.lzma
-2021/06/10 | 13879 | systems/win32/miktex/tm/packages/minim-mp.tar.lzma
-2021/06/10 | 97148 | systems/win32/miktex/tm/packages/minim-pdf__doc.tar.lzma
-2021/06/10 | 8044 | systems/win32/miktex/tm/packages/minim-pdf__source.tar.lzma
-2021/06/10 | 14504 | systems/win32/miktex/tm/packages/minim-pdf.tar.lzma
-2023/03/17 | 6146 | systems/win32/miktex/tm/packages/minim__source.tar.lzma
-2023/03/17 | 25341 | systems/win32/miktex/tm/packages/minim.tar.lzma
+2023/10/26 | 95327 | systems/win32/miktex/tm/packages/minim-math__doc.tar.lzma
+2023/10/26 | 5565 | systems/win32/miktex/tm/packages/minim-math__source.tar.lzma
+2023/10/26 | 34275 | systems/win32/miktex/tm/packages/minim-math.tar.lzma
+2023/10/26 | 99235 | systems/win32/miktex/tm/packages/minim-mp__doc.tar.lzma
+2023/10/26 | 8234 | systems/win32/miktex/tm/packages/minim-mp__source.tar.lzma
+2023/10/26 | 17869 | systems/win32/miktex/tm/packages/minim-mp.tar.lzma
+2023/10/26 | 106075 | systems/win32/miktex/tm/packages/minim-pdf__doc.tar.lzma
+2023/10/26 | 8817 | systems/win32/miktex/tm/packages/minim-pdf__source.tar.lzma
+2023/10/26 | 15752 | systems/win32/miktex/tm/packages/minim-pdf.tar.lzma
+2023/10/26 | 6152 | systems/win32/miktex/tm/packages/minim__source.tar.lzma
+2023/10/26 | 25428 | systems/win32/miktex/tm/packages/minim.tar.lzma
2021/06/11 | 48989 | systems/win32/miktex/tm/packages/minim-xmp__doc.tar.lzma
2021/06/11 | 3627 | systems/win32/miktex/tm/packages/minim-xmp__source.tar.lzma
2021/06/11 | 6480 | systems/win32/miktex/tm/packages/minim-xmp.tar.lzma
@@ -312696,9 +312731,9 @@
2021/07/12 | 136966 | systems/win32/miktex/tm/packages/newcastle-bst__doc.tar.lzma
2021/07/12 | 4557 | systems/win32/miktex/tm/packages/newcastle-bst__source.tar.lzma
2021/07/12 | 6753 | systems/win32/miktex/tm/packages/newcastle-bst.tar.lzma
-2023/07/04 | 1635894 | systems/win32/miktex/tm/packages/newcomputermodern__doc.tar.lzma
-2023/07/04 | 12879215 | systems/win32/miktex/tm/packages/newcomputermodern__source.tar.lzma
-2023/07/04 | 5771156 | systems/win32/miktex/tm/packages/newcomputermodern.tar.lzma
+2023/10/26 | 1636143 | systems/win32/miktex/tm/packages/newcomputermodern__doc.tar.lzma
+2023/10/26 | 12765157 | systems/win32/miktex/tm/packages/newcomputermodern__source.tar.lzma
+2023/10/26 | 5722719 | systems/win32/miktex/tm/packages/newcomputermodern.tar.lzma
2013/03/11 | 4261 | systems/win32/miktex/tm/packages/newenviron.tar.lzma
2009/09/11 | 159025 | systems/win32/miktex/tm/packages/newfile.tar.lzma
2023/10/03 | 119100 | systems/win32/miktex/tm/packages/newfloat__doc.tar.lzma
@@ -312708,9 +312743,9 @@
2023/09/22 | 63755 | systems/win32/miktex/tm/packages/newpax__doc.tar.lzma
2023/09/22 | 17610 | systems/win32/miktex/tm/packages/newpax__source.tar.lzma
2023/09/22 | 9510 | systems/win32/miktex/tm/packages/newpax.tar.lzma
-2023/09/29 | 439260 | systems/win32/miktex/tm/packages/newpx__doc.tar.lzma
-2023/09/29 | 20296 | systems/win32/miktex/tm/packages/newpx__source.tar.lzma
-2023/09/29 | 4794517 | systems/win32/miktex/tm/packages/newpx.tar.lzma
+2023/10/26 | 449029 | systems/win32/miktex/tm/packages/newpx__doc.tar.lzma
+2023/10/26 | 20951 | systems/win32/miktex/tm/packages/newpx__source.tar.lzma
+2023/10/26 | 4772894 | systems/win32/miktex/tm/packages/newpx.tar.lzma
2005/06/25 | 43902 | systems/win32/miktex/tm/packages/newsletr.cab
2007/12/30 | 204631 | systems/win32/miktex/tm/packages/newspaper.tar.lzma
2023/09/03 | 1022630 | systems/win32/miktex/tm/packages/newtx__doc.tar.lzma
@@ -312725,102 +312760,102 @@
2022/11/01 | 230073 | systems/win32/miktex/tm/packages/newverbs__doc.tar.lzma
2022/11/01 | 7969 | systems/win32/miktex/tm/packages/newverbs__source.tar.lzma
2022/11/01 | 3030 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2023/10/14 | 769452 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2023/10/14 | 36738 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2023/10/14 | 1171793 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2023/10/14 | 32094 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2023/10/14 | 36819 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2023/10/14 | 67419 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2023/10/14 | 103637 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2023/10/14 | 78345 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2023/10/14 | 31573 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2023/10/14 | 395297 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2023/10/14 | 40384 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2023/10/14 | 59185 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2023/10/14 | 272330 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2023/10/14 | 221538 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2023/10/14 | 106596 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2023/10/14 | 25630 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2023/10/14 | 472981 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2023/10/14 | 54224 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2023/10/14 | 330093 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2023/10/14 | 47316 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2023/10/14 | 137810 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2023/10/14 | 1440921 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2023/10/14 | 104439 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2023/10/14 | 49721 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2023/10/14 | 29117 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2023/10/14 | 77318 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2023/10/14 | 159886 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2023/10/14 | 81640 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2023/10/14 | 82149 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2023/10/14 | 305460 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2023/10/14 | 25609 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2023/10/14 | 105752 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2023/10/14 | 73383 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2023/10/14 | 117732 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2023/10/14 | 44378 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2023/10/14 | 699126 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2023/10/14 | 249291 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2023/10/14 | 217269 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2023/10/14 | 109939 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2023/10/14 | 19981 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2023/10/14 | 32834 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2023/10/14 | 707415 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2023/10/14 | 603392 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2023/10/14 | 530221 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2023/10/14 | 104117 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2023/10/14 | 2024890 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2023/10/14 | 81986 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2023/10/14 | 33842 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2023/10/14 | 8882 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2023/10/14 | 231717 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2023/10/14 | 287556 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2023/10/14 | 108564 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2023/10/14 | 141913 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2023/10/14 | 291162 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2023/10/14 | 182818 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2023/10/14 | 55991 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2023/10/14 | 35347 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2023/10/14 | 44096 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2023/10/14 | 48281 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2023/10/14 | 52698 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2023/10/14 | 218625 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2023/10/14 | 43103 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2023/10/14 | 830546 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2023/10/14 | 203218 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2023/10/14 | 245917 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2023/10/14 | 88654 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2023/10/14 | 1341569 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2023/10/14 | 24164 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2023/10/14 | 37634 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2023/10/14 | 75150 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2023/10/14 | 61044 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2023/10/14 | 499547 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2023/10/14 | 1531381 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2023/10/14 | 54787 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2023/10/14 | 65118 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2023/10/14 | 27134 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2023/10/14 | 19973 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2023/10/14 | 73412 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2023/10/14 | 174067 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2023/10/14 | 69753 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2023/10/14 | 112427 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2023/10/14 | 2844810 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2023/10/14 | 64624 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2023/10/14 | 44093 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2023/10/14 | 33866 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2023/10/14 | 76199 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2023/10/14 | 351843 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2023/10/14 | 58931 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2023/10/14 | 606520 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2023/10/14 | 45898 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2023/10/14 | 335544 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2023/10/14 | 1958620 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2023/10/14 | 1689616 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2023/10/14 | 14592 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2023/10/26 | 770747 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2023/10/26 | 36757 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2023/10/26 | 1171957 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2023/10/26 | 32059 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2023/10/26 | 36785 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2023/10/26 | 67418 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2023/10/26 | 103568 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2023/10/26 | 78356 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2023/10/26 | 31569 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2023/10/26 | 395414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2023/10/26 | 40380 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2023/10/26 | 59294 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2023/10/26 | 272537 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2023/10/26 | 221543 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2023/10/26 | 106761 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2023/10/26 | 25643 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2023/10/26 | 473173 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2023/10/26 | 54147 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2023/10/26 | 329601 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2023/10/26 | 47356 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2023/10/26 | 137780 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2023/10/26 | 1439290 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2023/10/26 | 104401 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2023/10/26 | 49750 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2023/10/26 | 29147 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2023/10/26 | 77259 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2023/10/26 | 159906 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2023/10/26 | 81615 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2023/10/26 | 82174 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2023/10/26 | 305307 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2023/10/26 | 25616 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2023/10/26 | 105863 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2023/10/26 | 73368 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2023/10/26 | 117776 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2023/10/26 | 44353 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2023/10/26 | 699884 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2023/10/26 | 249313 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2023/10/26 | 217404 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2023/10/26 | 109988 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2023/10/26 | 19978 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2023/10/26 | 32908 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2023/10/26 | 707322 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2023/10/26 | 603434 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2023/10/26 | 530343 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2023/10/26 | 104111 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2023/10/26 | 2013063 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2023/10/26 | 82036 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2023/10/26 | 33844 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2023/10/26 | 8880 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2023/10/26 | 232149 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2023/10/26 | 287536 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2023/10/26 | 108364 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2023/10/26 | 142048 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2023/10/26 | 291515 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2023/10/26 | 182692 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2023/10/26 | 55944 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2023/10/26 | 35354 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2023/10/26 | 44100 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2023/10/26 | 48287 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2023/10/26 | 52585 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2023/10/26 | 219047 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2023/10/26 | 43113 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2023/10/26 | 831276 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2023/10/26 | 203464 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2023/10/26 | 245900 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2023/10/26 | 88623 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2023/10/26 | 1340838 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2023/10/26 | 24138 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2023/10/26 | 37619 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2023/10/26 | 75152 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2023/10/26 | 61073 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2023/10/26 | 499405 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2023/10/26 | 1531013 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2023/10/26 | 54775 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2023/10/26 | 65118 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2023/10/26 | 27108 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2023/10/26 | 19953 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2023/10/26 | 73379 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2023/10/26 | 174145 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2023/10/26 | 69655 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2023/10/26 | 112515 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2023/10/26 | 2844364 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2023/10/26 | 64526 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2023/10/26 | 44105 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2023/10/26 | 33893 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2023/10/26 | 76113 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2023/10/26 | 351879 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2023/10/26 | 58925 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2023/10/26 | 606688 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2023/10/26 | 45951 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2023/10/26 | 335749 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2023/10/26 | 1959958 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2023/10/26 | 1691108 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2023/10/26 | 14594 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2023/10/14 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
+2023/10/26 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2023/02/23 | 608421 | systems/win32/miktex/tm/packages/nicefilelist__doc.tar.lzma
@@ -312830,9 +312865,9 @@
2022/06/26 | 7330 | systems/win32/miktex/tm/packages/niceframe__source.tar.lzma
2022/06/26 | 37551 | systems/win32/miktex/tm/packages/niceframe.tar.lzma
2017/06/22 | 276883 | systems/win32/miktex/tm/packages/niceframe-type1.tar.lzma
-2023/09/29 | 2059835 | systems/win32/miktex/tm/packages/nicematrix__doc.tar.lzma
-2023/09/29 | 168889 | systems/win32/miktex/tm/packages/nicematrix__source.tar.lzma
-2023/09/29 | 41155 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma
+2023/10/26 | 2079493 | systems/win32/miktex/tm/packages/nicematrix__doc.tar.lzma
+2023/10/26 | 171092 | systems/win32/miktex/tm/packages/nicematrix__source.tar.lzma
+2023/10/26 | 41775 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma
2015/11/25 | 2555178 | systems/win32/miktex/tm/packages/nicetext.tar.lzma
2018/07/30 | 243633 | systems/win32/miktex/tm/packages/nidanfloat.tar.lzma
2016/01/26 | 74424 | systems/win32/miktex/tm/packages/nihbiosketch.tar.lzma
@@ -313020,9 +313055,9 @@
2022/03/29 | 316391 | systems/win32/miktex/tm/packages/oup-authoring-template__doc.tar.lzma
2022/03/29 | 8105 | systems/win32/miktex/tm/packages/oup-authoring-template__source.tar.lzma
2022/03/29 | 17686 | systems/win32/miktex/tm/packages/oup-authoring-template.tar.lzma
-2023/06/16 | 415961 | systems/win32/miktex/tm/packages/outilsgeomtikz__doc.tar.lzma
-2023/06/16 | 7475 | systems/win32/miktex/tm/packages/outilsgeomtikz__source.tar.lzma
-2023/06/16 | 6016 | systems/win32/miktex/tm/packages/outilsgeomtikz.tar.lzma
+2023/10/26 | 493425 | systems/win32/miktex/tm/packages/outilsgeomtikz__doc.tar.lzma
+2023/10/26 | 8032 | systems/win32/miktex/tm/packages/outilsgeomtikz__source.tar.lzma
+2023/10/26 | 6768 | systems/win32/miktex/tm/packages/outilsgeomtikz.tar.lzma
2016/07/20 | 4520 | systems/win32/miktex/tm/packages/outliner.tar.lzma
2012/01/25 | 132912 | systems/win32/miktex/tm/packages/outlines.tar.lzma
2010/06/04 | 236717 | systems/win32/miktex/tm/packages/outline.tar.lzma
@@ -313164,10 +313199,10 @@
2022/12/20 | 324272 | systems/win32/miktex/tm/packages/pdfpages__doc.tar.lzma
2022/12/20 | 35763 | systems/win32/miktex/tm/packages/pdfpages__source.tar.lzma
2022/12/20 | 14280 | systems/win32/miktex/tm/packages/pdfpages.tar.lzma
-2022/07/14 | 185886 | systems/win32/miktex/tm/packages/pdfpc__doc.tar.lzma
+2023/10/26 | 205913 | systems/win32/miktex/tm/packages/pdfpc__doc.tar.lzma
2018/07/22 | 82751 | systems/win32/miktex/tm/packages/pdfpc-movie.tar.lzma
-2022/07/14 | 2903 | systems/win32/miktex/tm/packages/pdfpc__source.tar.lzma
-2022/07/14 | 2510 | systems/win32/miktex/tm/packages/pdfpc.tar.lzma
+2023/10/26 | 3239 | systems/win32/miktex/tm/packages/pdfpc__source.tar.lzma
+2023/10/26 | 2636 | systems/win32/miktex/tm/packages/pdfpc.tar.lzma
2017/12/04 | 270667 | systems/win32/miktex/tm/packages/pdfprivacy.tar.lzma
2019/02/23 | 585467 | systems/win32/miktex/tm/packages/pdfreview.tar.lzma
2016/07/16 | 446208 | systems/win32/miktex/tm/packages/pdfscreen.tar.lzma
@@ -313433,7 +313468,7 @@
2023/03/17 | 425296 | systems/win32/miktex/tm/packages/principia__doc.tar.lzma
2023/03/17 | 16206 | systems/win32/miktex/tm/packages/principia__source.tar.lzma
2023/03/17 | 8606 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2023/10/14 | 938 | systems/win32/miktex/tm/packages/pr.ini
+2023/10/26 | 951 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -313442,18 +313477,18 @@
2022/05/15 | 2785 | systems/win32/miktex/tm/packages/prociagssymp.tar.lzma
2011/04/08 | 38187 | systems/win32/miktex/tm/packages/prodint.tar.lzma
2011/01/07 | 399299 | systems/win32/miktex/tm/packages/productbox.tar.lzma
-2023/10/10 | 8883804 | systems/win32/miktex/tm/packages/profcollege__doc.tar.lzma
-2023/10/10 | 5858942 | systems/win32/miktex/tm/packages/profcollege__source.tar.lzma
-2023/10/10 | 1390824 | systems/win32/miktex/tm/packages/profcollege.tar.lzma
+2023/10/26 | 9069771 | systems/win32/miktex/tm/packages/profcollege__doc.tar.lzma
+2023/10/26 | 5850699 | systems/win32/miktex/tm/packages/profcollege__source.tar.lzma
+2023/10/26 | 1392617 | systems/win32/miktex/tm/packages/profcollege.tar.lzma
2022/05/04 | 129701 | systems/win32/miktex/tm/packages/proflabo__doc.tar.lzma
2022/05/04 | 5591 | systems/win32/miktex/tm/packages/proflabo__source.tar.lzma
2022/05/04 | 3000 | systems/win32/miktex/tm/packages/proflabo.tar.lzma
-2023/10/10 | 1214261 | systems/win32/miktex/tm/packages/proflycee__doc.tar.lzma
-2023/10/10 | 206183 | systems/win32/miktex/tm/packages/proflycee__source.tar.lzma
-2023/10/10 | 41088 | systems/win32/miktex/tm/packages/proflycee.tar.lzma
-2023/09/10 | 169777 | systems/win32/miktex/tm/packages/profmaquette__doc.tar.lzma
-2023/09/10 | 9586 | systems/win32/miktex/tm/packages/profmaquette__source.tar.lzma
-2023/09/10 | 13954 | systems/win32/miktex/tm/packages/profmaquette.tar.lzma
+2023/10/26 | 1401715 | systems/win32/miktex/tm/packages/proflycee__doc.tar.lzma
+2023/10/26 | 238079 | systems/win32/miktex/tm/packages/proflycee__source.tar.lzma
+2023/10/26 | 42761 | systems/win32/miktex/tm/packages/proflycee.tar.lzma
+2023/10/26 | 195076 | systems/win32/miktex/tm/packages/profmaquette__doc.tar.lzma
+2023/10/26 | 10183 | systems/win32/miktex/tm/packages/profmaquette__source.tar.lzma
+2023/10/26 | 16696 | systems/win32/miktex/tm/packages/profmaquette.tar.lzma
2023/10/01 | 331159 | systems/win32/miktex/tm/packages/profsio__doc.tar.lzma
2023/10/01 | 14508 | systems/win32/miktex/tm/packages/profsio__source.tar.lzma
2023/10/01 | 11946 | systems/win32/miktex/tm/packages/profsio.tar.lzma
@@ -313461,9 +313496,9 @@
2017/05/12 | 61936 | systems/win32/miktex/tm/packages/program.tar.lzma
2014/05/05 | 89072 | systems/win32/miktex/tm/packages/progressbar.tar.lzma
2010/10/16 | 85014 | systems/win32/miktex/tm/packages/progress.tar.lzma
-2023/10/03 | 9093 | systems/win32/miktex/tm/packages/projlib__doc.tar.lzma
-2023/10/03 | 27025 | systems/win32/miktex/tm/packages/projlib__source.tar.lzma
-2023/10/03 | 26656 | systems/win32/miktex/tm/packages/projlib.tar.lzma
+2023/10/26 | 9099 | systems/win32/miktex/tm/packages/projlib__doc.tar.lzma
+2023/10/26 | 59675 | systems/win32/miktex/tm/packages/projlib__source.tar.lzma
+2023/10/26 | 26642 | systems/win32/miktex/tm/packages/projlib.tar.lzma
2022/08/25 | 461487 | systems/win32/miktex/tm/packages/proof-at-the-end__doc.tar.lzma
2022/08/25 | 23831 | systems/win32/miktex/tm/packages/proof-at-the-end__source.tar.lzma
2022/08/25 | 7583 | systems/win32/miktex/tm/packages/proof-at-the-end.tar.lzma
@@ -313803,9 +313838,9 @@
2020/10/11 | 92387 | systems/win32/miktex/tm/packages/realtranspose.tar.lzma
2015/05/25 | 1534683 | systems/win32/miktex/tm/packages/recipebook.tar.lzma
2006/11/14 | 67186 | systems/win32/miktex/tm/packages/recipecard.tar.bz2
-2023/07/28 | 173392 | systems/win32/miktex/tm/packages/recorder-fingering__doc.tar.lzma
-2023/07/28 | 6530 | systems/win32/miktex/tm/packages/recorder-fingering__source.tar.lzma
-2023/07/28 | 6056 | systems/win32/miktex/tm/packages/recorder-fingering.tar.lzma
+2023/10/26 | 173615 | systems/win32/miktex/tm/packages/recorder-fingering__doc.tar.lzma
+2023/10/26 | 6535 | systems/win32/miktex/tm/packages/recorder-fingering__source.tar.lzma
+2023/10/26 | 6113 | systems/win32/miktex/tm/packages/recorder-fingering.tar.lzma
2022/07/30 | 112228 | systems/win32/miktex/tm/packages/rec-thy__doc.tar.lzma
2022/07/30 | 14137 | systems/win32/miktex/tm/packages/rec-thy__source.tar.lzma
2022/07/30 | 15590 | systems/win32/miktex/tm/packages/rec-thy.tar.lzma
@@ -314148,9 +314183,9 @@
2023/01/08 | 2877 | systems/win32/miktex/tm/packages/simplebnf.tar.lzma
2013/03/01 | 939150 | systems/win32/miktex/tm/packages/simplecd.tar.lzma
2014/11/20 | 300788 | systems/win32/miktex/tm/packages/simplecv.tar.lzma
-2023/10/14 | 2204950 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma
-2023/08/19 | 19301 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma
-2023/10/14 | 3013716 | systems/win32/miktex/tm/packages/simpleicons.tar.lzma
+2023/10/26 | 2304397 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma
+2023/10/26 | 20003 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma
+2023/10/26 | 3179176 | systems/win32/miktex/tm/packages/simpleicons.tar.lzma
2017/11/03 | 228224 | systems/win32/miktex/tm/packages/simpleinvoice.tar.lzma
2023/10/03 | 137376 | systems/win32/miktex/tm/packages/simplekv__doc.tar.lzma
2023/10/03 | 6386 | systems/win32/miktex/tm/packages/simplekv__source.tar.lzma
@@ -314317,9 +314352,9 @@
2015/04/21 | 3861594 | systems/win32/miktex/tm/packages/stellenbosch.tar.lzma
2020/12/12 | 459378 | systems/win32/miktex/tm/packages/stepgreek.tar.lzma
2021/01/07 | 1340388 | systems/win32/miktex/tm/packages/step.tar.lzma
-2023/03/27 | 6220391 | systems/win32/miktex/tm/packages/stex__doc.tar.lzma
-2023/03/27 | 75530 | systems/win32/miktex/tm/packages/stex__source.tar.lzma
-2023/04/07 | 89510 | systems/win32/miktex/tm/packages/stex.tar.lzma
+2023/10/26 | 6334818 | systems/win32/miktex/tm/packages/stex__doc.tar.lzma
+2023/10/26 | 77159 | systems/win32/miktex/tm/packages/stex__source.tar.lzma
+2023/10/26 | 91057 | systems/win32/miktex/tm/packages/stex.tar.lzma
2021/10/21 | 403333 | systems/win32/miktex/tm/packages/stickstoo__doc.tar.lzma
2021/10/21 | 6319 | systems/win32/miktex/tm/packages/stickstoo__source.tar.lzma
2021/10/21 | 2503134 | systems/win32/miktex/tm/packages/stickstoo.tar.lzma
@@ -314691,9 +314726,9 @@
2014/01/24 | 77032 | systems/win32/miktex/tm/packages/tikz-opm.tar.lzma
2017/03/13 | 407405 | systems/win32/miktex/tm/packages/tikz-optics.tar.lzma
2015/03/10 | 201857 | systems/win32/miktex/tm/packages/tikzorbital.tar.lzma
-2023/10/10 | 229521 | systems/win32/miktex/tm/packages/tikz-osci__doc.tar.lzma
-2023/10/10 | 3799 | systems/win32/miktex/tm/packages/tikz-osci__source.tar.lzma
-2023/10/10 | 3082 | systems/win32/miktex/tm/packages/tikz-osci.tar.lzma
+2023/10/26 | 225946 | systems/win32/miktex/tm/packages/tikz-osci__doc.tar.lzma
+2023/10/26 | 4517 | systems/win32/miktex/tm/packages/tikz-osci__source.tar.lzma
+2023/10/26 | 4118 | systems/win32/miktex/tm/packages/tikz-osci.tar.lzma
2020/07/19 | 68338 | systems/win32/miktex/tm/packages/tikzpackets.tar.lzma
2012/09/26 | 257701 | systems/win32/miktex/tm/packages/tikzpagenodes.tar.lzma
2016/08/30 | 576860 | systems/win32/miktex/tm/packages/tikz-page.tar.lzma
@@ -314754,9 +314789,9 @@
2006/08/17 | 861587 | systems/win32/miktex/tm/packages/titlepage-uni-dortmund.tar.bz2
2017/03/15 | 126701 | systems/win32/miktex/tm/packages/titlepic.tar.lzma
2011/11/15 | 203724 | systems/win32/miktex/tm/packages/titleref.tar.lzma
-2021/07/06 | 626386 | systems/win32/miktex/tm/packages/titlesec__doc.tar.lzma
-2021/07/06 | 34168 | systems/win32/miktex/tm/packages/titlesec__source.tar.lzma
-2021/07/06 | 20223 | systems/win32/miktex/tm/packages/titlesec.tar.lzma
+2023/10/26 | 650153 | systems/win32/miktex/tm/packages/titlesec__doc.tar.lzma
+2023/10/26 | 34290 | systems/win32/miktex/tm/packages/titlesec__source.tar.lzma
+2023/10/26 | 20206 | systems/win32/miktex/tm/packages/titlesec.tar.lzma
2009/09/11 | 192166 | systems/win32/miktex/tm/packages/titling.tar.lzma
2022/07/25 | 351053 | systems/win32/miktex/tm/packages/tkz-base__doc.tar.lzma
2022/07/25 | 56034 | systems/win32/miktex/tm/packages/tkz-base__source.tar.lzma
@@ -314767,9 +314802,9 @@
2023/10/11 | 2927 | systems/win32/miktex/tm/packages/tkz-bernoulli.tar.lzma
2022/07/25 | 34549 | systems/win32/miktex/tm/packages/tkz-doc__source.tar.lzma
2022/07/25 | 7365 | systems/win32/miktex/tm/packages/tkz-doc.tar.lzma
-2023/02/05 | 1032253 | systems/win32/miktex/tm/packages/tkz-euclide__doc.tar.lzma
-2023/02/05 | 81458 | systems/win32/miktex/tm/packages/tkz-euclide__source.tar.lzma
-2023/02/05 | 42064 | systems/win32/miktex/tm/packages/tkz-euclide.tar.lzma
+2023/10/26 | 1096466 | systems/win32/miktex/tm/packages/tkz-euclide__doc.tar.lzma
+2023/10/26 | 81677 | systems/win32/miktex/tm/packages/tkz-euclide__source.tar.lzma
+2023/10/26 | 42215 | systems/win32/miktex/tm/packages/tkz-euclide.tar.lzma
2022/02/09 | 722683 | systems/win32/miktex/tm/packages/tkz-fct__doc.tar.lzma
2022/02/09 | 28126 | systems/win32/miktex/tm/packages/tkz-fct__source.tar.lzma
2022/02/09 | 4927 | systems/win32/miktex/tm/packages/tkz-fct.tar.lzma
@@ -314950,9 +314985,9 @@
2022/09/23 | 340482 | systems/win32/miktex/tm/packages/umtypewriter.tar.lzma
2019/05/24 | 4787 | systems/win32/miktex/tm/packages/unam-thesis.tar.lzma
2019/05/24 | 643280 | systems/win32/miktex/tm/packages/unamthesis.tar.lzma
-2023/06/18 | 1431000 | systems/win32/miktex/tm/packages/unbtex__doc.tar.lzma
-2023/06/18 | 6132 | systems/win32/miktex/tm/packages/unbtex__source.tar.lzma
-2023/06/18 | 6243 | systems/win32/miktex/tm/packages/unbtex.tar.lzma
+2023/10/26 | 1408043 | systems/win32/miktex/tm/packages/unbtex__doc.tar.lzma
+2023/10/26 | 6017 | systems/win32/miktex/tm/packages/unbtex__source.tar.lzma
+2023/10/26 | 17825 | systems/win32/miktex/tm/packages/unbtex.tar.lzma
2016/07/28 | 149437 | systems/win32/miktex/tm/packages/uncial.tar.lzma
2007/01/19 | 2544 | systems/win32/miktex/tm/packages/underbracket.tar.bz2
2021/01/02 | 2037946 | systems/win32/miktex/tm/packages/undergradmath.tar.lzma
@@ -315349,8 +315384,8 @@
2022/11/15 | 333299 | systems/win32/miktex/tm/packages/ydoc__doc.tar.lzma
2022/11/15 | 18205 | systems/win32/miktex/tm/packages/ydoc__source.tar.lzma
2022/11/15 | 9587 | systems/win32/miktex/tm/packages/ydoc.tar.lzma
-2023/02/05 | 33708 | systems/win32/miktex/tm/packages/yet-another-guide-latex2e__source.tar.lzma
-2023/02/05 | 883505 | systems/win32/miktex/tm/packages/yet-another-guide-latex2e.tar.lzma
+2023/10/26 | 34610 | systems/win32/miktex/tm/packages/yet-another-guide-latex2e__source.tar.lzma
+2023/10/26 | 870212 | systems/win32/miktex/tm/packages/yet-another-guide-latex2e.tar.lzma
2022/11/17 | 153273 | systems/win32/miktex/tm/packages/yfonts-otf__doc.tar.lzma
2022/11/17 | 5293 | systems/win32/miktex/tm/packages/yfonts-otf__source.tar.lzma
2022/11/17 | 56037 | systems/win32/miktex/tm/packages/yfonts-otf.tar.lzma
@@ -315672,7 +315707,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/10/26 | 186 | timestamp
+2023/10/27 | 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 cbf6430d89..c53a30ebd7 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index fcafa3d8f6..0192380894 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,91 +1,461 @@
+2023/10/26 | 99235 | systems/win32/miktex/tm/packages/minim-mp__doc.tar.lzma
+2023/10/26 | 95327 | systems/win32/miktex/tm/packages/minim-math__doc.tar.lzma
+2023/10/26 | 951 | systems/win32/miktex/tm/packages/pr.ini
+2023/10/26 | 91057 | systems/win32/miktex/tm/packages/stex.tar.lzma
+2023/10/26 | 91017 | systems/win32/miktex/tm/packages/hyperref.tar.lzma
+2023/10/26 | 9099 | systems/win32/miktex/tm/packages/projlib__doc.tar.lzma
+2023/10/26 | 9069771 | systems/win32/miktex/tm/packages/profcollege__doc.tar.lzma
+2023/10/26 | 901 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-ellipses.tex
+2023/10/26 | 9000 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-math.tex
+2023/10/26 | 8993 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-circles.tex
+2023/10/26 | 8983 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles.tex
+2023/10/26 | 891330 | systems/win32/miktex/tm/packages/l3backend__doc.tar.lzma
+2023/10/26 | 88957 | systems/win32/miktex/tm/packages/jourrr__doc.tar.lzma
+2023/10/26 | 8880 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2023/10/26 | 886616 | systems/win32/miktex/tm/packages/hecthese__doc.tar.lzma
+2023/10/26 | 88623 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2023/10/26 | 8817 | systems/win32/miktex/tm/packages/minim-pdf__source.tar.lzma
+2023/10/26 | 88146 | macros/latex/contrib/physics2/physics2.pdf
+2023/10/26 | 870212 | systems/win32/miktex/tm/packages/yet-another-guide-latex2e.tar.lzma
+2023/10/26 | 85821 | systems/win32/miktex/tm/packages/hvlogos__doc.tar.lzma
+2023/10/26 | 855221 | systems/win32/miktex/tm/packages/babel__source.tar.lzma
+2023/10/26 | 854604 | systems/texlive/tlnet/archive/babel.source.r68651.tar.xz
+2023/10/26 | 8472 | systems/win32/miktex/tm/packages/advice__doc.tar.lzma
+2023/10/26 | 8449 | systems/win32/miktex/tm/packages/customenvs__source.tar.lzma
+2023/10/26 | 8379 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-presentation.tex
+2023/10/26 | 831276 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2023/10/26 | 82674 | macros/latex/contrib/physics2/physics2-legacy.pdf
+2023/10/26 | 8234 | systems/win32/miktex/tm/packages/minim-mp__source.tar.lzma
+2023/10/26 | 82174 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2023/10/26 | 82036 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2023/10/26 | 81677 | systems/win32/miktex/tm/packages/tkz-euclide__source.tar.lzma
+2023/10/26 | 81615 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2023/10/26 | 8080 | systems/texlive/tlnet/archive/advice.doc.r68648.tar.xz
+2023/10/26 | 8032 | systems/win32/miktex/tm/packages/outilsgeomtikz__source.tar.lzma
+2023/10/26 | 78356 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2023/10/26 | 7814 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex
+2023/10/26 | 77259 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2023/10/26 | 771 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
+2023/10/26 | 77159 | systems/win32/miktex/tm/packages/stex__source.tar.lzma
+2023/10/26 | 770747 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2023/10/26 | 769453 | systems/win32/miktex/tm/packages/files.csv.lzma
+2023/10/26 | 7617 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-howtouse.tex
+2023/10/26 | 76113 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2023/10/26 | 75152 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2023/10/26 | 7510917 | fonts/newpx.zip
+2023/10/26 | 7499 | systems/win32/miktex/tm/packages/hereapplies__source.tar.lzma
+2023/10/26 | 73552 | systems/texlive/tlnet/archive/cweb.doc.r68647.tar.xz
+2023/10/26 | 73379 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2023/10/26 | 73368 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2023/10/26 | 731353 | systems/win32/miktex/tm/packages/bithesis__doc.tar.lzma
+2023/10/26 | 7309 | systems/win32/miktex/tm/packages/fontsetup.tar.lzma
+2023/10/26 | 71795 | systems/win32/miktex/tm/packages/crefthe__doc.tar.lzma
+2023/10/26 | 7152 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
+2023/10/26 | 707322 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2023/10/26 | 699884 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2023/10/26 | 6988 | systems/texlive/tlnet/archive/collection-latexextra.r68643.tar.xz
+2023/10/26 | 6988 | fonts/xcharter-math/xcharter-otf.sty
+2023/10/26 | 69655 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2023/10/26 | 6837 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points.tex
+2023/10/26 | 6774 | systems/win32/miktex/tm/packages/crefthe__source.tar.lzma
+2023/10/26 | 6768 | systems/win32/miktex/tm/packages/outilsgeomtikz.tar.lzma
+2023/10/26 | 6765 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-axesmin.tex
+2023/10/26 | 67418 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2023/10/26 | 6652 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
+2023/10/26 | 6591 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-circles-by.tex
+2023/10/26 | 6574 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles-by.tex
+2023/10/26 | 6535 | systems/win32/miktex/tm/packages/recorder-fingering__source.tar.lzma
+2023/10/26 | 6521 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points.tex
+2023/10/26 | 65118 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2023/10/26 | 650153 | systems/win32/miktex/tm/packages/titlesec__doc.tar.lzma
+2023/10/26 | 64526 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2023/10/26 | 6410 | systems/win32/miktex/tm/packages/exesheet.tar.lzma
+2023/10/26 | 6360 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-points.tex
+2023/10/26 | 63364 | systems/win32/miktex/tm/packages/acmart__source.tar.lzma
+2023/10/26 | 6334818 | systems/win32/miktex/tm/packages/stex__doc.tar.lzma
+2023/10/26 | 622526 | systems/win32/miktex/tm/packages/asmejour__doc.tar.lzma
+2023/10/26 | 6152 | systems/win32/miktex/tm/packages/minim__source.tar.lzma
+2023/10/26 | 6113 | systems/win32/miktex/tm/packages/recorder-fingering.tar.lzma
+2023/10/26 | 61073 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2023/10/26 | 609014 | systems/win32/miktex/tm/packages/l3kernel__source.tar.lzma
+2023/10/26 | 606688 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2023/10/26 | 60580 | systems/texlive/tlnet/archive/ctanbib.doc.r68650.tar.xz
+2023/10/26 | 603434 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2023/10/26 | 6017 | systems/win32/miktex/tm/packages/unbtex__source.tar.lzma
+2023/10/26 | 59678 | macros/latex/contrib/cje.zip
+2023/10/26 | 59675 | systems/win32/miktex/tm/packages/projlib__source.tar.lzma
+2023/10/26 | 59294 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2023/10/26 | 592357 | systems/win32/miktex/tm/packages/asmeconf__doc.tar.lzma
+2023/10/26 | 58925 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2023/10/26 | 5854 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-circles.tex
+2023/10/26 | 5850699 | systems/win32/miktex/tm/packages/profcollege__source.tar.lzma
+2023/10/26 | 5841 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-utilities.tex
+2023/10/26 | 5742593 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/10/26 | 5722719 | systems/win32/miktex/tm/packages/newcomputermodern.tar.lzma
+2023/10/26 | 5716 | systems/win32/miktex/tm/packages/fontsetup__source.tar.lzma
+2023/10/26 | 564388 | systems/win32/miktex/tm/packages/indextools__doc.tar.lzma
+2023/10/26 | 564183 | systems/win32/miktex/tm/packages/lastpage__doc.tar.lzma
+2023/10/26 | 561 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
+2023/10/26 | 55944 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2023/10/26 | 5565 | systems/win32/miktex/tm/packages/minim-math__source.tar.lzma
+2023/10/26 | 5523 | systems/win32/miktex/tm/packages/hereapplies.tar.lzma
+2023/10/26 | 549100 | macros/latex/contrib/tkz/tkz-elements.zip
+2023/10/26 | 548842 | systems/win32/miktex/tm/packages/fontsetup__doc.tar.lzma
+2023/10/26 | 54775 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2023/10/26 | 54147 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2023/10/26 | 5343 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-rnd.tex
+2023/10/26 | 530343 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2023/10/26 | 52585 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2023/10/26 | 5096 | systems/win32/miktex/tm/packages/advice.tar.lzma
+2023/10/26 | 50109 | macros/latex/contrib/physics2/physics2-code.dtx
+2023/10/26 | 499405 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2023/10/26 | 49750 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2023/10/26 | 493425 | systems/win32/miktex/tm/packages/outilsgeomtikz__doc.tar.lzma
+2023/10/26 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/10/26 | 4897447 | systems/win32/miktex/tm/packages/acmart__doc.tar.lzma
+2023/10/26 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/10/26 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/10/26 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/10/26 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/10/26 | 4845 | systems/win32/miktex/tm/packages/indextools.tar.lzma
+2023/10/26 | 48287 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2023/10/26 | 4772894 | systems/win32/miktex/tm/packages/newpx.tar.lzma
+2023/10/26 | 4764 | systems/texlive/tlnet/archive/advice.r68648.tar.xz
+2023/10/26 | 4740 | systems/win32/miktex/tm/packages/customenvs.tar.lzma
+2023/10/26 | 47356 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2023/10/26 | 473173 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2023/10/26 | 4728 | systems/win32/miktex/tm/packages/lastpage.tar.lzma
+2023/10/26 | 4601 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-protractor.tex
+2023/10/26 | 45951 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2023/10/26 | 4594 | systems/win32/miktex/tm/packages/crefthe.tar.lzma
+2023/10/26 | 4517 | systems/win32/miktex/tm/packages/tikz-osci__source.tar.lzma
+2023/10/26 | 449029 | systems/win32/miktex/tm/packages/newpx__doc.tar.lzma
+2023/10/26 | 44353 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2023/10/26 | 44105 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2023/10/26 | 44100 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2023/10/26 | 4375 | macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-marks.tex
+2023/10/26 | 4374 | systems/win32/miktex/tm/packages/longdivision__source.tar.lzma
+2023/10/26 | 43323 | systems/win32/miktex/tm/packages/acmart.tar.lzma
+2023/10/26 | 432728 | fonts/newpx/doc/newpxdoc.pdf
+2023/10/26 | 43113 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2023/10/26 | 428276 | systems/texlive/tlnet/archive/texlive-scripts.doc.r68642.tar.xz
+2023/10/26 | 42761 | systems/win32/miktex/tm/packages/proflycee.tar.lzma
+2023/10/26 | 4256 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
+2023/10/26 | 42412 | systems/texlive/tlnet/archive/proflycee.r68649.tar.xz
+2023/10/26 | 4237 | macros/latex/contrib/physics2/physics2.ins
+2023/10/26 | 42215 | systems/win32/miktex/tm/packages/tkz-euclide.tar.lzma
+2023/10/26 | 421125 | macros/latex/contrib/tkz/tkz-elements/doc/tkz-elements.pdf
+2023/10/26 | 419563 | systems/win32/miktex/tm/packages/hereapplies__doc.tar.lzma
+2023/10/26 | 41775 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma
+2023/10/26 | 415937 | systems/win32/miktex/tm/packages/hyperref__source.tar.lzma
+2023/10/26 | 4124627 | biblio/ctan-bibdata.zip
+2023/10/26 | 412214 | systems/win32/miktex/tm/packages/customenvs__doc.tar.lzma
+2023/10/26 | 4120 | systems/win32/miktex/tm/packages/jwjournal.tar.lzma
+2023/10/26 | 4118 | systems/win32/miktex/tm/packages/tikz-osci.tar.lzma
+2023/10/26 | 4085 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-polygons.tex
+2023/10/26 | 40380 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2023/10/26 | 3975 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-compass.tex
+2023/10/26 | 3972 | systems/win32/miktex/tm/packages/hecthese.tar.lzma
+2023/10/26 | 395414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2023/10/26 | 3948 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-polygons.tex
+2023/10/26 | 3884 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-angles.tex
+2023/10/26 | 387 | macros/latex/contrib/hypdoc/README.md
+2023/10/26 | 3836 | fonts/xcharter-math/README.md
+2023/10/26 | 3786 | systems/win32/miktex/tm/packages/homework.tar.lzma
+2023/10/26 | 37619 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2023/10/26 | 3719750 | biblio/ctan-bibdata/ctan.pdf
+2023/10/26 | 3716 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
+2023/10/26 | 36785 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2023/10/26 | 36757 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2023/10/26 | 35991 | macros/latex/contrib/hypdoc/hypdoc.dtx
+2023/10/26 | 35354 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2023/10/26 | 351879 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2023/10/26 | 3508 | systems/texlive/tlnet/archive/ctanbib.r68650.tar.xz
+2023/10/26 | 3497 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-base.tex
+2023/10/26 | 3496 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-base.tex
+2023/10/26 | 3473 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-grids.tex
+2023/10/26 | 346689 | systems/win32/miktex/tm/packages/homework__doc.tar.lzma
+2023/10/26 | 34610 | systems/win32/miktex/tm/packages/yet-another-guide-latex2e__source.tar.lzma
+2023/10/26 | 34419 | systems/win32/miktex/tm/packages/l3backend__source.tar.lzma
+2023/10/26 | 34290 | systems/win32/miktex/tm/packages/titlesec__source.tar.lzma
+2023/10/26 | 34275 | systems/win32/miktex/tm/packages/minim-math.tar.lzma
+2023/10/26 | 33893 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2023/10/26 | 33844 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2023/10/26 | 337017 | macros/latex/contrib/hypdoc/hypdoc.pdf
+2023/10/26 | 335749 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2023/10/26 | 335737 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2023/10/26 | 333363 | macros/latex/contrib/hypdoc.zip
+2023/10/26 | 3307087 | systems/win32/miktex/tm/packages/hyperref__doc.tar.lzma
+2023/10/26 | 329601 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2023/10/26 | 32908 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2023/10/26 | 327388 | fonts/xcharter-math/XCharter-Math.otf
+2023/10/26 | 327345 | macros/latex/contrib/physics2.zip
+2023/10/26 | 3239 | systems/win32/miktex/tm/packages/pdfpc__source.tar.lzma
+2023/10/26 | 32059 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2023/10/26 | 3179176 | systems/win32/miktex/tm/packages/simpleicons.tar.lzma
+2023/10/26 | 31569 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2023/10/26 | 314242 | systems/win32/miktex/tm/packages/minim__doc.tar.lzma
+2023/10/26 | 3059 | systems/win32/miktex/tm/packages/hvlogos.tar.lzma
+2023/10/26 | 3056 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-angles.tex
+2023/10/26 | 305307 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2023/10/26 | 2987 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-text.tex
+2023/10/26 | 29693 | systems/win32/miktex/tm/packages/asmeconf.tar.lzma
+2023/10/26 | 2954 | macros/latex/contrib/physics2/phy2docdef.tex
+2023/10/26 | 2943 | systems/win32/miktex/tm/packages/jourrr.tar.lzma
+2023/10/26 | 2916835 | systems/win32/miktex/tm/packages/isosafety.tar.lzma
+2023/10/26 | 291515 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2023/10/26 | 29147 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2023/10/26 | 2898480 | systems/texlive/tlnet/archive/isosafety.r68643.tar.xz
+2023/10/26 | 2879 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
+2023/10/26 | 287536 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2023/10/26 | 2863626 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles.zip
+2023/10/26 | 28600 | systems/win32/miktex/tm/packages/hecthese__source.tar.lzma
+2023/10/26 | 2844364 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2023/10/26 | 2820450 | biblio/ctan-bibdata/ctan.bib
+2023/10/26 | 28037 | systems/win32/miktex/tm/packages/bithesis__source.tar.lzma
+2023/10/26 | 2749 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-modules.tex
+2023/10/26 | 272537 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2023/10/26 | 27108 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2023/10/26 | 2701 | systems/win32/miktex/tm/packages/hvlogos__source.tar.lzma
+2023/10/26 | 26911 | fonts/xcharter-math/XCharter-Math.ltx
+2023/10/26 | 26642 | systems/win32/miktex/tm/packages/projlib.tar.lzma
+2023/10/26 | 2636 | systems/win32/miktex/tm/packages/pdfpc.tar.lzma
+2023/10/26 | 26029167 | systems/texlive/tlnet/install-tl.zip
+2023/10/26 | 25643 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2023/10/26 | 25616 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2023/10/26 | 25428 | systems/win32/miktex/tm/packages/minim.tar.lzma
+2023/10/26 | 25301 | systems/win32/miktex/tm/packages/exesheet__source.tar.lzma
+2023/10/26 | 25253 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-spc.tex
+2023/10/26 | 2516 | systems/win32/miktex/tm/packages/isosafety__source.tar.lzma
+2023/10/26 | 249313 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2023/10/26 | 2480980 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/10/26 | 24784 | systems/texlive/tlnet/archive/cweb.r68647.tar.xz
+2023/10/26 | 245900 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2023/10/26 | 24557 | fonts/newpx/tex/newpxtext.sty
+2023/10/26 | 24374 | fonts/newpx/README
+2023/10/26 | 24138 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2023/10/26 | 2396624 | systems/win32/miktex/tm/packages/latex-via-exemplos.tar.lzma
+2023/10/26 | 238079 | systems/win32/miktex/tm/packages/proflycee__source.tar.lzma
+2023/10/26 | 23692 | systems/win32/miktex/tm/packages/asmejour.tar.lzma
+2023/10/26 | 23353 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-spc.tex
+2023/10/26 | 2332810 | fonts/xcharter-math.zip
+2023/10/26 | 23310831 | systems/win32/miktex/tm/packages/hvfloat__doc.tar.lzma
+2023/10/26 | 232149 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2023/10/26 | 2304397 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma
+2023/10/26 | 230243 | systems/win32/miktex/tm/packages/exesheet__doc.tar.lzma
+2023/10/26 | 22808 | systems/win32/miktex/tm/packages/lastpage__source.tar.lzma
+2023/10/26 | 227930 | systems/win32/miktex/tm/packages/babel.tar.lzma
+2023/10/26 | 2268 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-colors.tex
+2023/10/26 | 225946 | systems/win32/miktex/tm/packages/tikz-osci__doc.tar.lzma
+2023/10/26 | 22499 | systems/win32/miktex/tm/packages/indextools__source.tar.lzma
+2023/10/26 | 222588 | systems/texlive/tlnet/archive/babel.r68651.tar.xz
+2023/10/26 | 221543 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2023/10/26 | 219047 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2023/10/26 | 2180 | macros/latex/contrib/tkz/tkz-elements/README.md
+2023/10/26 | 21793 | systems/win32/miktex/tm/packages/bithesis.tar.lzma
+2023/10/26 | 21762 | macros/latex/contrib/physics2/physics2.tex
+2023/10/26 | 217404 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2023/10/26 | 21718 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-angles.tex
+2023/10/26 | 2120 | systems/texlive/tlnet/archive/isosafety.source.r68643.tar.xz
+2023/10/26 | 21036914 | systems/texlive/tlnet/install-tl-windows.exe
+2023/10/26 | 21021 | macros/latex/contrib/physics2/physics2-legacy.tex
+2023/10/26 | 20951 | systems/win32/miktex/tm/packages/newpx__source.tar.lzma
+2023/10/26 | 2079493 | systems/win32/miktex/tm/packages/nicematrix__doc.tar.lzma
+2023/10/26 | 206021 | fonts/xcharter-math/XCharter-Math.pdf
+2023/10/26 | 205913 | systems/win32/miktex/tm/packages/pdfpc__doc.tar.lzma
+2023/10/26 | 203464 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2023/10/26 | 20206 | systems/win32/miktex/tm/packages/titlesec.tar.lzma
+2023/10/26 | 2013063 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2023/10/26 | 2005 | macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-shape.tex
+2023/10/26 | 20003 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma
+2023/10/26 | 19978 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2023/10/26 | 19953 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2023/10/26 | 1959958 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2023/10/26 | 1956849 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2023/10/26 | 195076 | systems/win32/miktex/tm/packages/profmaquette__doc.tar.lzma
+2023/10/26 | 193908 | systems/win32/miktex/tm/packages/jwjournal__doc.tar.lzma
+2023/10/26 | 19094 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-intersections.tex
+2023/10/26 | 1855718 | fonts/xcharter-math/unimath-xcharter.pdf
+2023/10/26 | 18510 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-by.tex
+2023/10/26 | 1844714 | systems/win32/miktex/tm/packages/hvfloat__source.tar.lzma
+2023/10/26 | 18303221 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/10/26 | 18295 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-by.tex
+2023/10/26 | 18272 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-intersections.tex
+2023/10/26 | 182692 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2023/10/26 | 17869 | systems/win32/miktex/tm/packages/minim-mp.tar.lzma
+2023/10/26 | 17825 | systems/win32/miktex/tm/packages/unbtex.tar.lzma
+2023/10/26 | 17804 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-triangles.tex
+2023/10/26 | 177225 | systems/win32/miktex/tm/packages/l3kernel.tar.lzma
+2023/10/26 | 1762739 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
+2023/10/26 | 174145 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2023/10/26 | 173615 | systems/win32/miktex/tm/packages/recorder-fingering__doc.tar.lzma
+2023/10/26 | 1734543 | systems/win32/miktex/tm/packages/csvsimple__doc.tar.lzma
+2023/10/26 | 17278 | fonts/newpx/doc/footsnippet-crop.pdf
+2023/10/26 | 17127 | fonts/xcharter-math/unimath-xcharter.ltx
+2023/10/26 | 171092 | systems/win32/miktex/tm/packages/nicematrix__source.tar.lzma
+2023/10/26 | 1691108 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2023/10/26 | 1690161 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2023/10/26 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/10/26 | 16696 | systems/win32/miktex/tm/packages/profmaquette.tar.lzma
+2023/10/26 | 16493 | systems/win32/miktex/tm/packages/jourrr__source.tar.lzma
+2023/10/26 | 16457 | systems/win32/miktex/tm/packages/l3backend.tar.lzma
+2023/10/26 | 1637092 | systems/texlive/tlnet/archive/proflycee.doc.r68649.tar.xz
+2023/10/26 | 1636143 | systems/win32/miktex/tm/packages/newcomputermodern__doc.tar.lzma
+2023/10/26 | 159906 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2023/10/26 | 15752 | systems/win32/miktex/tm/packages/minim-pdf.tar.lzma
+2023/10/26 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/10/26 | 1531013 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2023/10/26 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/10/26 | 1491 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_1.tex
+2023/10/26 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/10/26 | 14594 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2023/10/26 | 1453980 | systems/texlive/tlnet/archive/tex4ht.source.r68652.tar.xz
+2023/10/26 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/10/26 | 14423 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-show.tex
+2023/10/26 | 143937 | systems/win32/miktex/tm/packages/longdivision__doc.tar.lzma
+2023/10/26 | 1439290 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2023/10/26 | 142704 | fonts/xcharter-math/XCharter-Math-Bold.otf
+2023/10/26 | 142048 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2023/10/26 | 14186 | systems/win32/miktex/tm/packages/hvfloat.tar.lzma
+2023/10/26 | 1408043 | systems/win32/miktex/tm/packages/unbtex__doc.tar.lzma
+2023/10/26 | 1401715 | systems/win32/miktex/tm/packages/proflycee__doc.tar.lzma
+2023/10/26 | 1392617 | systems/win32/miktex/tm/packages/profcollege.tar.lzma
+2023/10/26 | 137994 | macros/latex/contrib/physics2/physics2-code.pdf
+2023/10/26 | 137780 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2023/10/26 | 13662 | systems/win32/miktex/tm/packages/advice__source.tar.lzma
+2023/10/26 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r68652.tar.xz
+2023/10/26 | 1340838 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2023/10/26 | 13220 | systems/texlive/tlnet/archive/advice.source.r68648.tar.xz
+2023/10/26 | 1309430 | macros/latex/contrib/tkz/tkz-euclide.zip
+2023/10/26 | 12913 | systems/win32/miktex/tm/packages/minimalist.tar.lzma
+2023/10/26 | 12900 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-ellipse.tex
+2023/10/26 | 12765157 | systems/win32/miktex/tm/packages/newcomputermodern__source.tar.lzma
+2023/10/26 | 1274766 | systems/win32/miktex/tm/packages/asmejour__source.tar.lzma
+2023/10/26 | 126789 | systems/win32/miktex/tm/packages/isosafety__doc.tar.lzma
+2023/10/26 | 126360 | systems/texlive/tlnet/archive/isosafety.doc.r68643.tar.xz
+2023/10/26 | 1224 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-BB.tex
+2023/10/26 | 12163 | macros/latex/contrib/tkz/tkz-euclide/README.md
+2023/10/26 | 12163 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-sectors.tex
+2023/10/26 | 12114457 | systems/win32/miktex/tm/packages/l3kernel__doc.tar.lzma
+2023/10/26 | 11863 | systems/win32/miktex/tm/packages/csvsimple.tar.lzma
+2023/10/26 | 117776 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2023/10/26 | 1171957 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2023/10/26 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
+2023/10/26 | 114072 | systems/texlive/tlnet/archive/texlive-scripts.r68642.tar.xz
+2023/10/26 | 112515 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2023/10/26 | 11224 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
+2023/10/26 | 1118849 | macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf
+2023/10/26 | 11099 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-math.tex
+2023/10/26 | 1104068 | systems/texlive/tlnet/archive/tex4ht.r68652.tar.xz
+2023/10/26 | 1101597 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.png
+2023/10/26 | 109988 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2023/10/26 | 1096466 | systems/win32/miktex/tm/packages/tkz-euclide__doc.tar.lzma
+2023/10/26 | 10919 | systems/win32/miktex/tm/packages/longdivision.tar.lzma
+2023/10/26 | 10839 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-with.tex
+2023/10/26 | 108364 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2023/10/26 | 106761 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2023/10/26 | 10652 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-with.tex
+2023/10/26 | 106075 | systems/win32/miktex/tm/packages/minim-pdf__doc.tar.lzma
+2023/10/26 | 105863 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2023/10/26 | 10450 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-lines.tex
+2023/10/26 | 104401 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2023/10/26 | 104111 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2023/10/26 | 103568 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2023/10/26 | 1032 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
+2023/10/26 | 1031990 | systems/win32/miktex/tm/packages/babel__doc.tar.lzma
+2023/10/26 | 1031432 | systems/texlive/tlnet/archive/babel.doc.r68651.tar.xz
+2023/10/26 | 1022 | macros/latex/contrib/physics2/README.md
+2023/10/26 | 10203 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-lines.tex
+2023/10/26 | 10183 | systems/win32/miktex/tm/packages/profmaquette__source.tar.lzma
2023/10/25 | 97636 | macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
+2023/10/25 | 9715 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-intersection.tex
+2023/10/25 | 9679 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-misc.tex
+2023/10/25 | 9398 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-triangle.tex
2023/10/25 | 90912 | systems/texlive/tlnet/archive/hyperref.r68630.tar.xz
2023/10/25 | 907 | macros/generic/advice/README.md
2023/10/25 | 89744 | systems/texlive/tlnet/archive/nicematrix.source.r68639.tar.xz
2023/10/25 | 8905 | macros/latex/required/babel/base/babel.ins
2023/10/25 | 889136 | systems/texlive/tlnet/archive/l3backend.doc.r68631.tar.xz
2023/10/25 | 8278 | support/ctanbib/ctanbib
+2023/10/25 | 7832 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-point.tex
2023/10/25 | 782577 | macros/latex/required/babel/base/babel.dtx
+2023/10/25 | 7643 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-circle.tex
+2023/10/25 | 7613 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_2.pdf
2023/10/25 | 756 | macros/latex/contrib/profmaquette/doc/TestParcoursPerso.tex
2023/10/25 | 732260 | systems/texlive/tlnet/archive/bithesis.doc.r68634.tar.xz
2023/10/25 | 723 | support/ctanbib/README.md
2023/10/25 | 7224 | support/ctanbib/ctanbib-doc.tex
+2023/10/25 | 7086 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/10/25 | 635805 | macros/latex/required/babel/base/babel-code.pdf
2023/10/25 | 62408 | systems/texlive/tlnet/archive/acmart.source.r68628.tar.xz
+2023/10/25 | 622581 | support/TeX4ht/source/tex4ht-html4.tex
2023/10/25 | 606308 | systems/texlive/tlnet/archive/l3kernel.source.r68632.tar.xz
-2023/10/25 | 5743988 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/10/25 | 5478 | macros/latex/contrib/cje/cjetemplate.tex
2023/10/25 | 5340 | systems/texlive/tlnet/archive/hereapplies.r68638.tar.xz
-2023/10/25 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2023/10/25 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/10/25 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2023/10/25 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/10/25 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/10/25 | 4888672 | systems/texlive/tlnet/archive/acmart.doc.r68628.tar.xz
+2023/10/25 | 48789 | macros/latex/contrib/cje/cjeguide.tex
+2023/10/25 | 48503 | macros/latex/contrib/cje/cje.cls
2023/10/25 | 47307 | macros/generic/advice/advice.edtx
2023/10/25 | 4729012 | systems/texlive/tlnet/archive/newpx.r68635.tar.xz
2023/10/25 | 46854 | macros/latex/contrib/profmaquette/doc/profmaquette-doc.tex
2023/10/25 | 466280 | systems/texlive/tlnet/archive/newpx.doc.r68635.tar.xz
2023/10/25 | 46594 | support/ctanbib.zip
2023/10/25 | 4564 | systems/texlive/tlnet/archive/customenvs.r68637.tar.xz
+2023/10/25 | 45552 | macros/latex/contrib/cje/ageingbib.bib
2023/10/25 | 43120 | systems/texlive/tlnet/archive/acmart.r68628.tar.xz
-2023/10/25 | 428296 | systems/texlive/tlnet/archive/texlive-scripts.doc.r68626.tar.xz
+2023/10/25 | 4305 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_point.lua
2023/10/25 | 423736 | systems/texlive/tlnet/archive/hereapplies.doc.r68638.tar.xz
-2023/10/25 | 42324 | systems/texlive/tlnet/archive/proflycee.r68633.tar.xz
2023/10/25 | 418652 | systems/texlive/tlnet/archive/customenvs.doc.r68637.tar.xz
2023/10/25 | 41520 | systems/texlive/tlnet/archive/nicematrix.r68639.tar.xz
2023/10/25 | 414588 | systems/texlive/tlnet/archive/hyperref.source.r68630.tar.xz
2023/10/25 | 413338 | macros/latex/required/babel/base/babel.pdf
-2023/10/25 | 4125572 | biblio/ctan-bibdata.zip
+2023/10/25 | 4111 | macros/latex/contrib/cje/cjeupmath.sty
2023/10/25 | 404 | systems/texlive/tlnet/archive/latex-via-exemplos.r68627.tar.xz
2023/10/25 | 3988 | systems/texlive/tlnet/archive/tikz-osci.r68636.tar.xz
2023/10/25 | 39862 | support/ctanbib/ctanbib-doc.pdf
2023/10/25 | 392 | systems/texlive/tlnet/archive/newpx.source.r68635.tar.xz
2023/10/25 | 39145 | install/macros/generic/advice.tds.zip
-2023/10/25 | 3720474 | biblio/ctan-bibdata/ctan.pdf
+2023/10/25 | 35891 | macros/latex/contrib/cje/cjenatbib.sty
2023/10/25 | 3584572 | install/macros/latex/required/babel-base.tds.zip
2023/10/25 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
2023/10/25 | 33840 | systems/texlive/tlnet/archive/l3backend.source.r68631.tar.xz
2023/10/25 | 3309220 | systems/texlive/tlnet/archive/hyperref.doc.r68630.tar.xz
+2023/10/25 | 31238 | macros/latex/contrib/cje/cjebibstyle.bst
2023/10/25 | 296915 | macros/latex/contrib/exesheet/exesheet.pdf
-2023/10/25 | 2820450 | biblio/ctan-bibdata/ctan.bib
+2023/10/25 | 2663 | macros/latex/contrib/cje/README.txt
2023/10/25 | 262641 | macros/latex/contrib/exesheet.zip
-2023/10/25 | 26029184 | systems/texlive/tlnet/install-tl.zip
2023/10/25 | 25812 | systems/texlive/tlnet/archive/bithesis.source.r68634.tar.xz
-2023/10/25 | 2477744 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/10/25 | 2396636 | systems/texlive/tlnet/archive/latex-via-exemplos.doc.r68627.tar.xz
+2023/10/25 | 2359 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_3.tex
2023/10/25 | 23546 | macros/generic/advice.zip
+2023/10/25 | 235167 | support/TeX4ht/source/ChangeLog
2023/10/25 | 23460 | systems/texlive/tlnet/archive/asmejour.r68629.tar.xz
2023/10/25 | 234237 | macros/latex/contrib/profmaquette.zip
2023/10/25 | 229352 | systems/texlive/tlnet/archive/tikz-osci.doc.r68636.tar.xz
2023/10/25 | 2288392 | macros/latex/required/babel/base.zip
+2023/10/25 | 2248 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_2.tex
2023/10/25 | 2236 | macros/generic/advice/INSTALL.md
2023/10/25 | 2202 | support/ctanbib/ctanbib.1
2023/10/25 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
2023/10/25 | 2165920 | systems/texlive/tlnet/archive/nicematrix.doc.r68639.tar.xz
-2023/10/25 | 21034163 | systems/texlive/tlnet/install-tl-windows.exe
+2023/10/25 | 20611 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_1.pdf
2023/10/25 | 203416 | macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf
2023/10/25 | 2030 | macros/latex/required/babel/base/README.md
2023/10/25 | 19120 | systems/texlive/tlnet/archive/bithesis.r68634.tar.xz
2023/10/25 | 19102 | macros/generic/advice/LICENCE
2023/10/25 | 1834616 | systems/texlive/tlnet/archive/asmejour.doc.r68629.tar.xz
-2023/10/25 | 18286915 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2023/10/25 | 176760 | systems/texlive/tlnet/archive/l3kernel.r68632.tar.xz
2023/10/25 | 17412 | macros/latex/contrib/profmaquette/doc/TestParcoursPerso.pdf
+2023/10/25 | 17158 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_3.pdf
2023/10/25 | 1700595 | macros/latex/contrib/proflycee.zip
-2023/10/25 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
-2023/10/25 | 1637484 | systems/texlive/tlnet/archive/proflycee.doc.r68633.tar.xz
2023/10/25 | 162 | macros/generic/advice/Makefile
2023/10/25 | 16220 | systems/texlive/tlnet/archive/l3backend.r68631.tar.xz
-2023/10/25 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/10/25 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2023/10/25 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/10/25 | 1459384 | systems/texlive/tlnet/archive/tex4ht.source.r68640.tar.xz
-2023/10/25 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2023/10/25 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r68640.tar.xz
+2023/10/25 | 13413 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-line.tex
2023/10/25 | 1281 | macros/generic/advice/advice.ins
+2023/10/25 | 125624 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-examples.tex
2023/10/25 | 12117468 | systems/texlive/tlnet/archive/l3kernel.doc.r68632.tar.xz
-2023/10/25 | 114084 | systems/texlive/tlnet/archive/texlive-scripts.r68626.tar.xz
-2023/10/25 | 1103868 | systems/texlive/tlnet/archive/tex4ht.r68640.tar.xz
+2023/10/25 | 1168227 | support/TeX4ht/source/tex4ht-4ht.tex
+2023/10/25 | 1145 | macros/latex/contrib/tkz/tkz-elements/latex/tkz-elements.sty
2023/10/25 | 1056 | macros/generic/advice/CHANGELOG.md
2023/10/25 | 1033891 | macros/latex/required/babel/base/locale.zip
2023/10/25 | 101836 | macros/latex/contrib/exesheet/exesheet.dtx
@@ -95,9 +465,7 @@
2023/10/24 | 8031 | macros/latex/contrib/hereapplies/hereapplies-doc.tex
2023/10/24 | 8018 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
2023/10/24 | 7748428 | systems/texlive/tlnet/archive/tex-gyre.r68624.tar.xz
-2023/10/24 | 7522180 | fonts/newpx.zip
2023/10/24 | 743 | macros/latex/contrib/hereapplies/package.json
-2023/10/24 | 7166 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/10/24 | 7094068 | systems/texlive/tlnet/archive/gnu-freefont.r68624.tar.xz
2023/10/24 | 70266 | fonts/newpx/doc/newpxdoc.tex
2023/10/24 | 610304 | macros/latex/contrib/nicematrix/nicematrix.pdf
@@ -106,7 +474,6 @@
2023/10/24 | 5214 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
2023/10/24 | 49699 | macros/latex/contrib/hereapplies/hereapplies-example.pdf
2023/10/24 | 434420 | macros/latex/contrib/hereapplies.zip
-2023/10/24 | 432735 | fonts/newpx/doc/newpxdoc.pdf
2023/10/24 | 4241780 | systems/texlive/tlnet/archive/gnu-freefont.source.r68624.tar.xz
2023/10/24 | 423179 | macros/latex/contrib/customenvs.zip
2023/10/24 | 4184 | graphics/pgf/contrib/tikz-osci/doc/tikz-osci-example.tex
@@ -121,19 +488,16 @@
2023/10/24 | 26066 | macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
2023/10/24 | 257352 | macros/latex/contrib/nicematrix/nicematrix.tex
2023/10/24 | 2504 | systems/texlive/tlnet/archive/context-collating-marks.r68624.tar.xz
-2023/10/24 | 24308 | fonts/newpx/tex/newpxtext.sty
-2023/10/24 | 24143 | fonts/newpx/README
2023/10/24 | 24043 | macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
2023/10/24 | 235319 | macros/latex/contrib/proflycee/doc/proflycee-docctan.zip
-2023/10/24 | 235020 | support/TeX4ht/source/ChangeLog
2023/10/24 | 2335913 | macros/latex/contrib/nicematrix.zip
+2023/10/24 | 20611 | macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo-1.pdf
2023/10/24 | 19963 | macros/latex/contrib/hereapplies/hereapplies.sty
2023/10/24 | 18502 | graphics/pgf/contrib/tikz-osci/tikz-osci.sty
2023/10/24 | 178335 | graphics/pgf/contrib/tikz-osci/doc/tikz-osci-doc.pdf
2023/10/24 | 16730 | graphics/pgf/contrib/tikz-osci/doc/tikz-osci-doc.tex
2023/10/24 | 161276 | systems/texlive/tlnet/archive/gnu-freefont.doc.r68624.tar.xz
2023/10/24 | 1343842 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
-2023/10/24 | 1168201 | support/TeX4ht/source/tex4ht-4ht.tex
2023/10/24 | 115224 | systems/texlive/tlnet/archive/context-collating-marks.doc.r68624.tar.xz
2023/10/24 | 114395 | graphics/pgf/contrib/tikz-osci/doc/tikz-osci-example.pdf
2023/10/24 | 11141772 | systems/texlive/tlnet/archive/tex-gyre.doc.r68624.tar.xz
@@ -156,11 +520,13 @@
2023/10/23 | 8481 | macros/latex/contrib/l3kernel/l3news11.tex
2023/10/23 | 84779 | macros/latex/contrib/l3kernel/l3fp-basics.dtx
2023/10/23 | 83184 | macros/latex/contrib/l3kernel/l3clist.dtx
+2023/10/23 | 8283 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_triangles.lua
2023/10/23 | 82661 | macros/latex/contrib/l3kernel/l3prefixes.pdf
2023/10/23 | 82320 | macros/latex/contrib/l3kernel/l3msg.dtx
2023/10/23 | 80195 | macros/latex/contrib/l3kernel/l3names.dtx
2023/10/23 | 79602 | macros/latex/contrib/l3kernel/l3str.dtx
2023/10/23 | 783354 | macros/latex/contrib/acmart/samples/sample-lualatex.pdf
+2023/10/23 | 7747 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-main.tex
2023/10/23 | 7662 | macros/latex/contrib/l3kernel/l3fp-functions.dtx
2023/10/23 | 76364 | macros/latex/contrib/l3kernel/l3text-case.dtx
2023/10/23 | 76329 | macros/latex/contrib/l3kernel/l3fp.dtx
@@ -169,15 +535,15 @@
2023/10/23 | 7475976 | macros/latex/contrib/l3kernel/source3.pdf
2023/10/23 | 7472 | macros/latex/contrib/l3kernel/l3fp-assign.dtx
2023/10/23 | 73835 | macros/latex/contrib/l3kernel/l3fp-trig.dtx
-2023/10/23 | 73552 | systems/texlive/tlnet/archive/cweb.doc.r68617.tar.xz
2023/10/23 | 731548 | macros/unicodetex/latex/bithesis/bithesis.pdf
2023/10/23 | 7079 | macros/latex/contrib/l3kernel/l3term-glossary.tex
2023/10/23 | 70511 | macros/latex/contrib/l3kernel/l3prg.dtx
2023/10/23 | 70468 | macros/latex/contrib/l3kernel/expl3.dtx
-2023/10/23 | 6980 | systems/texlive/tlnet/archive/collection-latexextra.r68620.tar.xz
+2023/10/23 | 6793 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-convention.tex
2023/10/23 | 6677 | macros/latex/contrib/l3kernel/l3news02.tex
2023/10/23 | 659297 | macros/latex/contrib/acmart/samples/sample-xelatex.pdf
2023/10/23 | 6482 | macros/latex/contrib/l3kernel/l3news03.tex
+2023/10/23 | 6454 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_intersections.lua
2023/10/23 | 6433 | macros/latex/contrib/l3kernel/l3news06.tex
2023/10/23 | 63960 | macros/latex/contrib/l3kernel/l3tl-analysis.dtx
2023/10/23 | 6351 | macros/latex/contrib/l3kernel/l3.ins
@@ -201,6 +567,8 @@
2023/10/23 | 51081 | macros/latex/contrib/l3kernel/l3fp-extended.dtx
2023/10/23 | 50952 | macros/latex/contrib/l3backend/l3backend-pdf.dtx
2023/10/23 | 4977 | macros/latex/contrib/l3kernel/l3news07.tex
+2023/10/23 | 4965 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_lines.lua
+2023/10/23 | 4960 | macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes.tex
2023/10/23 | 4937 | macros/latex/contrib/l3kernel/l3news01.tex
2023/10/23 | 49311 | macros/latex/contrib/l3kernel/l3fp-expo.dtx
2023/10/23 | 4922 | macros/latex/contrib/l3backend/l3backend.ins
@@ -218,6 +586,8 @@
2023/10/23 | 40728 | macros/latex/contrib/l3kernel/l3sort.dtx
2023/10/23 | 396222 | macros/latex/contrib/l3kernel/l3news.pdf
2023/10/23 | 395888 | macros/latex/contrib/acmart/samples/sample-acmengage.pdf
+2023/10/23 | 3841 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circles.lua
+2023/10/23 | 3784 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_ellipses.lua
2023/10/23 | 36266 | macros/latex/contrib/l3kernel/l3sys.dtx
2023/10/23 | 35675 | macros/latex/contrib/l3kernel/l3unicode.dtx
2023/10/23 | 35441 | macros/latex/contrib/l3kernel/l3quark.dtx
@@ -229,17 +599,20 @@
2023/10/23 | 3062 | macros/latex/contrib/l3kernel/README.md
2023/10/23 | 305596 | macros/latex/contrib/l3kernel/l3regex.dtx
2023/10/23 | 30508 | macros/latex/contrib/l3kernel/l3intarray.dtx
+2023/10/23 | 2989 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_circles.lua
2023/10/23 | 296258 | macros/latex/contrib/l3kernel/l3styleguide.pdf
2023/10/23 | 29569 | macros/latex/contrib/l3backend/l3backend-graphics.dtx
2023/10/23 | 288660 | macros/latex/contrib/acmart/acmart.dtx
2023/10/23 | 2854716 | info/latex-via-exemplos.zip
2023/10/23 | 2821 | macros/latex/contrib/l3kernel/l3prefixes.tex
+2023/10/23 | 2756 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_lines.lua
2023/10/23 | 27270 | macros/latex/contrib/l3kernel/l3kernel-functions.dtx
+2023/10/23 | 2681 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_maths.lua
2023/10/23 | 2649 | macros/unicodetex/latex/bithesis/contributing-zh.md
2023/10/23 | 25810 | macros/latex/contrib/l3kernel/l3deprecation.dtx
2023/10/23 | 25069 | macros/latex/contrib/l3kernel/source3body.tex
2023/10/23 | 250159 | macros/latex/contrib/l3kernel/l3news09.pdf
-2023/10/23 | 24752 | systems/texlive/tlnet/archive/cweb.r68617.tar.xz
+2023/10/23 | 2471 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_points.lua
2023/10/23 | 242903 | macros/latex/contrib/l3kernel/l3syntax-changes.pdf
2023/10/23 | 23866 | macros/latex/contrib/l3kernel/l3luatex.dtx
2023/10/23 | 2385 | macros/latex/contrib/l3kernel/l3docstrip.dtx
@@ -256,11 +629,11 @@
2023/10/23 | 19821 | macros/latex/contrib/l3kernel/l3fp-symbolic.dtx
2023/10/23 | 19641 | macros/latex/contrib/l3kernel/l3fp-convert.dtx
2023/10/23 | 1946 | macros/unicodetex/latex/bithesis/README.md
+2023/10/23 | 1921 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_points.lua
2023/10/23 | 1906 | info/latex-via-exemplos/changelog.txt
2023/10/23 | 18532 | macros/latex/contrib/l3kernel/l3fp-round.dtx
2023/10/23 | 17901 | macros/latex/contrib/l3kernel/l3pdf.dtx
2023/10/23 | 1732906 | macros/latex/contrib/l3kernel/interface3.pdf
-2023/10/23 | 17296 | fonts/newpx/doc/footsnippet-crop.pdf
2023/10/23 | 170102 | macros/latex/contrib/l3kernel/l3news11.pdf
2023/10/23 | 16639 | macros/latex/contrib/l3kernel/l3candidates.dtx
2023/10/23 | 16631 | macros/latex/contrib/l3kernel/l3text-map.dtx
@@ -278,6 +651,7 @@
2023/10/23 | 14431 | macros/latex/contrib/l3backend/l3backend-box.dtx
2023/10/23 | 144087 | macros/latex/contrib/l3kernel/l3file.dtx
2023/10/23 | 14136490 | install/macros/latex/contrib/l3kernel.tds.zip
+2023/10/23 | 1395 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_main.lua
2023/10/23 | 13872012 | macros/latex/contrib/l3kernel.zip
2023/10/23 | 1383312 | info/latex-via-exemplos/latex-via-exemplos-twosides.pdf
2023/10/23 | 1376701 | info/latex-via-exemplos/latex-via-exemplos.pdf
@@ -289,11 +663,13 @@
2023/10/23 | 128344 | macros/latex/contrib/l3kernel/l3news07.pdf
2023/10/23 | 12806 | macros/latex/contrib/l3kernel/l3bootstrap.dtx
2023/10/23 | 12767 | macros/latex/contrib/l3kernel/l3fp-traps.dtx
+2023/10/23 | 1271 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_class.lua
2023/10/23 | 125199 | macros/unicodetex/latex/bithesis/bithesis.dtx
2023/10/23 | 122959 | macros/latex/contrib/l3kernel/l3news01.pdf
2023/10/23 | 121564 | macros/latex/contrib/l3kernel/l3token.dtx
2023/10/23 | 11884 | macros/latex/contrib/l3kernel/l3styleguide.tex
2023/10/23 | 11781 | macros/latex/contrib/l3kernel/l3fparray.dtx
+2023/10/23 | 1155 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vectors.lua
2023/10/23 | 114754 | macros/latex/contrib/l3kernel/l3news04.pdf
2023/10/23 | 113435 | macros/latex/contrib/l3kernel/l3str-convert.dtx
2023/10/23 | 112524 | macros/latex/contrib/l3kernel/l3news05.pdf
@@ -306,6 +682,7 @@
2023/10/23 | 1044098 | macros/latex/contrib/acmart/samples/sample-authordraft.pdf
2023/10/23 | 1040314 | macros/latex/contrib/acmart/samples/sample-sigconf.pdf
2023/10/23 | 10328 | macros/latex/contrib/l3kernel/l3flag.dtx
+2023/10/23 | 10139 | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangles.lua
2023/10/22 | 99356 | systems/texlive/tlnet/archive/minim-math.doc.r68612.tar.xz
2023/10/22 | 964 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsoneone.tfm
2023/10/22 | 9495 | macros/latex/contrib/asmejour/README.md
@@ -453,146 +830,51 @@
2023/10/21 | 120740 | macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf
2023/10/21 | 10810 | macros/latex/contrib/longdivision/longdivision_manual.tex
2023/10/20 | 90 | macros/luatex/generic/minim/minim.tex
-2023/10/20 | 901 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-ellipses.tex
-2023/10/20 | 9000 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-math.tex
-2023/10/20 | 8993 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-circles.tex
-2023/10/20 | 8983 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles.tex
2023/10/20 | 752 | support/texshop/README.txt
2023/10/20 | 71221321 | support/texshop/texshop521.zip
2023/10/20 | 7016 | macros/luatex/generic/minim/minim-alloc.tex
-2023/10/20 | 6837 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points.tex
-2023/10/20 | 6765 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-axesmin.tex
-2023/10/20 | 6622 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
-2023/10/20 | 6591 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-circles-by.tex
2023/10/20 | 6576 | systems/texlive/tlnet/archive/outilsgeomtikz.r68592.tar.xz
-2023/10/20 | 6574 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles-by.tex
-2023/10/20 | 6521 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points.tex
-2023/10/20 | 6360 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-points.tex
-2023/10/20 | 622580 | support/TeX4ht/source/tex4ht-html4.tex
2023/10/20 | 5928 | systems/texlive/tlnet/archive/recorder-fingering.r68595.tar.xz
-2023/10/20 | 5854 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-circles.tex
-2023/10/20 | 5841 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-utilities.tex
2023/10/20 | 556078 | macros/unicodetex/latex/fontsetup/doc/fontsetup-doc.pdf
-2023/10/20 | 5343 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-rnd.tex
2023/10/20 | 500152 | systems/texlive/tlnet/archive/outilsgeomtikz.doc.r68592.tar.xz
-2023/10/20 | 4601 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-protractor.tex
-2023/10/20 | 4375 | macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-marks.tex
-2023/10/20 | 4085 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-polygons.tex
2023/10/20 | 40814 | macros/luatex/generic/minim-pdf/minim-pdf.lua
-2023/10/20 | 3975 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-compass.tex
-2023/10/20 | 3948 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-polygons.tex
-2023/10/20 | 3884 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-angles.tex
2023/10/20 | 369 | macros/unicodetex/latex/fontsetup/README
2023/10/20 | 354529 | macros/luatex/generic/minim.zip
-2023/10/20 | 3497 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-base.tex
-2023/10/20 | 3496 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-base.tex
-2023/10/20 | 3473 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-grids.tex
2023/10/20 | 34372 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-drawing.tex
2023/10/20 | 340967 | macros/luatex/generic/minim-math/minim-math-table.lua
2023/10/20 | 338726 | macros/luatex/generic/minim/minim.pdf
-2023/10/20 | 3056 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-angles.tex
-2023/10/20 | 2987 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-text.tex
2023/10/20 | 29830 | macros/luatex/generic/minim/minim-plain.tex
2023/10/20 | 294 | macros/latex/contrib/isosafety/README.md
2023/10/20 | 29484 | systems/texlive/tlnet/archive/asmeconf.r68593.tar.xz
2023/10/20 | 2836748 | systems/texlive/tlnet/archive/asmeconf.doc.r68593.tar.xz
-2023/10/20 | 2749 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-modules.tex
-2023/10/20 | 25253 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-spc.tex
2023/10/20 | 2379 | macros/luatex/generic/minim/minim.doc
-2023/10/20 | 23353 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-spc.tex
2023/10/20 | 22841 | macros/luatex/generic/minim-pdf/minim-pdf.doc
-2023/10/20 | 2268 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-colors.tex
2023/10/20 | 2192 | macros/luatex/generic/minim/minim-pdfresources.tex
-2023/10/20 | 21718 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-angles.tex
2023/10/20 | 2116 | macros/luatex/generic/minim-mp/README
2023/10/20 | 2111 | macros/luatex/generic/minim-mp/minim-mp.tex
2023/10/20 | 2105 | macros/luatex/generic/minim/README
2023/10/20 | 2048 | macros/luatex/generic/minim/minim-hooks.tex
2023/10/20 | 20388 | macros/luatex/generic/minim-mp/minim-mp.doc
-2023/10/20 | 2005 | macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-shape.tex
2023/10/20 | 19812 | macros/unicodetex/latex/fontsetup/doc/fontsetup-doc.tex
2023/10/20 | 1971 | macros/latex/contrib/isosafety/isosafety.ins
-2023/10/20 | 19094 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-intersections.tex
2023/10/20 | 1855 | macros/luatex/generic/minim-pdf/README
-2023/10/20 | 18510 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-by.tex
2023/10/20 | 18331 | macros/luatex/generic/minim-math/minim-math.tex
-2023/10/20 | 18295 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-by.tex
-2023/10/20 | 18272 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-intersections.tex
2023/10/20 | 1817 | support/texshop/texshop521.html
2023/10/20 | 179168 | systems/texlive/tlnet/archive/recorder-fingering.doc.r68595.tar.xz
-2023/10/20 | 17804 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-triangles.tex
2023/10/20 | 17596 | macros/luatex/generic/minim-pdf/minim-pdf.tex
2023/10/20 | 159709 | macros/luatex/generic/minim-math.zip
2023/10/20 | 14765 | macros/luatex/generic/minim/minim-etex.tex
2023/10/20 | 1468545 | macros/latex/contrib/unbtex.zip
2023/10/20 | 14582 | macros/luatex/generic/minim-math/minim-math.lua
-2023/10/20 | 14423 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-show.tex
2023/10/20 | 136897 | macros/luatex/generic/minim-pdf.zip
2023/10/20 | 132876 | macros/luatex/generic/minim-mp.zip
-2023/10/20 | 1309695 | macros/latex/contrib/tkz/tkz-euclide.zip
2023/10/20 | 12784 | systems/texlive/tlnet/archive/pdfjam.r68597.tar.xz
2023/10/20 | 12720 | macros/luatex/generic/minim-math/minim-math.doc
-2023/10/20 | 1224 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-BB.tex
-2023/10/20 | 12163 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-sectors.tex
-2023/10/20 | 12129 | macros/latex/contrib/tkz/tkz-euclide/README.md
2023/10/20 | 1204 | macros/luatex/generic/minim/minim-lmodern.tex
2023/10/20 | 116670 | macros/luatex/generic/minim-pdf/minim-pdf.pdf
-2023/10/20 | 11224 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
2023/10/20 | 112093 | macros/luatex/generic/minim-math/minim-math.pdf
-2023/10/20 | 1119088 | macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf
2023/10/20 | 11169 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-news.tex
-2023/10/20 | 11099 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-math.tex
2023/10/20 | 109855 | macros/luatex/generic/minim-mp/minim-mp.pdf
-2023/10/20 | 10839 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-with.tex
2023/10/20 | 107244 | systems/texlive/tlnet/archive/pdfjam.doc.r68597.tar.xz
-2023/10/20 | 10652 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-with.tex
-2023/10/20 | 10450 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-lines.tex
2023/10/20 | 1041 | macros/luatex/generic/minim-math/README
2023/10/20 | 1040454 | macros/unicodetex/latex/fontsetup.zip
-2023/10/20 | 10203 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-lines.tex
-2023/10/19 | 979592 | systems/texlive/tlnet/archive/wintools.windows.doc.r68588.tar.xz
-2023/10/19 | 97323 | macros/latex/contrib/asmeconf/asmeconf.cls
-2023/10/19 | 972 | macros/latex/contrib/unbtex/unbtex-example/codigos/ModalReduction.jl
-2023/10/19 | 94790 | support/pdfjam/tests.zip
-2023/10/19 | 891164 | systems/texlive/tlnet/archive/hecthese.doc.r68584.tar.xz
-2023/10/19 | 86922 | macros/latex/contrib/unbtex/unbtex-example/figuras/blockdiagram.eps
-2023/10/19 | 624 | macros/latex/contrib/unbtex/unbtex-example/apendice-b.tex
-2023/10/19 | 6215 | macros/unicodetex/latex/fontsetup/fontsetup.sty
-2023/10/19 | 59770 | macros/latex/contrib/unbtex/abntex2eng-alf.bst
-2023/10/19 | 558 | macros/latex/contrib/unbtex/unbtex-example/anexo-a.tex
-2023/10/19 | 5549912 | systems/texlive/tlnet/archive/wintools.windows.r68588.tar.xz
-2023/10/19 | 5073 | macros/latex/contrib/unbtex/unbtex-example/references.bib
-2023/10/19 | 476945 | macros/latex/contrib/asmeconf/asmeconf-template.pdf
-2023/10/19 | 4437424 | macros/latex/contrib/asmeconf.zip
-2023/10/19 | 44191 | support/pdfjam/bin/pdfjam
-2023/10/19 | 43149 | macros/latex/contrib/asmeconf/asmeconf-template.tex
-2023/10/19 | 424 | macros/latex/contrib/unbtex/unbtex-example/anexo-b.tex
-2023/10/19 | 4015 | support/pdfjam/pdfjam.conf
-2023/10/19 | 3780 | systems/texlive/tlnet/archive/hecthese.r68584.tar.xz
-2023/10/19 | 373 | macros/latex/contrib/unbtex/unbtex-example/codigos/controle.m
-2023/10/19 | 3264 | macros/latex/contrib/unbtex/unbtex-example/capitulo3.tex
-2023/10/19 | 3193 | macros/latex/contrib/unbtex/README.md
-2023/10/19 | 31319 | macros/latex/contrib/unbtex/unbtex-example/figuras/img-grafico.pdf
-2023/10/19 | 28036 | systems/texlive/tlnet/archive/hecthese.source.r68584.tar.xz
-2023/10/19 | 2758 | macros/latex/contrib/unbtex/unbtex-example/capitulo1.tex
-2023/10/19 | 27207 | macros/latex/contrib/unbtex/unbtex-example/capitulo2.tex
-2023/10/19 | 2714 | macros/latex/contrib/unbtex/unbtex-example/apendice-a.tex
-2023/10/19 | 245216 | macros/latex/contrib/unbtex/unbtex-example/figuras/img-marca.pdf
-2023/10/19 | 215 | macros/latex/contrib/unbtex/unbtex-example/capitulo5.tex
-2023/10/19 | 20 | support/pdfjam/VERSION
-2023/10/19 | 19971 | macros/latex/contrib/unbtex/unbtex-example/figuras/1280px-LaTeX-logo.png
-2023/10/19 | 1925 | macros/latex/contrib/unbtex/unbtex-example/capitulo4.tex
-2023/10/19 | 185531 | macros/latex/contrib/recorder-fingering.zip
-2023/10/19 | 18068 | macros/latex/contrib/unbtex/unbtex.cls
-2023/10/19 | 17992 | support/pdfjam/COPYING
-2023/10/19 | 17556 | support/pdfjam/README.md
-2023/10/19 | 1713 | support/pdfjam/man1/pdfjam.1
-2023/10/19 | 1671 | macros/latex/contrib/unbtex/unbtex-example/codigos/controleSmithPredictor.py
-2023/10/19 | 16100 | macros/latex/contrib/unbtex/unbtex-example.tex
-2023/10/19 | 15511220 | systems/texlive/tlnet/archive/hvfloat.doc.r68586.tar.xz
-2023/10/19 | 14096 | systems/texlive/tlnet/archive/hvfloat.r68586.tar.xz
-2023/10/19 | 1356 | macros/latex/contrib/unbtex/unbtex-example/figuras/capa_fundo.pdf
-2023/10/19 | 12563 | macros/latex/contrib/unbtex/unbtex-example/referencias.bib
-2023/10/19 | 124991 | support/pdfjam.zip
-2023/10/19 | 1177245 | macros/latex/contrib/unbtex/unbtex-example.pdf
-2023/10/19 | 11188 | macros/latex/contrib/asmeconf/README.md
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index 5899c4d7d7..cacdc8bee8 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 26-10-2023, 02:06:04
+%% created at 27-10-2023, 02:05:50
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -6050,8 +6050,8 @@
title = {The \texttt{beamertheme-arguelles} package},
subtitle = {Simple, typographic beamer theme},
author = {Michele Piazzai},
- date = {2023-03-22},
- version = {2.2.0},
+ date = {2023-10-26},
+ version = {2.3.0},
license = {mit},
mirror = {https://mirror.ctan.org/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles},
url = {https://ctan.org/pkg/beamertheme-arguelles},
@@ -12734,8 +12734,8 @@
title = {The \texttt{cje} package},
subtitle = {\LaTeX{} document class for CJE articles},
author = {Kim Nesbitt},
- date = {2018-02-23},
- version = {1.06},
+ date = {2023-10-26},
+ version = {1.07},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/cje},
url = {https://ctan.org/pkg/cje},
@@ -32702,8 +32702,8 @@
title = {The \texttt{hypdoc} package},
subtitle = {Hyper extensions for doc.sty},
author = {Heiko Oberdiek},
- date = {2023-01-23},
- version = {1.18},
+ date = {2023-10-26},
+ version = {1.19},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/hypdoc},
url = {https://ctan.org/pkg/hypdoc},
@@ -34772,7 +34772,7 @@
title = {The \texttt{isosafety} package},
subtitle = {Provides ISO signs and colors according to the standards 7010 and 3864},
author = {Ben Steinhauer},
- date = {2023-10-23},
+ date = {2023-10-26},
version = {1.0},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/isosafety},
@@ -48437,8 +48437,8 @@
title = {The \texttt{newpx} package},
subtitle = {Alternative uses of the PX fonts, with improved metrics},
author = {Michael Sharpe},
- date = {2023-10-24},
- version = {1.53},
+ date = {2023-10-26},
+ version = {1.531},
license = {lppl,ofl},
mirror = {https://mirror.ctan.org/fonts/newpx},
url = {https://ctan.org/pkg/newpx},
@@ -53206,8 +53206,8 @@
title = {The \texttt{physics2} package},
subtitle = {Macros for typesetting maths faster and more simply},
author = {Tingxuan Zhang},
- date = {2023-04-02},
- version = {0.2.1},
+ date = {2023-10-26},
+ version = {1.0.0},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/physics2},
url = {https://ctan.org/pkg/physics2},
@@ -70923,12 +70923,23 @@
url = {https://ctan.org/pkg/tkz-doc},
}
+@manual{ctan-tkz-elements,
+ title = {The \texttt{tkz-elements} package},
+ subtitle = {A Lua library for drawing Euclidean geometry with TikZ or tkz-euclide},
+ author = {Alain Matthes},
+ date = {2023-10-26},
+ version = {1.00b},
+ license = {lppl1.3},
+ mirror = {https://mirror.ctan.org/macros/latex/contrib/tkz/tkz-elements},
+ url = {https://ctan.org/pkg/tkz-elements},
+}
+
@manual{ctan-tkz-euclide,
title = {The \texttt{tkz-euclide} package},
subtitle = {Tools for drawing Euclidean geometry},
author = {Alain Matthes},
- date = {2023-10-20},
- version = {5.03c},
+ date = {2023-10-26},
+ version = {5.04c},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/tkz/tkz-euclide},
url = {https://ctan.org/pkg/tkz-euclide},
@@ -76860,8 +76871,8 @@
title = {The \texttt{xcharter-math} package},
subtitle = {XCharter-based OpenType Math font for LuaTeX and XeTeX},
author = {Daniel Flipo},
- date = {2023-07-20},
- version = {0.50},
+ date = {2023-10-26},
+ version = {0.51},
license = {ofl,lppl1.3},
mirror = {https://mirror.ctan.org/fonts/xcharter-math},
url = {https://ctan.org/pkg/xcharter-math},
diff --git a/biblio/ctan-bibdata/ctan.pdf b/biblio/ctan-bibdata/ctan.pdf
index 5099c4d883..4117f685c2 100644
--- a/biblio/ctan-bibdata/ctan.pdf
+++ b/biblio/ctan-bibdata/ctan.pdf
Binary files differ
diff --git a/fonts/newpx/README b/fonts/newpx/README
index 15233d06c2..0245be15a2 100644
--- a/fonts/newpx/README
+++ b/fonts/newpx/README
@@ -1,10 +1,15 @@
This package, based initially on pxfonts, provides many fixes and enhancements to that package, splitting it in two parts---newpxtext and newpxmath---which may be run independently of one another. It provides scaling, improved metrics, and other options. For proper operation, the packages require that the packages newtxmath, pxfonts and TeXGyrePagella be installed and their map files enabled. The text package now relies on an extension of the TeXGyrePagella Type1 fonts that is provided with this package. The accompanying MANIFEST-newpx.txt provides details of the extension as requested by GUST-FONT-LICENSE.txt
-Current version: 1.53 2023-10-23
+Current version: 1.531 2023-10-25
This material is subject to the LaTeX Project Public License. See http://www.ctan.org/license/lppl1.3
for the details of that license.
+Changes in version 1.531
+Corrected the footnote marker issues so the footnote modifications now
+work as expected in all LaTeX engines, and in the standard and AMS
+document classes. (Some small issues remain with KOMA classes.)
+
Changes in version 1.53
1. Addition of superior letters and figures distinct from and taller
than numerators.
diff --git a/fonts/newpx/doc/footsnippet-crop.pdf b/fonts/newpx/doc/footsnippet-crop.pdf
index 45ff60b27d..c2ce9addce 100644
--- a/fonts/newpx/doc/footsnippet-crop.pdf
+++ b/fonts/newpx/doc/footsnippet-crop.pdf
Binary files differ
diff --git a/fonts/newpx/doc/newpxdoc.pdf b/fonts/newpx/doc/newpxdoc.pdf
index 3f5e835991..377d70d68b 100644
--- a/fonts/newpx/doc/newpxdoc.pdf
+++ b/fonts/newpx/doc/newpxdoc.pdf
Binary files differ
diff --git a/fonts/newpx/tex/newpxtext.sty b/fonts/newpx/tex/newpxtext.sty
index 1b25ea155a..be83368b49 100644
--- a/fonts/newpx/tex/newpxtext.sty
+++ b/fonts/newpx/tex/newpxtext.sty
@@ -8,8 +8,8 @@
% Text is now directed to an extension of TeXGyrePagella rather than ppl.
% 1.5 is first version of newpxtext to support both [pdf]latex and unicode latex.
-\def\fileversion{1.53}
-\def\filedate{2023/10/23}
+\def\fileversion{1.531}
+\def\filedate{2023/10/25}
\ProvidesPackage{newpxtext}[%
\filedate\space v\fileversion (Michael Sharpe) latex and unicode latex support for TeXGyrePagellaX]
@@ -436,7 +436,7 @@
}
\ifzpl@defaultsups %
\else
- \ExplSyntaxOn
+ \ExplSyntaxOn
\DeclareDocumentCommand \fakesuperscript {m} {
\@textsuperscript{\selectfont#1}
}
@@ -463,13 +463,17 @@
{
\cs_new:Npn \footnotemarkfont {\normalfont}
}
- \ExplSyntaxOff
- \fi
- \ifzpl@KOMA
- \setkomafont{footnotereference}{\normalfont\supstyle}
- \setkomafont{footnotelabel}{\normalfont\supstyle}
- \fi
-% \ifzpl@KOMA
+ \ExplSyntaxOff
+ \patchcmd{\maketitle}{\@textsuperscript{\normalfont\@thefnmark}}{\normalfont{\textsuperscript\@thefnmark}}{}{}
+ \patchcmd{\maketitle}{\@textsuperscript{\normalfont\@thefnmark}}{\normalfont{\textsuperscript\@thefnmark}}{}{}
+ \patchcmd{\maketitle}
+{\hb@xt@1.8em}{\hb@xt@2.18em}{}{}
+ \ifzpl@KOMA
+ \setkomafont{footnotereference}{\normalfont\sustyle}
+ \setkomafont{footnotelabel}{\normalfont\sustyle}
+ \fi
+ \fi
+ % \ifzpl@KOMA
% \let\textsuperscript\sustyle
% \setkomafont{footnotelabel}{\textsuperscript}
% \setkomafont{footnotereference}{\textsuperscript}
@@ -516,7 +520,7 @@
\fi%
\fi%}
-\ifzpl@otf
+\iftutex
% \def\zpl@nft{\if t\zpl@thmtab Monospaced%
% \else Proportional\fi}
%\DeclareTextFontCommand{\textsl}{\slshape}
@@ -553,40 +557,41 @@
\ifzpl@defaultsups %
\else
- \patchcmd{\maketitle}{\@textsuperscript{\normalfont\@thefnmark}}{\normalfont\textsuperscript{\@thefnmark}}{}{}
- \patchcmd{\maketitle}{\@textsuperscript{\normalfont\@thefnmark}}{\normalfont\textsuperscript{\@thefnmark}}{}{}
- %\show\maketitle
- \RequirePackage{realscripts}
- \renewcommand\footnotemarkfont{\normalfont}%\sufigures}
+ \RequirePackage{realscripts}
\ExplSyntaxOn
- \DeclareDocumentCommand \fakesuperscript {m} {
- \@textsuperscript{\selectfont#1}
- }
- \RenewDocumentCommand \textsuperscript {s} {
- \IfBooleanTF #1 \fakesuperscript \realsuperscript
- }
- \DeclareDocumentCommand \realsuperscript {m} {
- \hbox_set:Nn \l_tmpa_box {\textsups{#1}}
+ \DeclareDocumentCommand \imagsuperscript {m} {
+ \fontspec_if_fontspec_font:TF
+ {
+ \fontspec_if_opentype:TF
+ { \fontspec_if_feature:nTF {+sups}
+ { {\addfontfeature{VerticalPosition=Superior}#1} }
+ { \fakesuperscript{#1} }
+ }
+ { \fontspec_if_aat_feature:nnTF {10} {1}
+ { {\addfontfeature{VerticalPosition=Superior}#1} }
+ { \fakesuperscript{#1} }
+ }
+ }
+ { \fakesuperscript{#1} }
+}
+
+ \RenewDocumentCommand \realsuperscript {m} {
+ \hbox_set:Nn \l_tmpa_box {\imagsuperscript{#1}}
\box_scale:Nnn \l_tmpa_box { \zplsups@scalefactor } { \zplsups@scalefactor }
\hbox_set:Nn \l_tmpa_box
{ \box_move_up:nn \zplsups@raised {\box_use:N \l_tmpa_box} }
- \hspace*{\zplsups@Lspaced}{\color{\zplsups@color}%
+ \hspace*{\zplsups@Lspaced}
+ {\color{\zplsups@color}%
\box_use:N \l_tmpa_box }%
\hspace*{\zplsups@Rspaced}}
- \cs_set:Npn \@makefnmark {%
- \mbox{%
- \footnotemarkfont\textsuperscript{\@thefnmark}}
- }
- \cs_if_exist:NTF \ftntm@font
- {
- \cs_set:Npn \footnotemarkfont {\normalfont \ftntm@font}
- }
- {
- \cs_set:Npn \footnotemarkfont {\normalfont}
- }
\ExplSyntaxOff
- \fi
+
+ \patchcmd{\maketitle}{\@textsuperscript{\normalfont\@thefnmark}}{\normalfont{\textsuperscript\@thefnmark}}{}{}
+ \patchcmd{\maketitle}{\@textsuperscript{\normalfont\@thefnmark}}{\normalfont{\textsuperscript\@thefnmark}}{}{}
+ \patchcmd{\maketitle}
+{\hb@xt@1.8em}{\hb@xt@2.18em}{}{}
+ \fi
\ifzpl@KOMA
\setkomafont{footnotereference}{\normalfont\sustyle}
\setkomafont{footnotelabel}{\normalfont\sustyle}
diff --git a/fonts/newpx/tex/newpxtext1.sty b/fonts/newpx/tex/newpxtext1.sty
deleted file mode 100644
index 2dda973cb8..0000000000
--- a/fonts/newpx/tex/newpxtext1.sty
+++ /dev/null
@@ -1,766 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}
-
-% Based originally on Young Ryu's pxfonts.sty, v.1.1.1
-%
-% Changes from original pxfonts.sty by Michael Sharpe, msharpe at ucsd dot edu;
-% Text and math versions now separate.
-% Added scaled keyword and osf option;
-% Text is now directed to an extension of TeXGyrePagella rather than ppl.
-% 1.5 is the first version of newpxtext to support both [pdf]latex and unicode latex.
-
-\def\fileversion{1.523}
-\def\filedate{2023/09/28}
-\ProvidesPackage{newpxtext}[%
-\filedate\space v\fileversion (Michael Sharpe) latex and unicode latex support for TeXGyrePagellaX]
-
-\message{`newpxtext' v\fileversion, \filedate\space Text macros taking advantage of TeXGyre Pagella and its extensions (msharpe)}
-
-\RequirePackage[T1]{fontenc}
-\renewcommand*{\rmdefault}{zplTLF} % the default until end of preamble
-\renewcommand*{\familydefault}{\rmdefault}
-\RequirePackage{xpatch} % need to patch \scshape
-\RequirePackage{iftex,xkeyval,etoolbox,textcomp}
-\RequirePackage{xstring,ifthen,scalefnt} % for \textfrac
-\IfFileExists{mweights.sty}{\RequirePackage{mweights}}{}
-\DeclareEncodingSubset{TS1}{zpl*}{0}
-
-%KOMA check
-\newif\ifzpl@KOMA
-\@ifundefined{KOMAClassName}{}{\zpl@KOMAtrue}
-\@ifundefined{ver@scrextend.sty}{}{\zpl@KOMAtrue}
-\newif\ifzpl@LTX
-\@ifclassloaded{article}{\zpl@LTXtrue}{}
-\@ifclassloaded{report}{\zpl@LTXtrue}{}
-\@ifclassloaded{book}{\zpl@LTXtrue}{}
-
-% Engine check
-\newif\ifzpl@otf
-\iftutex\zpl@otftrue
-%\else % [pdf]LaTeX
-% \zpl@otffalse
-\fi
-\def\zpl@divide#1#2{\strip@pt\dimexpr 1pt * (\dimexpr #1pt\relax) / \dimexpr #2pt\relax\relax}
-%%%%%%%%%%%%%%%%%%
-\IfFileExists{xkeyval.sty}{
- \RequirePackage{xkeyval}
- }{
- \let\DeclareOptionX\DeclareOption
- \let\ExecuteOptionsX\ExecuteOptions
- \let\ProcessOptionsX\ProcessOptions
-}
-%%%% Start Options
-\newif\ifzpl@nomath\zpl@nomathfalse % load fontspec with no-math
-\newif\ifzpl@lining\zpl@liningtrue
-\newif\ifzpl@tabular\zpl@tabulartrue % default is tabular lining figures
-\@ifundefined{ver@newpxmath.sty}{}{\zpl@nomathtrue}
-
-\DeclareOptionX{type1}[true]{%
-%\@nameuse{if#1}\zpl@otffalse\fi
-}
-\DeclareOptionX{nofontspec}[true]{%
-%\@nameuse{if#1}\zpl@otffalse\fi
-}
-\DeclareOptionX{no-math}[true]{%
-\@nameuse{if#1}\zpl@nomathtrue\fi
-}
-
-\def\zpl@defaultfeatures{}
-\DeclareOptionX{defaultfeatures}{\def\zpl@defaultfeatures{#1}}
-
-%Figure style options
-\edef\zpl@dfltfigurestyle{lf}
-\edef\zpl@dfltfigurealign{t}
-
-\DeclareOptionX{lining}[true]{%
-\@nameuse{zpl@lining#1}
-}
-\DeclareOptionX{lf}[true]{%
-\@nameuse{zpl@lining#1}
-}
-\DeclareOptionX{oldstyle}[true]{%
-\@nameuse{if#1}%
- \zpl@liningfalse
-\else
- \zpl@liningtrue
-\fi
-}
-\DeclareOptionX{osf}[true]{%
-\@nameuse{if#1}%
- \zpl@liningfalse
-\else
- \zpl@liningtrue
-\fi
-}
-\DeclareOptionX{tabular}[true]{%
-\@nameuse{zpl@tabular#1}
-}
-\DeclareOptionX{t}[true]{%
-\@nameuse{zpl@tabular#1}
-}
-\DeclareOptionX{proportional}[true]{%
-\@nameuse{if#1}%
- \zpl@tabularfalse
-\else
- \zpl@tabulartrue
-\fi
-}
-\DeclareOptionX{p}[true]{%
-\@nameuse{if#1}%
- \zpl@tabularfalse
-\else
- \zpl@tabulartrue
-\fi
-}
-
-%Scale
-\providecommand{\zpl@scale}{1} % actual scaled command in \zpl@scaled
-\DeclareOptionX{scale}{\def\zpl@scale{#1}}
-\DeclareOptionX{scaled}{\def\zpl@scale{#1}}
-
-\newif\ifzpl@defaultsups
-%\newif\ifzpl@adobesc % we don't use this exc. in fd, but may in future
-\newif\ifzpl@scosf
-\newif\ifzpl@largesc
-\newif\ifzpl@helv \zpl@helvtrue % default is to load helvetica as sans serif font
-\newif\ifzpl@thrm
-\newif\ifzpl@sl
-% new sups options
-\newdimen\zplsups@scale
-\newdimen\zplsups@raise
-\def\zplsups@raised{\z@}
-\def\zplsups@Lspaced{.04em}
-\def\zplsups@Rspaced{.04em}
-\def\zplsups@scaledval{1.0}
-\def\zplsups@supscale{1.0}
-\DeclareOptionX{supscaled}{\renewcommand*{\zplsups@scaledval}{#1}}
-\DeclareOptionX{supscale}{\renewcommand*{\zplsups@scaledval}{#1}}
-\DeclareOptionX{supsraised}{\renewcommand*{\zplsups@raised}{#1}}
-\DeclareOptionX{supLspaced}{\renewcommand*{\zplsups@Lspaced}{#1}}
-\DeclareOptionX{supRspaced}{\renewcommand*{\zplsups@Rspaced}{#1}}
-
-% Other options
-\DeclareOptionX{defaultsups}[true]{%
-\@nameuse{zpl@defaultsups#1}
-}
-\DeclareOptionX{babel}[true]{%
-\@nameuse{zpl@babel#1}% for backward compatibility
-}
-\DeclareOptionX{largesc}[true]{%
-\@nameuse{zpl@largesc#1}
-}
-\DeclareOptionX{nohelv}[true]{%
-\@nameuse{if#1}\zpl@helvfalse\fi}%
-
-\def\zpl@helvratio{.94}
-\DeclareOptionX{helvratio}[0.94]{%
-\def\zpl@helvratio{#1}
-}
-\def\zpl@spcmag{1}
-\def\zpl@spc{.25em}
-\def\zpl@stretch{.2em}
-\def\zpl@shrink{.1em}
-\def\zpl@nospc{T}
-
-\DeclareOptionX{spcfactor}{%
-\def\zpl@spcmag{#1}\def\zpl@nospc{F}
-}
-\DeclareOptionX{spacing}{%
-\def\zpl@spc{#1}
-}
-\DeclareOptionX{stretch}{%
-\def\zpl@stretch{#1}
-}
-\DeclareOptionX{shrink}{%
-\def\zpl@shrink{#1}
-}
-\newcount\zpl@cnt \zpl@cnt=0
-\newif\ifzpl@zeroslash
-\newif\ifzpl@notextnu
-\def\zpl@thmlin{X} % default is to not change to lining
-\def\zpl@noti{T}\def\zpl@nolo{T}
-\DeclareOptionX{oldSS}{\advance\zpl@cnt 32 }
-\DeclareOptionX{notextnu}{\zpl@notextnutrue}
-\DeclareOptionX{slashedzero}{\zpl@zeroslashtrue}
-\DeclareOptionX{theoremfont}{\zpl@thrmtrue }
-\DeclareOptionX{thmlining}{\edef\zpl@thmlin{l}}
-\DeclareOptionX{trueslanted}{\zpl@sltrue}
-\DeclareOptionX{scosf}{\zpl@scosftrue}
-\DeclareOptionX{tighter}{%
-\gdef\zpl@spc{.25em}\gdef\zpl@stretch{.125em}%
-\gdef\zpl@shrink{.1em}\def\zpl@noti{F}}
-\DeclareOptionX{looser}{%
-\gdef\zpl@spc{.3em}\gdef\zpl@stretch{.2em}%
-\gdef\zpl@shrink{.1em}\def\zpl@nolo{F}}
-
-\DeclareOptionX{sfracvcenter}{%
-\def\zpl@sfrVC{#1}}
-\DeclareOptionX{sfracvspacing}{%
-\def\zpl@sfrVS{#1}}
-\DeclareOptionX{sfracbarthick}{%
-\def\zpl@sfrTH{#1}}
-\DeclareOptionX{sfracscaling}{%
-\def\zpl@sfrSC{#1}}
-
-\ProcessOptionsX\relax
-
-\setlength{\zplsups@raise}{\zplsups@raised}
-\setlength{\zplsups@scale}{\zplsups@scaledval\p@}
-\zplsups@scale=\zpl@scale\zplsups@scale %
-\def\zplsups@scaled{s*[\strip@pt\zplsups@scale]}
-% for stacked fractions
-\@ifundefined{zpl@xht}{\def\zpl@xht{460}}{} % lowercase letters
-\@ifundefined{zpl@deht}{\def\zpl@deht{412}}{} % denominator figures ht
-\@ifundefined{zpl@nubase}{\def\zpl@nubase{270}}{} % baseline of numerators
-\@ifundefined{zpl@debase}{\def\zpl@debase{0}}{} % baseline of denoms
-\@ifundefined{zpl@sfrVC}{\def\zpl@sfrVC{335}}{}% vertical center of sfrac
-\@ifundefined{zpl@sfrVS}{\def\zpl@sfrVS{106}}{} % space above/below bar
-\@ifundefined{zpl@sfrTH}{\def\zpl@sfrTH{52}}{} % bar thickness
-\@ifundefined{zpl@sfrSC}{\def\zpl@sfrSC{.9}}{} % scale defigures by this
-
-\def\re@DeclareTextSymbol#1#2#3{%
- \let#1=\undefined
- \DeclareTextSymbol{#1}{#2}{#3}}
-
-\ifzpl@otf
- \ifzpl@nomath
- \RequirePackage[no-math]{fontspec}
- \else
- \RequirePackage{fontspec}
- \fi
-
- %\ifxetex\XeTeXtracingfonts=1\fi % causing unwanted warnings in Tectonic system
-
- \ifluatex % avoid possibly uncorrected "system" fonts
- \directlua{fonts.names.set_location_precedence{
- "local", "texmf", "system" }}
- \fi
- \def\zpl@base{TeXGyrePagellaX}
- \ifzpl@scosf
- \AtBeginDocument{%
- \xpretocmd{\scshape}
- {\addfontfeatures{Numbers=OldStyle}}
- {}{}%
- }%
- \fi
-
-
- \newcommand{\textfrac}[3][]{{%\normalfont%
-\mbox{%
- \ifthenelse{\not\equal{#1}{}}%Test for integer portion [optional #1]
- {{\lfstyle#1}\kern.1em}{}%
-\addfontfeatures{RawFeature=+numr}#2\char"2044% numerator
-\addfontfeatures{RawFeature=-numr;+dnom;+ss20}\char"2044{}#3%
-}}}
-
-\else % type1
- \ifzpl@scosf
- \AtBeginDocument{%
- \xpretocmd{\scshape}
- {\fontfamily{zpl\zpl@figurealign osf}}
- {}{}%
- }%
- \fi%
-% for possible use in footnote markers
-% \DeclareFontFamily{OT1}{zplsups}{}%
-% \DeclareFontShape{OT1}{zplsups}{m}{n}{%
-% <-> \zplsups@scaled zplsups-Regular-ot1
-%}{}
-% \DeclareFontFamily{T1}{zplsups}{}%
-% \DeclareFontShape{T1}{zsups}{m}{n}{%
-% <-> \zplsups@scaled zplsups-Regular-t1
-%}{}
-% \DeclareFontFamily{TS1}{zsups}{}%
-% \DeclareFontShape{TS1}{zsups}{m}{n}{%
-% <-> \zplsups@scaled zplsups-Regular-ts1
-%}{}
-\DeclareRobustCommand{\supstyle}{%
- \not@math@alphabet\supstyle\relax
- \usefont{\f@encoding}{zplsups}{m}{n}}
-
-\ifdim\zplsups@raise=\z@
- \DeclareRobustCommand{\textsups}[1]{{\supstyle#1}}
-\else
- \DeclareRobustCommand{\textsups}[1]{%
- \raisebox{\zplsups@raise}{\hbox{{\supstyle#1}}}}
-\fi
-
-\RequirePackage{fontaxes}
- \fa@naming@exception{figures}{{superior}{proportional}}{sups}
- \fa@naming@exception{figures}{{superior}{tabular}}{sups}
-% \def\sufigures{\@nomath\sufigures
-% \fontfigurestyle{superior}\selectfont}
-% \let\sustyle=\sufigures
-% \DeclareTextFontCommand{\textsu}{\sufigures}
-% \let\textsuperior\textsu
- \DeclareRobustCommand{\sustyle}{%
- \not@math@alphabet\sustyle\relax
- \fontfamily{zplsups}\selectfont}
- \let\sufigures=\sustyle
- \let\nustyle=\sustyle
- \let\nufigures=\sustyle
-
- \fa@naming@exception{figures}{{inferior}{proportional}}{inf}
- \fa@naming@exception{figures}{{inferior}{tabular}}{inf}
-% \def\infigures{\@nomath\infigures
-% \fontfigurestyle{inferior}\selectfont}
-% \let\instyle=\infigures
-% \DeclareTextFontCommand{\textinf}{\infigures}
-% \let\textinferior\textinf
- \DeclareRobustCommand{\instyle}{%
- \not@math@alphabet\instyle\relax
- \fontfamily{zplsubs}\selectfont}
- \let\infigures=\instyle
-
- \fa@naming@exception{figures}{{denominators}{proportional}}{dnom}
- \fa@naming@exception{figures}{{denominators}{tabular}}{dnom}
-% \def\defigures{\@nomath\defigures
-% \fontfamily{defigures}\selectfont}
-% \DeclareTextFontCommand{\textde}{\defigures}
-% \let\textdenominators\textde
- \DeclareRobustCommand{\destyle}{%
- \not@math@alphabet\destyle\relax
- \fontfamily{zpldnom}\selectfont}
- \let\defigures=\destyle
-
- \fa@naming@exception{figures}{{numerators}{proportional}}{numr}
- \fa@naming@exception{figures}{{numerators}{tabular}}{numr}
-% \def\defigures{\@nomath\nufigures
-% \fontfigurestyle{numerators}\selectfont}
-% \let\nustyle=\nufigures
-% \DeclareTextFontCommand{\textnu}{\nufigures}
-% \let\textnumerators\textnu
- \DeclareRobustCommand{\nustyle}{%
- \not@math@alphabet\nustyle\relax
- \fontfamily{zplnumr}\selectfont}
- \let\nufigures=\nustyle
-
-\newcommand{\textfrac}[3][]{% like \textfrac[1]{7}{8}
- \mbox{%
- \ifthenelse{\not\equal{#1}{}}%Test for integer portion [optional #1]
- {\textlf{#1}\kern.1em}{}%
- {\nustyle#2}% numerator
- \StrRight{#2}{1}[\@digit@]%
- % look for 1, 2, 6, 7
- \ifcase\@digit@% 0
- \or%\kern.03em% 1
- \or\kern.04em% 2
- \or%\kern-.01em% 3
- \or%\kern.02em% 4
- \or%\kern.01em% 5
- \or\kern.01em% 6
- \or\kern-.11em% 7
- \or%\kern-.11em% 8
- \or\kern-.02em% 9
- \fi%
-% \kern\zpl@foresolidus{\fontencoding{TS1}\selectfont\char"2F}%
-% \kern\zpl@aftsolidus%
- {\fontencoding{TS1}\selectfont\char"2F}%
- \StrLeft{#3}{1}[\@digit@]%
- % look for 1, 4, 7
- \ifcase\@digit@% 0
- \or%\kern -.02em% 1
- \or% 2
- \or% 3
- \or\kern -.05em% 4
- \or% 5
- \or\kern-.02em% 6
- \or\kern .01em% 7
- \fi%
- {\destyle #3}% denominator [#3]
- }%mbox
-} % textfrac
-\fi
-
-\let\orig@footnote=\thefootnote
-\let\orig@makefnmark=\@makefnmark
-\def\bfseries@rm{b}
-\def\mdseries@rm{m}
-\def\useosf{\zpl@liningfalse}
-\@onlypreamble\useosf
-\def\useproportional{\zpl@tabularfalse}
-\@onlypreamble\useproportional
-
-\ifzpl@otf
- \def\zpl@dflt{}
- \ifzpl@zeroslash\edef\zpl@dflt{Numbers = SlashedZero ,
- }\fi
- \if T\zpl@nospc
- \if F\zpl@noti\def\zpl@spcmag{{1,.625,1}}\def\zpl@nospc{F}\fi
- \if F\zpl@nolo\def\zpl@spcmag{{1.2,1,1}}\def\zpl@nospc{F}\fi
- \fi
- \if F\zpl@nospc
- \edef\zpl@dflt{\zpl@dflt WordSpace = \zpl@spcmag ,
- }
- \fi
- \def\zpl@scraw{pcap}\def\zpl@scrawN{smcp}
- \ifzpl@largesc\def\zpl@scraw{smcp}\def\zpl@scrawN{pcap}\fi
-
- %\zpl@cnt will be 0..2^8-1
- \edef\zpl@lst{}
- \ifnum\zpl@cnt>127 \edef\zpl@lst{8}\advance\zpl@cnt -128 \fi
- \ifnum\zpl@cnt>63 \edef\zpl@lst{7,\zpl@lst}\advance\zpl@cnt -64 \fi
- \ifnum\zpl@cnt>31 \edef\zpl@lst{6,\zpl@lst}\advance\zpl@cnt -32 \fi
- \ifnum\zpl@cnt>15 \edef\zpl@lst{5,\zpl@lst}\advance\zpl@cnt -16 \fi
- \ifnum\zpl@cnt>7 \edef\zpl@lst{4,\zpl@lst}\advance\zpl@cnt -8 \fi
- \ifnum\zpl@cnt>3 \edef\zpl@lst{3,\zpl@lst}\advance\zpl@cnt -4 \fi
- \ifnum\zpl@cnt>1 \edef\zpl@lst{2,\zpl@lst}\advance\zpl@cnt -2 \fi
- \ifnum\zpl@cnt>0 \edef\zpl@lst{1,\zpl@lst}\fi
- \ifthenelse{\not\equal{\zpl@lst}{}}
- {\edef\zpl@dflt{\zpl@dflt StylisticSet={\zpl@lst} ,
- }}{}
-
- \defaultfontfeatures{
- Ligatures = TeX ,
- Scale = \zpl@scale ,
- Extension = .otf ,
- SmallCapsFeatures={\ifzpl@scosf Numbers = OldStyle ,
- \fi RawFeature = -\zpl@scrawN;+\zpl@scraw }
- \ifluatex Renderer=Basic\fi ,
- \zpl@dflt ,
- RawFeature=-ss05 ,
- \zpl@defaultfeatures
- }
-
-\else % type1
- \def\zpl@spacing{%
- \fontdimen2\font=\zpl@spc
- \fontdimen3\font=\zpl@stretch
- \fontdimen4\font=\zpl@shrink}
- \@tempdima=\zpl@scale\p@\@tempdima=\zpl@helvratio\@tempdima%
- \edef\qhv@scale{\strip@pt\@tempdima}
- \def\zpl@scaled{s*[\zpl@scale]}% used in fd files
-
-
- \DeclareRobustCommand{\lfstyle}{%
- \not@math@alphabet\lfstyle\relax
- \fontfamily{zplLF}\selectfont %
- }
- \DeclareRobustCommand{\tlfstyle}{%
- \not@math@alphabet\tlfstyle\relax
- \fontfamily{zplTLF}\selectfont %
- }
- \DeclareRobustCommand{\osfstyle}{%
- \not@math@alphabet\osfstyle\relax
- \fontfamily{zplOsF}\selectfont %
- }
- \DeclareRobustCommand{\tosfstyle}{%
- \not@math@alphabet\tosfstyle\relax
- \fontfamily{zplTOsF}\selectfont %
- }
- \ifzpl@defaultsups %
- \else
- \ExplSyntaxOn
- \DeclareDocumentCommand \fakesuperscript {m} {
- \@textsuperscript{\selectfont#1}
- }
- \RenewDocumentCommand \textsuperscript {s} {
- \IfBooleanTF #1 \fakesuperscript \realsuperscript
- }
- \DeclareDocumentCommand \realsuperscript {m} {
- \ifzpl@defaultsups\fakesuperscript{#1}
- \else\hspace*{\zplsups@Lspaced}\textsups{#1}\hspace*{\zplsups@Rspaced}\fi
- }
-
- \cs_set:Npn \@makefnmark {
- \mbox{%
- \footnotemarkfont\textsuperscript{\@thefnmark}}
- }
- \cs_if_exist:NTF \ftntm@font
- {
- \cs_new:Npn \footnotemarkfont {\normalfont \ftntm@font}
- }
- {
- \cs_new:Npn \footnotemarkfont {\normalfont}
- }
- \ExplSyntaxOff
- \fi
-% \ifzpl@KOMA
-% \let\textsuperscript\sustyle
-% \setkomafont{footnotelabel}{\textsuperscript}
-% \setkomafont{footnotereference}{\textsuperscript}
-% \else % NOT KOMA
-% \def\f@@tn@te{footnote}
-% \def\@makefnmark{%
-% \ifx\@mpfn\f@@tn@te%
-% \ifx\thefootnote\orig@footnote%
-% \hbox{\sustyle\hspace*{.05em}\@thefnmark\hspace*{.05em}}%
-% \else%
-% \orig@makefnmark%
-% \fi
-% \else%
-% \orig@makefnmark%
-% \fi}%
-% \fi
-% \fi
- \ifzpl@helv\renewcommand*{\sfdefault}{qhv}\fi
- \renewcommand*{\ttdefault}{npxtt}
- \DeclareRobustCommand\thfamily % new family for theorem font
- {\not@math@alphabet\thfamily\relax
- \fontfamily\thdefault\selectfont}
- \DeclareRobustCommand{\textth}[1]{%
- {\thfamily #1}%
- }
- \let\textthit\textth
-
-\fi % type1
-
-\ifzpl@thrm
- %\RequirePackage{amsmath,amsthm} % in case of theoremfont
- \ifdefined\newtheoremstyle %amsthm and ntheorem, not theorem.sty
- \@ifpackageloaded{ntheorem}\relax{%
- \newtheoremstyle{plain}
- {\medskipamount} % ABOVESPACE, was \topsep
- {\medskipamount} % BELOWSPACE, was \topsep
- {\thfamily} % BODYFONT--\thfamily is italic with upright figures and punctuation
- {} % INDENT (empty value is the same as 0pt)
- {\bfseries} % HEADFONT--you may want to add \tlfstyle so the number is tab lining, regardless of text figure selection
- {.} % HEADPUNCT
- {5pt plus 1pt minus 1pt} % HEADSPACE
- {} % CUSTOM-HEAD-SPEC\newtheorem{thm}{Theorem}[section]
- } % end @ifpackageloaded
- \fi%
-\fi%}
-
-\ifzpl@otf
- \DeclareTextFontCommand{\textsl}{\slshape}
- \DeclareTextFontCommand{%
- \osfstyle}{\addfontfeatures{Numbers={Proportional,OldStyle}}}
- \DeclareTextFontCommand{%
- \tosfstyle}{\addfontfeatures{Numbers={Tabular,OldStyle}}}
- \DeclareTextFontCommand{%
- \tlfstyle}{\addfontfeatures{Numbers={Tabular,Lining}}}
- \DeclareTextFontCommand{%
- \lfstyle}{\addfontfeatures{Numbers={Proportional,Lining}}}
-
- \DeclareRobustCommand{\destyle}{%
- \not@math@alphabet\destyle\relax
- \addfontfeatures{VerticalPosition=Denominator}%
- }
- \DeclareRobustCommand{\nustyle}{%
- \not@math@alphabet\nustyle\relax
- \addfontfeatures{VerticalPosition=Numerator}%
- }
- \DeclareRobustCommand{\sustyle}{%
- \not@math@alphabet\sustyle\relax
- \addfontfeatures{VerticalPosition=Superior}%
- }
- \DeclareRobustCommand{\infstyle}{%
- \not@math@alphabet\infstyle\relax
- \addfontfeatures{VerticalPosition=Inferior}%
- }
-
- \let\sufigures\sustyle
- \let\nufigures\nustyle
- \let\infigures\infstyle
- \let\defigures\destyle
-
- \ifzpl@defaultsups %
- \else
- \RequirePackage{realscripts}
- \renewcommand\footnotemarkfont{\normalfont\sufigures}
- \fi
- \ifzpl@KOMA
- \setkomafont{footnotereference}{\normalfont\sustyle}
- \setkomafont{footnotelabel}{\normalfont\sustyle}
- \fi
-
- \renewcommand*{\textcircled}[1]{\hmode@bgroup\ooalign{%
- \hfil \raise -.255ex\hbox{{%
- \normalfont\addfontfeatures{Numbers={Monospaced, Lining}}%
- \scalefont{.8}{\sustyle#1}}}% end hbox
- \hfil \crcr \symbol{"25EF}}%
- \egroup}
-\else % type1
- \renewcommand*{\textcircled}[1]{\hmode@bgroup\ooalign{%
- \hfil \raise -.15ex\hbox{{%
- \normalfont
- {\scalefont{.8}\sustyle#1}}}% end hbox
- \hfil \crcr \textbigcircle}%
- \egroup}
-\fi
-
-% applies to both
-\DeclareRobustCommand{\textlf}[1]{%
- {\lfstyle #1}%
-}
-\DeclareRobustCommand{\texttlf}[1]{%
- {\tlfstyle #1}%
-}
-\DeclareRobustCommand{\textosf}[1]{%
- {\osfstyle #1}%
-}
-\DeclareRobustCommand{\texttosf}[1]{%
- {\tosfstyle #1}%
-}
-%\DeclareRobustCommand{\textsu}[1]{%
-% {\sustyle #1}%
-%}
-\DeclareTextFontCommand{\textsu}{\sustyle}
- %\let\textsuperior\textsu
-\let\textsup\textsu
- \let\textsups\textsu
-\DeclareTextFontCommand{\textnumerator}{\nustyle}
- \ifzpl@notextnu\else\let\textnu=\textnumerator\fi
- \let\textnum\textnumerator
-\DeclareTextFontCommand{\textde}{\destyle}
- \let\textdenominator\textde
-\DeclareTextFontCommand{\textinf}{\instyle}
- \let\textinferior\textinf
-
-\newdimen\zpl@sixem\zpl@sixem6pt % for checking if a number refers to ex
-\newdimen\zpl@y \newdimen\zpl@x
-
-% convert numerical entry that may be multiple of ex (<6) or em value
-\def\zpl@toex#1{\zpl@x#1pt \ifdim\zpl@x<\z@\zpl@y-\zpl@x\else\zpl@y\zpl@x\fi \ifdim\zpl@y>\zpl@sixem \zpl@x\dimexpr
- 1pt * (\dimexpr #1pt\relax) / \dimexpr \zpl@xht pt\relax\relax\fi}
-
-\newdimen\zpl@tmpdima \newdimen\zpl@tmpdimb \newdimen\zpl@tmpdimc
-\newdimen\zpl@tmpdimd \newdimen\zpl@tmpdime \newdimen\zpl@tmpdimf
-\newdimen\zpl@dimA
-\newdimen\zpl@dimAA \newdimen\zpl@dimB \newdimen\zpl@dimBB
-\newdimen\zpl@dimC % vertical center
-% double cap letters for below bar, single cap for above
-
-\zpl@toex\zpl@sfrVC\zpl@dimC\zpl@x %Vertical center of fraction
-\zpl@toex\zpl@sfrTH\zpl@tmpdimb\zpl@x % bar thickness
-\zpl@tmpdime.5\zpl@tmpdimb % half bar thickness
-\zpl@toex\zpl@sfrVS\zpl@tmpdimc\zpl@x% vertical space
-\zpl@toex\zpl@deht\zpl@tmpdimd\zpl@x % height of unscaled figures
-\zpl@tmpdimd\zpl@sfrSC\zpl@tmpdimd % height of scaled figures
-\zpl@toex\zpl@debase\zpl@tmpdimf\zpl@x % unscaled baseline of de figures
-\zpl@toex\zpl@nubase\zpl@tmpdima\zpl@x % unscaled baseline of nu figures
-\zpl@tmpdima\zpl@sfrSC\zpl@tmpdima % scaled nu baseline
-\zpl@tmpdimf\zpl@sfrSC\zpl@tmpdimf % scaled de baseline
-\zpl@dimA\zpl@dimC
-\advance\zpl@dimA by \zpl@tmpdime % top of bar
-\zpl@dimAA\zpl@dimC
-\advance\zpl@dimAA by -\zpl@tmpdime % bottom of bar
-\zpl@dimB\zpl@dimA
-\advance\zpl@dimB by \zpl@tmpdimc % top figure baseline
-\advance\zpl@dimB by -\zpl@tmpdima
-\zpl@dimBB\zpl@dimAA
-\advance\zpl@dimBB by -\zpl@tmpdimc %
-\advance\zpl@dimBB by -\zpl@tmpdimd % bottom figure baseline
-\advance\zpl@dimBB by -\zpl@tmpdimf
-\newcommand*{\textsfrac}[3][]{% like \textsfrac[1]{23}{34}
-\mbox{%
- \ifthenelse{\not\equal{#1}{}}%Test for integer portion [optional #1]
- {\textlf{#1}\kern.12em}{}%
- {\hmode@bgroup%
-\ooalign{%
- \setbox0=\hbox{\scalefont{\zpl@sfrSC}\nustyle#2}%
- \hfil \raise\strip@pt\zpl@dimB ex\box0\hfil \crcr%
- \leaders\hrule height \strip@pt\zpl@dimA ex depth -\strip@pt\zpl@dimAA ex\hfill \crcr%
- \setbox1=\hbox{\scalefont{\zpl@sfrSC}\destyle#3}%
- \hfil\raise\strip@pt\zpl@dimBB ex\box1\hfil}%
-\egroup}}
-}
-
-\AtEndPreamble{%
-\ifzpl@otf
- \ifzpl@lining
- \def\zpl@figurestyle{Lining}
- \else
- \def\zpl@figurestyle{OldStyle}
- \fi
- \ifzpl@tabular
- \def\zpl@figurealign{Monospaced}
- \else
- \def\zpl@figurealign{Proportional}
- \fi
-% \ifzpl@scosf
-% %\traceon
-% \setmainfont
-% [Numbers = {\zpl@figurealign,\zpl@figurestyle},
-% SmallCapsFeatures = { Letters=SmallCaps , Numbers = OldStyle }
-% ] {\zpl@base}
-%% \traceoff
-% \else
-% \setmainfont
-% [Numbers = {\zpl@figurealign,\zpl@figurestyle}
-% SmallCapsFeatures = { Letters=SmallCaps , }
-% ] {\zpl@base}
-% \fi
- \setmainfont
- [Numbers = {Proportional , Lining },
- SmallCapsFeatures = { Letters = SmallCaps , Numbers = OldStyle }
- ] {TeXGyrePagellaX}
-
-
-% \let\zpl@sty\zpl@figurestyle
-% \if l\zpl@thmlin\def\zpl@sty{Lining}\fi
-% \newcommand{\thfamily}%{\@nameuse{zpl\zpl@figurestyle}%
-% {\addfontfeatures{%
-% Numbers={\zpl@figurealign,\zpl@sty} ,
-% RawFeature=+ss05}
-% \itshape} % for theorems
-% \ifzpl@sl\else\let\slshape=\thfamily\fi % change
-
-\else % type1
- \ifzpl@lining
- \def\zpl@figurestyle{lf}
- \else
- \def\zpl@figurestyle{osf}
- \fi
- \ifzpl@tabular
- \def\zpl@figurealign{t}
- \else
- \def\zpl@figurealign{}
- \fi
-
- \renewcommand*{\rmdefault}{zpl\zpl@figurealign%
- \zpl@figurestyle}
- \let\familydefault\rmdefault
-
- % use OsF in small caps
-
- \def\zpl@thfigurestyle{\zpl@figurestyle}
- \ifx\zpl@figurestyle\zpl@dfltfigurestyle
- \def\zpl@thfigurestyle{tlf}
- \else
- \def\zpl@thfigurestyle{osf}
- \fi % there just two possible figure styles for the theorem font
- \newcommand*{\thdefault}{zplth-\zpl@thfigurestyle}
- \normalfont
-\fi % type1
-% both
-\ifzpl@KOMA
- %\let\textsuperscript\textsu
- \@ifpackageloaded{AB@authnote}{%
- \renewcommand\AB@authnote[1]{\textsu{#1}}
- \renewcommand\AB@affilnote[1]{\textsu{#1}}
- }
-\fi
-%both
-\ifzpl@thrm
- \@ifundefined{theoremstyle}{}{
- \theoremstyle{plain}
- \patchcmd{\th@plain}{\itshape}{\thfamily}{\message{Replaced itshape by thfamily in theorem style plain.}}{\message{Unable to replace itshape by thfamily in theorem style plain.}}
-}
-\fi
-}
-
-% Define \oldstylenums, \liningnums ,\tabularnums and \proportionalnums
-\ifzpl@otf
- \DeclareTextFontCommand{%
- \oldstylenums}{\addfontfeatures{Numbers=OldStyle}}
- \DeclareTextFontCommand{%
- \liningnums}{\addfontfeatures{Numbers=Lining}}
- \DeclareTextFontCommand{%
- \tabularnums}{\addfontfeatures{Numbers=Tabular}}
- \DeclareTextFontCommand{%
- \proportionalnums}{\addfontfeatures{Numbers=Proportional}}
-\else % type1
- \DeclareTextFontCommand{%
- \oldstylenums}{\fontfamily{zpl\zpl@figurealign OsF}\selectfont }
- \DeclareTextFontCommand{%
- \liningnums}{\fontfamily{zpl\zpl@figurealign LF}\selectfont }
- \DeclareTextFontCommand{%
- \tabularnums}{\fontfamily{zplT\zpl@figurestyle}\selectfont }
- \DeclareTextFontCommand{%
- \proportionalnums}{\fontfamily{zpl\zpl@figurestyle}\selectfont }
- \re@DeclareTextSymbol{\textdollar}{OT1}{36}
-\fi
-
-\endinput
-
diff --git a/fonts/newpx/tex/newpxtextX.sty b/fonts/newpx/tex/newpxtextX.sty
deleted file mode 100644
index b2f46f3c67..0000000000
--- a/fonts/newpx/tex/newpxtextX.sty
+++ /dev/null
@@ -1,506 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}
-
-% Based originally on Young Ryu's pxfonts.sty, v.1.1.1
-%
-% Changes from original pxfonts.sty by Michael Sharpe, msharpe at ucsd dot edu;
-% Text and math versions now separate.
-% Added scaled keyword and osf option;
-% Text is now directed to an extension of TeXGyrePagella rather than ppl.
-% 1.5 is the first version of newpxtext to support both [pdf]latex and unicode latex.
-
-\def\fileversion{1.523X}
-\def\filedate{2023/10/02}
-\ProvidesPackage{newpxtextX}[%
-\filedate\space v\fileversion (Michael Sharpe) latex and unicode latex support for TeXGyrePagellaX]
-
-\message{`newpxtextX' v\fileversion, \filedate\space Text macros taking advantage of TeXGyre Pagella and its extensions (msharpe)}
-
-\RequirePackage[T1]{fontenc}
-
-\RequirePackage{xpatch} % need to patch \scshape
-\RequirePackage{iftex,xkeyval,etoolbox,textcomp}
-\RequirePackage{xstring,ifthen,scalefnt} % for \textfrac
-
-% Engine check
-\newif\ifzpl@otf
-\iftutex\zpl@otftrue
-\else
- \endinput
-\fi
-%%%%%%%%%%%%%%%%%%
- \RequirePackage{xkeyval}
-%%%% Start Options
-\newif\ifzpl@nomath\zpl@nomathfalse % load fontspec with no-math
-\newif\ifzpl@lining\zpl@liningtrue
-\newif\ifzpl@tabular\zpl@tabulartrue % default is tabular lining figures
-\@ifundefined{ver@newpxmath.sty}{}{\zpl@nomathtrue}
-
-\DeclareOptionX{type1}[true]{%
-%\@nameuse{if#1}\zpl@otffalse\fi
-}
-\DeclareOptionX{nofontspec}[true]{%
-%\@nameuse{if#1}\zpl@otffalse\fi
-}
-\DeclareOptionX{no-math}[true]{%
-\@nameuse{if#1}\zpl@nomathtrue\fi
-}
-
-\def\zpl@defaultfeatures{}
-\DeclareOptionX{defaultfeatures}{\def\zpl@defaultfeatures{#1}}
-
-%Figure style options
-\edef\zpl@dfltfigurestyle{lf}
-\edef\zpl@dfltfigurealign{t}
-
-\DeclareOptionX{lining}[true]{%
-\@nameuse{zpl@lining#1}
-}
-\DeclareOptionX{lf}[true]{%
-\@nameuse{zpl@lining#1}
-}
-\DeclareOptionX{oldstyle}[true]{%
-\@nameuse{if#1}%
- \zpl@liningfalse
-\else
- \zpl@liningtrue
-\fi
-}
-\DeclareOptionX{osf}[true]{%
-\@nameuse{if#1}%
- \zpl@liningfalse
-\else
- \zpl@liningtrue
-\fi
-}
-\DeclareOptionX{tabular}[true]{%
-\@nameuse{zpl@tabular#1}
-}
-\DeclareOptionX{t}[true]{%
-\@nameuse{zpl@tabular#1}
-}
-\DeclareOptionX{proportional}[true]{%
-\@nameuse{if#1}%
- \zpl@tabularfalse
-\else
- \zpl@tabulartrue
-\fi
-}
-\DeclareOptionX{p}[true]{%
-\@nameuse{if#1}%
- \zpl@tabularfalse
-\else
- \zpl@tabulartrue
-\fi
-}
-
-%Scale
-\providecommand{\zpl@scale}{1} % actual scaled command in \zpl@scaled
-\DeclareOptionX{scale}{\def\zpl@scale{#1}}
-\DeclareOptionX{scaled}{\def\zpl@scale{#1}}
-
-\newif\ifzpl@defaultsups
-%\newif\ifzpl@adobesc % we don't use this exc. in fd, but may in future
-\newif\ifzpl@scosf
-\newif\ifzpl@largesc
-\newif\ifzpl@helv \zpl@helvtrue % default is to load helvetica as sans serif font
-\newif\ifzpl@thrm
-\newif\ifzpl@sl
-% new sups options
-\newdimen\zplsups@scale
-\newdimen\zplsups@raise
-\def\zplsups@raised{\z@}
-\def\zplsups@Lspaced{.04em}
-\def\zplsups@Rspaced{.04em}
-\def\zplsups@scaledval{1.0}
-\def\zplsups@supscale{1.0}
-\DeclareOptionX{supscaled}{\renewcommand*{\zplsups@scaledval}{#1}}
-\DeclareOptionX{supscale}{\renewcommand*{\zplsups@scaledval}{#1}}
-\DeclareOptionX{supsraised}{\renewcommand*{\zplsups@raised}{#1}}
-\DeclareOptionX{supLspaced}{\renewcommand*{\zplsups@Lspaced}{#1}}
-\DeclareOptionX{supRspaced}{\renewcommand*{\zplsups@Rspaced}{#1}}
-
-% Other options
-\DeclareOptionX{defaultsups}[true]{%
-\@nameuse{zpl@defaultsups#1}
-}
-\DeclareOptionX{babel}[true]{%
-\@nameuse{zpl@babel#1}% for backward compatibility
-}
-\DeclareOptionX{largesc}[true]{%
-\@nameuse{zpl@largesc#1}
-}
-\DeclareOptionX{nohelv}[true]{%
-\@nameuse{if#1}\zpl@helvfalse\fi}%
-
-\def\zpl@helvratio{.94}
-\DeclareOptionX{helvratio}[0.94]{%
-\def\zpl@helvratio{#1}
-}
-\def\zpl@spcmag{1}
-\def\zpl@spc{.25em}
-\def\zpl@stretch{.2em}
-\def\zpl@shrink{.1em}
-\def\zpl@nospc{T}
-
-\DeclareOptionX{spcfactor}{%
-\def\zpl@spcmag{#1}\def\zpl@nospc{F}
-}
-\DeclareOptionX{spacing}{%
-\def\zpl@spc{#1}
-}
-\DeclareOptionX{stretch}{%
-\def\zpl@stretch{#1}
-}
-\DeclareOptionX{shrink}{%
-\def\zpl@shrink{#1}
-}
-\newcount\zpl@cnt \zpl@cnt=0
-\newif\ifzpl@zeroslash
-\newif\ifzpl@notextnu
-\def\zpl@thmlin{X} % default is to not change to lining
-\def\zpl@noti{T}\def\zpl@nolo{T}
-\DeclareOptionX{oldSS}{\advance\zpl@cnt 32 }
-\DeclareOptionX{notextnu}{\zpl@notextnutrue}
-\DeclareOptionX{slashedzero}{\zpl@zeroslashtrue}
-\DeclareOptionX{theoremfont}{\zpl@thrmtrue }
-\DeclareOptionX{thmlining}{\edef\zpl@thmlin{l}}
-\DeclareOptionX{trueslanted}{\zpl@sltrue}
-\DeclareOptionX{scosf}{\zpl@scosftrue}
-\DeclareOptionX{tighter}{%
-\gdef\zpl@spc{.25em}\gdef\zpl@stretch{.125em}%
-\gdef\zpl@shrink{.1em}\def\zpl@noti{F}}
-\DeclareOptionX{looser}{%
-\gdef\zpl@spc{.3em}\gdef\zpl@stretch{.2em}%
-\gdef\zpl@shrink{.1em}\def\zpl@nolo{F}}
-
-\DeclareOptionX{sfracvcenter}{%
-\def\zpl@sfrVC{#1}}
-\DeclareOptionX{sfracvspacing}{%
-\def\zpl@sfrVS{#1}}
-\DeclareOptionX{sfracbarthick}{%
-\def\zpl@sfrTH{#1}}
-\DeclareOptionX{sfracscaling}{%
-\def\zpl@sfrSC{#1}}
-
-\ProcessOptionsX\relax
-
-\setlength{\zplsups@raise}{\zplsups@raised}
-\setlength{\zplsups@scale}{\zplsups@scaledval\p@}
-\zplsups@scale=\zpl@scale\zplsups@scale %
-\def\zplsups@scaled{s*[\strip@pt\zplsups@scale]}
-% for stacked fractions
-\@ifundefined{zpl@xht}{\def\zpl@xht{460}}{} % lowercase letters
-\@ifundefined{zpl@deht}{\def\zpl@deht{412}}{} % denominator figures ht
-\@ifundefined{zpl@nubase}{\def\zpl@nubase{270}}{} % baseline of numerators
-\@ifundefined{zpl@debase}{\def\zpl@debase{0}}{} % baseline of denoms
-\@ifundefined{zpl@sfrVC}{\def\zpl@sfrVC{335}}{}% vertical center of sfrac
-\@ifundefined{zpl@sfrVS}{\def\zpl@sfrVS{106}}{} % space above/below bar
-\@ifundefined{zpl@sfrTH}{\def\zpl@sfrTH{52}}{} % bar thickness
-\@ifundefined{zpl@sfrSC}{\def\zpl@sfrSC{.9}}{} % scale defigures by this
-
-\def\re@DeclareTextSymbol#1#2#3{%
- \let#1=\undefined
- \DeclareTextSymbol{#1}{#2}{#3}}
-
-\ifzpl@otf
- \ifzpl@nomath
- \RequirePackage[no-math]{fontspec}
- \else
- \RequirePackage{fontspec}
- \fi
-
- \ifluatex % avoid possibly uncorrected "system" fonts
- \directlua{fonts.names.set_location_precedence{
- "local", "texmf", "system" }}
- \fi
- \def\zpl@base{TeXGyrePagellaX}
-% \ifzpl@scosf
-% \AtEndPreamble{%
-% \xpretocmd{\scshape}
-% {\addfontfeatures{ Numbers = OldStyle }}
-% {}{}%
-% }%
-% \fi
-
-
- \newcommand{\textfrac}[3][]{{%\normalfont%
-\mbox{%
- \ifthenelse{\not\equal{#1}{}}%Test for integer portion [optional #1]
- {{\lfstyle#1}\kern.1em}{}%
-\addfontfeatures{RawFeature=+numr}#2\char"2044% numerator
-\addfontfeatures{RawFeature=-numr;+dnom;+ss20}\char"2044{}#3%
-}}}
-
-\else % type1
-\fi
-
-\def\useosf{\zpl@liningfalse}
-\@onlypreamble\useosf
-\def\useproportional{\zpl@tabularfalse}
-\@onlypreamble\useproportional
-
-\ifzpl@otf
- \def\zpl@dflt{}
- \ifzpl@zeroslash\edef\zpl@dflt{Numbers = SlashedZero ,
- }\fi
- \if T\zpl@nospc
- \if F\zpl@noti\def\zpl@spcmag{{1,.625,1}}\def\zpl@nospc{F}\fi
- \if F\zpl@nolo\def\zpl@spcmag{{1.2,1,1}}\def\zpl@nospc{F}\fi
- \fi
- \if F\zpl@nospc
- \edef\zpl@dflt{\zpl@dflt WordSpace = \zpl@spcmag ,
- }
- \fi
- \def\zpl@scraw{pcap}\def\zpl@scrawN{smcp}
- \ifzpl@largesc\def\zpl@scraw{smcp}\def\zpl@scrawN{pcap}\fi
-
- %\zpl@cnt will be 0..2^8-1
- \edef\zpl@lst{}
- \ifnum\zpl@cnt>127 \edef\zpl@lst{8}\advance\zpl@cnt -128 \fi
- \ifnum\zpl@cnt>63 \edef\zpl@lst{7,\zpl@lst}\advance\zpl@cnt -64 \fi
- \ifnum\zpl@cnt>31 \edef\zpl@lst{6,\zpl@lst}\advance\zpl@cnt -32 \fi
- \ifnum\zpl@cnt>15 \edef\zpl@lst{5,\zpl@lst}\advance\zpl@cnt -16 \fi
- \ifnum\zpl@cnt>7 \edef\zpl@lst{4,\zpl@lst}\advance\zpl@cnt -8 \fi
- \ifnum\zpl@cnt>3 \edef\zpl@lst{3,\zpl@lst}\advance\zpl@cnt -4 \fi
- \ifnum\zpl@cnt>1 \edef\zpl@lst{2,\zpl@lst}\advance\zpl@cnt -2 \fi
- \ifnum\zpl@cnt>0 \edef\zpl@lst{1,\zpl@lst}\fi
- \ifthenelse{\not\equal{\zpl@lst}{}}
- {\edef\zpl@dflt{\zpl@dflt StylisticSet={\zpl@lst} ,
- }}{}
-
- \defaultfontfeatures{
- Ligatures = TeX ,
- Scale = \zpl@scale ,
- Extension = .otf ,
- SmallCapsFeatures={\ifzpl@scosf Numbers = OldStyle ,
- \fi RawFeature = -\zpl@scrawN;+\zpl@scraw }
- \ifluatex Renderer=Basic\fi ,
- \zpl@dflt ,
- RawFeature=-ss05 ,
- \zpl@defaultfeatures
- }
-
-\else % type1
- \fi % type1
-
-\ifzpl@thrm
- %\RequirePackage{amsmath,amsthm} % in case of theoremfont
- \ifdefined\newtheoremstyle %amsthm and ntheorem, not theorem.sty
- \@ifpackageloaded{ntheorem}\relax{%
- \newtheoremstyle{plain}
- {\medskipamount} % ABOVESPACE, was \topsep
- {\medskipamount} % BELOWSPACE, was \topsep
- {\thfamily} % BODYFONT--\thfamily is italic with upright figures and punctuation
- {} % INDENT (empty value is the same as 0pt)
- {\bfseries} % HEADFONT--you may want to add \tlfstyle so the number is tab lining, regardless of text figure selection
- {.} % HEADPUNCT
- {5pt plus 1pt minus 1pt} % HEADSPACE
- {} % CUSTOM-HEAD-SPEC\newtheorem{thm}{Theorem}[section]
- } % end @ifpackageloaded
- \fi%
-\fi%}
-
-\ifzpl@otf
- \DeclareTextFontCommand{\textsl}{\slshape}
- \DeclareTextFontCommand{%
- \osfstyle}{\addfontfeatures{Numbers={Proportional,OldStyle}}}
- \DeclareTextFontCommand{%
- \tosfstyle}{\addfontfeatures{Numbers={Tabular,OldStyle}}}
- \DeclareTextFontCommand{%
- \tlfstyle}{\addfontfeatures{Numbers={Tabular,Lining}}}
- \DeclareTextFontCommand{%
- \lfstyle}{\addfontfeatures{Numbers={Proportional,Lining}}}
-
- \DeclareRobustCommand{\destyle}{%
- \not@math@alphabet\destyle\relax
- \addfontfeatures{VerticalPosition=Denominator}%
- }
- \DeclareRobustCommand{\nustyle}{%
- \not@math@alphabet\nustyle\relax
- \addfontfeatures{VerticalPosition=Numerator}%
- }
- \DeclareRobustCommand{\sustyle}{%
- \not@math@alphabet\sustyle\relax
- \addfontfeatures{VerticalPosition=Superior}%
- }
- \DeclareRobustCommand{\infstyle}{%
- \not@math@alphabet\infstyle\relax
- \addfontfeatures{VerticalPosition=Inferior}%
- }
-
- \let\sufigures\sustyle
- \let\nufigures\nustyle
- \let\infigures\infstyle
- \let\defigures\destyle
-
- \ifzpl@defaultsups %
- \else
- \RequirePackage{realscripts}
- \renewcommand\footnotemarkfont{\normalfont\sufigures}
- \fi
-% \ifzpl@KOMA
-% \setkomafont{footnotereference}{\normalfont\sustyle}
-% \setkomafont{footnotelabel}{\normalfont\sustyle}
-% \fi
-
- \renewcommand*{\textcircled}[1]{\hmode@bgroup\ooalign{%
- \hfil \raise -.255ex\hbox{{%
- \normalfont\addfontfeatures{Numbers={Monospaced, Lining}}%
- \scalefont{.8}{\sustyle#1}}}% end hbox
- \hfil \crcr \symbol{"25EF}}%
- \egroup}
-\else % type1
-\fi
-
-% applies to both
-\DeclareRobustCommand{\textlf}[1]{%
- {\lfstyle #1}%
-}
-\DeclareRobustCommand{\texttlf}[1]{%
- {\tlfstyle #1}%
-}
-\DeclareRobustCommand{\textosf}[1]{%
- {\osfstyle #1}%
-}
-\DeclareRobustCommand{\texttosf}[1]{%
- {\tosfstyle #1}%
-}
-%\DeclareRobustCommand{\textsu}[1]{%
-% {\sustyle #1}%
-%}
-\DeclareTextFontCommand{\textsu}{\sustyle}
- %\let\textsuperior\textsu
-\let\textsup\textsu
- \let\textsups\textsu
-\DeclareTextFontCommand{\textnumerator}{\nustyle}
- \ifzpl@notextnu\else\let\textnu=\textnumerator\fi
- \let\textnum\textnumerator
-\DeclareTextFontCommand{\textde}{\destyle}
- \let\textdenominator\textde
-\DeclareTextFontCommand{\textinf}{\instyle}
- \let\textinferior\textinf
-
-\newdimen\zpl@sixem\zpl@sixem6pt % for checking if a number refers to ex
-\newdimen\zpl@y \newdimen\zpl@x
-
-% convert numerical entry that may be multiple of ex (<6) or em value
-\def\zpl@toex#1{\zpl@x#1pt \ifdim\zpl@x<\z@\zpl@y-\zpl@x\else\zpl@y\zpl@x\fi \ifdim\zpl@y>\zpl@sixem \zpl@x\dimexpr
- 1pt * (\dimexpr #1pt\relax) / \dimexpr \zpl@xht pt\relax\relax\fi}
-
-\newdimen\zpl@tmpdima \newdimen\zpl@tmpdimb \newdimen\zpl@tmpdimc
-\newdimen\zpl@tmpdimd \newdimen\zpl@tmpdime \newdimen\zpl@tmpdimf
-\newdimen\zpl@dimA
-\newdimen\zpl@dimAA \newdimen\zpl@dimB \newdimen\zpl@dimBB
-\newdimen\zpl@dimC % vertical center
-% double cap letters for below bar, single cap for above
-
-\zpl@toex\zpl@sfrVC\zpl@dimC\zpl@x %Vertical center of fraction
-\zpl@toex\zpl@sfrTH\zpl@tmpdimb\zpl@x % bar thickness
-\zpl@tmpdime.5\zpl@tmpdimb % half bar thickness
-\zpl@toex\zpl@sfrVS\zpl@tmpdimc\zpl@x% vertical space
-\zpl@toex\zpl@deht\zpl@tmpdimd\zpl@x % height of unscaled figures
-\zpl@tmpdimd\zpl@sfrSC\zpl@tmpdimd % height of scaled figures
-\zpl@toex\zpl@debase\zpl@tmpdimf\zpl@x % unscaled baseline of de figures
-\zpl@toex\zpl@nubase\zpl@tmpdima\zpl@x % unscaled baseline of nu figures
-\zpl@tmpdima\zpl@sfrSC\zpl@tmpdima % scaled nu baseline
-\zpl@tmpdimf\zpl@sfrSC\zpl@tmpdimf % scaled de baseline
-\zpl@dimA\zpl@dimC
-\advance\zpl@dimA by \zpl@tmpdime % top of bar
-\zpl@dimAA\zpl@dimC
-\advance\zpl@dimAA by -\zpl@tmpdime % bottom of bar
-\zpl@dimB\zpl@dimA
-\advance\zpl@dimB by \zpl@tmpdimc % top figure baseline
-\advance\zpl@dimB by -\zpl@tmpdima
-\zpl@dimBB\zpl@dimAA
-\advance\zpl@dimBB by -\zpl@tmpdimc %
-\advance\zpl@dimBB by -\zpl@tmpdimd % bottom figure baseline
-\advance\zpl@dimBB by -\zpl@tmpdimf
-\newcommand*{\textsfrac}[3][]{% like \textsfrac[1]{23}{34}
-\mbox{%
- \ifthenelse{\not\equal{#1}{}}%Test for integer portion [optional #1]
- {\textlf{#1}\kern.12em}{}%
- {\hmode@bgroup%
-\ooalign{%
- \setbox0=\hbox{\scalefont{\zpl@sfrSC}\nustyle#2}%
- \hfil \raise\strip@pt\zpl@dimB ex\box0\hfil \crcr%
- \leaders\hrule height \strip@pt\zpl@dimA ex depth -\strip@pt\zpl@dimAA ex\hfill \crcr%
- \setbox1=\hbox{\scalefont{\zpl@sfrSC}\destyle#3}%
- \hfil\raise\strip@pt\zpl@dimBB ex\box1\hfil}%
-\egroup}}
-}
-
-\AtEndPreamble{%
-\ifzpl@otf
- \ifzpl@lining
- \def\zpl@figurestyle{Lining}
- \else
- \def\zpl@figurestyle{OldStyle}
- \fi
- \ifzpl@tabular
- \def\zpl@figurealign{Monospaced}
- \else
- \def\zpl@figurealign{Proportional}
- \fi
-% \ifzpl@scosf
-% %\traceon
-% \setmainfont
-% [Numbers = {\zpl@figurealign,\zpl@figurestyle},
-% SmallCapsFeatures = { Letters=SmallCaps , Numbers = OldStyle }
-% ] {\zpl@base}
-%% \traceoff
-% \else
-% \setmainfont
-% [Numbers = {\zpl@figurealign,\zpl@figurestyle}
-% SmallCapsFeatures = { Letters=SmallCaps , }
-% ] {\zpl@base}
-% \fi
-%\traceon
-\setmainfont
- [Numbers = {Proportional , Lining },
- SmallCapsFeatures = { Letters = SmallCaps , Numbers = OldStyle }
- ] {TeXGyrePagellaX}
-
-
-% \let\zpl@sty\zpl@figurestyle
-% \if l\zpl@thmlin\def\zpl@sty{Lining}\fi
-% \newcommand{\thfamily}%{\@nameuse{zpl\zpl@figurestyle}%
-% {\addfontfeatures{%
-% Numbers={\zpl@figurealign,\zpl@sty} ,
-% RawFeature=+ss05}
-% \itshape} % for theorems
-% \ifzpl@sl\else\let\slshape=\thfamily\fi % change
-
-\else % type1
- \fi % type1
-% both
-%\ifzpl@KOMA
-% %\let\textsuperscript\textsu
-% \@ifpackageloaded{AB@authnote}{%
-% \renewcommand\AB@authnote[1]{\textsu{#1}}
-% \renewcommand\AB@affilnote[1]{\textsu{#1}}
-% }
-%\fi
-%both
-\ifzpl@thrm
- \@ifundefined{theoremstyle}{}{
- \theoremstyle{plain}
- \patchcmd{\th@plain}{\itshape}{\thfamily}{\message{Replaced itshape by thfamily in theorem style plain.}}{\message{Unable to replace itshape by thfamily in theorem style plain.}}
-}
-\fi
-}
-
-% Define \oldstylenums, \liningnums ,\tabularnums and \proportionalnums
-\ifzpl@otf
- \DeclareTextFontCommand{%
- \oldstylenums}{\addfontfeatures{Numbers=OldStyle}}
- \DeclareTextFontCommand{%
- \liningnums}{\addfontfeatures{Numbers=Lining}}
- \DeclareTextFontCommand{%
- \tabularnums}{\addfontfeatures{Numbers=Tabular}}
- \DeclareTextFontCommand{%
- \proportionalnums}{\addfontfeatures{Numbers=Proportional}}
-\else % type1
-\fi
-
-\endinput
-
diff --git a/fonts/xcharter-math/README.md b/fonts/xcharter-math/README.md
index 35f835bc3d..7816dda3b3 100644
--- a/fonts/xcharter-math/README.md
+++ b/fonts/xcharter-math/README.md
@@ -84,7 +84,12 @@ Either version 1.3 or, at your option, any later version.
* v0.50:
- XCharter-Math.otf: Digits and Lowercase Blackboard Bold glyphs added;
over twenty math symbols added (coverage now similar to Erewhon-Math).
-
+* v0.51:
+ - Fixed IsExtendedShape flags.
+ - \mid (U+2223) and \parallel (U+2225) vertical variants changed.
+ - CharacterVariant=11 added: it replaces the original math italic v
+ by a variant easier to distinguish from \nu.
+
---
Copyright 2022-2023 Daniel Flipo
E-mail: daniel (dot) flipo (at) free (dot) fr
diff --git a/fonts/xcharter-math/XCharter-Math-Bold.otf b/fonts/xcharter-math/XCharter-Math-Bold.otf
index bf7b95c6f4..a99fd3f897 100644
--- a/fonts/xcharter-math/XCharter-Math-Bold.otf
+++ b/fonts/xcharter-math/XCharter-Math-Bold.otf
Binary files differ
diff --git a/fonts/xcharter-math/XCharter-Math.ltx b/fonts/xcharter-math/XCharter-Math.ltx
index a920814c80..ca30754e8b 100644
--- a/fonts/xcharter-math/XCharter-Math.ltx
+++ b/fonts/xcharter-math/XCharter-Math.ltx
@@ -34,7 +34,7 @@
\title{\decofourleft\,\XCotf\,\decofourright}
\author{Daniel Flipo \\ \texttt{daniel.flipo@free.fr}}
-\newcommand*{\version}{0.50}
+\newcommand*{\version}{0.51}
\begin{document}
\maketitle
@@ -211,8 +211,9 @@ $\symup{α}$, $\symup{β}$, $\symup{Γ}$,… for \cmd{alpha}, \cmd{beta},
\XCotf{} provides fourteen ``Character Variants’’ options, listed on
table~\vref{cv}, to choose between different glyphs for Greek characters
-and some others. Alternative calligraphic capitals have been added for E, Q
-and T in version~0.50.
+and some others. Alternative calligraphic capitals for E, Q
+and T have been added (version~0.50) and an alternative italic v, easier
+to distinguish from $\nu$ (version~0.51).
\begin{table}[ht]
\centering \caption{Character variants.}
@@ -232,6 +233,7 @@ and T in version~0.50.
cv08 & $\sigma$ & $\varsigma$ & \cmd{sigma} \\
cv09 & $\theta$ & $\vartheta$ & \cmd{theta} \\
cv10 & $\Theta$ & $\varTheta$ & \cmd{Theta}\\
+ cv11 & $\symit{v}$ & $\mitvarv$ & v\\
cv20 & $\symscr{E}$ & $\varsymscrE$ & \cmd{symcal\{E\}}\\
cv21 & $\symscr{Q}$ & $\varsymscrQ$ & \cmd{symcal\{Q\}}\\
cv22 & $\symscr{T}$ & $\varsymscrT$ & \cmd{symcal\{T\}}\\
diff --git a/fonts/xcharter-math/XCharter-Math.otf b/fonts/xcharter-math/XCharter-Math.otf
index 97eaba1ff0..65d3fa9c05 100644
--- a/fonts/xcharter-math/XCharter-Math.otf
+++ b/fonts/xcharter-math/XCharter-Math.otf
Binary files differ
diff --git a/fonts/xcharter-math/XCharter-Math.pdf b/fonts/xcharter-math/XCharter-Math.pdf
index 44de2b5f56..5cfee13aa2 100644
--- a/fonts/xcharter-math/XCharter-Math.pdf
+++ b/fonts/xcharter-math/XCharter-Math.pdf
Binary files differ
diff --git a/fonts/xcharter-math/unimath-xcharter.pdf b/fonts/xcharter-math/unimath-xcharter.pdf
index 571878b63e..5983427acc 100644
--- a/fonts/xcharter-math/unimath-xcharter.pdf
+++ b/fonts/xcharter-math/unimath-xcharter.pdf
Binary files differ
diff --git a/fonts/xcharter-math/xcharter-otf.sty b/fonts/xcharter-math/xcharter-otf.sty
index f59c42c91e..3d1a09ba90 100644
--- a/fonts/xcharter-math/xcharter-otf.sty
+++ b/fonts/xcharter-math/xcharter-otf.sty
@@ -1,6 +1,6 @@
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\def\fileversion{0.50}
-\def\filedate{2023-07-20}
+\def\fileversion{0.51}
+\def\filedate{2023-10-26}
\ProvidesPackage{xcharter-otf}[\filedate\space\fileversion]
% Ensure luatex or xetex engine
@@ -71,6 +71,8 @@
% XCharter specific math
% \Umathchardef\<cmd> = <math type> <family> <slot>
% <math type> : \mathord=0 \mathrel=3 ; <family>=0
+ \Umathchardef\mbfitvarv = 0 0 "E01E \relax
+ \Umathchardef\mitvarv = 0 0 "E01F \relax
\Umathchardef\varemptyset = 0 0 "E021 \relax
\Umathchardef\mupvarzero = 0 0 "E022 \relax
\Umathchardef\mbfvarzero = 0 0 "E023 \relax
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
index 5382e8cdb4..b625254241 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
@@ -1,5 +1,5 @@
<!--
-arguelles v2.2.0
+arguelles v2.3.0
author: Michele Piazzai
contact: michele.piazzai@uc3m.es
license: MIT
@@ -9,19 +9,13 @@ license: MIT
Argüelles is a beamer theme that helps you create beautiful presentations. It aims for simplicity and readability by following best practices of graphic design. The layout is elegant but subtle, so as to keep the audience's attention on your content. This is brought to life by Alegreya, one of the 53 Fonts of the Decade selected by the Association Typographique Internationale (2011).
-The theme requires the packages [Alegreya/AlegreyaSans](https://ctan.org/pkg/alegreya), [eulervm](https://ctan.org/pkg/eulervm), [mathalpha](https://www.ctan.org/pkg/mathalpha), [microtype](https://ctan.org/pkg/microtype), [fontawesome5](https://ctan.org/pkg/fontawesome5), [opencolor](https://www.ctan.org/pkg/opencolor), [enumitem](https://www.ctan.org/pkg/enumitem), [parskip](https://www.ctan.org/pkg/parskip), and [tikz/pgf](https://ctan.org/pkg/pgf) to be installed on your computer. These are included in common LaTeX distributions, such as [MiKTeX](https://ctan.org/pkg/miktex) and [TeXLive](https://ctan.org/pkg/texlive).
+The theme requires the packages [alegreya](https://ctan.org/pkg/alegreya), [eulervm](https://ctan.org/pkg/eulervm), [mathalpha](https://www.ctan.org/pkg/mathalpha), [microtype](https://ctan.org/pkg/microtype), [fontawesome5](https://ctan.org/pkg/fontawesome5), [opencolor](https://www.ctan.org/pkg/opencolor), [enumitem](https://www.ctan.org/pkg/enumitem), [parskip](https://www.ctan.org/pkg/parskip), and [pgf](https://ctan.org/pkg/pgf) to be installed on your computer. These are included in common LaTeX distributions, such as MiKTeX and TeXLive.
## Demo
-The files `demo.tex` and `demo.pdf` demonstrate the main features of the theme.
+The files `demo-arguelles.tex` and `demo-arguelles.pdf` demonstrate the main features of the theme.
-### Serif
-
-![](https://github.com/piazzai/arguelles/blob/master/demo/demo-arguelles-serif.gif)
-
-### Sans-serif
-
-![](https://github.com/piazzai/arguelles/blob/master/demo/demo-arguelles-sans.gif)
+![](https://github.com/piazzai/arguelles/blob/master/demo/demo-arguelles.gif)
## Installation
@@ -29,13 +23,13 @@ Argüelles is hosted on CTAN and distributed as part of MikTex and TeXLive. It c
## Usage
-By default, the theme uses serif fonts for body text. Loading it with the `sans` option makes sans-serif fonts default, keeping serif only for math type. Because sans-serif font is more space-efficient, this could be useful for slides that contain more text and bullet points. See the two animations below for comparison.
+By default, the theme uses serif fonts for body text. Loading it with the `sans` option makes sans-serif fonts default, keeping serif only for math type. Because sans-serif font is more space-efficient, this could be useful for slides that contain more text and bullet points.
The `frameno` option adds frame numbering in the bottom right corner of each frame. By default, frame numbers are hidden on title and plain frames. They can also be suppressed on individual frames by `\begin{frame}[noframenumbering]`.
The `splitnav` option makes the navigation bar in the headline display only the current section and its frames. This could be preferable if your presentation has only a few sections, which do not adequately fill the headline, or if it has a lot of sections and the headline looks too crowded.
-The `mp` option loads additional dependencies that could be useful for designing scientific presentations. These currently include [ulem](https://ctan.org/pkg/ulem), [booktabs](https://ctan.org/pkg/booktabs), [dcolumn](https://ctan.org/pkg/dcolumn), [makecell](https://ctan.org/pkg/makecell), [colortbl](https://www.ctan.org/pkg/colortbl), [cancel](https://www.ctan.org/pkg/cancel), [pgfplots](https://www.ctan.org/pkg/pgfplots), and [csvsimple](https://www.ctan.org/pkg/csvsimple). In addition, the option loads the [calc](https://tikz.dev/library-calc) library for TikZ, and the [statistics](https://tikz.dev/pgfplots/libs-statistics) and [fillbetween](https://tikz.dev/pgfplots/libs-fillbetween) libraries for PGFplots.
+The `mp` option loads additional dependencies that could be useful for scientific presentations. These currently include [ulem](https://ctan.org/pkg/ulem), [booktabs](https://ctan.org/pkg/booktabs), [dcolumn](https://ctan.org/pkg/dcolumn), [makecell](https://ctan.org/pkg/makecell), [colortbl](https://www.ctan.org/pkg/colortbl), [cancel](https://www.ctan.org/pkg/cancel), [pgfplots](https://www.ctan.org/pkg/pgfplots), and [csvsimple](https://www.ctan.org/pkg/csvsimple). In addition, the option loads the [calc](https://tikz.dev/library-calc) library for TikZ, and the [groupplots](https://tikz.dev/pgfplots/libs-groupplots), [fillbetween](https://tikz.dev/pgfplots/libs-fillbetween), and [statistics](https://tikz.dev/pgfplots/libs-statistics) libraries for PGFplots.
## Customization
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
index 3f9b398074..a741c8d8a3 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
@@ -1,10 +1,10 @@
-% arguelles v2.2.0
+% arguelles v2.3.0
% author: Michele Piazzai
% contact: michele.piazzai@uc3m.es
% license: MIT
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamercolorthemeArguelles}[2023/03/22 Argüelles]
+\ProvidesPackage{beamercolorthemeArguelles}[2023/10/26 Argüelles]
\mode<presentation>
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
index c1b7e74267..aa2455b591 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
@@ -1,10 +1,10 @@
-% arguelles v2.2.0
+% arguelles v2.3.0
% author: Michele Piazzai
% contact: michele.piazzai@uc3m.es
% license: MIT
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerfontthemeArguelles}[2023/03/22 Argüelles]
+\ProvidesPackage{beamerfontthemeArguelles}[2023/10/26 Argüelles]
\mode<presentation>
@@ -19,6 +19,8 @@
\setbeamerfont{author}{series=\bfseries,size=\large}
\setbeamerfont{institute}{size=\small}
\setbeamerfont{email}{size=\small}
+\setbeamerfont{homepage}{size=\small}
+\setbeamerfont{github}{size=\small}
% frame elements
\setbeamerfont{headline section}{series=\AlegreyaSans\scshape}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
index fb5ffd180c..36b0b8c4f1 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
@@ -1,10 +1,10 @@
-% arguelles v2.2.0
+% arguelles v2.3.0
% author: Michele Piazzai
% contact: michele.piazzai@uc3m.es
% license: MIT
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerinnerthemeArguelles}[2023/03/22 Argüelles]
+\ProvidesPackage{beamerinnerthemeArguelles}[2023/10/26 Argüelles]
\mode<presentation>
@@ -17,6 +17,14 @@
\newcommand{\email}[1]{
\def\insertemail{\href{mailto:#1}{\raisebox{-.1em}{\faIcon{envelope}}\hspace{.3em}#1}}
}
+\def\inserthomepage{}
+\newcommand{\homepage}[1]{
+ \def\inserthomepage{\href{https://#1}{\raisebox{-.1em}{\hspace{.025em}\faIcon{globe}}\hspace{.325em}#1}}
+}
+\def\insertgithub{}
+\newcommand{\github}[1]{
+ \def\insertgithub{\href{https://github.com/#1}{\raisebox{-.1em}{\hspace{.025em}\faIcon{github}}\hspace{.325em}github.com/#1}}
+}
% title page
\defbeamertemplate*{title page}{Arguelles}{
@@ -27,7 +35,9 @@
{\usebeamerfont{date}\insertdate}\par\bigskip
{\usebeamerfont{author}\insertauthor}\par\smallskip
{\usebeamerfont{institute}\insertinstitute}\par
- {\usebeamerfont{email}\insertemail}
+ {\usebeamerfont{email}\insertemail}\par
+ {\usebeamerfont{homepage}\inserthomepage}\par
+ {\usebeamerfont{github}\insertgithub}
\end{beamercolorbox}
\addtocounter{framenumber}{-1}
}
@@ -73,6 +83,16 @@
\fi
}
+% background image
+\define@key{beamerframe}{bg}{
+ \setbeamertemplate{background}{
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \path[fill overzoom image=#1] (0,.01\paperheight) rectangle (\paperwidth,.99\paperheight);
+ \end{tikzpicture}
+ }
+}
+
% standout frame
\providebool{Arguelles@standout}
\define@key{beamerframe}{standout}[true]{
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
index c1c7350506..051c8cb6a2 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
@@ -1,10 +1,10 @@
-% arguelles v2.2.0
+% arguelles v2.3.0
% author: Michele Piazzai
% contact: michele.piazzai@uc3m.es
% license: MIT
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerouterthemeArguelles}[2023/03/22 Argüelles]
+\ProvidesPackage{beamerouterthemeArguelles}[2023/10/26 Argüelles]
\mode<presentation>
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
index 817e780bea..24e5cf85bc 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
@@ -1,10 +1,10 @@
-% arguelles v2.2.0
+% arguelles v2.3.0
% author: Michele Piazzai
% contact: michele.piazzai@uc3m.es
% license: MIT
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerthemeArguelles}[2023/03/22 Argüelles]
+\ProvidesPackage{beamerthemeArguelles}[2023/10/26 Argüelles]
\mode<presentation>
@@ -49,6 +49,10 @@
\RequirePackage{enumitem}
\RequirePackage{parskip}
\RequirePackage{tikz}
+\RequirePackage[skins]{tcolorbox}
+
+% tikz options
+\usetikzlibrary{calc}
% components
\useinnertheme{Arguelles}
@@ -84,13 +88,9 @@
\RequirePackage{cancel}
\RequirePackage{pgfplots}
\RequirePackage{csvsimple}
-
-% tikz options
-\usetikzlibrary{calc}
-
% pgfplots options
\pgfplotsset{compat=1.18}
-\usepgfplotslibrary{statistics,fillbetween}
+\usepgfplotslibrary{fillbetween,groupplots,statistics}
\fi
\AtBeginEnvironment{proof}{\let\@addpunct\@gobble}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
index 85ee585794..3475fb8878 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.png b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.png
new file mode 100644
index 0000000000..6246f9b2cb
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.png
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
index 7ed3abb8ae..2718de1572 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
@@ -1,4 +1,4 @@
-% arguelles v2.2.0
+% arguelles v2.3.0
% author: Michele Piazzai
% contact: michele.piazzai@uc3m.es
% license: MIT
@@ -13,7 +13,9 @@
\date{}
\author{Place Holder}
\institute{University of \TeX}
-\email{username@domain.com}
+\email{name@domain.com}
+\homepage{www.mywebsite.com}
+\github{username}
\begin{document}
@@ -62,6 +64,13 @@
\end{theorem}
\end{frame}
+\begin{frame}[bg=demo-arguelles.png]
+ \frametitle{A frame with background image}
+ You can still add title and subtitle. \par
+ You can also use a background in the title slide by setting: \\
+ \texttt{\textbackslash frame[plain,bg=demo-background.jpg]\{\textbackslash titlepage\}}
+\end{frame}
+
\begin{frame}[plain]
\frametitle{A plain frame has no headline}
\begin{table}
diff --git a/macros/latex/contrib/cje/README.txt b/macros/latex/contrib/cje/README.txt
index 296ed38d09..6a29606aa8 100644
--- a/macros/latex/contrib/cje/README.txt
+++ b/macros/latex/contrib/cje/README.txt
@@ -1,5 +1,5 @@
README.txt for the Canadian Journal of Economics “cje” package
-2018/02/22 v1.06
+2023/10/25 v1.07
INFORMATION
===========
@@ -11,7 +11,7 @@ INFORMATION
COPYRIGHT
=========
-(c) 2017 Canadian Economics Association
+(c) 2023 Canadian Economics Association
LICENSE
=======
@@ -30,8 +30,8 @@ cje.cls (CJE class file)
cjebibstyle.bst (CJE bibliography style file)
cjenatbib.sty (CJE style file for citations)
cjeupmath.sty (CJE style file for non-italic Greek characters)
-ageingbib.bib (bib file called in by cjeGuide2018.tex)
-canadian-flag.pdf (figure file called in by cjeGuide.tex)
+ageingbib.bib (bib file called in by cjeguide.tex)
+canadian-flag.pdf (figure file called in by cjeguide.tex)
=========
diff --git a/macros/latex/contrib/cje/ageingbib.bib b/macros/latex/contrib/cje/ageingbib.bib
index 2dd76d46aa..ad1eec309d 100644
--- a/macros/latex/contrib/cje/ageingbib.bib
+++ b/macros/latex/contrib/cje/ageingbib.bib
@@ -129,6 +129,18 @@ Url = {http://doi.acm.org/10.1145/2187980.2188129}
timestamp = {2008.07.24}
}
+@incollection{Danzon,
+ author = "P.M. Danzon and A. J. Epstein",
+ title = "Effects of regulation on
+drug launch and pricing in interdependent markets",
+ booktitle = "The Economics of Medical Technology",
+ year = "2012",
+ publisher = "Emerald Group Publishing Limited",
+ address = "Bingley, UK",
+ editor= {K. Bolin and R. Kaestner},
+ pages= {35--71}
+}
+
@ARTICLE{Baldacci06,
author = {E. Baldacci and B. Clements and S. Gupta and Q. Cui},
title = {Social Spending, Human Capital, and Growth in Developing Countries},
diff --git a/macros/latex/contrib/cje/cje.cls b/macros/latex/contrib/cje/cje.cls
index a79a558164..f16170bd1b 100644
--- a/macros/latex/contrib/cje/cje.cls
+++ b/macros/latex/contrib/cje/cje.cls
@@ -1,5 +1,5 @@
%% This is file cje.cls
-%% 2018/02/22 v1.06
+%% 2023/10/25 v1.07
%%
%% It was developed from `article.cls,'
%% generated with the docstrip utility.
@@ -11,7 +11,7 @@
%%
%% =========
%%
-%% COPYRIGHT (c) 2017 Canadian Economics Association
+%% COPYRIGHT (c) 2023 Canadian Economics Association
%%
%% LICENSE
%% =======
@@ -52,7 +52,7 @@
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{cje}
- [2018/02/22 v1.06 CJE document class]
+ [2023/10/25 v1.07 CJE document class]
\newcommand{\@xiiiptvpt}{13.5}%large For author
\DeclareMathSizes{\@xiiiptvpt}{\@xiiiptvpt}{\@xpt}{\@viipt}
diff --git a/macros/latex/contrib/cje/cjebibstyle.bst b/macros/latex/contrib/cje/cjebibstyle.bst
index f31442addf..7bc625cbd0 100644
--- a/macros/latex/contrib/cje/cjebibstyle.bst
+++ b/macros/latex/contrib/cje/cjebibstyle.bst
@@ -1,6 +1,6 @@
%%
%% This is file cjebibstyle.bst.
-%% 2018/22/02 v1.06
+%% 2023/10/25 v1.07
%%
%% It was generated with the docstrip utility.
%%
@@ -11,7 +11,7 @@
%%
%% =========
%%
-%% COPYRIGHT (c) 2017 Canadian Economics Association
+%% COPYRIGHT (c) 2023 Canadian Economics Association
%%
%% LICENSE
%% =======
diff --git a/macros/latex/contrib/cje/cjeguide.pdf b/macros/latex/contrib/cje/cjeguide.pdf
deleted file mode 100644
index ea0f489ba2..0000000000
--- a/macros/latex/contrib/cje/cjeguide.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/cje/cjeguide.tex b/macros/latex/contrib/cje/cjeguide.tex
index c2be40fa03..d0f443ae5f 100644
--- a/macros/latex/contrib/cje/cjeguide.tex
+++ b/macros/latex/contrib/cje/cjeguide.tex
@@ -1,8 +1,8 @@
%% This is file cjeguide.tex
-%% 2018/02/22 v1.06
+%% 2023/10/26 v1.07
%% =========
%%
-%% COPYRIGHT (c) 2017 Canadian Economics Association
+%% COPYRIGHT (c) 2023 Canadian Economics Association
%%
%% LICENSE
%% =======
@@ -62,7 +62,7 @@
\usepackage{hyperref}
\def\citeapos#1{\citeauthor{#1}'s (\citeyear{#1})}
\hypersetup{%
- pdftitle = {Author guide to Canadian Journal of Economics \LaTeXe\ class file (v. 1.06, 2018)},
+ pdftitle = {Author guide to Canadian Journal of Economics \LaTeXe\ class file (v. 1.07, 2023)},
pdfauthor = {Author One, Author Two, Author Three,
Author Four and Author Five},
citecolor=blue,
@@ -76,7 +76,7 @@
\label{firstpage}
% shortened version of title [in square brackets] for running head
-\title[Guide to \texttt{cje} \LaTeXe\ class]{Guide to Canadian Journal of Economics \LaTeXe\ class file (v. 1.06, 2018)}
+\title[Guide to \texttt{cje} \LaTeXe\ class]{Guide to Canadian Journal of Economics \LaTeXe\ class file (v. 1.07, 2023)}
% summary of authors for running head
\authors{A. One, A. Two, A. Three, A. Four and A. Five}
@@ -104,7 +104,7 @@
\maketitle
\section{Using the \texttt{cje} class file}
-Download the latest version from \href{https://economics.ca/cje/en/latex.php}{economics.ca/cje/en/latex.php} or \href{https://www.ctan.org/tex-archive/macros/latex/contrib/cje?lang=en}{ctan.org}. This guide has examples of most environments you're likely to need.
+Download the latest version from \url{www.ctan.org/pkg/cje}. This guide has examples of most environments you're likely to need.
\subsection{\texttt{cje.cls} package files}
The distribution package contains the following files.\\[0.5\baselineskip]
@@ -199,7 +199,7 @@ Two other class file options are also available: the review option, which can be
\usepackage{hyperref}
\def\citeapos#1{\citeauthor{#1}'s (\citeyear{#1})}
\hypersetup{%
- pdftitle = {Author guide to Canadian Journal of Economics \LaTeXe\ class file (v. 1.06, 2018)},
+ pdftitle = {Author guide to Canadian Journal of Economics \LaTeXe\ class file (v. 1.07, 2023)},
pdfauthor = {Author One, Author Two, Author Three,
Author Four and Author Five},
citecolor=blue,
@@ -214,7 +214,7 @@ Two other class file options are also available: the review option, which can be
% shortened version of title [in square brackets] for running head
\title[Guide to \texttt{cje} \LaTeXe\ class]{Guide to Canadian Journal of
-Economics \LaTeXe\ class file (v. 1.06, 2018)}
+Economics \LaTeXe\ class file (v. 1.07, 2023)}
% summary of authors for running head
\authors{A. One, A. Two, A. Three, A. Four and A. Five}
@@ -230,7 +230,7 @@ Economics \LaTeXe\ class file (v. 1.06, 2018)}
\abstract{The \LaTeXe\ class file for the \emph{Canadian Journal of Economics}...
If you have any questions or would like to signal any corrections to the class
- file or this guide, please contact Kim Nesbitt, CJE copyeditor, at
+ file or this guide, please contact Kim Nesbitt, CJE Copy Editor, at
\texttt{CJE-copyeditor@outlook.com}.}
\resume{If you do not provide a French abstract, the English abstract will be translated
@@ -244,7 +244,7 @@ Economics \LaTeXe\ class file (v. 1.06, 2018)}
Woollatt for her work on creating this package and documentation. Thank you to Karl Berry,
James S. Hefferon, CTAN and the friendly and helpful members of the \TeX\ Users Group (TUG)
for their technical assistance, guidance and advice.\\
-Corresponding author: Kim Nesbitt, CJE-copyeditor@outlook.com}
+Corresponding author: Kim Nesbitt, \url{CJE-copyeditor@outlook.com}}
\maketitle
@@ -820,6 +820,7 @@ For example, if you've cited only these 10 sources from your bib database that c
\cite{Mas-Colell},
\cite{Atkinson},
\cite{Van-Zon},
+\cite{Danzon},
\cite{vanderPolGairns2000},
\cite{Lucas90},
\cite{Mendoza1991},
@@ -829,7 +830,7 @@ For example, if you've cited only these 10 sources from your bib database that c
only these 10 references will appear as the reference list. See the last page of this guide for the reference list output.
\subsubsection{\texttt{natbib} commands for in-text citations}
-The standard \texttt{natbib} style file has been modified to impose the CJE reference style. This modified style file is called \texttt{cjenatbib.sty} (included in the \texttt{cje} distribution) and works exactly the same as \texttt{natbib.sty}. Here are some of the \verb"\cite" commands available (please refer to the \texttt{natbib} documentation \href{https://www.ctan.org/pkg/natbib?lang=en}{ctan.org/pkg/natbib?lang=en} if you would like more information):\\*[0.5\baselineskip]
+The standard \texttt{natbib} style file has been modified to impose the CJE reference style. This modified style file is called \texttt{cjenatbib.sty} (included in the \texttt{cje} distribution) and works exactly the same as \texttt{natbib.sty}. Here are some of the \verb"\cite" commands available (please refer to the \texttt{natbib} documentation at \url{www.ctan.org/pkg/natbib?lang=en} if you would like more information):\\*[0.5\baselineskip]
\begin{tabular}{@{}ll}
\cite{Lucas90}
& \indexsize\verb"\cite{Lucas90}"\\
@@ -879,6 +880,12 @@ Aisa, R., and F. Pueyo (2004) \enquote{Endogenous longevity, health and
Atkinson, A., and J. Stiglitz (1980) \emph{Lectures on Public Economics},
New York: McGraw-Hill
+\bibitem[{Danzon and Epstein(2012)}]{Danzon}
+Danzon, P.M., and A. J. Epstein (2012) \enquote{Effects of regulation on
+drug launch and pricing in interdependent markets.} In K. Bolin
+and R. Kaestner, eds., \emph{The Economics of Medical Technology}, vol. 23,
+pp. 35--71. Bingley, UK: Emerald Group Publishing Limited
+
\bibitem[{Glomm and Ravikumar(1992)}]{Glomm92}
Glomm, G., and B. Ravikumar (1992) \enquote{Public versus private
investment in human capital endogenous growth and income inequality,}
@@ -984,7 +991,7 @@ Aisa, R., and F. Pueyo (2004) \enquote{Endogenous longevity, health and
9, 1--10
\bibitem[{Atkinson and Stiglitz(1980)}]{Atkinson}
-Atkinson, A., and J. Stiglitz (1980) \emph{Lectures on Public Economics}, New
+Atkinson, A., and J. Stiglitz (1980) \emph{Lectures on Public Economics}. New
York: McGraw-Hill
\bibitem[{Glomm and Ravikumar(1992)}]{Glomm92}
@@ -998,8 +1005,7 @@ Glomm, G., and B. Ravikumar (1992) \enquote{Public versus private investment in
\bibitem[{Li et al.(2012)Li, Shrivastava, and K{\"o}nig}]{LiSK12}
Li, P., A. Shrivastava, and A. C. K{\"o}nig (2012) \enquote{{GPU}-based minwise
- hashing,} in \emph{Proceedings of the 21st World Wide Web Conference (WWW
- 2012) (Companion Volume)}, pp. 565--66
+ hashing.} In \emph{Proceedings of the 21st World Wide Web Conference}, pp. 565--66
\bibitem[{Lucas(1990)}]{Lucas90}
Lucas, R. (1990) \enquote{Supply-side economics: An analytical review,}
@@ -1007,14 +1013,14 @@ Lucas, R. (1990) \enquote{Supply-side economics: An analytical review,}
\bibitem[{Mas-Colell et al.(1995)Mas-Colell, Whinston, and Green}]{Mas-Colell}
Mas-Colell, A., M. D. Whinston, and J. R. Green (1995) \emph{Microeconomic
- Theory}, Oxford: Oxford University Press
+ Theory}. Oxford, UK: Oxford University Press
\bibitem[{Mendoza(1991)}]{Mendoza1991}
Mendoza, E. G. (1991) \enquote{Real business cycles in a small open economy,}
\emph{American Economic Review} 81, 717--818
\bibitem[{van der Pol and Cairns(2000)}]{vanderPolGairns2000}
-van der Pol, M. M., and J. A. Cairns (2000) \enquote{Zero and negative time
+van der Pol, M.M., and J. A. Cairns (2000) \enquote{Zero and negative time
preference for health,} \emph{Health Economics} 9, 171--75
\bibitem[{Van-Zon and Muysken(2001)}]{Van-Zon}
diff --git a/macros/latex/contrib/cje/cjenatbib.sty b/macros/latex/contrib/cje/cjenatbib.sty
index 73817ef6e7..62510b407b 100644
--- a/macros/latex/contrib/cje/cjenatbib.sty
+++ b/macros/latex/contrib/cje/cjenatbib.sty
@@ -1,5 +1,5 @@
%% This is file cjenatbib.sty.
-%% 2018/02/22 v1.06
+%% 2023/10/25 v1.07
%% Lines changed from natbib.sty 2003/06/06 v7.1 are marked with %%ajw
%%
%% This is file `natbib.sty',
@@ -9,7 +9,7 @@
%%
%% natbib.dtx (with options: `package,all')
%% =============================================
-%% COPYRIGHT (c) 2017 Canadian Economics Association
+%% COPYRIGHT (c) 2023 Canadian Economics Association
%%
%% LICENSE
%% =======
@@ -32,7 +32,7 @@
%% E-mail: daly@linmpi.mpg.de
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\ProvidesPackage{cje}%%ajw
- [2018/02/22 v1.06 CJE version of natbib.sty]%%ajw
+ [2023/10/25 v1.07 CJE version of natbib.sty]%%ajw
% This package reimplements the LaTeX \cite command to be used for various
% citation styles, both author-year and numerical. It accepts BibTeX
% output intended for many other packages, and therefore acts as a
diff --git a/macros/latex/contrib/cje/cjetemplate.tex b/macros/latex/contrib/cje/cjetemplate.tex
index 3c5b332635..1917c2bc43 100644
--- a/macros/latex/contrib/cje/cjetemplate.tex
+++ b/macros/latex/contrib/cje/cjetemplate.tex
@@ -1,8 +1,8 @@
%% This is file cjetemplate.tex
-%% 2018/02/22 v1.06
+%% 2023/10/26 v1.07
%% =========
%%
-%% COPYRIGHT (c) 2017 Canadian Economics Association
+%% COPYRIGHT (c) 2023 Canadian Economics Association
%%
%% LICENSE
%% =======
@@ -140,13 +140,15 @@
\finalhline
\end{tabular}
\end{minipage}% Use this line only if you used \begin{minipage}
+\end{table}
\begin{figure}
\includegraphics[width=0.6\textwidth]{}
\caption{
\figurenote NOTE: }
\label{}%Label with figure number
-
+ \end{table}
+
\begin{proof}
\end{proof}
@@ -154,15 +156,17 @@
\end{proof}
%Manual creation reference list
-\begin{thebibliography}{}
+\begin{thebibliography}
\newcommand{\enquote}[1]{``#1''}
\bibitem[{}]{}
Aisa, R., and F. Pueyo (2004) ``Endogenous longevity, health and
economic growth: A slow growth for a longer life?,'' \textit{Economics
Bulletin} 9(5), 1--10
-
+\end{thebibliography}{}
% Using BibTeX and .bib file
+
+%Creation of reference list using .bib file
\bibliography{}
\bibliographystyle{cjebibstyle} % to impose CJE bibliography style on output
diff --git a/macros/latex/contrib/cje/cjeupmath.sty b/macros/latex/contrib/cje/cjeupmath.sty
index 775cabe5d8..64bdcf5d93 100644
--- a/macros/latex/contrib/cje/cjeupmath.sty
+++ b/macros/latex/contrib/cje/cjeupmath.sty
@@ -1,6 +1,6 @@
%%
%% This is file `cjeupmath.sty', written for the CEA by Ali Woollatt
-%% 2018/02/22 v1.06
+%% 2023/10/25 v1.07
%%
%% This package provides 'upright' math (lower-case Greek, A-Z, a-z,
%% punctuation, < >, \ell, \partial) from the AMS Euler fonts EURM/B.
@@ -8,7 +8,7 @@
%% Requires the amsbsy.sty and amsgen.sty packages.
%%
%%
-%% COPYRIGHT (c) 2017 Canadian Economics Association
+%% COPYRIGHT (c) 2023 Canadian Economics Association
%%
%% LICENSE
%% =======
@@ -18,7 +18,7 @@
%% latex-project.org/lppl.txt. Version 1.3, or later, is part of all distributions of LaTeX version 2005/12/01 or later.
-\ProvidesPackage{cjeupmath}[2018/02/22 v1.06 CJE LaTeX2e package]
+\ProvidesPackage{cjeupmath}[2023/10/25 v1.07 CJE LaTeX2e package]
\RequirePackage{amsbsy}[1995/01/20] % also includes amsgen.sty
diff --git a/macros/latex/contrib/hypdoc/README.md b/macros/latex/contrib/hypdoc/README.md
index 32ac39c26a..6a106ee4f9 100644
--- a/macros/latex/contrib/hypdoc/README.md
+++ b/macros/latex/contrib/hypdoc/README.md
@@ -1,6 +1,6 @@
# hypdoc
-Version: 2023-01-23 v1.18
+Version: 2023-10-26 v1.19
This package adds hyper features to the package
doc that is used in the documentation
diff --git a/macros/latex/contrib/hypdoc/hypdoc.dtx b/macros/latex/contrib/hypdoc/hypdoc.dtx
index 836fa1b368..1a1b5876e7 100644
--- a/macros/latex/contrib/hypdoc/hypdoc.dtx
+++ b/macros/latex/contrib/hypdoc/hypdoc.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
% File: hypdoc.dtx
-% Version: 2023-01-23 v1.18
+% Version: 2023-10-26 v1.19
% Info: Hyper extensions for doc.sty
%
% Copyright (C)
@@ -79,7 +79,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: hypdoc 2023-01-23 v1.18 Hyper extensions for doc.sty (HO)}
+\Msg{* Package: hypdoc 2023-10-26 v1.19 Hyper extensions for doc.sty (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -91,7 +91,7 @@
This is a generated file.
Project: hypdoc
-Version: 2023-01-23 v1.18
+Version: 2023-10-26 v1.19
Copyright (C)
2002, 2006, 2007, 2009-2011 Heiko Oberdiek
@@ -152,7 +152,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{hypdoc.drv}%
- [2023-01-23 v1.18 Hyper extensions for doc.sty (HO)]%
+ [2023-10-26 v1.19 Hyper extensions for doc.sty (HO)]%
\PassOptionsToPackage{numbered}{hypdoc}
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
@@ -167,7 +167,7 @@ and the derived files
% \GetFileInfo{hypdoc.drv}
%
% \title{The \xpackage{hypdoc} package}
-% \date{2023-01-23 v1.18}
+% \date{2023-10-26 v1.19}
% \author{Heiko Oberdiek\thanks
% {Please report any issues at \url{https://github.com/ho-tex/hypdoc/issues}}}
%
@@ -345,7 +345,7 @@ and the derived files
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{hypdoc}%
- [2023-01-23 v1.18 Hyper extensions for doc.sty (HO)]%
+ [2023-10-26 v1.19 Hyper extensions for doc.sty (HO)]%
% \end{macrocode}
% The package identification is done at the top of the |.dtx| file
% in order to use only one identification string.
@@ -377,11 +377,20 @@ and the derived files
% \end{macrocode}
% \begin{macrocode}
\@ifpackageloaded{hyperref}
- {\PackageWarning{hypdoc}{hyperref has been loaded before. Check the options!}}
+ {
+ \ifHy@hyperindex
+ \PackageWarning{hypdoc}{%
+ hyperref has been loaded before with option 'hyperindex' enabled.\MessageBreak
+ The index will not work properly.}
+ \fi
+ \ifHy@pdfusetitle\else
+ \PackageInfo{hypdoc}{%
+ hyperref has been loaded before with option 'pdfusetitle' disabled.}
+ \fi
+ }
{\RequirePackage[%
hyperindex=false,%
- pdfusetitle,%
- pdfpagelabels%
+ pdfusetitle,%
]{hyperref}[2002/05/09]%
}
\hypersetup{%
@@ -811,6 +820,7 @@ and the derived files
\def\HD@maketarget{%
\stepcounter{HD@hypercount}%
\def\HD@next{%
+ \leavevmode
\llap{\hypertarget{HD.\the\c@HD@hypercount}{}\,}%
}%
\ifHD@savedest
@@ -1345,6 +1355,10 @@ and the derived files
% \begin{Version}{2023-01-23 v1.18}
% \item made an internal command long for compability with natbib, issue \#6
% \end{Version}
+% \begin{Version}{2023-10-26 v1.19}
+% \item Switch to hmode in \cs{HD@maketarget}, issue \#7
+% \item Check options of previously loaded hyperref more explicitly, issue \#4 and \#5.
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/hypdoc/hypdoc.pdf b/macros/latex/contrib/hypdoc/hypdoc.pdf
index cd657eb271..79b50d72ca 100644
--- a/macros/latex/contrib/hypdoc/hypdoc.pdf
+++ b/macros/latex/contrib/hypdoc/hypdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/physics2/README.md b/macros/latex/contrib/physics2/README.md
index f8efc73124..6cdfe86e8a 100644
--- a/macros/latex/contrib/physics2/README.md
+++ b/macros/latex/contrib/physics2/README.md
@@ -24,4 +24,5 @@ either version 1.3c of this license or (at your option) any later version.
This work has the LPPL maintenance status `maintained`.
The Current Maintainer of this work is
-[Zhang Tingxuan](https://www.ctan.org/author/zhang-tx). \ No newline at end of file
+[Zhang Tingxuan](https://www.ctan.org/author/zhang-tx).
+
diff --git a/macros/latex/contrib/physics2/doc/physics2-legacy.pdf b/macros/latex/contrib/physics2/doc/physics2-legacy.pdf
deleted file mode 100644
index cee629a676..0000000000
--- a/macros/latex/contrib/physics2/doc/physics2-legacy.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/physics2/doc/physics2.pdf b/macros/latex/contrib/physics2/doc/physics2.pdf
deleted file mode 100644
index 5a56e39b67..0000000000
--- a/macros/latex/contrib/physics2/doc/physics2.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/physics2/doc/phy2docdef.tex b/macros/latex/contrib/physics2/phy2docdef.tex
index 53fb2f9dea..2590823097 100644
--- a/macros/latex/contrib/physics2/doc/phy2docdef.tex
+++ b/macros/latex/contrib/physics2/phy2docdef.tex
@@ -22,8 +22,8 @@
\hypersetup{colorlinks,urlcolor=magenta,linkcolor=black,filecolor=blue,
pdfstartview=FitH,pdfview=FitH,pdfcreator=XeTeX output}
\def\s@pkg#1{\texorpdfstring{\textcolor{pkgcolor}{\textsf{#1}}}{“#1”}}
-\def\@pkg#1{\texorpdfstring{\hyperref{https://www.ctan.org/pkg/#1}%
- {}{}{\textcolor{pkgcolor}{\textsf{#1}}}}{“#1”}}
+\def\@pkg#1{\texorpdfstring{\href{https://www.ctan.org/pkg/#1}%
+ {\textcolor{pkgcolor}{\textsf{#1}}}}{“#1”}}
\DeclareRobustCommand\pkg{\@ifstar\@pkg\s@pkg}
\def\modu#1{\texorpdfstring{\textcolor{moducolor}{\textsf{#1}}}{“#1”}}
\def\opt#1{\texorpdfstring{\texttt{#1}}{“#1”}}
@@ -64,7 +64,7 @@
\newenvironment{example}
{\stepcounter{example}\example@start}{\example@end}
\author{Zhang Tingxuan}
-\date{2023/04/02\quad Version 0.2.1\thanks{%
+\date{2023/10/24\quad Version 1.0.0\thanks{%
\url{https://www.github.com/AlphaZTX/physics2}}}
\makeatother
-\endinput \ No newline at end of file
+\endinput
diff --git a/macros/latex/contrib/physics2/physics2-code.dtx b/macros/latex/contrib/physics2/physics2-code.dtx
new file mode 100644
index 0000000000..f83913530f
--- /dev/null
+++ b/macros/latex/contrib/physics2/physics2-code.dtx
@@ -0,0 +1,1345 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2023 by Zhang Tingxuan <alphaztx@163.com>
+%
+% 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.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Zhang Tingxuan.
+%
+% This work consists of the files physics2-code.dtx,
+% and the derived files physics2.ins,
+% physics2.sty,
+% phy-<module>.sty,
+% physics2-code.pdf,
+% and README.md.
+%
+%<*internal>
+\iffalse
+%</internal>
+%
+%<*readme>
+# The `physics2` package
+
+This package defines commands for typesetting math formulae faster and
+more simply. `physics2` is a modularized package, each module provides its
+own function while `physics2.sty` itself only provides very few functions.
+Therefore you can load modules separately after loading `physics2`.
+
+Modules of `physics2` provide the following supports:
+
+- Automatic braces;
+- Dirac bra-ket notation;
+- Easy way to typeset diagonal matrices and matrices with similar entries;
+- Double cross and double dot (binary) operators for tensors;
+
+**Welcome to pull requests
+[here](https://github.com/AlphaZTX/physics2/pulls).**
+
+## License
+
+This work may be distributed and/or modified under the conditions of the
+[LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
+either version 1.3c of this license or (at your option) any later version.
+
+This work has the LPPL maintenance status `maintained`.
+
+The Current Maintainer of this work is
+[Zhang Tingxuan](https://www.ctan.org/author/zhang-tx).
+
+%</readme>
+%
+%<*internal>
+\fi
+\begingroup
+ \def\NameOfLaTeXe{LaTeX2e}
+\expandafter\endgroup\ifx\NameOfLaTeXe\fmtname\else
+\csname fi\endcsname
+%</internal>
+%
+%<*install>
+\input docstrip.tex
+\keepsilent
+
+\preamble
+
+ Copyright (C) 2023 by Zhang Tingxuan <alphaztx@163.com>
+
+ 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.3 or later is part of all distributions of
+ LaTeX version 2005/12/01 or later.
+
+ This work has the LPPL maintenance status `maintained'.
+
+ The Current Maintainer of this work is Zhang Tingxuan.
+
+ This work consists of the files physics2-code.dtx,
+ and the derived files physics2.ins,
+ physics2.sty,
+ phy-<module>.sty,
+ physics2-code.pdf,
+ and README.md.
+
+\endpreamble
+
+\generate{
+ \usedir{tex/latex/physics2}
+ \file{physics2.sty} {\from{physics2-code.dtx}{package}}
+ \file{phy-ab.sty} {\from{physics2-code.dtx}{ab}}
+ \file{phy-ab.braket.sty} {\from{physics2-code.dtx}{ab.braket}}
+ \file{phy-braket.sty} {\from{physics2-code.dtx}{braket}}
+ \file{phy-diagmat.sty} {\from{physics2-code.dtx}{diagmat}}
+ \file{phy-doubleprod.sty} {\from{physics2-code.dtx}{doubleprod}}
+ \file{phy-xmat.sty} {\from{physics2-code.dtx}{xmat}}
+ \file{phy-ab.legacy.sty} {\from{physics2-code.dtx}{ab.legacy}}
+ \file{phy-bm-um.legacy.sty} {\from{physics2-code.dtx}{bm-um.legacy}}
+ \file{phy-nabla.legacy.sty} {\from{physics2-code.dtx}{nabla.legacy}}
+ \file{phy-op.legacy.sty} {\from{physics2-code.dtx}{op.legacy}}
+ \file{phy-qtext.legacy.sty} {\from{physics2-code.dtx}{qtext.legacy}}
+%</install>
+%<*internal>
+ \usedir{source/latex/physics2}
+ \file{physics2.ins} {\from{physics2-code.dtx}{install}}
+%</internal>
+%<*install>
+ \usedir{doc/latex/physics2}
+ \nopreamble\nopostamble
+ \file{README.md} {\from{physics2-code.dtx}{readme}}
+}
+
+\obeyspaces
+\Msg{**********************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the *}
+\Msg{* following files into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* physics2.sty, *}
+\Msg{* (for all modules) phy-<module>.sty. *}
+\Msg{* *}
+\Msg{* The recommended directory is *}
+\Msg{* TEXMFDIST/tex/latex/physics2 *}
+\Msg{* *}
+\Msg{* To produce the documentation, run the file *}
+\Msg{* physics2-code.dtx through XeLaTeX or LuaLaTeX. *}
+\Msg{* XeLaTeX is recommended. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{**********************************************************}
+
+\endbatchfile
+%</install>
+%
+%<*internal>
+\fi
+%</internal>
+%
+%<*driver>
+\ProvidesFile{fixdif.dtx}[2023/03/20 (c) Copyright 2022-2023 by Zhang Tingxuan]
+\documentclass{l3doc}
+\usepackage{doc}
+\hypersetup{hidelinks}
+\usepackage{color}
+\definecolor{pkgcolor}{RGB}{0,120,80}
+\definecolor{moducolor}{RGB}{0,0,150}
+\definecolor{gray}{rgb}{.5,.5,.5}
+\DeclareRobustCommand\pkg[1]{\texorpdfstring{\textcolor{pkgcolor}{\textsf{#1}}}{“#1”}}
+\DeclareRobustCommand\modu[1]{\texorpdfstring{\textcolor{moducolor}{\textsf{#1}}}{“#1”}}
+\DeclareRobustCommand\note{\textbf{Note:} }
+\usepackage{amsmath}
+\usepackage{fontspec}
+\setmonofont{Latin Modern Mono Light}
+\usepackage{fancyvrb}
+\fvset{gobble=2,xleftmargin=2em}
+\usepackage{physics2}
+\usephysicsmodule{ab}
+\makeatletter
+\@addtoreset{CodelineNo}{section}
+\newbox\@tempboxb
+\DeclareDocumentCommand\macrodef{O{4em}O{.6}mo+m}{\leavevmode
+\ensuremath{%
+ \setbox\@tempboxa\hbox to #1 {\hss\cs{#3}}%
+ \setbox\@tempboxb\vbox{\hsize=#2\textwidth
+ \textwidth=\hsize
+ \leftskip=\z@
+ \parindent=\z@
+ \textbf{begindef}\IfValueT{#4}{ \textcolor{gray}{(#4)}}\par
+ \begingroup\leftskip2em\parindent-1em#5\par\endgroup
+ \textbf{enddef}%
+ }%
+ \dp\@tempboxb=\dimexpr\ht\@tempboxb-\ht\@tempboxa\relax
+ \ht\@tempboxb=\ht\@tempboxa
+ \box\@tempboxa\leftarrow\box\@tempboxb
+}}
+\protected\long\def\macroifelse#1#2#3{\par
+ \textbf{if} #1 \textbf{then}\par
+ \begingroup\advance\leftskip1em#2\par\endgroup
+ \textbf{else}\par
+ \begingroup\advance\leftskip1em#3\par\endgroup
+ \textbf{endif}\par
+}
+\protected\long\def\macroif#1#2{\par
+ \textbf{if} #1 \textbf{then}\par
+ \begingroup\advance\leftskip1em#2\par\endgroup
+ \textbf{endif}\par
+}
+\protected\def\macrocr{\par}
+\newdimen\ttwd
+\protected\def\updatettwd{%
+ \setbox\@tempboxa\hbox{\normalsize\ttfamily a}
+ \ttwd=\wd\@tempboxa
+}
+\updatettwd
+\makeatother
+\title{Code documentation to the \pkg{physics2} package}
+\author{Zhang Tingxuan}
+\date{2023/10/24 v1.0.0}
+\begin{document}
+ \DocInput{physics2-code.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \maketitle
+%
+% \tableofcontents\newpage
+%
+%^^A******************************************************************************** [physics2.sty]
+% \part{The bare \pkg{physics2}}
+% \section{The \pkg{physics2} package}
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesPackage{physics2}
+ [2023/10/24 v1.0.0 Tools for typesetting math for physics.]
+% \end{macrocode}
+% \subsection{Common variables}
+% \begin{variable}{\phy@temp..}
+% \begin{syntax}
+% \cs{phy@temp}\meta{register type}\meta{a|b|c}
+% \end{syntax}
+% Some \LaTeXe\ variables starting with ``|\phy@temp|''.
+% These variables can be shared by any module of \pkg{physics2}.
+% \end{variable}
+% \begin{macrocode}
+\newcount \phy@tempcnta
+\newdimen \phy@tempdima
+\newdimen \phy@tempdimb
+\newskip \phy@tempskipa
+\newmuskip \phy@tempmuskipa
+\newbox \phy@tempboxa
+\newif \ifphy@tempswa
+\newtoks \phy@toksa
+% \end{macrocode}
+% \subsection{Package requirements and module-loading methods}
+% \pkg{physics2} requires \pkg{keyval} (part of the graphics bundle) to
+% process options of modules.
+% \begin{macrocode}
+\RequirePackage{keyval}
+\def\phy@true{true}
+\def\phy@false{false}
+% \end{macrocode}
+% \begin{function}{\phy@define@key, \phy@setkeys, \phy@processkeyopt}
+% \begin{syntax}
+% \cs{phy@define@key} \marg{module} \marg{key} \oarg{default value} \marg{code}
+% \cs{phy@setkeys} \marg{module} \marg{key-val list}
+% \cs{phy@processkeyopt} \marg{module}
+% \end{syntax}
+% The position of \cs{phy@processkeyopt} in a \pkg{physics2} module is just the same
+% as the position of \cs{ProcessOptions} in a regular \LaTeX\ package.
+% \end{function}
+% \begin{macrocode}
+\long\def\phy@define@key#1{\define@key{phy-#1}}
+\long\def\phy@setkeys#1{\setkeys{phy-#1}}
+\def\phy@processkeyopt#1{\let\reserved@a\@empty%
+ \edef\reserved@a{\@ptionlist{\@currname.\@currext}}%
+ \edef\reserved@a{\noexpand\phy@setkeys{#1}{\reserved@a}}%
+ \reserved@a% the next line thanks to `geometry'
+ \AtEndOfPackage{\let\@unprocessedoptions\relax}}
+% \end{macrocode}
+% We use almost the same way to load \pkg{physics2} modules as \LaTeXe\ kernel
+% does. We use a lot of kernel commands in \LaTeXe.
+%
+% \begin{function}{\usephysicsmodule, \phy@requiremodule}
+% \begin{syntax}
+% \cs{usephysicsmodule} \oarg{key-val options} \marg{module} \oarg{key-val options}
+% \cs{phy@requiremodule} \oarg{key-val options} \marg{module} \oarg{key-val options}
+% \end{syntax}
+% \cs{usephysicsmodule} is a user command, and \cs{phy@requiremodule} is a developer
+% command.
+% \end{function}
+% \begin{macrocode}
+\def\usephysicsmodule{\phy@FWoptions\@pkgextension}
+\let\phy@requiremodule\usephysicsmodule
+\@onlypreamble\usephysicsmodule
+\def\phy@FWoptions#1{\@ifnextchar[%]
+ {\phy@FW@ptions#1}{\phy@FW@ptions#1[]}}
+\@onlypreamble\phy@FWoptions
+\def\phy@FW@ptions#1[#2]#3{\@ifnextchar[%]
+ {\phy@FW@pti@ns#1[{#2}]#3}{\phy@FW@pti@ns#1[{#2}]#3[]}}
+\@onlypreamble\phy@FW@ptions
+\def\phy@FW@pti@ns#1[#2]#3[#4]{%
+ \def\reserved@b##1,{%
+ \ifx\@nnil##1\relax\else
+ \ifx\@nnil##1\@nnil\else
+ \noexpand\@onefilewithoptions{phy-##1}[{\unexpanded{#2}}][{#4}]%
+ \noexpand\@pkgextension
+ \fi
+ \expandafter\reserved@b
+ \fi}%
+ \edef\reserved@a{\zap@space#3 \@empty}%
+ \edef\reserved@a{\expandafter\reserved@b\reserved@a,\@nnil,}%
+ \reserved@a}
+\@onlypreamble\phy@FW@pti@ns
+% \end{macrocode}
+% \subsection{The (used to be) \modu{common} module}
+% The code below used to be the automatically-loaded \modu{common} module,
+% but now we load it together with \pkg{physics2}'s code. This change may
+% bring better performance in Windows system.
+%
+% Check if \pkg{unicode-math} loaded and (re)define the vert symbols.
+% The \cs{relax}'s at the ends of \cs{vert} and \cs{Vert}'s definitions must not be
+% removed. They are for \cs{ifx} to compare. \pkg{unicode-math} sets these symbols
+% \cs{fam}1, \cs{symoperators} is equal to 1 in \LaTeXe\ kernel. Moreover, we make
+% \cs{mid} as a delimiter but it may not work.
+% \begin{macrocode}
+\AtBeginDocument{\ifcsname symrm\endcsname
+ \protected\def\|{\Udelimiter 0 \symoperators "2016 }%
+ \protected\def\vert{\Udelimiter 0 \symoperators "007C\relax}%
+ \protected\def\Vert{\Udelimiter 0 \symoperators "2016\relax}%
+ \protected\def\mid{\Udelimiter 3 \symoperators "007C }%
+\fi}
+\protected\def\Vert{\delimiter"026B30D\relax}
+\protected\def\mid{\delimiter"326A30C }
+% \end{macrocode}
+% \begin{function}{\delopen, \delclose}
+% \begin{syntax}
+% \cs{delopen} \meta{left delimiter}
+% \cs{delclose} \meta{right delimiter}
+% \end{syntax}
+% Actually in \TeX, \cs{left} and \cs{right} will enclose the subformula as ``inner'',
+% but \cs{delopen} and \cs{delclose} will make the subformula an empty open node and
+% a non-empty close node.
+% \end{function}
+% \begin{macrocode}
+\DeclareRobustCommand\delopen{\mathopen{}\mathclose\bgroup\left}
+\DeclareRobustCommand\delclose{\aftergroup\egroup\right}
+% Extension to 2e kernel's or amsmath's biggggg commands.
+% \end{macrocode}
+% \cs{bBigg@} is a command from \pkg{amsmath}. The code below should
+% update with \pkg{amsmath} together.
+% \begin{macrocode}
+\ifdefined\bBigg@
+ \DeclareRobustCommand\biggg{\bBigg@{3}}
+ \DeclareRobustCommand\Biggg{\bBigg@{3.5}}
+\else
+ \DeclareRobustCommand\biggg[1]{\leavevmode@ifvmode
+ {\hbox{$\left#1\vbox to20.5\p@{}\right.\n@space$}}}
+ \DeclareRobustCommand\Biggg[1]{\leavevmode@ifvmode
+ {\hbox{$\left#1\vbox to23.5\p@{}\right.\n@space$}}}
+ \AtBeginDocument{\ifdefined\bBigg@
+ \DeclareRobustCommand\biggg{\bBigg@{3}}%
+ \DeclareRobustCommand\Biggg{\bBigg@{3.5}}%
+ \fi}
+\fi
+\DeclareRobustCommand\bigggl{\mathopen\biggg}
+\DeclareRobustCommand\bigggm{\mathrel\biggg}
+\DeclareRobustCommand\bigggr{\mathclose\biggg}
+\DeclareRobustCommand\Bigggl{\mathopen\Biggg}
+\DeclareRobustCommand\Bigggm{\mathrel\Biggg}
+\DeclareRobustCommand\Bigggr{\mathclose\Biggg}
+% \end{macrocode}
+% \begin{function}{\phy@mathvphantom}
+% \begin{syntax}
+% \cs{phy@mathvphantom} \marg{math mode material}
+% \end{syntax}
+% This command is just like \cs{vphantom} in \LaTeXe\ kernel but only works
+% in math mode.
+% \end{function}
+% \begin{macrocode}
+\def\phy@mathvphantom#1{\setbox\phy@tempboxa=\hbox{}%
+ \mathchoice
+ {\setbox\@tempboxa\hbox{$\displaystyle#1$}%
+ \ht\phy@tempboxa=\ht\@tempboxa
+ \dp\phy@tempboxa=\dp\@tempboxa
+ \box\phy@tempboxa}
+ {\setbox\@tempboxa\hbox{$\textstyle#1$}%
+ \ht\phy@tempboxa=\ht\@tempboxa
+ \dp\phy@tempboxa=\dp\@tempboxa
+ \box\phy@tempboxa}
+ {\setbox\@tempboxa\hbox{$\scriptstyle#1$}%
+ \ht\phy@tempboxa=\ht\@tempboxa
+ \dp\phy@tempboxa=\dp\@tempboxa
+ \box\phy@tempboxa}
+ {\setbox\@tempboxa\hbox{$\scriptscriptstyle#1$}%
+ \ht\phy@tempboxa=\ht\@tempboxa
+ \dp\phy@tempboxa=\dp\@tempboxa
+ \box\phy@tempboxa}%
+}
+% \end{macrocode}
+% \subsection{The (used to be) \modu{explsetup} module}
+% Some common variables and functions for experimental \LaTeX3 syntax.
+% \begin{macrocode}
+%<@@=phy>
+\ExplSyntaxOn
+\int_new:N \l_@@_tmpa_int
+\int_new:N \l_@@_tmpb_int
+\tl_new:N \l_@@_tmpa_tl
+\tl_new:N \l_@@_tmpb_tl
+% \end{macrocode}
+% The function that can gobble one token.
+% \begin{macrocode}
+\cs_new:Npn \_@@_gobble_i:n #1 { }
+\ExplSyntaxOff
+%<@@=>
+%</package>
+% \end{macrocode}
+%
+%^^A******************************************************************************** [l2e modules]
+% \part{Modules written in \LaTeXe\ syntax}
+% \section{The \modu{ab} module}
+% \begingroup\color{gray}%
+% \noindent$\langle*\hbox{\sffamily gibberish}\rangle$\par
+% This module is important but the code is hard to read. One of the motivations
+% I manage \pkg{physics2} with \pkg{DocStrip} is that, when I tried to write a
+% new module based on \modu{ab} after 5 months when I maintained \pkg{physics2}
+% the last time, I found that I could not understand the code I wrote at all!
+% Therefore, it's significant to comment out the alien code in \modu{ab}.\par
+% \noindent$\langle/\hbox{\sffamily gibberish}\rangle$\par
+% \endgroup
+% \begin{macrocode}
+%<*ab>
+\ProvidesFile{phy-ab.sty}
+ [2023/10/24 `ab' (autobraces) module of physics2]
+% \end{macrocode}
+% If you don't know when to use \cs{phy@define@key}, \cs{phy@setkeys} and
+% \cs{phy@processkeyopt} in a module, see ahead. In \modu{ab}, the |tightbraces|
+% option can control if the automatically-sized braces are tight or not. Do you
+% remember \cs{delopen} and \cs{delclose}?
+% \begin{macrocode}
+\phy@define@key{ab}{tightbraces}[true]{\def\@phy@abtight{#1}}
+\phy@setkeys{ab}{tightbraces=true}
+\phy@processkeyopt{ab}
+% \end{macrocode}
+% \begin{function}{\phy@abopen, \phy@abclose}
+% \begin{syntax}
+% \cs{phy@abopen} \meta{left delimiter}
+% \cs{phy@abclose} \meta{right delimiter}
+% \end{syntax}
+% They are defined either \{\cs{delopen}, \cs{delclose}\} or
+% \{\cs{left}, \cs{right}\}. If a module requires \modu{ab},
+% these two commands are likely to be used.
+% \end{function}
+% \begin{macrocode}
+\ifx\@phy@abtight\phy@true
+ \let\phy@abopen\delopen
+ \let\phy@abclose\delclose
+\else
+ \let\phy@abopen\left
+ \let\phy@abclose\right
+\fi
+% \end{macrocode}
+% \subsection{The implementation of \cs{ab}}
+% This is the alienest part of \modu{ab}. It's better to draw something rather
+% than write boring comments. First let's take a look at \cs{ab}'s syntax.
+% After \cs{ab} should be a pair of delimiters; take \texttt{()} as an example.
+% Between \cs{ab} and ``\texttt{(}'' can be a biggg command or star, or even nothing.
+% \cs{ab} is defined as follows:
+% \[ \macrodef{ab}{\cs{phy@d@lx} \texttt{\{mb\}} \texttt{\{ab\}}} \]
+% where \texttt{ab} is the branch name of |\ab()|, and \texttt{mb} is the branch
+% name of |\ab\big()| and |\ab*()|. Then let's see the syntax of \cs{phy@d@lx}.
+% \[ \hbox{\ttfamily\cs{phy@d@lx} \marg{biggg or star branch name} \marg{automatic branch name} \{\#3\}} \]
+% Here exists an \texttt{\#3}. \texttt{\#3} is one token immediately following \cs{ab},
+% which can be \{\,a biggg command or a star\,\} or a ``\texttt{(}'', under our assumption.
+
+% \cs{phy@d@lx} is defined as follows:
+% \[
+% \macrodef {phy@d@lx} [\#1: biggg or star branch name, \meta{mb}; \#2: automatic branch name, \meta{ab}; \#3, the token after \cs{ab}]
+% {%
+% \macroifelse {\#3 == biggg or \#3 == star ($\Leftrightarrow$ csname \{phy@del\cs{string}\#3\} is defined)}
+% {let \meta{next cs} = csname \{phy@d@lx\meta{mb}\}}
+% {let \meta{next cs} = csname \{phy@d@lx\meta{ab}\}}
+% \meta{next cs} \#3
+% }
+% \]
+% The condition should be true when \#3 is |\big| or |*|, and it should be false when
+% \#3 is ``|(|''. Accordingly, in math mode,
+% \begin{align*}
+% \hbox{\ttfamily\cs{ab} \cs{big} (}&\quad\to\quad\hbox{\ttfamily\cs{phy@d@lxmb} \cs{big} (}\\
+% \hbox{\ttfamily\cs{ab} \phantom{\cs{big}} (}&\quad\to\quad\hbox{\ttfamily\cs{phy@d@lxab} \phantom{\cs{big}} (}
+% \end{align*}
+% Then we meet two new commands --- \cs{phy@d@lxmb} and \cs{phy@d@lxab}. Syntax is as follows.
+% \begin{align*}
+% &\hbox{\ttfamily\cs{phy@d@lxmb} \meta{biggg or *}
+% \meta{left delimiter} \meta{subformula} \meta{right delimiter}}\\
+% &\hbox{\ttfamily\cs{phy@d@lxab} \phantom{\meta{biggg or *}}
+% \meta{left delimiter} \meta{subformula} \meta{right delimiter}}
+% \end{align*}
+% Notice that \texttt{ab} and \texttt{mb} in the above commands are names of \cs{ab}'s
+% two branches --- they are like namespaces. \cs{phy@d@lxmb} and \cs{phy@d@lxab} are
+% defined by the following two lines:
+% \begin{Verbatim}
+% \phy@d@l@genxm{mb}
+% \phy@d@l@genxa{ab}
+% \end{Verbatim}
+% \cs{phy@d@l@genxm} and \cs{phy@d@l@genxa} are defined as follows:
+% \begin{align*}
+% & \macrodef {phy@d@l@genxm} [\#1: biggg or star branch name, \meta{mb}]
+% {%
+% \macrodef [12\ttwd] {phy@d@lx\meta{mb}} [\#\#1: biggg or star; \#\#2: left delimiter]
+% {%
+% \cs{begingroup}
+% \macroifelse {\#\#1 == star}
+% {\meta{temp} $\gets$ \cs{relax}}
+% {\meta{temp} $\gets$ \#\#1}
+% csname \{phy@\meta{mb}@\cs{string}\#\#2\} \meta{temp} \#\#2 \macrocr
+% \% requires an \cs{endgroup} after the right delimiter
+% }
+% } \\[1ex]
+% & \macrodef {phy@d@l@genxa} [\#1: automatic branch name, \meta{ab}]
+% {%
+% \macrodef [12\ttwd] {phy@d@lx\meta{ab}} [\#\#1: left delimiter]
+% {%
+% csname \{phy@\meta{ab}@\cs{string}\#\#1\} \#\#1
+% }
+% }
+% \end{align*}
+% So we can get
+% \begin{align*}
+% \hbox{\ttfamily\cs{ab} \cs{big} (}&\quad\to\quad\hbox{\cs{begingroup} csname \{phy@mb@(\} \cs{big}\hskip2\ttwd\ \texttt(}\\
+% \hbox{\ttfamily\cs{ab} *\phantom{big} (}&\quad\to\quad\hbox{\cs{begingroup} csname \{phy@mb@(\} \cs{relax} \texttt(}\\
+% \hbox{\ttfamily\cs{ab} \phantom{\cs{big}} (}&\quad\to\quad\hbox{\hskip11\ttwd\ csname \{phy@ab@(\} \texttt(}
+% \end{align*}
+% The csnames above (\cs{phy@mb@(} and \cs{phy@ab@(}) are generated with \cs{phy@AB@gen}.
+% \[ \hbox{\cs{phy@AB@gen} \marg{branch name} \meta{left delimiter} \marg{arg spec} \marg{definition}} \]
+% If \meta{branch name} is \texttt{mb}, \marg{arg spec} should be |mr()|, where |m| is for biggg or star;
+% If \meta{branch name} is \texttt{ab}, \marg{arg spec} should be |r()|.
+%
+% \note The ``|(|'' in the example above must not be replaced by a subformula braced by a pair of |{}|.
+%
+% \begin{function}{\phy@AB@gen}
+% \begin{syntax}
+% \cs{phy@AB@gen} \marg{branch name} \meta{left delimiter} \marg{arg spec} \marg{definition}
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\def\phy@AB@gen#1#2{\expandafter\DeclareDocumentCommand\csname phy@#1@\string#2\endcsname}
+\phy@AB@gen{ab}({r()}{\phy@abopen(#1\phy@abclose)}
+\phy@AB@gen{ab}[{r[]}{\phy@abopen[#1\phy@abclose]}
+\phy@AB@gen{ab}\{{r\{\}}{\phy@abopen\{#1\phy@abclose\}}
+\phy@AB@gen{ab}|{r||}{\phy@abopen|#1\phy@abclose|}
+\phy@AB@gen{ab}\|{r\|\|}{\phy@abopen\|#1\phy@abclose\|}
+\phy@AB@gen{ab}<{r<>}{\phy@abopen<#1\phy@abclose>}
+\phy@AB@gen{ab}\lbrace{r\lbrace\rbrace}{\phy@abopen\lbrace#1\phy@abclose\rbrace}
+\phy@AB@gen{ab}\vert{r\vert\vert}{\phy@abopen\vert#1\phy@abclose\vert}
+\phy@AB@gen{ab}\Vert{r\Vert\Vert}{\phy@abopen\Vert#1\phy@abclose\Vert}
+\phy@AB@gen{ab}\langle{r\langle\rangle}{\phy@abopen\langle#1\phy@abclose\rangle}
+% \end{macrocode}
+% \cs{endgroup}'s in the end of the following definitions are corresponding to
+% \cs{begingroup}'s in the definition of \cs{phy@d@l@genxm}.
+% \begin{macrocode}
+\phy@AB@gen{mb}({mr()}{\mathopen#1(#2\mathclose#1)\endgroup}
+\phy@AB@gen{mb}[{mr[]}{\mathopen#1[#2\mathclose#1]\endgroup}
+\phy@AB@gen{mb}\{{mr\{\}}{\mathopen#1\lbrace#2\mathclose#1\rbrace\endgroup}
+\phy@AB@gen{mb}|{mr||}{\mathopen#1\vert#2\mathclose#1\vert\endgroup}
+\phy@AB@gen{mb}\|{mr\|\|}{\mathopen#1\Vert#2\mathclose#1\Vert\endgroup}
+\phy@AB@gen{mb}<{mr<>}{\mathopen#1\langle#2\mathclose#1\rangle\endgroup}
+\phy@AB@gen{mb}\lbrace{mr\lbrace\rbrace}{\mathopen#1\lbrace#2\mathclose#1\rbrace\endgroup}
+\phy@AB@gen{mb}\vert{mr\vert\vert}{\mathopen#1\vert#2\mathclose#1\vert\endgroup}
+\phy@AB@gen{mb}\Vert{mr\Vert\Vert}{\mathopen#1\Vert#2\mathclose#1\Vert\endgroup}
+\phy@AB@gen{mb}\langle{mr\langle\rangle}{\mathopen#1\langle#2\mathclose#1\rangle\endgroup}
+% \end{macrocode}
+% \begin{function}{\phy@del\string.}
+% The syntax seems not important. These following lines seems only for \cs{ifcsname}
+% to judge if the commands are defined.
+% \end{function}
+% \begin{macrocode}
+\def\phy@del#1#2#3{\phy@abopen#1#3\phy@abclose#2}
+\expandafter\def\csname phy@del\string*\endcsname#1#2#3{\mathopen#1#3\mathclose#2}
+\expandafter\def\csname phy@del\string\big\endcsname#1#2#3{\bigl#1#3\bigr#2}
+\expandafter\def\csname phy@del\string\Big\endcsname#1#2#3{\Bigl#1#3\Bigr#2}
+\expandafter\def\csname phy@del\string\bigg\endcsname#1#2#3{\biggl#1#3\biggr#2}
+\expandafter\def\csname phy@del\string\Bigg\endcsname#1#2#3{\Biggl#1#3\Biggr#2}
+\expandafter\def\csname phy@del\string\biggg\endcsname#1#2#3{\bigggl#1#3\bigggr#2}
+\expandafter\def\csname phy@del\string\Biggg\endcsname#1#2#3{\Bigggl#1#3\Bigggr#2}
+% \end{macrocode}
+% \begin{function}{\phy@d@lx}
+% \begin{syntax}
+% \cs{phy@d@lx} \marg{biggg or star branch name} \marg{automatic branch name} \{\#3\}
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\def\phy@d@lx#1#2#3{%
+ \ifcsname phy@del\string#3\endcsname
+ \def\reserved@a{#1}% #3 is star or \biggg
+ \else
+ \def\reserved@a{#2}% #3 is delimiter
+ \fi
+ \csname phy@d@lx\reserved@a\endcsname#3}
+% \end{macrocode}
+% \begin{function}{\phy@d@l@genxm, \phy@d@l@genxa}
+% \begin{syntax}
+% \cs{phy@d@l@genxm} \marg{biggg or star branch name}
+% \cs{phy@d@l@genxa} \marg{automatic branch name}
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\def\phy@d@l@genxm#1{%
+ \expandafter\def\csname phy@d@lx#1\endcsname##1##2{%
+ \begingroup % \endgroup is at the end of #4 of \phy@AB@gen
+ \ifx##1*\let\phy@tempa=\relax\else\let\phy@tempa=##1\fi
+ \csname phy@#1@\string##2\endcsname\phy@tempa##2}}
+\def\phy@d@l@genxa#1{%
+ \expandafter\def\csname phy@d@lx#1\endcsname##1{%
+ \csname phy@#1@\string##1\endcsname##1}}
+% \end{macrocode}
+% \begin{function}{\phy@d@lxmb, \phy@d@lxab}
+% \begin{syntax}
+% \cs{phy@d@lxmb} \meta{biggg or *} \meta{left delimiter} \meta{subformula} \meta{right delimiter}
+% \cs{phy@d@lxab} \phantom{\meta{biggg or *}} \meta{left delimiter} \meta{subformula} \meta{right delimiter}
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\phy@d@l@genxm{mb}
+\phy@d@l@genxa{ab}
+% \end{macrocode}
+% \begin{function}{\ab}
+% The users' command \cs{ab}.
+% \end{function}
+% \begin{macrocode}
+\DeclareRobustCommand\ab{\phy@d@lx{mb}{ab}}
+% \end{macrocode}
+% \subsection{\cs{pab}-like commands}
+% This is so simple. No need to comment a lot.
+%
+% \begin{function}{\phy@d@l@geny}
+% \begin{syntax}
+% \cs{phy@d@l@geny} \meta{command} \meta{left delimiter} \meta{right delimiter}
+% \end{syntax}
+% This command used to define commands like \cs{pab}.
+% \end{function}
+% \begin{macrocode}
+\def\phy@d@l@geny#1#2#3{%
+ \DeclareDocumentCommand#1{som}{% ##1: star; ##2: bigg (csname); ##3: subformula.
+ \IfBooleanTF{##1}%
+ {#2##3#3}%
+ {\IfValueTF{##2}%
+ {\csname##2l\endcsname#2##3\csname##2r\endcsname#3}%
+ {\phy@abopen#2##3\phy@abclose#3}%
+ }%
+ }%
+}
+\phy@d@l@geny\pab()
+\phy@d@l@geny\bab[]
+\phy@d@l@geny\Bab\lbrace\rbrace
+\phy@d@l@geny\vab\vert\vert
+\phy@d@l@geny\aab\langle\rangle
+\phy@d@l@geny\Vab\Vert\Vert
+%</ab>
+% \end{macrocode}
+% \section{The \modu{ab.braket} module}
+% \begin{macrocode}
+%<*ab.braket>
+\ProvidesFile{phy-ab.braket.sty}
+ [2023/10/24 `ab.braket' module of physics2]
+% \end{macrocode}
+% This module requires \cs{phy@abopen} and \cs{phy@abclose} from \modu{ab}.
+% This module may have conflict with \modu{braket}.
+% \begin{macrocode}
+\phy@requiremodule{ab}
+\ifdefined\phy@bra@@
+ \PackageWarning{physics2}{You cannot load `ab.braket' and `braket'
+ modules together.\MessageBreak Only `ab.braket' module works now.}
+\fi
+% \end{macrocode}
+% \begin{function}{\bra}
+% \begin{syntax}
+% \cs{bra} \char`\<\ \meta{subformula} \char`\|
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\phy@AB@gen{br.m}<{mr<|}{\mathopen#1\langle#2\mathclose#1\vert\endgroup}
+\phy@AB@gen{br.a}<{r<|}{\phy@abopen\langle#1\phy@abclose\vert}
+\phy@d@l@genxm{br.m}
+\phy@d@l@genxa{br.a}
+\DeclareRobustCommand\bra{\phy@d@lx{br.m}{br.a}}
+% \end{macrocode}
+% \begin{function}{\ket}
+% \begin{syntax}
+% \cs{ket} \char`\|\ \meta{subformula} \char`\>
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\phy@AB@gen{kt.m}|{mr|>}{\mathopen#1\vert#2\mathclose#1\rangle\endgroup}
+\phy@AB@gen{kt.a}|{r|>}{\phy@abopen\vert#1\phy@abclose\rangle}
+\phy@d@l@genxm{kt.m}
+\phy@d@l@genxa{kt.a}
+\DeclareRobustCommand\ket{\phy@d@lx{kt.m}{kt.a}}
+% \end{macrocode}
+% \begin{function}{\braket}
+% \begin{syntax}
+% \cs{braket} \char`\<\ \meta{subformula 1} \char`\|\ \meta{subformula 2} {\color{gray}\textrm{[}\char`\|\ \meta{subformula 3} \textrm{\dots]}} \char`\>
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\begingroup
+\catcode`\|=\active
+\gdef\phy@@mb@bk#1#2{\begingroup
+ \mathcode`\|="8000\def|{\egroup#1\vert\bgroup}%
+ \def\<{\mathrel{<}}\def\>{\mathrel{>}}%
+ \mathopen#1\langle\bgroup#2\egroup\mathclose#1\rangle\endgroup}
+\gdef\phy@@ab@bk#1{\begingroup
+ \mathcode`\|="8000\def|{\egroup\phy@abb@bkv\bgroup}%
+ \def\<{\mathrel{<}}\def\>{\mathrel{>}}%
+ \phy@abopen\langle\bgroup#1\egroup\phy@abclose\rangle\endgroup}
+\endgroup
+\def\phy@abb@bkv{\middle\vert}
+\phy@AB@gen{bk.m}<{mr<>}{\phy@@mb@bk#1{#2}\endgroup}
+\phy@AB@gen{bk.a}<{r<>}{\phy@@ab@bk{#1}}
+\phy@d@l@genxm{bk.m}
+\phy@d@l@genxa{bk.a}
+\DeclareRobustCommand\braket{\phy@d@lx{bk.m}{bk.a}}
+% \end{macrocode}
+% \begin{function}{\ketbra}
+% \begin{syntax}
+% \cs{braket} \char`\|\ \meta{subformula 1} \char`\>\ \meta{subformula 2} \char`\<\ \meta{subformula 3} \char`\|
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\begingroup
+\catcode`\<=\active
+\catcode`\>=\active
+\gdef\phy@@mb@kb#1#2{\begingroup
+ \mathcode`\<="8000 \mathcode`\>="8000%
+ \def<{#1\langle}\def>{#1\rangle}%
+ \def\<{\phy@abb@l}\def\>{\phy@abb@r}%
+ \mathopen#1\vert#2\mathclose#1\vert\endgroup}
+\endgroup
+\gdef\phy@@ab@kb#1>#2<#3\phy@@end{\begingroup
+ \def\<{\phy@abb@l}\def\>{\phy@abb@r}%
+ \phy@abopen\vert\mathopen{\phy@mathvphantom{#3}}#1\phy@abclose\rangle#2%
+ \phy@abopen\langle#3\mathclose{\phy@mathvphantom{#1}}\phy@abclose\vert
+\endgroup}
+\AtBeginDocument{\ifcsname symbf\endcsname
+ \def\phy@abb@l{\Umathchar 3 \symoperators "003C }%
+ \def\phy@abb@r{\Umathchar 3 \symoperators "003E }%
+\fi}
+\def\phy@abb@l{\mathchar"313C }
+\def\phy@abb@r{\mathchar"313E }
+\phy@AB@gen{kb.m}|{mr||}{\phy@@mb@kb#1{#2}\endgroup}
+\phy@AB@gen{kb.a}|{r||}{\phy@@ab@kb#1\phy@@end}
+\phy@d@l@genxm{kb.m}
+\phy@d@l@genxa{kb.a}
+\DeclareRobustCommand\ketbra{\phy@d@lx{kb.m}{kb.a}}
+%</ab.braket>
+% \end{macrocode}
+% \section{The \modu{braket} module}
+% \begin{macrocode}
+%<*braket>
+\ProvidesFile{phy-braket.sty}
+ [2023/10/24 `braket' module of physics2]
+% \end{macrocode}
+% This module requires \cs{phy@abopen} and \cs{phy@abclose} from \modu{ab}.
+% This module may have conflict with \modu{ab.braket}.
+% \begin{macrocode}
+\phy@requiremodule{ab}
+\ifdefined\phy@abb@bkv
+ \PackageWarning{physics2}{You cannot load `ab.braket' and `braket'
+ modules together.\MessageBreak Only `braket' module works now.}
+\fi
+% \end{macrocode}
+% \begin{function}{\bra}
+% \begin{syntax}
+% \cs{bra} * \oarg{biggg} \marg{subformula}
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\DeclareDocumentCommand\bra{ s o m }{%
+ \IfBooleanTF{#1}
+ {\mathopen\langle#3\mathclose\vert}
+ {\IfValueTF{#2}
+ {\csname#2l\endcsname\langle#3\csname#2r\endcsname\vert}
+ {\phy@abopen\langle#3\phy@abclose\vert}%
+ }%
+}
+% \end{macrocode}
+% \begin{function}{\ket}
+% \begin{syntax}
+% \cs{ket} * \oarg{biggg} \marg{subformula}
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\DeclareDocumentCommand\ket{ s o m }{%
+ \IfBooleanTF{#1}
+ {\mathopen\vert#3\mathclose\rangle}
+ {\IfValueTF{#2}
+ {\csname#2l\endcsname\vert#3\csname#2r\endcsname\rangle}
+ {\phy@abopen\vert#3\phy@abclose\rangle}%
+ }%
+}
+% \end{macrocode}
+% \begin{function}{\braket}
+% \begin{syntax}
+% \cs{ket} * [\meta{biggg}, $n \in \{1,2,3\}$] \marg{subformula 1} \dots \marg{subformula $n$}
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\DeclareDocumentCommand\braket{ s O{} }{%
+ \IfBooleanTF{#1}%
+ {%
+ \gdef\@phy@bk@argnum{ii}%
+ \phy@bk@doopt{#2}%
+ \gdef\@phy@bk@l{mathopen}%
+ \gdef\@phy@bk@m{mathord}%
+ \gdef\@phy@bk@r{mathclose}%
+ }%
+ {%
+ \gdef\@phy@bk@argnum{ii}%
+ \gdef\@phy@bk@l{phy@abopen}%
+ \gdef\@phy@bk@m{middle}%
+ \gdef\@phy@bk@r{phy@abclose}%
+ \phy@bk@doopt{#2}%
+ }%
+ \csname phy@bk@in@\@phy@bk@argnum\endcsname%
+}
+% \end{macrocode}
+% \begin{function}{\phy@bk@in@i, \phy@bk@in@ii, \phy@bk@in@iii}
+% \begin{syntax}
+% \cs{phy@bk@in@\meta{n.roman}} \marg{subformula 1} \dots \marg{subformula $n$}
+% \end{syntax}
+% \meta{n.roman} is $n$ in roman lowercase, where $n \in \{1,2,3\}$.
+% \end{function}
+% \begin{macrocode}
+\def\phy@bk@in@i#1{%
+ \csname\@phy@bk@l\endcsname\langle{#1}%
+ \csname\@phy@bk@r\endcsname\rangle}
+\def\phy@bk@in@ii#1#2{%
+ \csname\@phy@bk@l\endcsname\langle{#1}%
+ \csname\@phy@bk@m\endcsname\vert{#2}%
+ \csname\@phy@bk@r\endcsname\rangle}
+\def\phy@bk@in@iii#1#2#3{%
+ \csname\@phy@bk@l\endcsname\langle{#1}%
+ \csname\@phy@bk@m\endcsname\vert{#2}%
+ \csname\@phy@bk@m\endcsname\vert{#3}%
+ \csname\@phy@bk@r\endcsname\rangle}
+% \end{macrocode}
+% \begin{function}{\phy@bk@doopt, \phy@bk@do@pt}
+% \begin{syntax}
+% \cs{phy@bk@doopt} \marg{clist}
+% \end{syntax}
+% Parse the optional argument of \cs{braket}. This will add 3 entries to hash.
+% \end{function}
+% \begin{macrocode}
+\def\@phy@bk@do@pt#1,{\ifx#1\relax\@empty\else
+ \edef\reserved@a{\zap@space#1 \@empty}%
+ \ifx\reserved@a\@empty\else
+ \ifcsname phy@del\expandafter\string\csname\reserved@a\endcsname\endcsname
+ \xdef\@phy@bk@l{\reserved@a l}%
+ \xdef\@phy@bk@m{\reserved@a}% but not m (m stands for \mathrel)
+ \xdef\@phy@bk@r{\reserved@a r}%
+ \else
+ \ifnum\reserved@a>3%
+ \PackageError{physics2}{\string\braket\space can only take 3
+ mandatory arguments at most}{Check if you had written a number
+ more than 3 in the [optional] argument.}%
+ \fi
+ \xdef\@phy@bk@argnum{\romannumeral\reserved@a}%
+ \fi
+ \fi
+ \expandafter\@phy@bk@do@pt\fi}
+\def\phy@bk@doopt#1{\@phy@bk@do@pt#1,\relax,}
+% \end{macrocode}
+% \begin{function}{\ketbra}
+% \begin{syntax}
+% \cs{ketbra} * [\meta{biggg}] \marg{subformula 1} \oarg{between 1 and 2} \marg{subformula 2}
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\DeclareDocumentCommand\ketbra{ s o m O{} m }{%
+ \IfBooleanTF{#1}%
+ {\mathopen\vert#3\mathclose\rangle#4\mathopen\langle#5\mathclose\vert}%
+ {\IfValueTF{#2}%
+ {\csname#2l\endcsname\vert#3\csname#2r\endcsname\rangle#4%
+ \csname#2l\endcsname\langle#5\csname#2r\endcsname\vert}%
+ {\begingroup
+ \phy@abopen\vert\mathopen{\phy@mathvphantom{#5}}#3\phy@abclose\rangle#4%
+ \phy@abopen\langle#5\mathclose{\phy@mathvphantom{#3}}\phy@abclose\vert
+ \endgroup}%
+ }%
+}
+%</braket>
+% \end{macrocode}
+% \section{The \modu{doubleprod} module}
+% \begin{macrocode}
+%<*doubleprod>
+\ProvidesFile{phy-doubleprod.sty}
+ [2023/10/24 `doubleprod' (vertically stacked binary operators) module of physics2]
+% \end{macrocode}
+% Boolean options.
+% \begin{macrocode}
+\phy@define@key{doubleprod}{crosssymbol}{\def\@phy@dbl@c{#1}}
+\phy@define@key{doubleprod}{dotsymbol}{\def\@phy@dbl@d{#1}}
+\phy@define@key{doubleprod}{crossscale}{\def\@phy@dbl@sc{#1}}
+\phy@define@key{doubleprod}{dotscale}{\def\@phy@dbl@sd{#1}}
+\phy@define@key{doubleprod}{crossopenup}{\def\@phy@dbl@oc{#1}}
+\phy@define@key{doubleprod}{dotopenup}{\def\@phy@dbl@od{#1}}
+\phy@setkeys{doubleprod}{crosssymbol=\times,dotsymbol=\ldotp,
+ crossscale=0.8,dotscale=1,crossopenup=.02,dotopenup=.2}
+\phy@processkeyopt{doubleprod}
+\def\phy@dbl@gen#1#2#3#4{%
+ \DeclareRobustCommand#1{\mathbin{\vcenter{\baselineskip\z@skip%
+ \lineskip#4\phy@dblcurrf@size%
+ \setbox\@tempboxa=\hbox{\fontsize{#2\phy@dblcurrf@size}\z@$#3$}%
+ \copy\@tempboxa\box\@tempboxa}}}}
+\def\phy@dblcurrf@size{\dimexpr\f@size pt\relax}
+\phy@dbl@gen\doublecross\@phy@dbl@sc\@phy@dbl@c\@phy@dbl@oc
+\phy@dbl@gen\doubledot\@phy@dbl@sd\@phy@dbl@d\@phy@dbl@od
+%</doubleprod>
+% \end{macrocode}
+%^^A******************************************************************************** [l3 modules]
+% \part{Modules written in \LaTeX3 syntax}
+% We use |phy| as the namespace for \pkg{physics2} modules.
+% \begin{macrocode}
+%<@@=phy>
+% \end{macrocode}
+% \section{The \modu{diagmat} module}
+% \begin{macrocode}
+%<*diagmat>
+\ProvidesExplFile{phy-diagmat.sty}{2023/10/24}{}
+ {`diagmat' module of physics2}
+\RequirePackage { amsmath }
+\phy@define@key { diagmat } { empty } [ 0 ] { \tl_gset:Nn \l_@@_mat_empty_tl { #1 } }
+% \end{macrocode}
+% This module requires some new variables.
+% \begin{macrocode}
+\clist_new:N \l_@@_mat_diag_clist
+\clist_new:N \l_@@_mat_tmpa_clist
+\clist_new:N \l_@@_mat_tmpb_clist
+\clist_new:N \l_@@_mat_diagpos_clist
+\int_new:N \l_@@_mat_dim_int
+\tl_new:N \l_@@_mat_line_tl
+\tl_new:N \l_@@_diagmat_tl
+\tl_new:N \l_@@_mat_empty_tl
+\tl_gset:Nn \l_@@_mat_empty_tl { 0 }
+\phy@processkeyopt { diagmat }
+\keys_define:nn { phy/diagmat }
+ {
+ empty .tl_set:N = \l_@@_mat_empty_tl ,
+ }
+% \end{macrocode}
+% \begin{function}{\diagmat}
+% \begin{syntax}
+% \cs{\meta{delimiter type}diagmat} \oarg{key-val list} \marg{diagonal}
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\DeclareDocumentCommand \diagmat { O{} m }
+ { \_@@_diagmat_type:nnn { } { #1 } { #2 } }
+\DeclareDocumentCommand \pdiagmat { O{} m }
+ { \_@@_diagmat_type:nnn { p } { #1 } { #2 } }
+\DeclareDocumentCommand \bdiagmat { O{} m }
+ { \_@@_diagmat_type:nnn { b } { #1 } { #2 } }
+\DeclareDocumentCommand \Bdiagmat { O{} m }
+ { \_@@_diagmat_type:nnn { B } { #1 } { #2 } }
+\DeclareDocumentCommand \vdiagmat { O{} m }
+ { \_@@_diagmat_type:nnn { v } { #1 } { #2 } }
+\DeclareDocumentCommand \Vdiagmat { O{} m }
+ { \_@@_diagmat_type:nnn { V } { #1 } { #2 } }
+% \end{macrocode}
+% \begin{function}{\_@@_diagmat_type:nnn}
+% \begin{syntax}
+% \cs{_@@_diagmat_type:nnn} \marg{delimiter type} \marg{key-val list} \marg{diagonal}
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\cs_new:Npn \_@@_diagmat_type:nnn #1#2#3
+ {
+ \group_begin:
+ \clist_set:Nn \l_@@_mat_diag_clist { #3 }
+ \int_set:Nn \l_@@_mat_dim_int { \clist_count:N \l_@@_mat_diag_clist }
+ \int_compare:nNnT { \l_@@_mat_dim_int } > { \value { MaxMatrixCols } }
+ { \setcounter { MaxMatrixCols } { \l_@@_mat_dim_int } }
+ \keys_set:nn { phy/diagmat } { #2 }
+ \tl_gclear:N \l_@@_diagmat_tl
+ \int_step_inline:nnn { 0 } { \l_@@_mat_dim_int - 1 }
+ {
+ \int_step_inline:nnn { 0 } { \l_@@_mat_dim_int - 1 }
+ {
+ \int_compare:nNnTF { ##1 } = { ####1 }
+ {
+ \clist_gpop:NN \l_@@_mat_diag_clist \l_@@_tmpa_tl
+ \tl_if_empty:NTF \l_@@_tmpa_tl
+ { \tl_gput_right:Nn \l_@@_mat_line_tl { \l_@@_mat_empty_tl } }
+ { \tl_gput_right:Nx \l_@@_mat_line_tl { \l_@@_tmpa_tl } }
+ }
+ { \tl_gput_right:Nn \l_@@_mat_line_tl { \l_@@_mat_empty_tl } }
+% \end{macrocode}
+% Add |&| (or |\\|) between matrix entries.
+% \begin{macrocode}
+ \int_compare:nNnTF { ####1 } = { \l_@@_mat_dim_int - 1 }
+ {
+ \tl_gput_right:Nn \l_@@_mat_line_tl { \\ }
+ }
+ {
+ \tl_gput_right:Nn \l_@@_mat_line_tl { & }
+ }
+ }
+ \tl_gput_right:Nx \l_@@_diagmat_tl { \l_@@_mat_line_tl }
+ \tl_gclear:N \l_@@_mat_line_tl
+ }
+ \begin { #1 matrix }
+ \tl_use:N \l_@@_diagmat_tl
+ \end { #1 matrix }
+ \group_end:
+ }
+%</diagmat>
+% \end{macrocode}
+% \section{The \modu{xmat} module}
+% \begin{macrocode}
+%<*xmat>
+\ProvidesExplFile{phy-xmat.sty}{2023/10/24}{}
+ {`xmat' module of physics2}
+\RequirePackage { amsmath }
+\phy@define@key { xmat } { showtop }
+ { \int_gset:Nn \l_@@_xmat_showtop_int { #1 } }
+\phy@define@key { xmat } { showleft }
+ { \int_gset:Nn \l_@@_xmat_showleft_int { #1 } }
+% \end{macrocode}
+% This module requires some new variables.
+% \begin{macrocode}
+\bool_new:N \l_@@_xmat_extra_vdots_bool
+\bool_new:N \l_@@_xmat_extra_cdots_bool
+\int_new:N \l_@@_xmat_showtop_int
+\int_new:N \l_@@_xmat_showleft_int
+\tl_new:N \l_@@_xmat_tl
+\int_gset:Nn \l_@@_xmat_showtop_int { \value { MaxMatrixCols } - 2 }
+\int_gset:Nn \l_@@_xmat_showleft_int { \value { MaxMatrixCols } - 2 }
+\cs_new:Npn \_@@_xmat_entry_format:nnn #1#2#3
+ {
+ #1 \c_math_subscript_token { #2 #3 }
+ }
+\phy@processkeyopt { xmat }
+\DeclareDocumentCommand \xmat { O{} m m m }
+ { \_@@_xmat_type:nnnnn { } { #1 } { #2 } { #3 } { #4 } }
+\DeclareDocumentCommand \pxmat { O{} m m m }
+ { \_@@_xmat_type:nnnnn { p } { #1 } { #2 } { #3 } { #4 } }
+\DeclareDocumentCommand \bxmat { O{} m m m }
+ { \_@@_xmat_type:nnnnn { b } { #1 } { #2 } { #3 } { #4 } }
+\DeclareDocumentCommand \Bxmat { O{} m m m }
+ { \_@@_xmat_type:nnnnn { B } { #1 } { #2 } { #3 } { #4 } }
+\DeclareDocumentCommand \vxmat { O{} m m m }
+ { \_@@_xmat_type:nnnnn { v } { #1 } { #2 } { #3 } { #4 } }
+\DeclareDocumentCommand \Vxmat { O{} m m m }
+ { \_@@_xmat_type:nnnnn { V } { #1 } { #2 } { #3 } { #4 } }
+\keys_define:nn { phy/xmat }
+ {
+ format .cs_set:Np = \_@@_xmat_entry_format:nnn #1#2#3 ,
+ showtop .int_set:N = \l_@@_xmat_showtop_int ,
+ showleft.int_set:N = \l_@@_xmat_showleft_int ,
+ }
+% \end{macrocode}
+% \begin{function}[pTF]{\_@@_if_digits_only:n}
+% \begin{syntax}
+% \cs{_@@_if_digits_only:nTF} \marg{token list} \marg{true code} \marg{flase code}
+% \end{syntax}
+% Use \LaTeX3 regular expression to tell if \meta{token list}
+% (the numbers of rows or columns) contain digits only.
+% \end{function}
+% \begin{macrocode}
+\prg_new_conditional:Npnn \_@@_if_digits_only:n #1 { TF }
+ {
+ \regex_match:nnTF { \A [[:digit:]]* \Z } { #1 }
+ { \prg_return_true: } { \prg_return_false: }
+ }
+% \end{macrocode}
+% \begin{function}{\_@@_xmat_type:nnnnn}
+% \begin{syntax}
+% \cs{_@@_xmat_type:nnnnn} \marg{delimiter type} \marg{key-val list} \marg{common entry} \marg{row number} \marg{column number}
+% \end{syntax}
+% \end{function}
+% \begin{macrocode}
+\cs_new:Npn \_@@_xmat_type:nnnnn #1#2#3#4#5
+ {
+ \group_begin:
+ \tl_gclear:N \l_@@_xmat_tl
+ \keys_set:nn { phy/xmat } { #2 } %
+ \_@@_if_digits_only:nTF { #4 }
+ {
+ \int_compare:nNnTF { #4 } < { \l_@@_xmat_showtop_int + 1 }
+ {
+ \int_set:Nn \l_@@_xmat_showtop_int { #4 }
+ \bool_set_false:N \l_@@_xmat_extra_vdots_bool
+ }
+ {
+ \bool_set_true:N \l_@@_xmat_extra_vdots_bool
+ }
+ }
+ {
+ \bool_set_true:N \l_@@_xmat_extra_vdots_bool
+ }
+ \_@@_if_digits_only:nTF { #5 }
+ {
+ \int_compare:nNnTF { #5 } < { \l_@@_xmat_showleft_int + 1 }
+ {
+ \int_set:Nn \l_@@_xmat_showleft_int { #5 }
+ \bool_set_false:N \l_@@_xmat_extra_cdots_bool
+ }
+ {
+ \bool_set_true:N \l_@@_xmat_extra_cdots_bool
+ }
+ }
+ {
+ \bool_set_true:N \l_@@_xmat_extra_cdots_bool
+ }
+ \int_step_inline:nn { \l_@@_xmat_showtop_int }
+ {
+ \tl_put_right:Nn \l_@@_xmat_tl
+ { \_@@_xmat_entry_format:nnn { #3 } { ##1 } { 1 } }
+ \int_step_inline:nnn { 2 } { \l_@@_xmat_showleft_int }
+ {
+ \tl_put_right:Nn \l_@@_xmat_tl
+ { & \_@@_xmat_entry_format:nnn { #3 } { ##1 } { ####1 } }
+ }
+ \bool_if:NT \l_@@_xmat_extra_cdots_bool
+ {
+ \tl_put_right:Nn \l_@@_xmat_tl
+ { & \cdots & \_@@_xmat_entry_format:nnn { #3 } { ##1 } { #5 } }
+ }
+ \tl_put_right:Nn \l_@@_xmat_tl { \\ }
+ }
+ \bool_if:NT \l_@@_xmat_extra_vdots_bool
+ {
+ \tl_put_right:Nn \l_@@_xmat_tl { \vdots }
+ \prg_replicate:nn { \l_@@_xmat_showleft_int - 1 }
+ {
+ \tl_put_right:Nn \l_@@_xmat_tl { & \vdots }
+ }
+ % Add \ddots if vdots_bool and cdots_bool be true simultaneously.
+ \bool_if:NT \l_@@_xmat_extra_cdots_bool
+ {
+ \tl_put_right:Nn \l_@@_xmat_tl { & \ddots & \vdots }
+ } % else relax
+ \tl_put_right:Nn \l_@@_xmat_tl { \\ }
+ % The last row.
+ \tl_put_right:Nn \l_@@_xmat_tl
+ { \_@@_xmat_entry_format:nnn { #3 } { #4 } { 1 } }
+ \int_step_inline:nnn { 2 } { \l_@@_xmat_showleft_int }
+ {
+ \tl_put_right:Nn \l_@@_xmat_tl
+ { & \_@@_xmat_entry_format:nnn { #3 } { #4 } { ##1 } }
+ }
+ \bool_if:NT \l_@@_xmat_extra_cdots_bool
+ {
+ \tl_put_right:Nn \l_@@_xmat_tl
+ { & \cdots & \_@@_xmat_entry_format:nnn { #3 } { #4 } { #5 } }
+ }
+ } % else relax
+ \begin { #1 matrix }
+ \tl_use:N \l_@@_xmat_tl
+ \end { #1 matrix }
+ \group_end:
+ }
+%</xmat>
+% \end{macrocode}
+% This part ends here.
+% \begin{macrocode}
+%<@@=>
+% \end{macrocode}
+%^^A******************************************************************************** [l2e legacy]
+% \part{Legacy modules written in \LaTeXe\ syntax}
+% \section{The \modu{ab.legacy} module}
+% \begin{macrocode}
+%<*ab.legacy>
+\ProvidesFile{phy-ab.legacy.sty}
+ [2023/10/24 `ab.legacy' module of physics2]
+% \end{macrocode}
+% Requires \modu{ab}'s |tight| option.
+% \begin{macrocode}
+\phy@requiremodule{ab}
+\phy@define@key{ab.legacy}{order}[\mathcal{O}]{\def\phy@ab@ordersym{#1}}
+\phy@setkeys{ab.legacy}{order}
+\phy@processkeyopt{ab.legacy}
+\phy@d@l@geny\abs\vert\vert
+\phy@d@l@geny\norm\Vert\Vert
+\DeclareDocumentCommand\order{som}{%
+ \phy@ab@ordersym
+ \IfBooleanTF{#1}
+ {(#3)}
+ {\IfValueTF{#2}
+ {\csname#2l\endcsname(#3\csname#2r\endcsname)}
+ {\phy@abopen(#3\phy@abclose)}%
+ }%
+}
+\phy@d@l@geny\eval.\vert
+\phy@d@l@geny\peval(\vert
+\phy@d@l@geny\beval[\vert
+%</ab.legacy>
+% \end{macrocode}
+% \section{The \modu{nabla.legacy} module}
+% \begin{macrocode}
+%<*nabla.legacy>
+\ProvidesFile{phy-nabla.legacy.sty}
+ [2023/10/24 `nabla.legacy' module of physics2]
+\phy@requiremodule{ab}
+% \end{macrocode}
+% Requires \pkg{fixdif} version 2.$x$.
+% \begin{macrocode}
+\RequirePackage{fixdif}[2023/01/31]
+\letdif\phy@nl@nabla{nabla}
+\AtBeginDocument{\ifcsname div\endcsname\let\divsymbol\div\fi
+ \DeclareRobustCommand\grad{\phy@nl@nabla\ab}%
+ \DeclareRobustCommand\div{\phy@nl@nabla\cdot\ab}%
+ \DeclareRobustCommand\curl{\phy@nl@nabla\times\ab}%
+ \DeclareRobustCommand\laplacian{\phy@nl@nabla^2\ab}%
+}
+%</nabla.legacy>
+% \end{macrocode}
+% \section{The \modu{op.legacy} module}
+% \begin{macrocode}
+%<*op.legacy>
+\ProvidesFile{phy-op.legacy.sty}
+ [2023/10/24 `op.legacy' module of physics2]
+\phy@define@key{op.lega}{ReIm}[true]{\def\phy@reserveda{#1}}
+\phy@define@key{op.lega}{PV}{\def\@phy@oplega@PV{#1}}
+\phy@define@key{op.lega}{pv}{\def\@phy@oplega@pv{#1}}
+\phy@setkeys{op.lega}{PV=\mathcal{P},pv={p.v.},ReIm=true}
+\phy@processkeyopt{ab}
+\DeclareRobustCommand\asin{\mathop{\operator@font asin}\nolimits}
+\DeclareRobustCommand\acos{\mathop{\operator@font acos}\nolimits}
+\DeclareRobustCommand\atan{\mathop{\operator@font atan}\nolimits}
+\DeclareRobustCommand\acsc{\mathop{\operator@font acsc}\nolimits}
+\DeclareRobustCommand\asec{\mathop{\operator@font asec}\nolimits}
+\DeclareRobustCommand\acot{\mathop{\operator@font acot}\nolimits}
+\DeclareRobustCommand\Tr{\mathop{\operator@font Tr}\nolimits}
+\DeclareRobustCommand\tr{\mathop{\operator@font tr}\nolimits}
+\DeclareRobustCommand\rank{\mathop{\operator@font rank}\nolimits}
+\DeclareRobustCommand\erf{\mathop{\operator@font erf}\nolimits}
+\DeclareRobustCommand\Res{\mathop{\operator@font Res}\nolimits}
+\DeclareRobustCommand\res{\mathop{\operator@font res}\nolimits}
+\DeclareRobustCommand\PV{\mathord{\@phy@oplega@PV}}
+\DeclareRobustCommand\pv{\mathop{\operator@font\@phy@oplega@pv{}}\nolimits}
+% \end{macrocode}
+% Restore \cs{Re} and \cs{Im} in \cs{Resymbol} and \cs{Imsymbol}. The \cs{AtBeginDocument}
+% hook is used for the compatibility of \pkg{unicode-math}.
+% \begin{macrocode}
+\ifx\phy@reserveda\phy@true
+\AtBeginDocument{%
+ \let\Resymbol\Re%
+ \let\Imsymbol\Im%
+ \DeclareRobustCommand\Re{\mathop{\operator@font Re}\nolimits}%
+ \DeclareRobustCommand\Im{\mathop{\operator@font Im}\nolimits}%
+}
+\fi
+%</op.legacy>
+% \end{macrocode}
+% \section{The \modu{qtext.legacy} module}
+% This module is written for the compatibility with the bad commands provided by
+% \pkg{physics} only. The commands in this module should NEVER be used!
+% \begin{macrocode}
+%<*qtext.legacy>
+\ProvidesFile{phy-qtext.legacy.sty}
+ [2023/10/24 `qtext.legacy' module of physics2.sty]
+\RequirePackage{amstext}
+\def\phy@qtext@#1#2{#1\text{#2}\quad}
+\DeclareRobustCommand\qqtext{\@ifstar{\phy@qtext@{}}{\phy@qtext@\quad}}
+\DeclareRobustCommand\qq{\qqtext}
+\DeclareRobustCommand\qcomma{,\quad}
+\DeclareRobustCommand\qc{\qcomma}
+\DeclareRobustCommand\qcc{\@ifstar{\phy@qtext@{}{c.c}}{\phy@qtext@\quad{c.c}}}
+\def\phy@qtext@lega@gen@#1{%
+ \expandafter\DeclareRobustCommand\csname q#1\endcsname%
+ {\@ifstar{\phy@qtext@{}{#1}}{\phy@qtext@\quad{#1}}}}
+\phy@qtext@lega@gen@{if}
+\phy@qtext@lega@gen@{then}
+\phy@qtext@lega@gen@{else}
+\phy@qtext@lega@gen@{otherwise}
+\phy@qtext@lega@gen@{unless}
+\phy@qtext@lega@gen@{give}
+\phy@qtext@lega@gen@{using}
+\phy@qtext@lega@gen@{unless}
+\phy@qtext@lega@gen@{assume}
+\phy@qtext@lega@gen@{since}
+\phy@qtext@lega@gen@{let}
+\phy@qtext@lega@gen@{for}
+\phy@qtext@lega@gen@{all}
+\phy@qtext@lega@gen@{even}
+\phy@qtext@lega@gen@{odd}
+\phy@qtext@lega@gen@{integer}
+\phy@qtext@lega@gen@{and}
+\phy@qtext@lega@gen@{or}
+\phy@qtext@lega@gen@{as}
+\phy@qtext@lega@gen@{in}
+%</qtext.legacy>
+% \end{macrocode}
+%^^A******************************************************************************** [l3 legacy]
+% \part{Legacy modules written in \LaTeX3 syntax}
+% \begin{macrocode}
+%<@@=phy>
+% \end{macrocode}
+% \section{The \modu{bm-um.legacy} module}
+% \begin{macrocode}
+%<*bm-um.legacy>
+\ProvidesExplFile{phy-bm-um.legacy.sty}{2023/10/24}{}
+ {`bm-um.legacy' module of physics2}
+\AtBeginDocument
+ {
+ \cs_if_exist:cF { symbf }
+ {
+ \PackageError { physics2 }
+ {
+ The ~ `bm-um.legacy' ~ module ~ requires ~
+ `unicode-math' ~ package
+ }
+ {
+ Have ~ you ~ used ~ `unicode-math' ~
+ in ~ the ~ preamble?
+ }
+ }
+ }
+\DeclareDocumentCommand \bm { m }
+ {
+ \mode_if_math:TF
+ {
+ \tl_if_head_eq_catcode:nNTF { #1 } A
+ {
+ \symbfit { #1 }
+ }
+ {
+ \symbf { #1 }
+ }
+ }
+ {
+ \PackageError { physics2 }
+ {
+ The ~ \string\bm\space command ~ should ~ be ~
+ used ~ in ~ math ~ mode ~ only. \MessageBreak
+ This ~ is ~ an ~ error ~ from ~ `bm-um.legacy' ~ module
+ }
+ {
+ Check ~ if ~ any ~ `\string\bm' ~ is ~ out ~
+ of ~ math ~ mode.
+ }
+ }
+ }
+%</bm-um.legacy>
+% \end{macrocode}
+% This part ends here.
+% \begin{macrocode}
+%<@@=>
+% \end{macrocode}
+\endinput
diff --git a/macros/latex/contrib/physics2/physics2-code.pdf b/macros/latex/contrib/physics2/physics2-code.pdf
new file mode 100644
index 0000000000..ea4d90cd31
--- /dev/null
+++ b/macros/latex/contrib/physics2/physics2-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/physics2/physics2-legacy.pdf b/macros/latex/contrib/physics2/physics2-legacy.pdf
new file mode 100644
index 0000000000..5406b3d748
--- /dev/null
+++ b/macros/latex/contrib/physics2/physics2-legacy.pdf
Binary files differ
diff --git a/macros/latex/contrib/physics2/doc/physics2-legacy.tex b/macros/latex/contrib/physics2/physics2-legacy.tex
index d1b64a4374..fe3dcb1ce2 100644
--- a/macros/latex/contrib/physics2/doc/physics2-legacy.tex
+++ b/macros/latex/contrib/physics2/physics2-legacy.tex
@@ -10,7 +10,12 @@
\usepackage{unicode-math}
\setmainfont{Libertinus Serif}
\setsansfont{Libertinus Sans}
-\setmonofont{Noto Sans Mono}[Scale=MatchLowercase]
+\setmonofont{NotoSansMono}[
+ Scale=MatchLowercase,
+ Extension=.ttf,
+ UprightFont=*-Light,
+ BoldFont=*-Medium
+]
\setmathfont{Libertinus Math}
\usepackage{physics2}
\usephysicsmodule{ab}
@@ -35,7 +40,7 @@ manual for:
\item Users who failed to use \pkg*{unicode-math} with \pkg{physics}.
\end{itemize}
It seems no reason for any other user to read \emph{this} document instead of
-the \hyperref{./physics2.pdf}{}{}{package documentation} of \pkg{physics2},
+the \href{./physics2.pdf}{package documentation} of \pkg{physics2},
because this document cannot describe the package in detail.
In this document, the modules of \pkg{physics2} will be introduced in
@@ -85,9 +90,9 @@ command we mentioned in the first paragraph.
Moreover, the code of \texttt{physics.sty} ``abuses'' the \texttt{g}-type
arguments of \pkg*{xparse} package. Therefore the syntax of \pkg{physics} package
-looks kind of weird. See \hyperref{https://tex.stackexchange.com/questions/%
+looks kind of weird. See \href{https://tex.stackexchange.com/questions/%
470819/macros-dv-and-pdv-eat-the-subsequent-parenthesis-argument/470842#470842}%
-{}{}{here} for more.
+{here} for more.
\subsection{Loading \pkg{physics2}}
The \pkg{physics2} package includes different modules, among which every module
@@ -97,9 +102,8 @@ Write the following line in the preamble to load \pkg{physics2}:
\begin{Verbatim}
\usepackage{physics2}
\end{Verbatim}
-But this is not enough. \pkg{physics2} contains different modules, among which,
-only the \modu{common} module would be loaded automatically by the package.
-If you want to load other modules of \pkg{physics2}, write this after loading
+But this is not enough. \pkg{physics2} contains different modules.
+If you want to load any module of \pkg{physics2}, write this line after loading
\pkg{physics2} package:
\begin{displayed}
\cs{usephysicsmodule}\marg{module list}
@@ -241,7 +245,7 @@ The \cs{boldsymbol} command requires the \pkg*{amsmath} or \pkg*{bm} package.
If you prefer to use \pkg{bm}, you can also use the \cs{bm} command.
What's more, if you tried the commands above, you might find that,
the result of \cs{va} above is different from that of \pkg{physics}.
-This is beacuse, if you choose to present a vector in bold, it's alomost
+This is because, if you choose to present a vector in bold, there's almost
no need to put a \cs{vec} ($\vec{\mskip9mu}$) sign above it.
However, the method above may not work well with \pkg*{unicode-math}
@@ -274,7 +278,7 @@ after these commands can be delimited with \verb|()|, \verb|[]| and \verb|\{\}|.
The \modu{nabla.legacy} requires the \pkg*{fixdif} package at least
version 2.0 (file date: 2023/01/31 or after 2023/01/31).
-By the way, if you are used to write \cs{bm} for a vector but interested in
+By the way, if you are used to writing \cs{bm} for a vector but interested in
\pkg{unicode-math}, the \modu{bm-um.legacy} module would be a passable
alternative to \pkg{bm} package. Notice that the \cs{bm} command from the
\modu{bm-um.legacy} module can only take \emph{one} letter (or \emph{one} digit)
@@ -294,7 +298,7 @@ log-like functions.
The \pkg{physics} package provides a bundle of commands for log-like functions
that have not been defined in the \LaTeXe\ kernel. Those log-like functions
-can be used with the \modu{op.legacy} module; this module do not support
+can be used with the \modu{op.legacy} module; this module does not support
the syntax of \pkg{physics} either. For example:
\begin{example}
% \usephysicsmodule{op.legacy}
@@ -303,7 +307,7 @@ the syntax of \pkg{physics} either. For example:
The \cs{Re} and \cs{Im} commands are redefined as operators ``$\Re$'' and
``$\Im$'', while $\Resymbol$ and $\Imsymbol$ are reserved as \cs{Resymbol} and
\cs{Imsymbol}. $\Resymbol$ and $\Imsymbol$ are ordinary symbols but $\Re$ and
-$\Im$ are opetators.
+$\Im$ are operators.
\subsection{Quick quad text}\label{subsec:qtext}
The \modu{qtext.legacy} module provides the \cs{q}\meta{foo} commands
@@ -317,9 +321,9 @@ for \cs{quad}-wrapped texts. These commands have the same syntax as
\[ F \qif G \qthen H \]
\end{example}
All the commands described in \S2.4 of
-\hyperref{http://mirrors.ctan.org/macros/latex/contrib/physics/physics.pdf}{}{}%
+\href{http://mirrors.ctan.org/macros/latex/contrib/physics/physics.pdf}%
{\textsf{physics} documentation} are supported when using \modu{qtext.legacy}
-module, but I don't recommend to use this module unless you are maintaining a
+module, but I don't recommend using this module unless you are maintaining a
document written with \pkg{physics}'s \cs{q}\meta{foo} commands.
\subsection{Derivatives}
@@ -334,10 +338,10 @@ together. For example,
Math ($\d x$) v.s.\ Text (\d x)
\end{example}
Here are the documentations of
-\hyperref{http://mirrors.ctan.org/macros/latex/contrib/fixdif/fixdif.pdf}%
-{}{}{\textsf{fixdif}} and
-\hyperref{http://mirrors.ctan.org/macros/latex/contrib/derivative/derivative%
-.pdf}{}{}{\textsf{derivative}}.
+\href{http://mirrors.ctan.org/macros/latex/contrib/fixdif/fixdif.pdf}%
+{\textsf{fixdif}} and
+\href{http://mirrors.ctan.org/macros/latex/contrib/derivative/derivative%
+.pdf}{\textsf{derivative}}.
\pkg{fixdif}'s commands behave better in superscripts and subscripts.
@@ -401,7 +405,7 @@ extensible vertical bar. For example,
\end{example}
The argument of \cs{ketbra} should be delimited with \opt{|} and \opt{|}.
In the argument, \opt{>} and \opt{<} will be regarded as extensible $\rangle$
-and $\langle$. that is,
+and $\langle$. That is,
\begin{center}
\cs{ketbra} \opt{|} \meta{subformula$_1$} \opt{>} \meta{optional}
\opt{<} \meta{subformula$_2$} \opt{|}
@@ -456,7 +460,7 @@ The \cs{braket} command, in default, can take two arguments.
\braket[big] {\0} {\psi} \]
\end{example}
If you want \cs{braket} to take one or three arguments, you can write the
-number of arguments in the sqare bracket. If you need to specify the size
+number of arguments in the square bracket. If you need to specify the size
of bra-ket simultaneously, you need to separate the number and the size with
a comma:
\begin{example}
diff --git a/macros/latex/contrib/physics2/physics2.ins b/macros/latex/contrib/physics2/physics2.ins
new file mode 100644
index 0000000000..38faddfe10
--- /dev/null
+++ b/macros/latex/contrib/physics2/physics2.ins
@@ -0,0 +1,104 @@
+%%
+%% This is file `physics2.ins',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% physics2-code.dtx (with options: `install')
+%%
+%% Copyright (C) 2023 by Zhang Tingxuan <alphaztx@163.com>
+%%
+%% 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.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%%
+%% This work consists of the files physics2-code.dtx,
+%% and the derived files physics2.ins,
+%% physics2.sty,
+%% phy-<module>.sty,
+%% physics2-code.pdf,
+%% and README.md.
+%%
+\input docstrip.tex
+\keepsilent
+
+\preamble
+
+ Copyright (C) 2023 by Zhang Tingxuan <alphaztx@163.com>
+
+ 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.3 or later is part of all distributions of
+ LaTeX version 2005/12/01 or later.
+
+ This work has the LPPL maintenance status `maintained'.
+
+ The Current Maintainer of this work is Zhang Tingxuan.
+
+ This work consists of the files physics2-code.dtx,
+ and the derived files physics2.ins,
+ physics2.sty,
+ phy-<module>.sty,
+ physics2-code.pdf,
+ and README.md.
+
+\endpreamble
+
+\generate{
+ \usedir{tex/latex/physics2}
+ \file{physics2.sty} {\from{physics2-code.dtx}{package}}
+ \file{phy-ab.sty} {\from{physics2-code.dtx}{ab}}
+ \file{phy-ab.braket.sty} {\from{physics2-code.dtx}{ab.braket}}
+ \file{phy-braket.sty} {\from{physics2-code.dtx}{braket}}
+ \file{phy-diagmat.sty} {\from{physics2-code.dtx}{diagmat}}
+ \file{phy-doubleprod.sty} {\from{physics2-code.dtx}{doubleprod}}
+ \file{phy-xmat.sty} {\from{physics2-code.dtx}{xmat}}
+ \file{phy-ab.legacy.sty} {\from{physics2-code.dtx}{ab.legacy}}
+ \file{phy-bm-um.legacy.sty} {\from{physics2-code.dtx}{bm-um.legacy}}
+ \file{phy-nabla.legacy.sty} {\from{physics2-code.dtx}{nabla.legacy}}
+ \file{phy-op.legacy.sty} {\from{physics2-code.dtx}{op.legacy}}
+ \file{phy-qtext.legacy.sty} {\from{physics2-code.dtx}{qtext.legacy}}
+ \usedir{doc/latex/physics2}
+ \nopreamble\nopostamble
+ \file{README.md} {\from{physics2-code.dtx}{readme}}
+}
+
+\obeyspaces
+\Msg{**********************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the *}
+\Msg{* following files into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* physics2.sty, *}
+\Msg{* (for all modules) phy-<module>.sty. *}
+\Msg{* *}
+\Msg{* The recommended directory is *}
+\Msg{* TEXMFDIST/tex/latex/physics2 *}
+\Msg{* *}
+\Msg{* To produce the documentation, run the file *}
+\Msg{* physics2-code.dtx through XeLaTeX or LuaLaTeX. *}
+\Msg{* XeLaTeX is recommended. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{**********************************************************}
+
+\endbatchfile
+\endinput
+%%
+%% End of file `physics2.ins'.
diff --git a/macros/latex/contrib/physics2/physics2.pdf b/macros/latex/contrib/physics2/physics2.pdf
new file mode 100644
index 0000000000..d8a1f3a376
--- /dev/null
+++ b/macros/latex/contrib/physics2/physics2.pdf
Binary files differ
diff --git a/macros/latex/contrib/physics2/doc/physics2.tex b/macros/latex/contrib/physics2/physics2.tex
index f567d5219c..c643ab72f9 100644
--- a/macros/latex/contrib/physics2/doc/physics2.tex
+++ b/macros/latex/contrib/physics2/physics2.tex
@@ -10,7 +10,12 @@
\usepackage{unicode-math}
\setmainfont{Libertinus Serif}
\setsansfont{Libertinus Sans}
-\setmonofont{Noto Sans Mono}[Scale=MatchLowercase]
+\setmonofont{NotoSansMono}[
+ Scale=MatchLowercase,
+ Extension=.ttf,
+ UprightFont=*-Light,
+ BoldFont=*-Medium
+]
\setmathfont{Libertinus Math}
\usepackage{physics2}
\usephysicsmodule{ab,ab.braket}
@@ -31,7 +36,7 @@ modularized package, each module provides its own function.
This document describes the \pkg{physics2} package in more detail.
But if you are a user of the legacy \pkg{physics} package, you can click
-\hyperref{./physics2-legacy.pdf}{}{}{here} to see the documention for
+\href{./physics2-legacy.pdf}{here} to see the documentation for
\pkg{physics} users before you start. If you never used \pkg{physics} package
before, just read \emph{this} documentation.
\end{abstract}
@@ -55,17 +60,17 @@ be explained in the following sections that which module requires which package.
The \pkg{physics2} package requires \LaTeXe\ kernel released after 2020/10.
Please make sure that your \LaTeX\ distribution is not too old.
-\subsection{Loading the \pkg{physics2} package}
+\subsection{Loading \pkg{physics2} and its modules}
Just like loading any package, write
\begin{Verbatim}
\usepackage{physics2}
\end{Verbatim}
-in the preamble to load the \pkg{physics2} package. In this version,
+in the preamble to load the \pkg{physics2} package. In the current version,
\pkg{physics2} doesn't provide a package option.
-However, \pkg{physics2} itself only provides very few functions. Actually, it
-just provides a method to load modules. You need to load different modules of
-\pkg{physics2} to have different kinds of functions applied to your document.
+\pkg{physics2} itself doesn't provide many features.
+You need to load different modules of \pkg{physics2} to have different
+features applied to your document.
\subsection{Loading a module of \pkg{physics2}}
You can load a module of \pkg{physics2} only \emph{after} you write
@@ -75,7 +80,7 @@ like this:
\cs{usephysicsmodule}\marg{module}
\end{center}
The usage of \cs{usephysicsmodule} is similar to \cs{usepackage}, so you can
-load more than one modules in one line. For example,
+load several modules in one line. For example,
\begin{Verbatim}
\usephysicsmodule{ab,ab.braket}
\end{Verbatim}
@@ -91,19 +96,12 @@ These two lines load the \modu{ab} module with option
\opt{tightbraces\:=\:true} and load \modu{ab.braket} and \modu{doubleprod}
modules.
-\pardanger
-The \modu{common} module will be loaded automatically when you load the
-\pkg{physics2} package and \emph{only} the \modu{common} module will be
-loaded automatically. Any other module should be loaded manually by writing
-\cs{usephysicsmodule}\marg{module} after you loaded \pkg{physics2} in the
-preamble.
-
The following sections introduce all the user-level modules of \pkg{physics2}.
View back to the table of contents to see the names of user-level modules.
\section{Modules of \pkg{physics2}}
-\subsection{The automatically loaded \modu{common} module}
-The \modu{common} module provides the following commands:
+\subsection{Features of the bare \pkg{physics2} package}
+The following commands are available once you load \pkg{physics2} in preamble.
\cs{delopen} and \cs{delclose}, followed by a math delimiter. They can be
regarded as abbreviations of ``open delimiter'' and ``close delimiter''. If
@@ -127,6 +125,14 @@ an example,
\cs{bigggl}, \cs{bigggm}, \cs{bigggr}, \cs{Bigggl}, \cs{Bigggm} and \cs{Bigggr}
are also supported.
+\textbf{Note:}
+If you had heard version $0.x.y$ of \pkg{physics2}, you might know the
+\modu{common} module. Now the \modu{common} module is included in
+\pkg{physics2}.sty --- the source file of \modu{common} module is deleted
+but all the features of \modu{common} are reserved. Those commands above
+used to be provided by \modu{common} module, but now they are provided by
+\pkg{physics2}.
+
\subsection{The \modu{ab} module --- automatic braces}
This module provides the command \cs{ab}. The \cs{ab} command, as a shorthand
of ``automatic braces'', would specify the size of the following pair of
@@ -237,7 +243,7 @@ extensible vertical bar. For example,
\end{example}
The argument of \cs{ketbra} should be delimited with \opt{|} and \opt{|}.
In the argument, \opt{>} and \opt{<} will be regarded as extensible $\rangle$
-and $\langle$. that is,
+and $\langle$. That is,
\begin{center}
\cs{ketbra} \opt{|} \meta{subformula$_1$} \opt{>} \meta{optional}
\opt{<} \meta{subformula$_2$} \opt{|}
@@ -298,7 +304,7 @@ The \cs{braket} command, in default, can take two arguments.
\braket[big] {\0} {\psi} \]
\end{example}
If you want \cs{braket} to take one or three arguments, you can write the
-number of arguments in the sqare bracket. If you need to specify the size
+number of arguments in the square bracket. If you need to specify the size
of bra-ket simultaneously, you need to separate the number and the size with
a comma:
\begin{example}
@@ -454,7 +460,7 @@ to use a new entry format. For example,
\]
\end{example}
In the value of \opt{format} key, \verb|#1| stands for the common entry,
-or the first mandotary \meta{entry} argument of \cs{xmat}; \verb|#2|
+or the first mandatory \meta{entry} argument of \cs{xmat}; \verb|#2|
stands for the row index and \verb|#3| stands for the column index.
This module requires \pkg{amsmath}.
@@ -467,14 +473,14 @@ Only \opt{showtop} and \opt{showleft} can be used as module options.
\section{The ``legacy'' modules}
The legacy modules have similar names like \meta{module}\opt{.legacy}. Most of
them are designed to provide solutions to maintain documents written with the
-legacy \pkg{physics} package. It's not suggest to use them in a new document.
+legacy \pkg{physics} package. It's not suggested to use them in a new document.
\subsection{The \modu{ab.legacy} module}
This module provides the following commands:
\begin{Verbatim}[fontsize=\small]
\abs \norm \eval (\peval \beval) \order
\end{Verbatim}
-They shares the same syntax as \meta{cmd}\opt{*}\oarg{biggg}\marg{subformula}.
+They share the same syntax as \meta{cmd}\opt{*}\oarg{biggg}\marg{subformula}.
Star and \meta{biggg} are optional. Star stands for ``use the default size''.
For example,
\begin{example}
@@ -564,6 +570,6 @@ redefine \cs{Re} and \cs{Im}. If you want to reserve the definition of
\subsection{The \modu{qtext.legacy} module}
This module was written just to offer a method to maintain documents written
with the legacy \pkg{physics} package. See \S\ref*{lega-subsec:qtext} of
-\hyperref{./physics2-legacy.pdf}{}{}{physics2-legacy} for more information.
+\href{./physics2-legacy.pdf}{physics2-legacy} for more information.
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/physics2/tex/phy-ab.braket.sty b/macros/latex/contrib/physics2/tex/phy-ab.braket.sty
deleted file mode 100644
index e8e7bb30b7..0000000000
--- a/macros/latex/contrib/physics2/tex/phy-ab.braket.sty
+++ /dev/null
@@ -1,84 +0,0 @@
-%%
-%% This is file `phy-ab.braket.sty',
-%% the `ab.braket' module of `physics2' package.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\ProvidesFile{phy-ab.braket.sty}
- [2023/04/02 `ab.braket' module of `physics2.sty']
-% This module requires \phy@abopen and \phy@abclose from `ab'.
-\phy@requiremodule{ab}
-\ifdefined\phy@bra@@
- \PackageWarning{physics2}{You cannot load `ab.braket' and `braket'
- modules together.\MessageBreak Only `ab.braket' module works now.}
-\fi
-% \bra<foo|
-\phy@AB@gen{br.m}<{mr<|}{\mathopen#1\langle#2\mathclose#1\vert\endgroup}
-\phy@AB@gen{br.a}<{r<|}{\phy@abopen\langle#1\phy@abclose\vert}
-\phy@d@l@genxm{br.m}
-\phy@d@l@genxa{br.a}
-\DeclareRobustCommand\bra{\phy@d@lx{br.m}{br.a}}
-% \ket|foo>
-\phy@AB@gen{kt.m}|{mr|>}{\mathopen#1\vert#2\mathclose#1\rangle\endgroup}
-\phy@AB@gen{kt.a}|{r|>}{\phy@abopen\vert#1\phy@abclose\rangle}
-\phy@d@l@genxm{kt.m}
-\phy@d@l@genxa{kt.a}
-\DeclareRobustCommand\ket{\phy@d@lx{kt.m}{kt.a}}
-% \braket<foo|bar>
-\begingroup
-\catcode`\|=\active
-\gdef\phy@@mb@bk#1#2{\begingroup
- \mathcode`\|="8000\def|{\egroup#1\vert\bgroup}%
- \def\<{\mathrel{<}}\def\>{\mathrel{>}}%
- \mathopen#1\langle\bgroup#2\egroup\mathclose#1\rangle\endgroup}
-\gdef\phy@@ab@bk#1{\begingroup
- \mathcode`\|="8000\def|{\egroup\phy@abb@bkv\bgroup}%
- \def\<{\mathrel{<}}\def\>{\mathrel{>}}%
- \phy@abopen\langle\bgroup#1\egroup\phy@abclose\rangle\endgroup}
-\endgroup
-\def\phy@abb@bkv{\middle\vert}
-\phy@AB@gen{bk.m}<{mr<>}{\phy@@mb@bk#1{#2}\endgroup}
-\phy@AB@gen{bk.a}<{r<>}{\phy@@ab@bk{#1}}
-\phy@d@l@genxm{bk.m}
-\phy@d@l@genxa{bk.a}
-\DeclareRobustCommand\braket{\phy@d@lx{bk.m}{bk.a}}
-% \ketbra|foo>bar<baz|
-\begingroup
-\catcode`\<=\active
-\catcode`\>=\active
-\gdef\phy@@mb@kb#1#2{\begingroup
- \mathcode`\<="8000 \mathcode`\>="8000%
- \def<{#1\langle}\def>{#1\rangle}%
- \def\<{\phy@abb@l}\def\>{\phy@abb@r}%
- \mathopen#1\vert#2\mathclose#1\vert\endgroup}
-\endgroup
-\gdef\phy@@ab@kb#1>#2<#3\phy@@end{\begingroup
- \def\<{\phy@abb@l}\def\>{\phy@abb@r}%
- \phy@abopen\vert\mathopen{\phy@mathvphantom{#3}}#1\phy@abclose\rangle#2%
- \phy@abopen\langle#3\mathclose{\phy@mathvphantom{#1}}\phy@abclose\vert
-\endgroup}
-\AtBeginDocument{\ifcsname symbf\endcsname
- \def\phy@abb@l{\Umathchar 3 \symoperators "003C }%
- \def\phy@abb@r{\Umathchar 3 \symoperators "003E }%
-\fi}
-\def\phy@abb@l{\mathchar"313C }
-\def\phy@abb@r{\mathchar"313E }
-\phy@AB@gen{kb.m}|{mr||}{\phy@@mb@kb#1{#2}\endgroup}
-\phy@AB@gen{kb.a}|{r||}{\phy@@ab@kb#1\phy@@end}
-\phy@d@l@genxm{kb.m}
-\phy@d@l@genxa{kb.a}
-\DeclareRobustCommand\ketbra{\phy@d@lx{kb.m}{kb.a}}
-\endinput
-%% End of file `phy-ab.braket.sty'.
diff --git a/macros/latex/contrib/physics2/tex/phy-ab.legacy.sty b/macros/latex/contrib/physics2/tex/phy-ab.legacy.sty
deleted file mode 100644
index bbfa1f2b4a..0000000000
--- a/macros/latex/contrib/physics2/tex/phy-ab.legacy.sty
+++ /dev/null
@@ -1,43 +0,0 @@
-%%
-%% This is file `phy-ab.legacy.sty',
-%% the `ab.legacy' module of `physics2' package.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\ProvidesFile{phy-ab.legacy.sty}
- [2023/03/29 `ab.legacy' module of `physics2.sty']
-\phy@requiremodule{ab}
-% The `tight' bool option, true or false.
-\phy@define@key{ab.legacy}{order}[\mathcal{O}]{\def\phy@ab@ordersym{#1}}
-% The default values to keys in this module.
-\phy@setkeys{ab.legacy}{order}
-\phy@processkeyopt{ab.legacy}
-% The braced operators.
-\phy@d@l@geny\abs\vert\vert
-\phy@d@l@geny\norm\Vert\Vert
-\DeclareDocumentCommand\order{som}{%
- \phy@ab@ordersym
- \IfBooleanTF{#1}%
- {(#3)}%
- {\IfValueTF{#2}%
- {\csname#2l\endcsname(#3\csname#2r\endcsname)}%
- {\phy@abopen(#3\phy@abclose)}%
- }%
-}
-\phy@d@l@geny\eval.\vert
-\phy@d@l@geny\peval(\vert
-\phy@d@l@geny\beval[\vert
-\endinput
-%% End of file `phy-ab.legacy.sty'.
diff --git a/macros/latex/contrib/physics2/tex/phy-ab.sty b/macros/latex/contrib/physics2/tex/phy-ab.sty
deleted file mode 100644
index 9845903a82..0000000000
--- a/macros/latex/contrib/physics2/tex/phy-ab.sty
+++ /dev/null
@@ -1,111 +0,0 @@
-%%
-%% This is file `phy-ab.sty',
-%% the `ab' module of `physics2' package.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\ProvidesFile{phy-ab.sty}
- [2023/04/02 `ab' (autobraces) module of `physics2.sty']
-% \phy@requiremodule{common}
-% The `tightbraces' bool option, true or false.
-\phy@define@key{ab}{tightbraces}[true]{\def\@phy@abtight{#1}}
-% Execute the default values to keys in this module.
-\phy@setkeys{ab}{tightbraces=true}
-\phy@processkeyopt{ab}
-% \phy@abopen and \phy@abclose,
-% internal definition for all commands in this module.
-\ifx\@phy@abtight\phy@true
- \let\phy@abopen\delopen
- \let\phy@abclose\delclose
-\else
- \let\phy@abopen\left
- \let\phy@abclose\right
-\fi
-% The internal version of \ab. #1: `ab' or `mb'; #2: open symbol; (#3: arg-spec; #4: definition)
-\def\phy@AB@gen#1#2{\expandafter\DeclareDocumentCommand\csname phy@#1@\string#2\endcsname}
-% #1 (r<token1><token2>): inner content.
-\phy@AB@gen{ab}({r()}{\phy@abopen(#1\phy@abclose)}
-\phy@AB@gen{ab}[{r[]}{\phy@abopen[#1\phy@abclose]}
-\phy@AB@gen{ab}\{{r\{\}}{\phy@abopen\{#1\phy@abclose\}}
-\phy@AB@gen{ab}|{r||}{\phy@abopen|#1\phy@abclose|}
-\phy@AB@gen{ab}\|{r\|\|}{\phy@abopen\|#1\phy@abclose\|}
-\phy@AB@gen{ab}<{r<>}{\phy@abopen<#1\phy@abclose>}
-\phy@AB@gen{ab}\lbrace{r\lbrace\rbrace}{\phy@abopen\lbrace#1\phy@abclose\rbrace}
-\phy@AB@gen{ab}\vert{r\vert\vert}{\phy@abopen\vert#1\phy@abclose\vert}
-\phy@AB@gen{ab}\Vert{r\Vert\Vert}{\phy@abopen\Vert#1\phy@abclose\Vert}
-\phy@AB@gen{ab}\langle{r\langle\rangle}{\phy@abopen\langle#1\phy@abclose\rangle}
-% #1 (m): \biggg; #2 (r<token1><token2>): inner content.
-% \endgroup's in the end of definition are corresponding to \begingroup in \phy@d@l@genxm.
-\phy@AB@gen{mb}({mr()}{\mathopen#1(#2\mathclose#1)\endgroup}
-\phy@AB@gen{mb}[{mr[]}{\mathopen#1[#2\mathclose#1]\endgroup}
-\phy@AB@gen{mb}\{{mr\{\}}{\mathopen#1\lbrace#2\mathclose#1\rbrace\endgroup}
-\phy@AB@gen{mb}|{mr||}{\mathopen#1\vert#2\mathclose#1\vert\endgroup}
-\phy@AB@gen{mb}\|{mr\|\|}{\mathopen#1\Vert#2\mathclose#1\Vert\endgroup}
-\phy@AB@gen{mb}<{mr<>}{\mathopen#1\langle#2\mathclose#1\rangle\endgroup}
-\phy@AB@gen{mb}\lbrace{mr\lbrace\rbrace}{\mathopen#1\lbrace#2\mathclose#1\rbrace\endgroup}
-\phy@AB@gen{mb}\vert{mr\vert\vert}{\mathopen#1\vert#2\mathclose#1\vert\endgroup}
-\phy@AB@gen{mb}\Vert{mr\Vert\Vert}{\mathopen#1\Vert#2\mathclose#1\Vert\endgroup}
-\phy@AB@gen{mb}\langle{mr\langle\rangle}{\mathopen#1\langle#2\mathclose#1\rangle\endgroup}
-% \phy@del, the automatic braces. #1: opensymbol; #2: close symbol; #3
-\def\phy@del#1#2#3{\phy@abopen#1#3\phy@abclose#2}
-\expandafter\def\csname phy@del\string*\endcsname#1#2#3{\mathopen#1#3\mathclose#2}
-\expandafter\def\csname phy@del\string\big\endcsname#1#2#3{\bigl#1#3\bigr#2}
-\expandafter\def\csname phy@del\string\Big\endcsname#1#2#3{\Bigl#1#3\Bigr#2}
-\expandafter\def\csname phy@del\string\bigg\endcsname#1#2#3{\biggl#1#3\biggr#2}
-\expandafter\def\csname phy@del\string\Bigg\endcsname#1#2#3{\Biggl#1#3\Biggr#2}
-\expandafter\def\csname phy@del\string\biggg\endcsname#1#2#3{\bigggl#1#3\bigggr#2}
-\expandafter\def\csname phy@del\string\Biggg\endcsname#1#2#3{\Bigggl#1#3\Bigggr#2}
-% \phy@d@lx (phy_del_x): the internal defination of \ab.
-% #1: `mb', according to \phy@AB@gen; #2: `ab'; #3: star or big or left delimiter.
-\def\phy@d@lx#1#2#3{%
- \ifcsname phy@del\string#3\endcsname%
- \def\reserved@a{#1}% #3 is star or \biggg, then get the next argument.
- \else%
- \def\reserved@a{#2}% #3 is delimiter, the braces are automatic.
- \fi%
- \csname phy@d@lx\reserved@a\endcsname#3}
-% The first two arguments of \phy@d@lx need to be generated by the following two commands.
-\def\phy@d@l@genxm#1{% generate arguments like `mb'
- \expandafter\def\csname phy@d@lx#1\endcsname##1##2{%
- \begingroup% \endgroup in \phy@AB@gen{mb}<open><arg><definition>
- \ifx##1*\let\phy@tempa=\relax\else\let\phy@tempa=##1\fi
- \csname phy@#1@\string##2\endcsname\phy@tempa##2}}
-\def\phy@d@l@genxa#1{% generate arguments like `ab'
- \expandafter\def\csname phy@d@lx#1\endcsname##1{%
- \csname phy@#1@\string##1\endcsname##1}}
-% Generate the `mb' and `ab' arguments.
-\phy@d@l@genxm{mb}
-\phy@d@l@genxa{ab}
-% \ab(<subformula>), after \ab can be a star or \biggg.
-\DeclareRobustCommand\ab{\phy@d@lx{mb}{ab}}
-% \phy@d@l@geny: define commands like \pab. #1: cs; #2: open symbol; #3: close symbol.
-\def\phy@d@l@geny#1#2#3{%
- \DeclareDocumentCommand#1{som}{% ##1: star; ##2: bigg (csname); ##3: subformula.
- \IfBooleanTF{##1}%
- {#2##3#3}%
- {\IfValueTF{##2}%
- {\csname##2l\endcsname#2##3\csname##2r\endcsname#3}%
- {\phy@abopen#2##3\phy@abclose#3}%
- }%
- }%
-}
-\phy@d@l@geny\pab()
-\phy@d@l@geny\bab[]
-\phy@d@l@geny\Bab\lbrace\rbrace
-\phy@d@l@geny\vab\vert\vert
-\phy@d@l@geny\aab\langle\rangle
-\phy@d@l@geny\Vab\Vert\Vert
-\endinput
-%% End of file `phy-ab.sty'.
diff --git a/macros/latex/contrib/physics2/tex/phy-bm-um.legacy.sty b/macros/latex/contrib/physics2/tex/phy-bm-um.legacy.sty
deleted file mode 100644
index 36ffe206a6..0000000000
--- a/macros/latex/contrib/physics2/tex/phy-bm-um.legacy.sty
+++ /dev/null
@@ -1,62 +0,0 @@
-%%
-%% This is file `phy-bm-um.legacy.sty',
-%% the `bm-um.legacy' module of `physics2' package.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\ProvidesExplFile{phy-bm-um.legacy.sty}{2023/01/25}{}
- {`bm-um.legacy' module of `physics2.sty'}
-\AtBeginDocument
- {
- \cs_if_exist:cF { symbf }
- {
- \PackageError { physics2 }
- {
- The ~ `bm-um.legacy' ~ module ~ requires ~
- `unicode-math' ~ package
- }
- {
- Have ~ you ~ used ~ `unicode-math' ~
- in ~ the ~ preamble?
- }
- }
- }
-\DeclareDocumentCommand \bm { m }
- {
- \mode_if_math:TF
- {
- \tl_if_head_eq_catcode:nNTF { #1 } A
- {
- \symbfit { #1 }
- }
- {
- \symbf { #1 }
- }
- }
- {
- \PackageError { physics2 }
- {
- The ~ \string\bm\space command ~ should ~ be ~
- used ~ in ~ math ~ mode ~ only. \MessageBreak
- This ~ is ~ an ~ error ~ from ~ `bm-um.legacy' ~ module
- }
- {
- Check ~ if ~ any ~ `\string\bm' ~ is ~ out ~
- of ~ math ~ mode.
- }
- }
- }
-\endinput
-%% End of file `phy-bm-um.legacy.sty'.
diff --git a/macros/latex/contrib/physics2/tex/phy-braket.sty b/macros/latex/contrib/physics2/tex/phy-braket.sty
deleted file mode 100644
index bd3a9f3249..0000000000
--- a/macros/latex/contrib/physics2/tex/phy-braket.sty
+++ /dev/null
@@ -1,110 +0,0 @@
-%%
-%% This is file `phy-braket.sty',
-%% the `braket' module of `physics2' package.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\ProvidesFile{phy-braket.sty}
- [2023/03/29 `braket' module of `physics2.sty']
-% Here we need to get the definition of \phy@abopen and \phy@abclose.
-\phy@requiremodule{ab}
-\ifdefined\phy@abb@bkv
- \PackageWarning{physics2}{You cannot load `ab.braket' and `braket'
- modules together.\MessageBreak Only `braket' module works now.}
-\fi
-% \bra
-\DeclareDocumentCommand\bra{ s o m }{%
- \IfBooleanTF{#1}%
- {\mathopen\langle#3\mathclose\vert}%
- {\IfValueTF{#2}%
- {\csname#2l\endcsname\langle#3\csname#2r\endcsname\vert}%
- {\phy@abopen\langle#3\phy@abclose\vert}%
- }%
-}
-% \ket
-\DeclareDocumentCommand\ket{ s o m }{%
- \IfBooleanTF{#1}%
- {\mathopen\vert#3\mathclose\rangle}%
- {\IfValueTF{#2}%
- {\csname#2l\endcsname\vert#3\csname#2r\endcsname\rangle}%
- {\phy@abopen\vert#3\phy@abclose\rangle}%
- }%
-}
-% \braket
-\DeclareDocumentCommand\braket{ s O{} }{%
- \IfBooleanTF{#1}%
- {%
- \gdef\@phy@bk@argnum{ii}%
- \phy@bk@doopt{#2}%
- \gdef\@phy@bk@l{mathopen}%
- \gdef\@phy@bk@m{mathord}%
- \gdef\@phy@bk@r{mathclose}%
- }%
- {%
- \gdef\@phy@bk@argnum{ii}%
- \gdef\@phy@bk@l{phy@abopen}%
- \gdef\@phy@bk@m{middle}%
- \gdef\@phy@bk@r{phy@abclose}%
- \phy@bk@doopt{#2}%
- }%
- \csname phy@bk@in@\@phy@bk@argnum\endcsname%
-}
-% The internal version of \braket
-\def\phy@bk@in@i#1{%
- \csname\@phy@bk@l\endcsname\langle{#1}%
- \csname\@phy@bk@r\endcsname\rangle}
-\def\phy@bk@in@ii#1#2{%
- \csname\@phy@bk@l\endcsname\langle{#1}%
- \csname\@phy@bk@m\endcsname\vert{#2}%
- \csname\@phy@bk@r\endcsname\rangle}
-\def\phy@bk@in@iii#1#2#3{%
- \csname\@phy@bk@l\endcsname\langle{#1}%
- \csname\@phy@bk@m\endcsname\vert{#2}%
- \csname\@phy@bk@m\endcsname\vert{#3}%
- \csname\@phy@bk@r\endcsname\rangle}
-% Parse the optional argument of \braket. This will add 3 entries to hash table.
-\def\@phy@bk@do@pt#1,{\ifx#1\relax\@empty\else
- \edef\reserved@a{\zap@space#1 \@empty}%
- \ifx\reserved@a\@empty\else
- \ifcsname phy@del\expandafter\string\csname\reserved@a\endcsname\endcsname
- \xdef\@phy@bk@l{\reserved@a l}%
- \xdef\@phy@bk@m{\reserved@a}% but not m (m stands for \mathrel)
- \xdef\@phy@bk@r{\reserved@a r}%
- \else
- \ifnum\reserved@a>3%
- \PackageError{physics2}{\string\braket\space can only take 3
- mandatory arguments at most}{Check if you had written a number
- more than 3 in the [optional] argument.}%
- \fi
- \xdef\@phy@bk@argnum{\romannumeral\reserved@a}%
- \fi
- \fi
-\expandafter\@phy@bk@do@pt\fi}
-\def\phy@bk@doopt#1{\@phy@bk@do@pt#1,\relax,}
-% \ketbra
-\DeclareDocumentCommand\ketbra{ s o m O{} m }{%
- \IfBooleanTF{#1}%
- {\mathopen\vert#3\mathclose\rangle#4\mathopen\langle#5\mathclose\vert}%
- {\IfValueTF{#2}%
- {\csname#2l\endcsname\vert#3\csname#2r\endcsname\rangle#4%
- \csname#2l\endcsname\langle#5\csname#2r\endcsname\vert}%
- {\begingroup
- \phy@abopen\vert\mathopen{\phy@mathvphantom{#5}}#3\phy@abclose\rangle#4%
- \phy@abopen\langle#5\mathclose{\phy@mathvphantom{#3}}\phy@abclose\vert
- \endgroup}%
- }%
-}
-\endinput
-%% End of file `phy-braket.sty'.
diff --git a/macros/latex/contrib/physics2/tex/phy-common.sty b/macros/latex/contrib/physics2/tex/phy-common.sty
deleted file mode 100644
index e587c02bec..0000000000
--- a/macros/latex/contrib/physics2/tex/phy-common.sty
+++ /dev/null
@@ -1,68 +0,0 @@
-%%
-%% This is file `phy-common.sty',
-%% the `common' module of `physics2' package.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\ProvidesFile{phy-common.sty}
- [2023/03/29 `common' module of `physics2.sty']
-% Check if unicode-math loaded and (re)define the vert symbols.
-% The \relax's here are for \ifx to compare.
-% unicode-math sets these symbols in \fam1, \symoperators is set 1 in 2e kernel.
-\AtBeginDocument{\ifcsname symrm\endcsname
- \protected\def\|{\Udelimiter 0 \symoperators "2016 }%
- \protected\def\vert{\Udelimiter 0 \symoperators "007C\relax}%
- \protected\def\Vert{\Udelimiter 0 \symoperators "2016\relax}%
- \protected\def\mid{\Udelimiter 3 \symoperators "007C }%
-\fi}
-\protected\def\Vert{\delimiter"026B30D\relax}
-\protected\def\mid{\delimiter"326A30C }
-% \delopen and \delclose, make inner subformulae delimited by
-% \left and \right behave as an open plus a close atom.
-\DeclareRobustCommand\delopen{\mathopen{}\mathclose\bgroup\left}
-\DeclareRobustCommand\delclose{\aftergroup\egroup\right}
-% Extension to the 2e kernel biggggg commands.
-\DeclareRobustCommand\biggg[1]{\leavevmode@ifvmode
- {\hbox{$\left#1\vbox to20.5\p@{}\right.\n@space$}}}
-\DeclareRobustCommand\Biggg[1]{\leavevmode@ifvmode
- {\hbox{$\left#1\vbox to23.5\p@{}\right.\n@space$}}}
-\DeclareRobustCommand\bigggl{\mathopen\biggg}
-\DeclareRobustCommand\bigggm{\mathrel\biggg}
-\DeclareRobustCommand\bigggr{\mathclose\biggg}
-\DeclareRobustCommand\Bigggl{\mathopen\Biggg}
-\DeclareRobustCommand\Bigggm{\mathrel\Biggg}
-\DeclareRobustCommand\Bigggr{\mathclose\Biggg}
-% \phy@mathvphantom, does the same job as \vphantom in math mode actually.
-\def\phy@mathvphantom#1{\setbox\phy@tempboxa=\hbox{}%
- \mathchoice%
- {\setbox\@tempboxa\hbox{$\displaystyle#1$}%
- \ht\phy@tempboxa=\ht\@tempboxa%
- \dp\phy@tempboxa=\dp\@tempboxa%
- \box\phy@tempboxa}%
- {\setbox\@tempboxa\hbox{$\textstyle#1$}%
- \ht\phy@tempboxa=\ht\@tempboxa%
- \dp\phy@tempboxa=\dp\@tempboxa%
- \box\phy@tempboxa}%
- {\setbox\@tempboxa\hbox{$\scriptstyle#1$}%
- \ht\phy@tempboxa=\ht\@tempboxa%
- \dp\phy@tempboxa=\dp\@tempboxa%
- \box\phy@tempboxa}%
- {\setbox\@tempboxa\hbox{$\scriptscriptstyle#1$}%
- \ht\phy@tempboxa=\ht\@tempboxa%
- \dp\phy@tempboxa=\dp\@tempboxa%
- \box\phy@tempboxa}%
-}
-\endinput
-%% End of file `phy-common.sty'.
diff --git a/macros/latex/contrib/physics2/tex/phy-diagmat.sty b/macros/latex/contrib/physics2/tex/phy-diagmat.sty
deleted file mode 100644
index e90c99d928..0000000000
--- a/macros/latex/contrib/physics2/tex/phy-diagmat.sty
+++ /dev/null
@@ -1,92 +0,0 @@
-%%
-%% This is file `phy-diagmat.sty',
-%% the `diagmat' module of `physics2' package.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\ProvidesExplFile{phy-diagmat.sty}{2023/01/25}{}
- {`diagmat' module of `physics2.sty'}
-\phy@requiremodule { explsetup }
-\RequirePackage { amsmath }
-\phy@define@key { diagmat } { empty } [ 0 ] { \tl_gset:Nn \l__phy_mat_empty_tl { #1 } }
-% New variables
-\clist_new:N \l__phy_mat_diag_clist
-\clist_new:N \l__phy_mat_tmpa_clist
-\clist_new:N \l__phy_mat_tmpb_clist
-\clist_new:N \l__phy_mat_diagpos_clist
-\int_new:N \l__phy_mat_dim_int
-\tl_new:N \l__phy_mat_line_tl
-\tl_new:N \l__phy_diagmat_tl
-\tl_new:N \l__phy_mat_empty_tl
-\tl_gset:Nn \l__phy_mat_empty_tl { 0 }
-\phy@processkeyopt { diagmat }
-\keys_define:nn { phy/diagmat }
- {
- empty .tl_set:N = \l__phy_mat_empty_tl ,
- }
-% Document Commands
-\DeclareDocumentCommand \diagmat { O{} m }
- { \__phy_diagmat_type:nnn { } { #1 } { #2 } }
-\DeclareDocumentCommand \pdiagmat { O{} m }
- { \__phy_diagmat_type:nnn { p } { #1 } { #2 } }
-\DeclareDocumentCommand \bdiagmat { O{} m }
- { \__phy_diagmat_type:nnn { b } { #1 } { #2 } }
-\DeclareDocumentCommand \Bdiagmat { O{} m }
- { \__phy_diagmat_type:nnn { B } { #1 } { #2 } }
-\DeclareDocumentCommand \vdiagmat { O{} m }
- { \__phy_diagmat_type:nnn { v } { #1 } { #2 } }
-\DeclareDocumentCommand \Vdiagmat { O{} m }
- { \__phy_diagmat_type:nnn { V } { #1 } { #2 } }
-% Internal function
-\cs_new:Npn \__phy_diagmat_type:nnn #1#2#3
- {
- \group_begin:
- \clist_set:Nn \l__phy_mat_diag_clist { #3 }
- \int_set:Nn \l__phy_mat_dim_int { \clist_count:N \l__phy_mat_diag_clist }
- \int_compare:nNnT { \l__phy_mat_dim_int } > { \value { MaxMatrixCols } }
- { \setcounter { MaxMatrixCols } { \l__phy_mat_dim_int } }
- \keys_set:nn { phy/diagmat } { #2 }
- \tl_gclear:N \l__phy_diagmat_tl
- \int_step_inline:nnn { 0 } { \l__phy_mat_dim_int - 1 }
- {
- \int_step_inline:nnn { 0 } { \l__phy_mat_dim_int - 1 }
- {
- \int_compare:nNnTF { ##1 } = { ####1 }
- {
- \clist_gpop:NN \l__phy_mat_diag_clist \l__phy_tmpa_tl
- \tl_if_empty:NTF \l__phy_tmpa_tl
- { \tl_gput_right:Nn \l__phy_mat_line_tl { \l__phy_mat_empty_tl } }
- { \tl_gput_right:Nx \l__phy_mat_line_tl { \l__phy_tmpa_tl } }
- }
- { \tl_gput_right:Nn \l__phy_mat_line_tl { \l__phy_mat_empty_tl } }
- % The `&' and `\\' between entries.
- \int_compare:nNnTF { ####1 } = { \l__phy_mat_dim_int - 1 }
- {
- \tl_gput_right:Nn \l__phy_mat_line_tl { \\ }
- }
- {
- \tl_gput_right:Nn \l__phy_mat_line_tl { & }
- }
- }
- \tl_gput_right:Nx \l__phy_diagmat_tl { \l__phy_mat_line_tl }
- \tl_gclear:N \l__phy_mat_line_tl
- }
- \begin { #1 matrix }
- \tl_use:N \l__phy_diagmat_tl
- \end { #1 matrix }
- \group_end:
- }
-\endinput
-%% End of file `phy-diagmat.sty'.
diff --git a/macros/latex/contrib/physics2/tex/phy-doubleprod.sty b/macros/latex/contrib/physics2/tex/phy-doubleprod.sty
deleted file mode 100644
index 1888b6e70a..0000000000
--- a/macros/latex/contrib/physics2/tex/phy-doubleprod.sty
+++ /dev/null
@@ -1,40 +0,0 @@
-%%
-%% This is file `phy-doubleprod.sty',
-%% the `doubleprod' module of `physics2' package.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\ProvidesFile{phy-doubleprod.sty}
- [2023/01/25 `doubleprod' (double binary) module of `physics2.sty']
-% The options, true or false.
-\phy@define@key{doubleprod}{crosssymbol}{\def\@phy@dbl@c{#1}}
-\phy@define@key{doubleprod}{dotsymbol}{\def\@phy@dbl@d{#1}}
-\phy@define@key{doubleprod}{crossscale}{\def\@phy@dbl@sc{#1}}
-\phy@define@key{doubleprod}{dotscale}{\def\@phy@dbl@sd{#1}}
-\phy@define@key{doubleprod}{crossopenup}{\def\@phy@dbl@oc{#1}}
-\phy@define@key{doubleprod}{dotopenup}{\def\@phy@dbl@od{#1}}
-\phy@setkeys{doubleprod}{crosssymbol=\times,dotsymbol=\ldotp,
- crossscale=0.8,dotscale=1,crossopenup=.02,dotopenup=.2}
-\phy@processkeyopt{doubleprod}
-\def\phy@dbl@gen#1#2#3#4{%
- \DeclareRobustCommand#1{\mathbin{\vcenter{\baselineskip\z@skip%
- \lineskip#4\phy@dblcurrf@size%
- \setbox\@tempboxa=\hbox{\fontsize{#2\phy@dblcurrf@size}\z@$#3$}%
- \copy\@tempboxa\box\@tempboxa}}}}
-\def\phy@dblcurrf@size{\dimexpr\f@size pt\relax}
-\phy@dbl@gen\doublecross\@phy@dbl@sc\@phy@dbl@c\@phy@dbl@oc
-\phy@dbl@gen\doubledot\@phy@dbl@sd\@phy@dbl@d\@phy@dbl@od
-\endinput
-%% End of file `phy-doubleprod.sty'.
diff --git a/macros/latex/contrib/physics2/tex/phy-explsetup.sty b/macros/latex/contrib/physics2/tex/phy-explsetup.sty
deleted file mode 100644
index a861201f9a..0000000000
--- a/macros/latex/contrib/physics2/tex/phy-explsetup.sty
+++ /dev/null
@@ -1,29 +0,0 @@
-%%
-%% This is file `phy-explsetup.sty',
-%% the `explsetup' module of `physics2' package.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\ProvidesExplFile{phy-explsetup.sty}{2023/01/25}{}
- {`explsetup' module of `physics2.sty'}
-% temporary variables
-\int_new:N \l__phy_tmpa_int
-\int_new:N \l__phy_tmpb_int
-\tl_new:N \l__phy_tmpa_tl
-\tl_new:N \l__phy_tmpb_tl
-% gobble one token
-\cs_new:Npn \__phy_gobble_i:n #1 { }
-\endinput
-%% End of file `phy-explsetup.sty'.
diff --git a/macros/latex/contrib/physics2/tex/phy-nabla.legacy.sty b/macros/latex/contrib/physics2/tex/phy-nabla.legacy.sty
deleted file mode 100644
index 04d75d88fd..0000000000
--- a/macros/latex/contrib/physics2/tex/phy-nabla.legacy.sty
+++ /dev/null
@@ -1,32 +0,0 @@
-%%
-%% This is file `phy-nabla.legacy.sty',
-%% the `nabla.legacy' module of `physics2' package.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\ProvidesFile{phy-nabla.legacy.sty}
- [2023/01/25 `nabla.legacy' (autobraces) module of `physics2.sty']
-\phy@requiremodule{ab}
-% This package required `fixdif' package version 2.x.
-\RequirePackage{fixdif}[2023/01/31]
-\letdif\phy@nl@nabla{nabla}
-\AtBeginDocument{\ifcsname div\endcsname\let\divsymbol\div\fi
- \DeclareRobustCommand\grad{\phy@nl@nabla\ab}%
- \DeclareRobustCommand\div{\phy@nl@nabla\cdot\ab}%
- \DeclareRobustCommand\curl{\phy@nl@nabla\times\ab}%
- \DeclareRobustCommand\laplacian{\phy@nl@nabla^2\ab}%
-}
-\endinput
-%% End of file `phy-nabla.legacy.sty'.
diff --git a/macros/latex/contrib/physics2/tex/phy-op.legacy.sty b/macros/latex/contrib/physics2/tex/phy-op.legacy.sty
deleted file mode 100644
index ec7bd359d4..0000000000
--- a/macros/latex/contrib/physics2/tex/phy-op.legacy.sty
+++ /dev/null
@@ -1,51 +0,0 @@
-%%
-%% This is file `phy-op.legacy.sty',
-%% the `op.legacy' module of `physics2' package.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\ProvidesFile{phy-op.legacy.sty}
- [2023/01/25 `op.legacy' module of `physics2.sty']
-\phy@define@key{op.lega}{ReIm}[true]{\def\phy@reserveda{#1}}
-% The keys for \PV and \pv
-\phy@define@key{op.lega}{PV}{\def\@phy@oplega@PV{#1}}
-\phy@define@key{op.lega}{pv}{\def\@phy@oplega@pv{#1}}
-\phy@setkeys{op.lega}{PV=\mathcal{P},pv={p.v.},ReIm=true}
-\phy@processkeyopt{ab}
-\DeclareRobustCommand\asin{\mathop{\operator@font asin}\nolimits}
-\DeclareRobustCommand\acos{\mathop{\operator@font acos}\nolimits}
-\DeclareRobustCommand\atan{\mathop{\operator@font atan}\nolimits}
-\DeclareRobustCommand\acsc{\mathop{\operator@font acsc}\nolimits}
-\DeclareRobustCommand\asec{\mathop{\operator@font asec}\nolimits}
-\DeclareRobustCommand\acot{\mathop{\operator@font acot}\nolimits}
-\DeclareRobustCommand\Tr{\mathop{\operator@font Tr}\nolimits}
-\DeclareRobustCommand\tr{\mathop{\operator@font tr}\nolimits}
-\DeclareRobustCommand\rank{\mathop{\operator@font rank}\nolimits}
-\DeclareRobustCommand\erf{\mathop{\operator@font erf}\nolimits}
-\DeclareRobustCommand\Res{\mathop{\operator@font Res}\nolimits}
-\DeclareRobustCommand\res{\mathop{\operator@font res}\nolimits}
-\DeclareRobustCommand\PV{\mathord{\@phy@oplega@PV}}
-\DeclareRobustCommand\pv{\mathop{\operator@font\@phy@oplega@pv{}}\nolimits}
-% \Re and \Im, restore the former comands as \Resymbol and \Imsymbol
-\ifx\phy@reserveda\phy@true
-\AtBeginDocument{%
- \let\Resymbol\Re%
- \let\Imsymbol\Im%
- \DeclareRobustCommand\Re{\mathop{\operator@font Re}\nolimits}%
- \DeclareRobustCommand\Im{\mathop{\operator@font Im}\nolimits}%
-}
-\fi
-\endinput
-%% End of file `phy-op.legacy.sty'.
diff --git a/macros/latex/contrib/physics2/tex/phy-qtext.legacy.sty b/macros/latex/contrib/physics2/tex/phy-qtext.legacy.sty
deleted file mode 100644
index 6ac0d250b0..0000000000
--- a/macros/latex/contrib/physics2/tex/phy-qtext.legacy.sty
+++ /dev/null
@@ -1,52 +0,0 @@
-%%
-%% This is file `phy-qtext.legacy.sty',
-%% the `qtext.legacy' module of `physics2' package.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\ProvidesFile{phy-qtext.legacy.sty}
- [2023/01/25 `qtext.legacy' module of `physics2.sty']
-\RequirePackage{amstext}
-\def\phy@qtext@#1#2{#1\text{#2}\quad}
-\DeclareRobustCommand\qqtext{\@ifstar{\phy@qtext@{}}{\phy@qtext@\quad}}
-\DeclareRobustCommand\qq{\qqtext}
-\DeclareRobustCommand\qcomma{,\quad}
-\DeclareRobustCommand\qc{\qcomma}
-\DeclareRobustCommand\qcc{\@ifstar{\phy@qtext@{}{c.c}}{\phy@qtext@\quad{c.c}}}
-\def\phy@qtext@lega@gen@#1{%
- \expandafter\DeclareRobustCommand\csname q#1\endcsname%
- {\@ifstar{\phy@qtext@{}{#1}}{\phy@qtext@\quad{#1}}}}
-\phy@qtext@lega@gen@{if}
-\phy@qtext@lega@gen@{then}
-\phy@qtext@lega@gen@{else}
-\phy@qtext@lega@gen@{otherwise}
-\phy@qtext@lega@gen@{unless}
-\phy@qtext@lega@gen@{give}
-\phy@qtext@lega@gen@{using}
-\phy@qtext@lega@gen@{unless}
-\phy@qtext@lega@gen@{assume}
-\phy@qtext@lega@gen@{since}
-\phy@qtext@lega@gen@{let}
-\phy@qtext@lega@gen@{for}
-\phy@qtext@lega@gen@{all}
-\phy@qtext@lega@gen@{even}
-\phy@qtext@lega@gen@{odd}
-\phy@qtext@lega@gen@{integer}
-\phy@qtext@lega@gen@{and}
-\phy@qtext@lega@gen@{or}
-\phy@qtext@lega@gen@{as}
-\phy@qtext@lega@gen@{in}
-\endinput
-%% End of file `phy-qtext.legacy.sty'.
diff --git a/macros/latex/contrib/physics2/tex/phy-xmat.sty b/macros/latex/contrib/physics2/tex/phy-xmat.sty
deleted file mode 100644
index 9e7058b062..0000000000
--- a/macros/latex/contrib/physics2/tex/phy-xmat.sty
+++ /dev/null
@@ -1,148 +0,0 @@
-%%
-%% This is file `phy-xmat.sty',
-%% the `xmat' module of `physics2' package.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\ProvidesExplFile{phy-xmat.sty}{2023/01/25}{}
- {`xmat' module of `physics2.sty'}
-\phy@requiremodule { explsetup }
-\RequirePackage { amsmath }
-\phy@define@key { xmat } { showtop }
- { \int_gset:Nn \l__phy_xmat_showtop_int { #1 } }
-\phy@define@key { xmat } { showleft }
- { \int_gset:Nn \l__phy_xmat_showleft_int { #1 } }
-% New variables
-\bool_new:N \l__phy_xmat_extra_vdots_bool
-\bool_new:N \l__phy_xmat_extra_cdots_bool
-\int_new:N \l__phy_xmat_showtop_int
-\int_new:N \l__phy_xmat_showleft_int
-\tl_new:N \l__phy_xmat_tl
-\int_gset:Nn \l__phy_xmat_showtop_int { \value { MaxMatrixCols } - 2 }
-\int_gset:Nn \l__phy_xmat_showleft_int { \value { MaxMatrixCols } - 2 }
-\cs_new:Npn \__phy_xmat_entry_format:nnn #1#2#3
- {
- #1 \c_math_subscript_token { #2 #3 }
- }
-\phy@processkeyopt { xmat }
-\DeclareDocumentCommand \xmat { O{} m m m }
- { \__phy_xmat_type:nnnnn { } { #1 } { #2 } { #3 } { #4 } }
-\DeclareDocumentCommand \pxmat { O{} m m m }
- { \__phy_xmat_type:nnnnn { p } { #1 } { #2 } { #3 } { #4 } }
-\DeclareDocumentCommand \bxmat { O{} m m m }
- { \__phy_xmat_type:nnnnn { b } { #1 } { #2 } { #3 } { #4 } }
-\DeclareDocumentCommand \Bxmat { O{} m m m }
- { \__phy_xmat_type:nnnnn { B } { #1 } { #2 } { #3 } { #4 } }
-\DeclareDocumentCommand \vxmat { O{} m m m }
- { \__phy_xmat_type:nnnnn { v } { #1 } { #2 } { #3 } { #4 } }
-\DeclareDocumentCommand \Vxmat { O{} m m m }
- { \__phy_xmat_type:nnnnn { V } { #1 } { #2 } { #3 } { #4 } }
-
-\keys_define:nn { phy/xmat }
- {
- format .cs_set:Np = \__phy_xmat_entry_format:nnn #1#2#3 ,
- showtop .int_set:N = \l__phy_xmat_showtop_int ,
- showleft.int_set:N = \l__phy_xmat_showleft_int ,
- }
-% Use regex to judge if the total row/column number contains digits **only**.
-\prg_new_conditional:Npnn \__phy_if_digits_only:n #1 { TF }
- {
- \regex_match:nnTF { \A [[:digit:]]* \Z } { #1 }
- { \prg_return_true: } { \prg_return_false: }
- }
-% #1: p,b,B; #2: options; #2: common entry; #3: total rows; #4: total cols.
-\cs_new:Npn \__phy_xmat_type:nnnnn #1#2#3#4#5
- {
- \group_begin:
- \tl_gclear:N \l__phy_xmat_tl
- \keys_set:nn { phy/xmat } { #2 } %
- \__phy_if_digits_only:nTF { #4 }
- {
- \int_compare:nNnTF { #4 } < { \l__phy_xmat_showtop_int + 1 }
- {
- \int_set:Nn \l__phy_xmat_showtop_int { #4 }
- \bool_set_false:N \l__phy_xmat_extra_vdots_bool
- }
- {
- \bool_set_true:N \l__phy_xmat_extra_vdots_bool
- }
- }
- {
- \bool_set_true:N \l__phy_xmat_extra_vdots_bool
- }
- \__phy_if_digits_only:nTF { #5 }
- {
- \int_compare:nNnTF { #5 } < { \l__phy_xmat_showleft_int + 1 }
- {
- \int_set:Nn \l__phy_xmat_showleft_int { #5 }
- \bool_set_false:N \l__phy_xmat_extra_cdots_bool
- }
- {
- \bool_set_true:N \l__phy_xmat_extra_cdots_bool
- }
- }
- {
- \bool_set_true:N \l__phy_xmat_extra_cdots_bool
- }
- \int_step_inline:nn { \l__phy_xmat_showtop_int }
- {
- \tl_put_right:Nn \l__phy_xmat_tl
- { \__phy_xmat_entry_format:nnn { #3 } { ##1 } { 1 } }
- \int_step_inline:nnn { 2 } { \l__phy_xmat_showleft_int }
- {
- \tl_put_right:Nn \l__phy_xmat_tl
- { & \__phy_xmat_entry_format:nnn { #3 } { ##1 } { ####1 } }
- }
- \bool_if:NT \l__phy_xmat_extra_cdots_bool
- {
- \tl_put_right:Nn \l__phy_xmat_tl
- { & \cdots & \__phy_xmat_entry_format:nnn { #3 } { ##1 } { #5 } }
- }
- \tl_put_right:Nn \l__phy_xmat_tl { \\ }
- }
- \bool_if:NT \l__phy_xmat_extra_vdots_bool
- {
- \tl_put_right:Nn \l__phy_xmat_tl { \vdots }
- \prg_replicate:nn { \l__phy_xmat_showleft_int - 1 }
- {
- \tl_put_right:Nn \l__phy_xmat_tl { & \vdots }
- }
- % Add \ddots if vdots_bool and cdots_bool be true simultaneously.
- \bool_if:NT \l__phy_xmat_extra_cdots_bool
- {
- \tl_put_right:Nn \l__phy_xmat_tl { & \ddots & \vdots }
- } % else relax
- \tl_put_right:Nn \l__phy_xmat_tl { \\ }
- % The last row.
- \tl_put_right:Nn \l__phy_xmat_tl
- { \__phy_xmat_entry_format:nnn { #3 } { #4 } { 1 } }
- \int_step_inline:nnn { 2 } { \l__phy_xmat_showleft_int }
- {
- \tl_put_right:Nn \l__phy_xmat_tl
- { & \__phy_xmat_entry_format:nnn { #3 } { #4 } { ##1 } }
- }
- \bool_if:NT \l__phy_xmat_extra_cdots_bool
- {
- \tl_put_right:Nn \l__phy_xmat_tl
- { & \cdots & \__phy_xmat_entry_format:nnn { #3 } { #4 } { #5 } }
- }
- } % else relax
- \begin { #1 matrix }
- \tl_use:N \l__phy_xmat_tl
- \end { #1 matrix }
- \group_end:
- }
-\endinput
-%% End of file `phy-xmat.sty'.
diff --git a/macros/latex/contrib/physics2/tex/physics2.sty b/macros/latex/contrib/physics2/tex/physics2.sty
deleted file mode 100644
index 3d732b8d29..0000000000
--- a/macros/latex/contrib/physics2/tex/physics2.sty
+++ /dev/null
@@ -1,70 +0,0 @@
-%%
-%% This is file `physics2.sty'.
-%%
-%% ******************************************************
-%% * This work may be distributed and/or modified under *
-%% * the conditions of the LaTeX Project Public License *
-%% * *
-%% * http://www.latex-project.org/lppl.txt *
-%% * *
-%% * either version 1.3c of this license or any later *
-%% * version. *
-%% ******************************************************
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Zhang Tingxuan.
-%%
-\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesPackage{physics2}
- [2023/04/02 v0.2.1 Tools for typesetting math for physics.]
-% Some common variables.
-\newcount\phy@tempcnta
-\newdimen\phy@tempdima
-\newdimen\phy@tempdimb
-\newskip\phy@tempskipa
-\newmuskip\phy@tempmuskipa
-\newbox\phy@tempboxa
-\newif\ifphy@tempswa
-\newtoks\phy@toksa
-% The package uses `keyval' to support key-value settings.
-\RequirePackage{keyval}
-\def\phy@true{true}
-\def\phy@false{false}
-% \phy@define@key{<module>}{<key>}[<default value>]{<code>}
-\long\def\phy@define@key#1{\define@key{phy-#1}}
-% \phy@setkeys{<module>}{<key-val list>}
-\long\def\phy@setkeys#1{\setkeys{phy-#1}}
-% \phy@processkeyopt{<module>}
-\def\phy@processkeyopt#1{\let\reserved@a\@empty%
- \edef\reserved@a{\@ptionlist{\@currname.\@currext}}%
- \edef\reserved@a{\noexpand\phy@setkeys{#1}{\reserved@a}}%
- \reserved@a% the next line thanks to `geometry'
- \AtEndOfPackage{\let\@unprocessedoptions\relax}}
-% Load the physics modules as 2e kernel does.
-\def\usephysicsmodule{\phy@FWoptions\@pkgextension}
-\let\phy@requiremodule\usephysicsmodule
-\@onlypreamble\usephysicsmodule
-\def\phy@FWoptions#1{\@ifnextchar[%]
- {\phy@FW@ptions#1}{\phy@FW@ptions#1[]}}
-\@onlypreamble\phy@FWoptions
-\def\phy@FW@ptions#1[#2]#3{\@ifnextchar[%]
- {\phy@FW@pti@ns#1[{#2}]#3}{\phy@FW@pti@ns#1[{#2}]#3[]}}
-\@onlypreamble\phy@FW@ptions
-\def\phy@FW@pti@ns#1[#2]#3[#4]{%
- \def\reserved@b##1,{%
- \ifx\@nnil##1\relax\else
- \ifx\@nnil##1\@nnil\else
- \noexpand\@onefilewithoptions{phy-##1}[{\unexpanded{#2}}][{#4}]%
- \noexpand\@pkgextension
- \fi
- \expandafter\reserved@b
- \fi}%
- \edef\reserved@a{\zap@space#3 \@empty}%
- \edef\reserved@a{\expandafter\reserved@b\reserved@a,\@nnil,}%
- \reserved@a}
-\@onlypreamble\phy@FW@pti@ns
-% The `common' module of physics2, every module needs this.
-\phy@requiremodule{common}
-\endinput
-%% End of file `physics2.sty'.
diff --git a/macros/latex/contrib/tkz/tkz-elements/README.md b/macros/latex/contrib/tkz/tkz-elements/README.md
new file mode 100644
index 0000000000..49f16ad785
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/README.md
@@ -0,0 +1,73 @@
+# tkz-elements — for euclidean geometry
+
+Release 1.00b 2023/10/25
+
+## Description
+
+`tkz-elements` is the first version of a library written in lua, allowing to make all the necessary calculations to define the objects of a Euclidean geometry figure. You need to compile with `LuaLaTeX`. With `tkz-elements`, the definitions and calculations are only done with `Lua`.
+
+ The main possibility of programmation proposed is oriented "object programming" with object classes like point, line, triangle, circle and ellipse. For the moment, once the calculations are done, it is `tkz-euclide` or `TikZ` which allows the drawings.
+
+## Licence
+
+This package may be modified and distributed under the terms and
+conditions of the [LaTeX Project Public License](https://www.latex-project.org/lppl/), version 1.3 or greater.
+
+
+## Requirements
+
+The package compiles with utf8 and lualatex. You need actually to load:
+
+- [tikz](https://ctan.org/pkg/tikz)
+- [tkz-euclide](https://ctan.org/pkg/tkz-euclide)
+
+## Installation
+
+The package `tkz-elements` is (will be) present in TeXLive and MiKTeX, use the package
+manager to install.
+
+You can experiment with the `tkz-elements` package by placing all of the
+distribution files in the directory containing your current tex file.
+
+The different files must be moved into the different directories in your
+installation `TDS` tree or in your `TEXMFHOME`:
+
+
+## How to use it
+
+To use the package `tkz-elements`, place the following lines in the preamble of
+your LaTeX document:
+
+```
+\usepackage{tkz-elements}
+\begin{document}
+\begin{tkzelements}
+ your code
+\end{tkzelements}
+\begin{tikzpicture}
+ your code
+\end{tikzpicture}
+```
+
+If you use the `xcolor` package, load that package before `tkz-euclide` to avoid
+package conflicts.
+
+## Documentation
+
+Documentation for `tkz-euclide` is available on `CTAN`.
+
+## Examples
+
+All examples given in documentation will be stored on my site : [http://altermundus.fr](http://altermundus.fr) as standalone
+files, ready for compilation.
+
+Other examples, in French, are on my site.
+
+
+## History
+
+- First version 1.00b
+
+## Author
+
+Alain Matthes, 5 rue de Valence, Paris 75005, al (dot) ma (at) mac (dot) com
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-circle.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-circle.tex
new file mode 100644
index 0000000000..a86fe1230b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-circle.tex
@@ -0,0 +1,259 @@
+\newpage
+\section{Class circle} % (fold)
+\label{sec:class_circle}
+
+\subsection{Attributs of a circle} % (fold)
+\label{sub:attributs_of_a_circle}
+This class is also defined by two points, on the one hand the center and on the other hand a point through which the circle passes.
+
+\bgroup
+\catcode`_=12
+
+\small
+\begin{center}
+%\caption{Attributes about point circle.}
+\begin{tabular}{ll}
+\toprule
+\textbf{Attributes} & \textbf{Application}\\
+\Iattr{circle}{center} & |z.A = C.AB.center|\\
+\Iattr{circle}{through} & |z.B = C.AB.through|\\
+\Iattr{circle}{type} & |C.AB.type| \tkzar |C.OA.type = circle|\\
+\Iattr{circle}{radius} & |C.AB.radius| \tkzar |r = C.OA.radius | $r$ real number\\
+\Iattr{circle}{north} & |C.AB.north| \tkzar |z.N = C.OA.north|\\
+\Iattr{circle}{south} & |C.AB.south| \tkzar |z.S = C.OA.south| \\
+\Iattr{circle}{east} & |C.AB.east| \tkzar |z.E = C.OA.east| \\
+\Iattr{circle}{west} & |C.AB.west| \tkzar |z.W = C.OA.west| \\
+\bottomrule %
+\end{tabular}
+\end{center}
+\egroup
+
+\subsubsection{Example: circle attributes} % (fold)
+\label{ssub:example_circle_attributes}
+
+Three attributes are used (south, west, radius). Currently, \Igfct{package}{set\_lua\_to\_tex} (see \ref{ssub:transfer_from_lua_to_tex}) creates global macros. The |\r| macro must not already be defined.
+
+\begin{minipage}{0.5\textwidth}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .5
+ z.a = point: new (1, 1)
+ z.b = point: new (5, 4)
+ C.ab = circle : new (z.a,z.b)
+ z.s = C.ab.south
+ z.w = C.ab.west
+ r = C.ab.radius
+ set_lua_to_tex{"r"}
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPoints(a,b,s,w)
+ \tkzLabelPoints(a,b,s,w)
+ \tkzDrawCircle(a,b)
+ \tkzDrawSegment(a,b)
+ \tkzLabelSegment[sloped](a,b){ab = \r}
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\begin{tkzelements}
+ scale = .5
+ z.a = point: new (1, 1)
+ z.b = point: new (5, 4)
+ C.ab = circle : new (z.a,z.b)
+ z.s = C.ab.south
+ z.w = C.ab.west
+ r = C.ab.radius
+ set_lua_to_tex{"r"}
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPoints(a,b,s,w)
+\tkzLabelPoints(a,b,s,w)
+\tkzDrawCircle(a,b)
+\tkzDrawSegment(a,b)
+\tkzLabelSegment[sloped](a,b){ab = \r}
+\end{tikzpicture}
+\hspace*{\fill}
+\end{minipage}
+
+% \caption{Class Circle}
+% subsubsection example_circle_attributes (end)
+
+% subsection attributs_of_a_circle (end)
+
+\subsection{Methods of the class circle} % (fold)
+\label{sub:methods_of_the_class_circle}
+\bgroup
+\catcode`_=12
+\small
+\begin{center}
+\begin{tabular}{ll}
+\toprule
+\textbf{Methods} & \textbf{Comments} \\
+\midrule \\
+\Imeth{circle}{new(O,A)} & |C.OA = circle : new (z.O,z.A)| \tkzar circle center $O$ through $A$\\
+\midrule
+ \textbf{Points} &\\
+\midrule
+\Imeth{circle}{antipode (pt)} & |z.C = C.OA: antipode (z.B)| \tkzar $[BC]$ is a dimater \\
+\Imeth{circle}{inversion (pt)} & |z.Bp = C.AC:inversion (z.B)|\\
+\Imeth{circle}{set\_inversion (list of pts)} & |z.Bp,z.Ep,z.Cp = C.AC: set_inversion ( z.B, z.E, z.C )|\\
+\Imeth{circle}{midarc (z1,z2)} & |z.D = C.AB: midarc (z.B,z.C)| $D$ is the midarc of $\widearc{AB}$\\
+\Imeth{circle}{point (phi)} & |z.E = C.AB: point (-math.pi/3)|\\
+\Imeth{circle}{random\_pt(lower, upper)} & \\
+\Imeth{circle}{internal\_similitude (C)} & |z.I = C.1 : internal_similitude (C.2)| \\
+\Imeth{circle}{external\_similitude (C)} & |z.J = C.1 : external_similitude (C.2)| \\
+\midrule
+ \textbf{Lines} &\\
+\midrule
+\Imeth{circle}{radical\_axis (C)} & \\
+\Imeth{circle}{tangent\_at (pt)} & |z.P = C.OA: tangent_at (z.M)| $((PM) \perp (OM))$\\
+\Imeth{circle}{tangent\_from (pt)}& |z.M,z.N = C.OA: tangent_from (z.P)| \\
+\midrule
+ \textbf{Circles} &\\
+\midrule
+\Imeth{circle}{orthogonal\_from (pt)} & |C= C.OA: orthogonal_from (z.P)| \\
+\Imeth{circle}{orthogonal\_through (pta,ptb)} & |C = C.OA: orthogonal_through (z.z1,z.z2)|\\
+\midrule
+ \textbf{Miscellaneous} &\\
+\midrule
+\Imeth{circle}{power (pt)} &| p = C.OA: power (z.M)| \tkzar power with respect to a circle \\
+\Imeth{circle}{in\_out (pt)} & |C.OA : in_out (z.M)| \tkzar boolean \\
+\Imeth{circle}{draw ()} & for further use\\
+\bottomrule %
+\end{tabular}
+\end{center}
+\egroup
+% subsubsection methods_circle (end)
+
+\subsubsection{Altshiller} % (fold)
+\label{ssub:altshiller}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.P = point : new (0,0)
+ z.Q = point : new (5,0)
+ z.I = point : new (3,2)
+ C.QI = circle : new (z.Q,z.I)
+ C.PE = C.QI : orthogonal_from (z.P)
+ z.E = C.PE.through
+ C.QE = circle : new (z.Q,z.E)
+ _,z.F = intersection (C.PE,C.QE)
+ z.A = C.PE: point (math.pi/180*80)
+ L.AE = line : new (z.A,z.E)
+ _,z.C = intersection (L.AE,C.QE)
+ L.AF = line : new (z.A,z.F)
+ L.CQ = line : new (z.C,z.Q)
+ z.D = intersection (L.AF,L.CQ)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(P,E Q,E)
+ \tkzDrawLines[add=0 and 1](P,Q)
+ \tkzDrawLines[add=0 and 2](A,E)
+ \tkzDrawSegments(P,E E,F F,C A,F C,D)
+ \tkzDrawPoints(P,Q,E,F,A,C,D)
+ \tkzLabelPoints(P,Q,E,F,A,C,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.P = point : new (0,0)
+z.Q = point : new (5,0)
+z.I = point : new (3,2)
+C.QI = circle : new (z.Q,z.I)
+C.PE = C.QI : orthogonal_from (z.P)
+z.E = C.PE.through
+C.QE = circle : new (z.Q,z.E)
+_,z.F = intersection (C.PE,C.QE)
+z.A = C.PE: point (math.pi/180*80)
+L.AE = line : new (z.A,z.E)
+_,z.C = intersection (L.AE,C.QE)
+L.AF = line : new (z.A,z.F)
+L.CQ = line : new (z.C,z.Q)
+z.D = intersection (L.AF,L.CQ)
+\end{tkzelements}
+
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(P,E Q,E)
+\tkzDrawLines[add=0 and 1](P,Q)
+\tkzDrawLines[add=0 and 2](A,E)
+\tkzDrawSegments(P,E E,F F,C A,F C,D)
+\tkzDrawPoints(P,Q,E,F,A,C,D)
+\tkzLabelPoints(P,Q,E,F,A,C,D)
+\end{tikzpicture}
+\hspace*{\fill}
+%subsubsection altshiller (end)
+
+\subsubsection{Lemoine} % (fold)
+\label{ssub:lemoine}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = 1.6
+ z.A = point: new (1,0)
+ z.B = point: new (5,2)
+ z.C = point: new (1.2,2)
+ T = triangle: new(z.A,z.B,z.C)
+ z.O = T.circumcenter
+ C.OA = circle: new (z.O,z.A)
+ L.tA = C.OA: tangent_at (z.A)
+ L.tB = C.OA: tangent_at (z.B)
+ L.tC = C.OA: tangent_at (z.C)
+ z.P = intersection (L.tA,T.bc)
+ z.Q = intersection (L.tB,T.ac)
+ z.R = intersection (L.tC,T.ab)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon[teal](A,B,C)
+ \tkzDrawCircle(O,A)
+ \tkzDrawPoints(A,B,C,P,Q,R)
+ \tkzLabelPoints(A,B,C,P,Q,R)
+ \tkzDrawLine[blue](Q,R)
+ \tkzDrawLines[red](A,P B,Q R,C)
+ \tkzDrawSegments(A,R C,P C,Q)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = 1.25
+z.A = point: new (1,0)
+z.B = point: new (5,2)
+z.C = point: new (1.2,2)
+T = triangle: new(z.A,z.B,z.C)
+z.O = T.circumcenter
+C.OA = circle: new (z.O,z.A)
+L.tA = C.OA: tangent_at (z.A)
+L.tB = C.OA: tangent_at (z.B)
+L.tC = C.OA: tangent_at (z.C)
+z.P = intersection (L.tA,T.bc)
+z.Q = intersection (L.tB,T.ac)
+z.R = intersection (L.tC,T.ab)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}[rotate=90]
+\tkzGetNodes
+\tkzDrawPolygon[teal](A,B,C)
+\tkzDrawCircle(O,A)
+\tkzDrawPoints(A,B,C,P,Q,R)
+\tkzLabelPoints(A,B,C,P,Q,R)
+\tkzDrawLine[blue](Q,R)
+\tkzDrawLines[red](A,P B,Q R,C)
+\tkzDrawSegments(A,R C,P C,Q)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Lemoine line}
+% subsubsection lemoine (end)
+% subsection methods_of_the_class_circle (end)
+
+
+% section class_circle (end)
+\endinput
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-ellipse.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-ellipse.tex
new file mode 100644
index 0000000000..4480417f08
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-ellipse.tex
@@ -0,0 +1,377 @@
+\newpage
+\section{Classe ellipse} % (fold)
+\label{sec:classe_ellipse}
+
+\subsection{Attributs of an ellipse} % (fold)
+\label{sub:attributs_of_an_ellipse}
+The first attributes are the three points that define the ellipse : \Iattr{ellipse}{center} , \Iattr{ellipse}{vertex} and \Iattr{ellipse}{covertex}. The first method to define an ellipse is to give its center, then the point named \tkzname{vertex} which defines the major axis and finally the point named \tkzname{covertex} which defines the minor axis.
+
+
+\bgroup
+\catcode`_=12
+\small
+\begin{center}
+%\caption{Attributes about ellipse class.}
+\begin{tabular}{ll}
+\toprule
+\textbf{Attributes} & \textbf{Application}\\
+\Iattr{ellipse}{center} & center of the ellipse\\
+\Iattr{ellipse}{vertex} & point of the major axis and of the ellipse\\
+\Iattr{ellipse}{covertex} & point of the minor axis and of the ellipse\\
+\Iattr{ellipse}{type}& The type is 'ellipse'\\
+\Iattr{ellipse}{Rx}& Radius from center to vertex\\
+\Iattr{ellipse}{Ry}& Radius from center to covertex\\
+\Iattr{ellipse}{slope}& Slope of the line passes through the foci\\
+\Iattr{ellipse}{Fa}& First focus\\
+\Iattr{ellipse}{Fb}& Second focus\\
+\Imeth{ellipse}{south} & See next example \ref{ssub:attributs_of_an_ellipse} \\
+\Imeth{ellipse}{north} & See next example \ref{ssub:attributs_of_an_ellipse} \\
+\Imeth{ellipse}{west} & See next example \ref{ssub:attributs_of_an_ellipse} \\
+\Imeth{ellipse}{east} & See next example \ref{ssub:attributs_of_an_ellipse} \\
+\bottomrule %
+\end{tabular}
+\end{center}
+\egroup
+
+
+\subsubsection{Attributs of an ellipse} % (fold)
+\label{ssub:attributs_of_an_ellipse}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.C = point: new (3 , 2)
+ z.A = point: new (5 , 1)
+ L.CA = line : new (z.C,z.A)
+ z.b = L.CA.north_pa
+ L = line : new (z.C,z.b)
+ z.B = L : point (0.5)
+ E = ellipse: new (z.C,z.A,z.B)
+ a = E.Rx
+ b = E.Ry
+ z.F1 = E.Fa
+ z.F2 = E.Fb
+ slope = math.deg(E.slope)
+ z.E = E.east
+ z.N = E.north
+ z.W = E.west
+ z.S = E.south
+ z.Co = E.covertex
+ z.Ve = E.vertex
+ set_lua_to_tex {'a','b','slope'}
+\end{tkzelements}
+\begin{tikzpicture}
+ \pgfkeys{/pgf/number format/.cd,fixed,precision=2}
+ \tkzGetNodes
+ \tkzDrawCircles[teal](C,A)
+ \tkzDrawEllipse[red](C,\a,\b,\slope)
+ \tkzDrawPoints(C,A,B,b,W,S,F1,F2)
+ \tkzLabelPoints(C,A,B)
+ \tkzDrawLine[add = .5 and .5](A,W)
+ \tkzLabelSegment[pos=1.5,above,sloped](A,W){slope = \pgfmathprintnumber{\slope}}
+ \tkzLabelPoint[below](S){South}
+ \tkzLabelPoint[below left](F1){Focus 1}
+ \tkzLabelPoint[below left](F2){Focus 2}
+ \tkzLabelPoint[above right](Ve){Vertex ; East}
+ \tkzLabelPoint[above right](Co){Covertex ; North}
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.C = point: new (3 , 2)
+z.A = point: new (5 , 1)
+L.CA = line : new (z.C,z.A)
+z.b = L.CA.north_pa
+L = line : new (z.C,z.b)
+z.B = L : point (0.5)
+E = ellipse: new (z.C,z.A,z.B)
+a = E.Rx
+b = E.Ry
+z.F1 = E.Fa
+z.F2 = E.Fb
+slope = math.deg(E.slope)
+z.E = E.east
+z.N = E.north
+z.W = E.west
+z.S = E.south
+z.Co = E.covertex
+z.Ve = E.vertex
+set_lua_to_tex {'a','b','slope'}
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\pgfkeys{/pgf/number format/.cd,fixed,precision=2}
+\tkzGetNodes
+\tkzDrawCircles[teal](C,A)
+\tkzDrawEllipse[red](C,\a,\b,\slope)
+\tkzDrawPoints(C,A,B,b,W,S,F1,F2)
+\tkzLabelPoints(C,A,B)
+\tkzDrawLine[add = .5 and .5](A,W)
+\tkzLabelSegment[pos=1.5,above,sloped](A,W){slope = \pgfmathprintnumber{\slope}}
+\tkzLabelPoint[below](S){South}
+\tkzLabelPoint[below left](F1){Focus 1}
+\tkzLabelPoint[below left](F2){Focus 2}
+\tkzLabelPoint[above right](Ve){Vertex ; East}
+\tkzLabelPoint[above right](Co){Covertex ; North}
+\end{tikzpicture}
+\hspace*{\fill}
+% \caption{Class Ellipse}
+% subsection attributs_of_an_ellipse (end)
+
+
+\subsection{Methods of the class ellipse} % (fold)
+\label{sub:methods_of_the_class_ellipse}
+Before reviewing the methods and functions related to ellipses, let's take a look at how you can draw ellipses with \pkg{tkz-elements}. The \tkzcname{tkzDrawEllipse} macro requires 4 arguments: the center of the ellipse, the long radius (on the focus axis), the short radius and the angle formed by the focus axis.
+The last three arguments must be transferred from \tkzNameEnv{tkzelements} to \tkzNameEnv{tikzpicture}.
+To do this, you'll need to use a \pkg{tkz-elements }function: \Igfct{package}{set\_lua\_to\_tex}. See \ref{sec:math_functions} or the next examples.
+
+\vskip 1em
+\lefthand\ You need to proceed with care, because unfortunately at the moment, the macros you create are global and you can overwrite existing macros. One solution is either to choose a macro name that won't cause any problems, or to save the initial macro.
+
+\bgroup
+\catcode`_=12
+\small
+\begin{center}
+%\caption{elements\_ellipses.lua}
+\begin{tabular}{ll}
+\toprule
+\textbf{Methods} & \textbf{Example} \\
+\midrule
+\Imeth{ellipse}{new (pc, pa ,pb) } & E = ellipse: new ( center, vertex, covertex ) \\
+\midrule
+\Imeth{ellipse}{foci (f1,f2,v)} & E = ellipse: foci ( focus 1, focus 2, vertex ) \\
+\Imeth{ellipse}{radii (c,a,b,sl) } & E = ellipse: radii ( center, radius a, radius b, slope ) \\
+\Imeth{ellipse}{in\_out (pt) } & pt in/out of the ellipse \\
+\Imeth{ellipse}{tangent\_at (pt) } & see example \ref{ssub:method_point} \\
+\Imeth{ellipse}{tangent\_from (pt) } & see example \ref{ssub:method_point} \\
+\Imeth{ellipse}{point (phi) } & vertex = point (0) covertex = point (math.pi/4) ex see \ref{ssub:method_point} \\
+\bottomrule
+\end{tabular}
+\end{center}
+\egroup
+
+\subsubsection{Method \Imeth{ellipse}{new}} % (fold)
+\label{ssub:method_imeth_ellipse_new}
+The main method for creating a new ellipse is \Imeth{ellipse}{new}. The arguments are three: \Iattr{ellipse}{center}, \Iattr{ellipse}{vertex} and \Iattr{ellipse}{covertex}
+For attributes see \ref{sec:classe_ellipse}
+
+\begin{minipage}{0.5\textwidth}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.C = point: new (3 , 2)
+ z.A = point: new (5 , 1)
+ z.B = z.C : homothety(0.5,
+ z.C : rotation (math.pi/2,z.A))
+ E = ellipse: new (z.C,z.A,z.B)
+ a = E.Rx
+ b = E.Ry
+ slope = math.deg(E.Sl)
+ set_lua_to_tex {'a','b','slope'}
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles[teal](C,A)
+ \tkzDrawEllipse[red](C,\a,\b,\slope)
+ \tkzDrawPoints(C,A,B)
+ \tkzLabelPoints(C,A,B)
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\begin{tkzelements}
+z.C = point: new (3 , 2)
+z.A = point: new (5 , 1)
+z.B = z.C : homothety(0.5,
+ z.C : rotation (math.pi/2,z.A))
+E = ellipse: new (z.C,z.A,z.B)
+a = E.Rx
+b = E.Ry
+slope = math.deg(E.slope)
+set_lua_to_tex {'a','b','slope'}
+\end{tkzelements}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles[teal](C,A)
+\tkzDrawEllipse[red](C,\a,\b,\slope)
+\tkzDrawPoints(C,A,B)
+\tkzLabelPoints(C,A,B)
+\end{tikzpicture}
+\end{minipage}
+
+The function \Igfct{package}{set\_lua\_to\_tex (list)} is used to define the macros that will be used to draw the ellipse with \TIKZ\ or \pkg{tkz-euclide}.
+% subsubsection method_imeth_ellipse_new (end)
+
+
+\subsubsection{Method \Imeth{ellipse}{foci}} % (fold)
+\label{ssub:function_tkzname_ellipse__foci}
+The first two points are the foci of the ellipse. The third one is the vertex. We can deduce all the other characteristics.
+
+\emph{The function launches the |new| method, all the characteristics of the ellipse are defined.}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (5 , 1)
+ L.AB = line : new (z.A,z.B)
+ z.C = point: new (.8 , 3)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ z.N = T.ABC.eulercenter
+ z.H = T.ABC.orthocenter
+ z.O = T.ABC.circumcenter
+ _,_,z.Mc = get_points (T.ABC: medial ())
+ L.euler = line: new (z.H,z.O)
+ C.circum = circle: new (z.O,z.A)
+ C.euler = circle: new (z.N,z.Mc)
+ z.i,z.j = intersection (L.euler,C.circum)
+ z.I,z.J = intersection (L.euler,C.euler)
+ E = ellipse: foci (z.H,z.O,z.I)
+ L.AH = line: new (z.A,z.H)
+ z.X = intersection (L.AH,C.circum)
+ L.XO = line: new (z.X,z.O)
+ z.R,z.S = intersection (L.XO,E)
+ a,b = E.Rx,E.Ry
+ ang = math.deg(E.slope)
+ set_lua_to_tex{'a','b','ang'}
+\end{tkzelements}
+\end{tkzexample}
+\begin{minipage}{0.6\textwidth}
+ \begin{tkzexample}[latex=0cm,small,code only]
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawCircles[cyan](O,A N,I)
+ \tkzDrawSegments(X,R A,X)
+ \tkzDrawEllipse[red](N,\a,\b,\ang)
+ \tkzDrawLines[add=.2 and .5](I,H)
+ \tkzDrawPoints(A,B,C,N,O,X,H,R,S,I)
+ \tkzLabelPoints[above](C,X)
+ \tkzLabelPoints[above right](N,O)
+ \tkzLabelPoints[above left](R)
+ \tkzLabelPoints[left](A)
+ \tkzLabelPoints[right](B,I,S,H)
+ \end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.4\textwidth}
+\begin{tkzelements}
+ scale =1
+ z.A = point: new (0 , 0)
+ z.B = point: new (5 , 1)
+ L.AB = line : new (z.A,z.B)
+ z.C = point: new (.8 , 3)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ z.N = T.ABC.eulercenter
+ z.H = T.ABC.orthocenter
+ z.O = T.ABC.circumcenter
+ _,_,z.Mc = get_points (T.ABC: medial ())
+ L.euler = line: new (z.H,z.O)
+ C.circum = circle: new (z.O,z.A)
+ C.euler = circle: new (z.N,z.Mc)
+ z.i,z.j = intersection (L.euler,C.circum)
+ z.I,z.J = intersection (L.euler,C.euler)
+ E = ellipse: foci (z.H,z.O,z.I)
+ L.AH = line: new (z.A,z.H)
+ z.X = intersection (L.AH,C.circum)
+ L.XO = line: new (z.X,z.O)
+ z.R,z.S = intersection (L.XO,E)
+ a,b = E.Rx,E.Ry
+ ang = math.deg(E.slope)
+ set_lua_to_tex{'a','b','ang'}
+\end{tkzelements}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawCircles[cyan](O,A N,I)
+\tkzDrawSegments(X,R A,X)
+\tkzDrawEllipse[red](N,\a,\b,\ang)
+\tkzDrawLines[add=.2 and .5](I,H)
+\tkzDrawPoints(A,B,C,N,O,X,H,R,S,I)
+\tkzLabelPoints[above](C,X)
+\tkzLabelPoints[above right](N,O)
+\tkzLabelPoints[above left](R)
+\tkzLabelPoints[left](A)
+\tkzLabelPoints[right](B,I,S,H)
+\end{tikzpicture}
+\end{minipage}
+% subsubsection function_tkzname_ellipse__foci (end)
+
+\subsubsection{Method \Imeth{ellipse}{point} and \Imeth{ellipse}{radii}} % (fold)
+\label{ssub:method_point}
+ The method \Imeth{ellipse}{point} defines a point $M$ of the ellipse whose coordinates are $(a\times cos(phi), b\times sin(phi))$. |phi| angle between (center,vertex) and (center,M)
+
+ \emph{The environment \tkzNameEnv{tkzelements} uses as \tkzname{lua} the radian as unit for angles. }
+
+
+\begin{minipage}{0.6\textwidth}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.C = point: new (2 , 3)
+ z.A = point: new (6 , 5)
+ a = value(4)
+ b = value(3)
+ ang = math.deg(-math.pi/4)
+ E = ellipse: radii (z.C,a,b,-math.pi/4)
+ z.V = E : point (0)
+ z.K = E : point (1)
+ z.CoV = E : point (math.pi/2)
+ z.X = E : point (math.pi)
+ L = E :tangent_at (z.V)
+ z.x,z.y = get_points(L)
+ L.ta,L.tb = E :tangent_from (z.A)
+ z.M = L.ta.pb
+ z.N = L.tb.pb
+ L.K = E :tangent_at (z.K)
+ z.ka,z.kb = get_points(L.K)
+ set_lua_to_tex {'a','b','ang'}
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawSegments(C,V C,CoV)
+ \tkzDrawLines(x,y A,M A,N ka,kb)
+ \tkzLabelSegment(C,V){$a$}
+ \tkzLabelSegment[right](C,CoV){$b$}
+ \tkzDrawEllipse[teal](C,\a,\b,\ang)
+ \tkzDrawPoints(C,V,CoV,X,x,y,M,N,A,K)
+ \tkzLabelPoints(C,V,A,M,N,K)
+ \tkzLabelPoints[above left](CoV)
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.4\textwidth}
+\begin{tkzelements}
+scale = .5
+z.C = point: new (2 , 3)
+z.A = point: new (6 , 5)
+a = value(4)
+b = value(3)
+ang = math.deg(-math.pi/4)
+E = ellipse: radii (z.C,a,b,-math.pi/4)
+z.V = E : point (0)
+z.K = E : point (1)
+z.CoV = E : point (math.pi/2)
+z.X = E : point (math.pi)
+L = E :tangent_at (z.V)
+z.x,z.y = get_points(L)
+L.ta,L.tb = E :tangent_from (z.A)
+z.M = L.ta.pb
+z.N = L.tb.pb
+L.K = E :tangent_at (z.K)
+z.ka,z.kb = get_points(L.K)
+set_lua_to_tex {'a','b','ang'}
+\end{tkzelements}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawSegments(C,V C,CoV)
+\tkzDrawLines(x,y A,M A,N ka,kb)
+\tkzLabelSegment(C,V){$a$}
+\tkzLabelSegment[right](C,CoV){$b$}
+\tkzDrawEllipse[teal](C,\a,\b,\ang)
+\tkzDrawPoints(C,V,CoV,X,x,y,M,N,A,K)
+\tkzLabelPoints(C,V,A,M,N,K)
+\tkzLabelPoints[above left](CoV)
+\end{tikzpicture}
+\end{minipage}
+% subsubsection method_point (end)
+% subsection methods_of_the_class_ellipse (end)
+
+% section classe_ellipse (end)
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-line.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-line.tex
new file mode 100644
index 0000000000..de11a45a51
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-line.tex
@@ -0,0 +1,420 @@
+\newpage
+\section{Class line} % (fold)
+\label{sec:class_line}
+
+\subsection{Attributs of a line} % (fold)
+\label{sub:attributs_of_a_line}
+
+Writing |L.AB = line: new (z.A,z.B) | creates an object of the class \tkzname{line} (the notation is arbitrary for the moment). Geometrically it is as much the line passing through the points $A$ and $B$ as the segment $[AB]$. Thus we can use the midpoint of |L.AB| which is of course the midpoint of the segment $[AB]$. This medium is obtained with |L.AB.mid|. Note that |L.AB.pa = z.A| and |L.AB.pb = z.B|. Finally, if a line $L$ is the result of a method, you can obtain the points with |z.A,z.B = get_points (L)| or with the previous remark.
+
+The attributes are :
+
+\bgroup
+\catcode`_=12
+
+\small
+\begin{center}
+%\caption{Attributes about line class.}
+\begin{tabular}{ll}
+\toprule
+\textbf{Attributes} & \textbf{Application}\\
+\Iattr{line}{pa} & First point of the segment \\
+\Iattr{line}{pb} & Second point of the segment\\
+\Iattr{line}{type} & Type is 'line'\\
+\Iattr{line}{mid} & Middle of the segment |z.M = L.AB.mid|\\
+\Iattr{line}{slope} & Slope of the line obtained with |an = L.AB.slope|\\
+\Iattr{line}{length} & Length of the segment |l = L.AB.length| \\
+\Iattr{line}{north\_pa} & See next example \\
+\Iattr{line}{north\_pb} & \\
+\Iattr{line}{south\_pa} & \\
+\Iattr{line}{south\_pb} & \\
+\Iattr{line}{east} & \\
+\Iattr{line}{west} & \\
+\bottomrule
+\end{tabular}
+\end{center}
+\egroup
+
+\subsubsection{Example: attributes of class line} % (fold)
+\label{ssub:example_class_line}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .5
+ z.a = point: new (1, 1)
+ z.b = point: new (5, 4)
+ L.ab = line : new (z.a,z.b)
+ z.m = L.ab.mid
+ z.w = L.ab.west
+ z.e = L.ab.east
+ z.r = L.ab.north_pa
+ z.s = L.ab.south_pb
+ sl = L.ab.slope
+ len = L.ab.length
+ set_lua_to_tex{"sl","len"}
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPoints(a,b,m,e,r,s,w)
+ \tkzLabelPoints(a,b,e,r,s,w)
+ \tkzLabelPoints[above](m)
+ \tkzDrawLine(a,b)
+ \tkzLabelSegment[sloped](a,b){ab = \len}
+ \tkzLabelSegment[above=12pt,sloped](a,b){slope of (ab) = \sl}
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .5
+z.a = point: new (1, 1)
+z.b = point: new (5, 4)
+L.ab = line : new (z.a,z.b)
+z.m = L.ab.mid
+z.w = L.ab.west
+z.e = L.ab.east
+z.r = L.ab.north_pa
+z.s = L.ab.south_pb
+sl = L.ab.slope
+len = L.ab.length
+set_lua_to_tex{"sl","len"}
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPoints(a,b,m,e,r,s,w)
+\tkzLabelPoints(a,b,e,r,s,w)
+\tkzLabelPoints[above](m)
+\tkzDrawLine(a,b)
+\tkzLabelSegment[sloped](a,b){ab = \len}
+\tkzLabelSegment[above=12pt,sloped](a,b){slope of (ab) = \sl}
+\end{tikzpicture}
+\hspace*{\fill}
+% \caption{Class Line}
+% subsubsection example_class_line (end)
+
+\subsubsection{Method \Imeth{line}{new} and line attributes}
+\label{ssub:example_line_attributes}
+
+Notation |L| or |L.AB| or |L.euler|. The notation is actually free.
+|L.AB| can also represent the segment. With | L.AB = line : new (z.A,z.B)|, a line is defined.
+
+
+\begin{minipage}{0.5\textwidth}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point : new (1,1)
+ z.B = point : new (3,2)
+ L.AB = line : new (z.A,z.B)
+ z.C = L.AB.north_pa
+ z.D = L.AB.south_pa
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B C,D)
+ \tkzDrawPoints(A,...,D)
+ \tkzLabelPoints(A,...,D)
+ \tkzMarkRightAngle(B,A,C)
+ \tkzMarkSegments(A,C A,B A,D)
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\begin{tkzelements}
+ scale = 1
+ z.A = point : new (1,1)
+ z.B = point : new (3,2)
+ L.AB = line : new (z.A,z.B)
+ z.C = L.AB.north_pa
+ z.D = L.AB.south_pa
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B C,D)
+ \tkzDrawPoints(A,...,D)
+ \tkzLabelPoints(A,...,D)
+ \tkzMarkRightAngle(B,A,C)
+ \tkzMarkSegments(A,C A,B A,D)
+\end{tikzpicture}
+\end{minipage}
+% subsubsection example_line_attributes (end)
+% subsection attributs_of_a_line (end)
+
+\clearpage\newpage
+\subsection{Methods of the class line} % (fold)
+\label{sub:methods_from_class_line}
+Here's the list of methods for the \tkzNameObj{line} object. The results are either reals, points, lines, circles or triangles.
+\subsubsection{Table of the methods from class line} % (fold)
+\label{ssub:table_of_the_methods_from_class_line}
+\bgroup
+\catcode`_=12
+\small
+\begin{center}
+%\caption{Methods from class line}
+\begin{tabular}{ll}
+\toprule
+\textbf{Methods} & \textbf{Comments} \\
+\midrule
+\Imeth{line}{new(A, B)} & |L.AB = line : new(z.A,z.B)| line through the points $A$ and $B$\\
+\midrule
+ \textbf{Points} &\\
+\midrule
+\Imeth{line}{gold\_ratio ()} & |z.C = L.AB : gold_ratio()| \tkzar gold ratio \\
+\Imeth{line}{barycenter (ka,kb)} & |z.C = L.AB : barycenter (1,2)| $C$ --> barycenter of |{(A,1)(B,2)}|\\
+\Imeth{line}{point (t)} & |z.C = L.AB : point (2)| \tkzar $\overrightarrow{AC} = 2\overrightarrow{AB}$\\
+\Imeth{line}{midpoint ()} & |z.M = L.AB : midpoint ()| \tkzar better is |z.M = L.AB.mid| \\
+\Imeth{line}{harmonic\_int } & |z.D = L.AB : harmonic_int (z.C)| \tkzar $D\in [AB]$ $C\notin [AB]$\\
+\Imeth{line}{harmonic\_ext (pt)} & |z.D = L.AB : harmonic_ext (z.C)| \tkzar $D\notin [AB]$ $C\in [AB]$\\
+\Imeth{line}{harmonic\_both (k)} & |z.C,z.D = L.AB : harmonic_both (tkzphi)| \tkzar ${ {CA/CB}={DA/DB}=t\varphi.}$\\
+\Imeth{line}{projection ( pt )} & |z.H = L.AB : projection (z.C)| \tkzar $CH \perp (AB)$ and $H\in (AB)$\\
+\Imeth{line}{set\_projection (...)} & projection of a list of points \\
+\Imeth{line}{symmetry\_axial ( pt )} & |z.Cp = L.AB : symmetry_axial (z.C)|\\
+\Imeth{line}{set\_symmetry\_axial (...) }&symmetry_axial of a list of points \\
+\Imeth{line}{square ()} & |z.C,z.D = L.AB : square () | \tkzar creates 2 points to make a square.\\
+\midrule
+ \textbf{Lines} &\\
+\midrule
+\Imeth{line}{ll\_from ( pt )} & |L.CD = L.AB : ll_from (z.C)| \tkzar $(CD) \parallel (AB)$ \\
+\Imeth{line}{ortho\_from ( pt )} & |L.CD = L.AB : ortho_from (z.C)| \tkzar $(CD) \perp (AB)$\\
+\Imeth{line}{mediator ()}&|L.uv = L.AB : mediator ()| \tkzar $(u,v)$ mediator of $(A,B)$\\
+\midrule
+ \textbf{Triangles} &\\
+\midrule
+\Imeth{line}{equilateral ()} & |z.C = L.AB : equilateral_tr ()| $(\overrightarrow{AB},\overrightarrow{AC})>0$ \\
+\Imeth{line}{isosceles (phi)} & |z.C = L.AB : isosceles (math.pi/6)| \\
+\Imeth{line}{gold ()} & |z.C = L.AB : gold ()| \tkzar right in $B$ and $AC = \varphi \times AB $ \\
+\Imeth{line}{euclide ()} & |z.C = L.AB : euclide ()| \tkzar $AB=AC$ and $(\overrightarrow{AB},\overrightarrow{AC}) = math.pi/5$ \\
+\Imeth{line}{golden ()} & |z.C = L.AB : golden ()| $(\overrightarrow{AB},\overrightarrow{AC}) = 2\times math.pi/5$ \\
+\midrule
+ \textbf{Circles} &\\
+\midrule
+\Imeth{line}{circle ()} & |C.AB = L.AB : circle ()| circle center pa through pb \\
+\Imeth{line}{circle\_swap ()} & |C.BA = L.AB : circle\_swap ()| circle center pb through pa \\
+\midrule
+ \textbf{Miscellaneous} &\\
+\midrule
+\Imeth{line}{distance (pt)} & |d = L.Ab : distance (z.C)| d=CH with H projection of $C$ onto (AB)\\
+\Imeth{line}{in\_out (pt)} & |b = L.AB : in_out (z.C)| $b$ is a boolean b=true if $C\in (AB)$ \\
+\Imeth{line}{slope ()} & |a = L.AB : slope()| \tkzar better is L.AB.slope \\
+\bottomrule
+\end{tabular}
+\end{center}
+\egroup
+% subsubsection table_of_the_methods_from_class_line (end)
+
+Here are a few examples.
+
+\subsubsection{Example: new line from a defined line} % (fold)
+\label{ssub:new_line_from_a_defined_line}
+\begin{minipage}{0.5\textwidth}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = 1.25
+ z.A = point : new (1,1)
+ z.B = point : new (3,2)
+ L.AB = line : new (z.A,z.B)
+ z.C = L.AB.north_pa
+ z.D = L.AB.south_pa
+ L.CD = line : new (z.C,z.D)
+ _,z.E = get_points ( L.CD: ll_from (z.B))
+ -- z.E = L2.pb
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B C,D B,E)
+ \tkzDrawPoints(A,...,E)
+ \tkzLabelPoints(A,...,E)
+ \tkzMarkRightAngle(B,A,C)
+ \tkzMarkSegments(A,C A,B A,D)
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\begin{tkzelements}
+scale = 1.25
+z.A = point : new (1,1)
+z.B = point : new (3,2)
+L.AB = line : new (z.A,z.B)
+z.C = L.AB.north_pa
+z.D = L.AB.south_pa
+L.CD = line : new (z.C,z.D)
+_,z.E = get_points ( L.CD: ll_from (z.B))
+-- or z.E = L2.pb with |L2 = L.CD: ll_from (z.B)|
+\end{tkzelements}
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B C,D B,E)
+\tkzDrawPoints(A,...,E)
+\tkzLabelPoints(A,...,E)
+\tkzMarkRightAngle(B,A,C)
+\tkzMarkSegments(A,C A,B A,D)
+\end{tikzpicture}
+\hspace*{\fill}
+\end{minipage}
+ % \caption{New line from defined line}
+% subsubsection new_line_from_a_defined_line (end)
+
+
+\subsubsection{Example: projection of several points} % (fold)
+\label{ssub:example_projection_of_several_points}
+\begin{minipage}{0.5\textwidth}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .8
+ z.a = point: new (0, 0)
+ z.b = point: new (4, 1)
+ z.c = point: new (2, 5)
+ z.d = point: new (5, 2)
+ L.ab = line: new (z.a,z.b)
+ z.cp,z.dp = L.ab: set_projection(z.c,z.d)
+\end{tkzelements}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(a,b c,c' d,d')
+ \tkzDrawPoints(a,...,d,c',d')
+ \tkzLabelPoints(a,...,d,c',d')
+ \end{tikzpicture}
+ \end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\begin{tkzelements}
+scale = .8
+z.a = point: new (0, 0)
+z.b = point: new (4, 1)
+z.c = point: new (2, 5)
+z.d = point: new (5, 2)
+L.ab = line: new (z.a,z.b)
+z.cp,z.dp = L.ab : set_projection(z.c,z.d)
+\end{tkzelements}
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(a,b c,c' d,d')
+\tkzDrawPoints(a,...,d,c',d')
+\tkzLabelPoints(a,...,d,c',d')
+\end{tikzpicture}
+\hspace*{\fill}
+\end{minipage}
+
+% \caption{Projection of several points}
+% subsubsection example_projection_of_several_points (end)
+
+\subsubsection{Example: combination of methods} % (fold)
+\label{ssub:example_combination_of_methods}
+
+\begin{minipage}{0.6\textwidth}
+\begin{tkzexample}[small,code only]
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.C = point: new (1 , 5)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ L.AB = T.ABC.ab
+ z.O = T.ABC.circumcenter
+ C.OA = circle: new (z.O,z.A)
+ z.H = L.AB: projection (z.O)
+ L.ab = C.OA: tangent_at (z.A)
+ z.a,z.b = L.ab.pa,L.ab.pb
+ -- or z.a,z.b = get_points (L.ab)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawCircle(O,A)
+ \tkzDrawSegments[purple](O,A O,B O,H)
+ \tkzDrawArc[red](O,A)(B)
+ \tkzDrawArc[blue](O,B)(A)
+ \tkzDrawLine[add = 2 and 1](A,a)
+ \tkzFillAngles[teal!30,opacity=.4](A,C,B b,A,B A,O,H)
+ \tkzMarkAngles[mark=|](A,C,B b,A,B A,O,H H,O,B)
+ \tkzDrawPoints(A,B,C,H,O)
+ \tkzLabelPoints(A,B,C,H,O)
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.4\textwidth}
+\begin{tkzelements}
+scale = .5
+z.A = point: new (0 , 0)
+z.B = point: new (6 , 0)
+z.C = point: new (1 , 5)
+T.ABC = triangle: new (z.A,z.B,z.C)
+L.AB = T.ABC.ab
+z.O = T.ABC.circumcenter
+C.OA = circle: new (z.O,z.A)
+z.H = L.AB : projection (z.O)
+L.ab = C.OA : tangent_at (z.A)
+z.a,z.b = L.ab.pa,L.ab.pb
+ -- or z.a,z.b = get_points (L.ab)
+\end{tkzelements}
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawCircle(O,A)
+\tkzDrawSegments[purple](O,A O,B O,H)
+\tkzDrawArc[red](O,A)(B)
+\tkzDrawArc[blue](O,B)(A)
+\tkzDrawLine[add = 2 and 1](A,a)
+\tkzFillAngles[teal!30,opacity=.4,,size=.5](A,C,B b,A,B A,O,H)
+\tkzMarkAngles[mark=|,size=.5](A,C,B b,A,B A,O,H H,O,B)
+\tkzDrawPoints(A,B,C,H,O)
+\tkzLabelPoints(A,B,C,H,O)
+\end{tikzpicture}
+\hspace*{\fill}
+\end{minipage}
+
+% subsubsection example_combination_of_methods (end)
+
+\subsubsection{Example: distance and projection} % (fold)
+\label{ssub:example_distance_and_projection}
+
+\begin{minipage}{0.5\textwidth}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point : new (0 , 0)
+ z.B = point : new (5 , -2)
+ z.C = point : new (3 , 3)
+ L.AB = line : new (z.A,z.B)
+ d = L.AB : distance (z.C)
+ z.H = L.AB : projection (z.C)
+ set_lua_to_tex{'d'}
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B C,H)
+ \tkzDrawPoints(A,B,C,H)
+ \tkzLabelPoints(A,B,C,H)
+ \tkzLabelSegment[above left,
+ draw](C,H){$CH = \d$}
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\begin{tkzelements}
+ z.A = point : new (0 , 0)
+ z.B = point : new (5 , -2)
+ z.C = point : new (3 , 3)
+ L.AB = line : new (z.A,z.B)
+ d = L.AB : distance (z.C)
+ z.H = L.AB : projection (z.C)
+ set_lua_to_tex{'d'}
+\end{tkzelements}
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B C,H)
+\tkzDrawPoints(A,B,C,H)
+\tkzLabelPoints(A,B,C,H)
+\tkzLabelSegment[above left,draw](C,H){$CH = \d$}
+\end{tikzpicture}
+\hspace*{\fill}
+\end{minipage}
+
+% \caption{Method distance with line object}
+% subsubsection example_distance_and_projection (end)
+% subsection methods_from_class_line (end)
+
+% section class_line (end)
+\endinput
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-misc.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-misc.tex
new file mode 100644
index 0000000000..9bb092ce56
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-misc.tex
@@ -0,0 +1,361 @@
+\clearpage\newpage
+ \section{Math constants and functions} % (fold)
+ \label{sec:math_functions}
+
+\bgroup
+\catcode`_=12
+\small
+\begin{center}
+%\caption{functions\_maths.lua }
+\begin{tabular}{ll}
+\toprule
+\textbf{contants or functions} & \textbf{Comments}\\
+\midrule
+\Igfct{math}{tkzphi} & constant $\varphi = (1+math.sqrt(5))/2 $\\
+\Igfct{math}{tkzinvphi} & constant $1/\varphi = 1/tkzphi$\\
+\Igfct{math}{tkzsqrtphi} & constant $\sqrt{\varphi}= math.sqrt(tkzphi)$ \\
+%round(num, idp) & \\
+%tkzround( num, idp ) & \\
+% Cramer33(a1,a2,a3,b1,b2,b3,c1,c2,c3) & \\
+% Cramer22(a1,a2,b1,b2) & \\
+\Igfct{math}{islinear (z1,z2,z3) } & Are the points aligned? (z2-z1) $\parallel$ (z3-z1) ? \\
+\Igfct{math}{isortho (z1,z2,z3)} & (z2-z1) $\perp$ (z3-z1) ? boolean\\
+\Igfct{package}{set\_lua\_to\_tex (list)} & set\_lua\_to\_tex('a','n') defines |\a| and |\n| \\
+%parabola (a,b,c) & to get \\
+\Igfct{math}{value (v) } & apply |scale| to the value \\
+\Igfct{math}{angle\_normalize (a) } & to get a value between 0 and $2\pi$ \\
+\bottomrule
+\end{tabular}
+\end{center}
+\egroup
+
+\subsubsection{Harmonic division with tkzphi } % (fold)
+\label{ssub:harmonic_division_with_tkzphi}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale =.5
+ z.a = point: new(0,0)
+ z.b = point: new(8,0)
+ L.ab = line: new (z.a,z.b)
+ z.m,z.n = L.ab: harmonic_both (tkzphi)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLine[add= .2 and .2](a,n)
+ \tkzDrawPoints(a,b,n,m)
+ \tkzLabelPoints(a,b,n,m)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\begin{tkzelements}
+ scale =.5
+ z.a = point: new(0,0)
+ z.b = point: new(8,0)
+ L.ab = line: new (z.a,z.b)
+ z.m,z.n = L.ab: harmonic_both (tkzphi)
+\end{tkzelements}
+\hspace*{\fill}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLine[add= .2 and .2](a,n)
+ \tkzDrawPoints(a,b,n,m)
+ \tkzLabelPoints(a,b,n,m)
+\end{tikzpicture}
+ \hspace*{\fill}
+% subsubsection harmonic_division_with_tkzphi (end)
+
+\subsubsection{Function islinear} % (fold)
+\label{ssub:function_islinear}
+\begin{minipage}{0.5\textwidth}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.a = point: new (1, 1)
+ z.b = point: new (2, 2)
+ z.c = point: new (4, 4)
+ if islinear (z.a,z.b,z.c) then
+ z.d = point: new (0, 0)
+ else
+ z.d = point: new (-1, -1)
+ end
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPoints(a,...,d)
+ \tkzLabelPoints(a,...,d)
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\begin{tkzelements}
+ z.a = point: new (1, 1)
+ z.b = point: new (2, 2)
+ z.c = point: new (4, 4)
+ if islinear (z.a,z.b,z.c) then
+ z.d = point: new (0, 0)
+ else
+ z.d = point: new (-1, -1)
+ end
+\end{tkzelements}
+ \hspace*{\fill}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPoints(a,...,d)
+ \tkzLabelPoints(a,...,d)
+\end{tikzpicture}
+\hspace*{\fill}
+\end{minipage}
+
+% subsubsection function_islinear (end)
+
+
+
+
+\subsubsection{Function \tkzfname{value} }% (fold)
+\label{ssub:function_value}
+
+value to apply scaling if necessary
+
+If |scale = 1.2| with a = value(5) the actual value of |a| will be $5\times 1.2 = 6$.
+
+
+% subsubsection function_value (end)
+
+\subsubsection{Transfer from lua to \TEX} % (fold)
+\label{ssub:transfer_from_lua_to_tex}
+
+ \Igfct{package}{set\_lua\_to\_tex (list)}
+
+see examples \ref{ssub:get_angle}, \ref{ssub:dot_or_scalar_product}
+% subsubsection transfer_from_lua_to_tex (end)
+
+\subsubsection{Normalized angles : Slope of lines (ab), (ac) and (ad)} % (fold)
+\label{sub:normalized_angles}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.a = point: new(0, 0)
+ z.b = point: new(-3, -3)
+ z.c = point: new(0, 3)
+ z.d = point: new(2, -2)
+ angle = point.arg (z.b-z.a)
+ tex.print('slope of (ab) : '..tostring(angle)..'\\\\')
+ tex.print('slope normalized of (ab) : '..tostring(angle\_normalize(angle))..'\\\\')
+ angle = point.arg (z.c-z.a)
+ tex.print('slope of (ac) : '..tostring(angle)..'\\\\')
+ tex.print('slope normalized of (ac) : '..tostring(angle\_normalize(angle))..'\\\\')
+ angle = point.arg (z.d-z.a)
+ tex.print('slope of (ad) : '..tostring(angle)..'\\\\')
+ tex.print('slope normalized of (acd) : '..tostring(angle\_normalize(angle))..'\\\\')
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[red](a,b a,c a,d)
+ \tkzDrawPoints(a,b,c,d)
+ \tkzLabelPoints(a,b,c,d)
+\end{tikzpicture}
+\end{tkzexample}
+\begin{tkzelements}
+ scale = .75
+z.a = point: new(0, 0)
+z.b = point: new(-3, -3)
+z.c = point: new(0, 3)
+z.d = point: new(2, -2)
+angle = point.arg (z.b-z.a)
+tex.print('slope of (ab) : '..tostring(angle)..'\\\\')
+tex.print('slope normalized of (ab) : '..tostring(angle_normalize(angle))..'\\\\')
+angle = point.arg (z.c-z.a)
+tex.print('slope of (ac) : '..tostring(angle)..'\\\\')
+tex.print('slope normalized of (ac) : '..tostring(angle_normalize(angle))..'\\\\')
+angle = point.arg (z.d-z.a)
+tex.print('slope of (ad) : '..tostring(angle)..'\\\\')
+tex.print('slope normalized of (ad) : '..tostring(angle_normalize(angle))..'\\\\')
+\end{tkzelements}
+
+ \hspace*{\fill}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[red](a,b a,c a,d)
+ \tkzDrawPoints(a,b,c,d)
+ \tkzLabelPoints(a,b,c,d)
+\end{tikzpicture}
+ \hspace*{\fill}
+ % \caption{Normalized angles}
+
+
+% subsubsection normalized_angles (end)
+
+\subsubsection{Get angle} % (fold)
+\label{ssub:get_angle}
+
+The function |get_angle (a,b,c)| gives the angle normalized of $(\overrightarrow{ab},\overrightarrow{ac})$.
+
+\begin{minipage}{0.6\textwidth}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.a = point: new(0, 0)
+ z.b = point: new(-2, -2)
+ z.c = point: new(0, 3)
+ angcb = tkzround ( get_angle (z.a,z.c,z.b),3)
+ angbc = tkzround ( get_angle (z.a,z.b,z.c),3)
+ set_lua_to_tex{"angcb","angbc"}
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[red](a,b a,c)
+ \tkzDrawPoints(a,b,c)
+ \tkzLabelPoints(a,b,c)
+ \tkzMarkAngle[->](c,a,b)
+ \tkzLabelAngle(c,a,b){\angcb}
+ \tkzMarkAngle[->](b,a,c)
+ \tkzLabelAngle(b,a,c){\angbc}
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.4\textwidth}
+\begin{tkzelements}
+ scale = 1.2
+ z.a = point: new(0, 0)
+ z.b = point: new(-2, -2)
+ z.c = point: new(0, 3)
+ angcb = tkzround ( get_angle (z.a,z.c,z.b),3)
+ angbc = tkzround ( get_angle (z.a,z.b,z.c),3)
+ set_lua_to_tex{"angcb","angbc"}
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines[red](a,b a,c)
+\tkzDrawPoints(a,b,c)
+\tkzLabelPoints(a,b,c)
+\tkzMarkAngle[->](c,a,b)
+\tkzLabelAngle(c,a,b){\angcb}
+\tkzMarkAngle[->](b,a,c)
+\tkzLabelAngle(b,a,c){\angbc}
+\end{tikzpicture}
+\hspace*{\fill}
+\end{minipage}
+
+% \caption{Get angle}
+% subsubsection get_angle (end)
+
+\subsubsection{Dot or scalar product} % (fold)
+\label{ssub:dot_or_scalar_product}
+
+\begin{minipage}{0.5\textwidth}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new(0,0)
+ z.B = point: new(5,0)
+ z.C = point: new(0,3)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ z.A_1,
+ z.B_1,
+ z.C_1 = get_points (T.ABC: anti ())
+ x = dot_product (z.A,z.B,z.C)
+ set_lua_to_tex{"x"}
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A,B,C,A_1,B_1,C_1)
+ \tkzLabelPoints(A,B,C,A_1,B_1,C_1)
+ \tkzDrawPolygon[blue](A_1,B_1,C_1)
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\begin{tkzelements}
+ scale = .6
+ z.A = point: new(0,0)
+ z.B = point: new(5,0)
+ z.C = point: new(0,3)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ z.A_1,
+ z.B_1,
+ z.C_1 = get_points (T.ABC: anti ())
+ x = dot_product (z.A,z.B,z.C)
+ set_lua_to_tex{"x"}
+\end{tkzelements}
+\hspace*{\fill}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A,B,C,A_1,B_1,C_1)
+ \tkzLabelPoints(A,B,C,A_1,B_1,C_1)
+ \tkzDrawPolygon[blue](A_1,B_1,C_1)
+ \end{tikzpicture}
+\hspace*{\fill}
+\end{minipage}
+
+%\caption{Dot or scalar product}
+
+
+The scalar product of the vectors $\overrightarrow{AC}$ and $\overrightarrow{AB}$ is equal to $\x$, so these vectors are orthogonal.
+% subsubsection dot_or_scalar_product (end)
+
+\subsubsection{Alignment or orthogonality} % (fold)
+\label{ssub:alignment_or_orthogonality}
+
+With the functions |islinear| and |isortho|. |islinear(z.a,z.b,z.c)| gives |true| idf the points $a$, $b$ and $c$ are aligned.
+
+|isortho(z.a,z.b,z.c)| gives |true| if the line $(ab)$ is orthogonal to the line $(ac)$.
+% subsection alignment_or_orthogonality (end)
+
+\subsubsection{Other functions} % (fold)
+\label{ssub:other_functions}
+
+Not documented because still in beta version: |parabola|, |Cramer22|, |Cramer33|.
+
+% subsubsection other_functions (end)
+
+% section math_functions (end)
+% % section classes_and_objects (end)
+\endinput
+
+
+
+
+% \bgroup
+% \catcode`_=12
+% \begin{table}[H]
+% \small
+% \begin{center}
+% \caption{functions\_polygons.lua }
+% \begin{tabular}{lll}
+% \toprule
+% \textbf{Functions} & \textbf{Comments}\\
+% \midrule
+% function square (a,b) \\
+% function parallelogram (a,b,c) \\
+% \bottomrule
+% \end{tabular}
+% \end{center}
+% \end{table}
+% \egroup
+
+
+% \bgroup
+% \catcode`_=12
+% \begin{table}[H]
+% \small
+% \begin{center}
+% \caption{elements\_vectors.lua }
+% \begin{tabular}{lll}
+% \toprule
+% \textbf{Methods} & \textbf{Comments}\\
+% \midrule
+% vector = {} class vector \\
+% \Imeth{vector}{function vector: new (z1,z2)} & st, ed \\
+% \Imeth{vector}{function vector: normalize ()} &\\
+% \bottomrule
+% \end{tabular}
+% \end{center}
+% \end{table}
+% \egroup
+
+
+
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-point.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-point.tex
new file mode 100644
index 0000000000..311debb4a6
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-point.tex
@@ -0,0 +1,217 @@
+\newpage
+
+\section{Class point} % (fold)
+\label{sec:class_point}
+
+The first one is the base of the package, it is the class \tkzname{point}. This class is hybrid in the sense that it is as much about points of a plane as complex numbers. The principle is the following: the plane is provided with an orthonormal basis which allows us to determine the placement of a point using its abscissa and ordinate coordinates; in the same way any complex number can simply be considered as a pair of real numbers (its real part and its imaginary part). We can then designate the plane as the complex plane, and the complex number $x+iy$ is represented by the point of the plane with coordinates $(x,y)$. Thus the point $A$ will have affix $z.A$. This affix will be with Lua stored in the table $z$ in the form of a couple of real numbers $(x_A,y_A)$. The first element being the real part of the complex, and the second the imaginary part. There will be an identification between the and its corresponding affix. More precisely, for Lua the name of the point is the key that allows the table to designate the pair of reals associated to the affix.
+
+Writing |z.A = point: new (2,3) | creates an object of class point where |z.A = 2+3i|.
+
+
+The creation of a point is done using the following method, but there are other possibilities. If a scaling factor has been given, the method takes it into account.
+
+\subsection{Attributs of a point} % (fold)
+\label{sub:attributs_of_a_point}
+% Method \Imeth{point}{new}
+|z.A = point: new (1,2)|. The point $A$ has coordinates $x=1$ and $y=2$. If you use the notation |z.A| then $A$ will be the reference of a node in \TIKZ\ or in \pkg{tkz-euclide}.
+
+This is the creation of a fixed point with coordinates 1 and 2 and which is named $A$. The notation |z.A| indicates that the coordinates will be stored in a table noted |z| (reference to the notation of the affixes of the complex numbers) that A is the name of the point and the key allowing access to the values.
+
+\bgroup
+\catcode`_=12
+
+\small
+\begin{center}
+%\caption{Attributes about point class.}
+\begin{tabular}{ll}
+\toprule
+\textbf{Attributes} & \textbf{Application}\\
+\Iattr{point}{re} & |z.a.re| \tkzar z.a = point:new (2,3) x = z.a.re -> x=2\\
+\Iattr{point}{im} & |z.a.im| \tkzar z.a = point:new (2,3) y= z.a.im -> y=3\\
+\Iattr{point}{type} & |z.a.type| \tkzar |z.a.type = point|\\
+\Iattr{point}{argument} & |z.a.argument| \tkzar |z.a.argument = 0.78539816339745| if z.a = 1+i\\
+\Iattr{point}{module} & |z.a.module| \tkzar |z.a.module = 1.4142135623731| if z.a = 1+i\\
+\bottomrule
+\end{tabular}
+\end{center}
+\egroup
+
+\subsubsection{Example:point attributes} % (fold)
+\label{ssub:example_point_attributes}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.O = point: new (0 , 0)
+ z.a = point: new (2, 3)
+ x = z.a.re
+ y = z.a.im
+ ty = z.a.type
+ arg = z.a.argument
+ m = z.a.modulus
+ set_lua_to_tex{"x","y","ty","arg","m"}
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzInit[ymax=4,xmax=7]
+ \tkzGrid
+ \tkzDrawPoints(a,O)
+ \tkzLabelPoints[above](O,a)
+ \tkzLabelPoint[below](a){
+ \begin{minipage} {5cm}
+ x=\x\\ y=\y\\ type =\ty\\ argument = \arg \\ module = \m
+ \end{minipage}}
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+ z.O = point: new (0 , 0)
+ z.a = point: new (2, 3)
+ x = z.a.re
+ y = z.a.im
+ ty = z.a.type
+ arg = z.a.argument
+ m = z.a.modulus
+ set_lua_to_tex{"x","y","ty","arg","m"}
+\end{tkzelements}
+
+ \hspace*{\fill}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzInit[ymax=5,xmax=7]
+ \tkzGrid
+ \tkzDrawPoints(a,O)
+ \tkzLabelPoints[above](O,a)
+ \tkzLabelPoint[below right](a){
+ \begin{minipage} {5cm}
+ x=\x\\ y=\y\\ type =\ty\\ argument = \arg \\ module = \m
+ \end{minipage}}
+ \end{tikzpicture}
+ \hspace*{\fill}
+ % \caption{Class Point}
+% subsubsection example_point_attributes (end)
+% subsection attributs_of_a_point (end)
+
+\subsection{Methods of the class point} % (fold)
+\label{sub:methods_of_the_class_point}
+
+The methods described in the following table are standard. You'll find them in most of the examples at the end of this documentation. The result of the different methods presented in the following table is a \tkzNameObj{point}. A word about methods beginning with |set_|. The purpose is to be able to apply a method to a list of points.
+
+\bgroup
+\catcode`_=12
+
+\small
+\begin{center}
+%\caption{Methods from elements\_points.lua }
+\begin{tabular}{ll}
+\toprule
+\textbf{Methods} & \textbf{Application} \\
+\midrule
+\midrule
+ \textbf{Points} &\\
+\midrule
+ new (a,b) & |z.a = point : new(1,2)| \tkzar affix z.a=1+2i \\
+ polar (radius, phi) & |z.a = point : polar(1,math.pi/3)| \tkzar affix $cos(\pi/3)+sin(\pi/3)i$ \\
+ polar_deg (radius, phi) & phi in deg \tkzar polar coordinates phi deg \\
+ north(d) & see \ref{sub:power_v2} |d| distance to the point 1 if empty \\
+ south(d) & \\
+ east(d) & \\
+ west(d) & \\
+ symmetry(z) & |z.c = z.a:symmetry(z.b)| \tkzar c symmetry of b with respect to a\\
+ set\_symmetry (...) & |z.bp,z.cp = z.a : symmetry(z.b,z.c)| \tkzar list of points\\
+ rotation(angle , pt) & |z.c = z.a : rotation (math.pi/2,z.b)| \tkzar affix; rotation center a\\
+ set\_rotation (angle,...)& \\
+ homothety(k,pt) & |z.c = z.a : homothety (2,z.b)| \\
+ set\_homothety (k,...) & \\
+ normalize() & |z.b = z.a: normalize () | \tkzar |z.b| = 1 and z.a = k$\times$ z.b \\
+\bottomrule %
+\end{tabular}
+\end{center}
+
+ \egroup
+
+
+\subsubsection{Example: method \Imeth{point}{polar} } % (fold)
+\label{ssub:example_polar_method}
+\begin{minipage}{0.6\textwidth}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .5
+ z.O = point: new (0, 0)
+ z.A = point: new (3, 0)
+ z.F = point: polar (3, math.pi/6)
+\end{tkzelements}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle(O,A)
+ \tkzDrawSegments[new](O,A)
+ \tkzDrawSegments[purple](O,F)
+ \tkzDrawPoints(A,O,F)
+ \tkzLabelPoints(A,O,F)
+ \end{tikzpicture}
+ \end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.4\textwidth}
+\begin{tkzelements}
+ scale = .5
+ z.O = point: new (0, 0)
+ z.A = point: new (3, 0)
+ z.F = point: polar (3, math.pi/6)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircle(O,A)
+\tkzDrawSegments[new](O,A)
+\tkzDrawSegments[purple](O,F)
+\tkzDrawPoints(A,O,F)
+\tkzLabelPoints(A,O,F)
+\end{tikzpicture}
+\hspace*{\fill}
+\end{minipage}
+% \caption{Method polar}
+
+% subsubsection example_polar_method (end)
+
+\subsubsection{Example: rotation of points method \Imeth{point}{set\_rotation}} % (fold)
+\label{ssub:example_rotation_of_points}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.a = point: new(0, -1)
+ z.b = point: new(4, 0)
+ z.o = point: new(6, -2)
+ z.ap,z.bp = z.o : set_rotation (math.pi/2,z.a,z.b)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(o,a o,a' o,b o,b')
+ \tkzDrawPoints(a,a',b,b',o)
+ \tkzLabelPoints(a,a',b,b',o)
+ \tkzDrawArc(o,a)(a')
+ \tkzDrawArc(o,b)(b')
+ \end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+ scale = .5
+ z.a = point: new(0, -1)
+ z.b = point: new(4, 0)
+ z.o = point: new(6, -2)
+ z.ap,z.bp = z.o : set_rotation (math.pi/2,z.a,z.b)
+\end{tkzelements}
+
+
+\hspace*{\fill}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(o,a o,a' o,b o,b')
+ \tkzDrawPoints(a,a',b,b',o)
+ \tkzLabelPoints(a,a',b,b',o)
+ \tkzDrawArc(o,a)(a')
+ \tkzDrawArc(o,b)(b')
+ \end{tikzpicture}
+\hspace*{\fill}
+%\caption{Rotation of points}
+% subsubsection example_rotation_of_points (end)
+% subsection methods_of_the_class_point (end)
+% section class_point (end)
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-triangle.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-triangle.tex
new file mode 100644
index 0000000000..2b3056ff92
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-triangle.tex
@@ -0,0 +1,220 @@
+\newpage
+\section{Classe triangle} % (fold)
+\label{sec:classe_triangle}
+
+\subsection{Attributs of a triangle} % (fold)
+\label{sub:attributs_of_a_triangle}
+The triangle object is created using the \Imeth{triangle}{new} method, for example with | T.abc = triangle : new (z.a,z.b,z.c)| (See examples: \ref{sub:alternate}; \ref{sub:apollonius_circle}; \ref{sub:excircle} ). Multiple attributes are then created.
+
+\bgroup
+\catcode`_=12
+\small
+\begin{center}
+%\caption{Attributes about triangle class.}
+\begin{tabular}{ll}
+\toprule
+\textbf{Attributes} & \textbf{Application}\\
+\Iattr{triangle}{pa} &\\
+\Iattr{triangle}{pb} &\\
+\Iattr{triangle}{pc} &\\
+\Iattr{triangle}{circumcenter} & \\
+\Iattr{triangle}{centroid} &\\
+\Iattr{triangle}{incenter} &\\
+\Iattr{triangle}{orthocenter} &\\
+\Iattr{triangle}{eulercenter} & \\
+\Iattr{triangle}{a}& It's the length of the side opposite the first vertex \\
+\Iattr{triangle}{b}& It's the length of the side opposite the second verte\\
+\Iattr{triangle}{c}& It's the length of the side opposite the third vertex \\
+\Iattr{triangle}{alpha}& Vertex angle of the first vertex\\
+\Iattr{triangle}{beta}& Vertex angle of the second vertex\\
+\Iattr{triangle}{gamma}& Vertex angle of the third vertex\\
+\Iattr{triangle}{ab}& Line defined by the first two points of the triangle\\
+\Iattr{triangle}{ac}& Line defined by the first point and the last point\\
+\Iattr{triangle}{bc}& Line defined by the last two points of the triangle\\
+\bottomrule %
+\end{tabular}
+\end{center}
+\egroup
+
+\subsubsection{Example: triangle attributes} % (fold)
+\label{ssub:example_triangle_attributes}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.a = point: new (0 , 0)
+ z.b = point: new (4 , 0)
+ z.c = point: new (0 , 3)
+ T.abc = triangle : new (z.a,z.b,z.c)
+ z.O = T.abc.circumcenter
+ z.I = T.abc.incenter
+ z.H = T.abc.orthocenter
+ z.G = T.abc.centroid
+ a = T.abc.a
+ b = T.abc.b
+ c = T.abc.c
+ alpha = T.abc.alpha
+ beta = T.abc.beta
+ gamma = T.abc.gamma
+ set_lua_to_tex{"a","b","c","alpha","beta","gamma"}
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(a,b,c)
+ \tkzDrawPoints(a,b,c,O,G,I,H)
+ \tkzLabelPoints(a,b,c,O,G,I)
+ \tkzLabelPoints[above right](H)
+ \tkzDrawCircles(O,a)
+ \tkzLabelSegment[sloped](a,b){\c}
+ \tkzLabelSegment[sloped,above](b,c){\a}
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+ scale = 1.2
+ z.a = point: new (0 , 0)
+ z.b = point: new (4 , 0)
+ z.c = point: new (0 , 3)
+ T.abc = triangle : new (z.a,z.b,z.c)
+ z.O = T.abc.circumcenter
+ z.I = T.abc.incenter
+ z.H = T.abc.orthocenter
+ z.G = T.abc.centroid
+ a = T.abc.a
+ b = T.abc.b
+ c = T.abc.c
+ alpha = T.abc.alpha
+ beta = T.abc.beta
+ gamma = T.abc.gamma
+ set_lua_to_tex{"a","b","c","alpha","beta","gamma"}
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(a,b,c)
+\tkzDrawPoints(a,b,c,O,G,I,H)
+\tkzLabelPoints(a,b,c,O,G,I)
+\tkzLabelPoints[above right](H)
+\tkzDrawCircles(O,a)
+\tkzLabelSegment[sloped](a,b){\c}
+\tkzLabelSegment[sloped,above](b,c){\a}
+\end{tikzpicture}
+\hspace*{\fill}
+% \caption{Class Triangle}
+% subsubsection example_triangle_attributes (end)
+
+% subsection attributs_of_a_triangle (end)
+
+\subsection{Methods of the class triangle} % (fold)
+\label{sub:methods_of_the_class_triangle}
+
+\bgroup
+\catcode`_=12
+\small
+\begin{minipage}{\textwidth}
+\begin{center}
+%\caption{Methods of the class triangle}
+\begin{tabular}{ll}
+\toprule
+\textbf{Methods} & \textbf{Comments} \\
+\midrule
+triangle = {} class triangle \\
+\Imeth{triangle}{new} (a, b ,c) & |T.ABC = triangle : new (z.A,z.B,z.C)| \\
+ ... & |T| or |T.name| with what you want for name, is possible.\\
+\midrule
+ \textbf{Points} &\\
+\midrule
+\Imeth{triangle}{lemoine\_point ()} & |T.ABC : lemoine_point ()| intersection os the symmedians\\
+\Imeth{triangle}{symmedian\_point ()} & Lemoine point or the Grebe point \\
+\Imeth{triangle}{bevan\_point ()} & Circumcenter of the excentral triangle\\
+\Imeth{triangle}{mittenpunkt\_point ()} & Symmedian point of the excentral triangle\\
+\Imeth{triangle}{gergonne\_point ()} & Intersection of the three cevians that lead to the contact points \\
+\Imeth{triangle}{nagel\_point () } & Intersection of the three cevians that lead to the extouch points\\
+\Imeth{triangle}{feuerbach\_point () } & The point at which the incircle and euler circle are tangent. \\
+\Imeth{triangle}{spieker\_center ()} & Incenter of the medial triangle \\
+\Imeth{triangle}{barycenter (ka,kb,kc)} & |T.ABC: barycenter (2,1,1)| barycenter of |({A,2},{B,1},{C,1}) |\\
+\Imeth{triangle}{base (u,v) } & |z.D = T.ABC: base(1,1)| \tkzar ABDC is a parallelogram \\
+\Imeth{triangle}{projection (p) } & Projection of a point on the sides \\
+\Imeth{triangle}{euler\_points () } & Euler points of euler circle \\
+\Imeth{triangle}{nine\_points () } & Points of the euler circle \\
+\Imeth{triangle}{parallelogram ()} & |z.D = T.ABC : parallelogram ()| \tkzar ABCD is a parallelogram\\
+\midrule
+ \textbf{Lines} &\\
+\midrule
+\Imeth{triangle}{altitude (n) } & |L.AHa = T.ABC : altitude () | n empty or 0 line from $A$
+\footnote{|z.Ha = L.AHa.pb| recovers the common point of the opposite side and altitude. The method |orthic| is usefull.}\\
+\Imeth{triangle}{bisector (n) } & |L.Bb = T.ABC : bisector (1) | n = 1 line from $B$ \footnote{|_,z.b = get_points(L.Bb)| recovers the common point of the opposite side and bisector. }\\
+\Imeth{triangle}{bisector\_ext(n) } & n=2 line from the third vertex.\\
+\Imeth{triangle}{symmedian\_line (n)} & Cevian with respect to Lemoine point. \\
+\Imeth{triangle}{euler\_line () } & the line through $N$ ,$G$, $H$ and $O$ if the triangle is not equilateral
+\footnote{N center of nine points circle, G centroid, H orthocenter , O circum center } \\
+\Imeth{triangle}{antiparallel(pt,n)} & n=0 antiparallel through pt to $(BC)$, n=1 to $(AC)$ etc.\\
+\bottomrule
+\end{tabular}
+\end{center}
+\end{minipage}
+\egroup
+
+\clearpage\newpage
+\bgroup
+\catcode`_=12
+\small
+\begin{minipage}{\textwidth}
+\begin{center}
+%\caption{Methods of the class triangle (follow-up) }
+\begin{tabular}{ll}
+\toprule
+\textbf{Methods} & \textbf{Comments} \\
+\midrule
+ \textbf{Circles} &\\
+\midrule
+\Imeth{triangle}{euler\_circle ()} & C.|NP = T.ABC : euler_circle ()| \tkzar $N$ euler point
+ \footnote{ The midpoint of each side of the triangle, the foot of each altitude, the midpoint of the line segment from each vertex of the triangle to the orthocenter.} \\
+\Imeth{triangle}{circum\_circle ()} & |C.OA = T.ABC : circum ()| Triangle's circumscribed circle \\
+\Imeth{triangle}{in\_circle ()} & Inscribed circle of the triangle\\
+\Imeth{triangle}{ex\_circle (n)} & Circle tangent to three lines defined by the sides of the triangle \\
+\Imeth{triangle}{first\_lemoine\_circle ()} & The center is the midpoint between Lemoine point and the circumcenter.\footnote{
+Through the Lemoine point draw lines parallel to the triangle's sides. The points where the parallel lines intersect the sides of ABC
+ then lie on a circle known as the first Lemoine circle. } \\
+\Imeth{triangle}{second\_lemoine\_circle ()} & see example \ref{sub:antiparallel_through_lemoine_point}\\
+\Imeth{triangle}{spieker\_circle ()} & The incircle of the medial triangle\\
+\Imeth{triangle}{ex\_circle(n) } & |z.o,z.p,z.q,z.r = T.ABC: ex_circle ()|\\
+... & n=0 ex_circle opposed to $A$ p,q,r projections of o on the sides \\
+\midrule
+ \textbf{Triangles} &\\
+\midrule
+\Imeth{triangle}{orthic ()} & |T = T.ABC : orthic ()| triangle joining the feet of the altitudes \\
+\Imeth{triangle}{medial ()} & |T = T.ABC : medial ()| triangle with vertices at the midpoints\\
+\Imeth{triangle}{incentral ()} & Cevian triangle of the triangle with respect to its incenter \\
+\Imeth{triangle}{excentral () } & Triangle with vertices corresponding to the excenters \\
+\Imeth{triangle}{extouch ()} & Triangle formed by the points of tangency with the excircles \\
+\Imeth{triangle}{intouch () } & Contact triangle formed by the points of tangency of the incircle \\
+\Imeth{triangle}{tangential ()} & Triangle formed by the lines tangent to the circumcircle at the vertices\\
+\Imeth{triangle}{feuerbach ()} & Triangle formed by the points of tangency of the euler circle with the excircles\\
+\Imeth{triangle}{anti () }& Anticomplementary Triangle The given triangle is its medial triangle. \\
+\Imeth{triangle}{cevian (pt)} & Triangle formed with the endpoints of the three cevians with respect to |pt|.\\
+\Imeth{triangle}{symmedian ()} & Triangle formed with the intersection points of the symmedians. \\
+\Imeth{triangle}{euler ()} & Triangle formed with the euler points \\
+\midrule
+\midrule
+ \textbf{Miscellaneous} &\\
+\midrule
+\Imeth{triangle}{area ()} & $ \mathcal{A}$| = T.ABC: area ()|\\
+\Imeth{triangle}{barycentric\_coordinates (pt)} & Triples of numbers corresponding to masses placed at the vertices\\
+\Imeth{triangle}{in\_out (pt)} & Boolean. Test if |pt| is inside the triangle\\
+\Imeth{triangle}{check\_equilateral ()} & Boolean. Test if the triangle is equilateral\\
+\bottomrule
+\end{tabular}
+\end{center}
+\end{minipage}
+\egroup
+% subsubsection methods_of_the_class_triangle (end)
+
+
+
+% subsection methods_of_the_class_triangle (end)
+
+
+
+% section classe_triangle (end)
+\endinput
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes.tex
new file mode 100644
index 0000000000..53bdb06558
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes.tex
@@ -0,0 +1,98 @@
+\newpage
+\section{Classes and objects} % (fold)
+\label{sec:classes_and_objects}
+
+\subsection{Objects} % (fold)
+\label{sub:objects}
+The object types currently defined and used are \tkzNameObj{point}, \tkzNameObj{line}, \tkzNameObj{circle}, \tkzNameObj{triangle} and \tkzNameObj{ellipse}.
+
+They can be created directly using the method \Imeth{obj}{new} and, with the exception of the \Iclass{class}{point} class, by giving points. Objects can also be obtained by applying methods to other objects. For example, |T.ABC : circum_circle ()| creates an object \tkzNameObj{circle}. Some object attributes are also objects, such as |T.ABC.bc| which creates the object \tkzNameObj{line}, a straight line passing through the last two points defining the triangle.
+
+Attributes are accessed using the classic method, so |T.pc| gives the third of the triangle and |C.center| gives the center of the circle, but I've added a |get_points| function that returns the points of an object. This applies to straight lines (pa and pc), triangles (pa, pb and pc) and circles (center and through).
+
+Example: |z.O,z.T = get_points (C)| recovers the center and a point of the circle.
+% subsection objects (end)
+
+\subsection{tkz\_elements\_point.lua: complex numbers library} % (fold)
+\label{sub:complex_numbers}
+
+Unless you want to create your own functions, you won't need to know and use complex numbers. However, in some cases it may be useful to implement some of their properties.
+
+|za = point (1,2 )| and \ |zb = point (1,-1)| define two affixes which are |za = 1+2i| and
+
+ |zb = 1-i|. The notation may come as a surprise, as I used the term "point". The aim here was not to create a complete library on complex numbers, but to be able to use their main properties in relation to points. I didn't want to have two different levels, and since a unique connection can be established between the points of the plane and the complexes, I decided not to mention the complex numbers! But they are there.
+
+The above entries must not be confused with the following ones :
+
+|z.a = point : new (1,2) | and |z.b = point : new (1,-1) |.
+
+Here we define two "point" objects that are in the form of an affix in the |z| table.
+|z.a = za| only if |scale = 1| and |z.a| creates a point named |a|. This point is an object and you can use its attributes, as well as methods referring to points.
+
+That said, |z.a| is indeed an affix, and it's possible to use the methods and metamethods associated with complex numbers.
+
+\bgroup
+\catcode`_=12
+\small
+\begin{minipage}{\textwidth}
+\begin{center}
+%\caption{Metamethods and methods about point class.}
+\begin{tabular}{ll}
+ \toprule
+ \textbf{Metamethods} & \textbf{Application} \\
+ \midrule
+__add(z1,z2) & |z.a + z.b| \tkzar affix \\
+__sub(z1,z2) & |z.a - z.b| \tkzar affix\\
+__unm(z) & |- z.a| \tkzar affix\\
+__mul(z1,z2) & |z.a * z.b| \tkzar affix\\
+__concat(z1,z2)& |z.a .. z.b| \tkzar dot product = real number \footnote{If $O$ is the origin of the complex plan, then we get the dot product of the vectors $\overrightarrow{Oa}$ and $\overrightarrow{Ob}$} \\
+__pow(z1,z2) & |z.a ^ z.b| \tkzar determinant = real number\\
+__div(z1,z2) & |z.a / z.b| \tkzar affix \\
+__tostring(z) & tex.print(tostring(z)) \tkzar displays the affix \\
+__tonumber(z) & tonumber(z) \tkzar affix or nil\\
+__eq(z1,z2) & eq (z.a,z.b) \tkzar boolean\\
+\bottomrule
+\end{tabular}
+\end{center}
+\end{minipage}
+\egroup
+
+\bgroup
+\catcode`_=12
+\small
+\begin{center}
+%\caption{Metamethods and methods about point class.}
+\begin{tabular}{ll}
+ \toprule
+\textbf{Methods} & \textbf{Application}\\
+\midrule
+\Imeth{point}{conj(z)}& |z.a : conj()| \tkzar affix (conjugate) \\
+\Imeth{point}{mod(z)}& |z.a : mod()| \tkzar real number = modulus |z.a|\\
+\Imeth{point}{abs (z)}& |z.a : abs()| \tkzar real number = modulus \\
+\Imeth{point}{norm (z)} & |z.a : norm()| \tkzar norm (real number ) \\
+\Imeth{point}{arg (z)}& |z.a : arg()| \tkzar real number = argument of z.a (in rad)\\
+\Imeth{point}{get(z)}& |z.a : get()| \tkzar re and im (two real numbers ) \\
+\Imeth{point}{sqrt(z)}& |z.a : sqrt()| \tkzar affix \\
+\bottomrule
+\end{tabular}
+\end{center}
+\egroup
+
+The class is provided with two specific metamethods.
+
+\begin{itemize}
+ \item Since concatenation makes little sense here, the operation associated with |..| is the scalar or dot product. If |z1 = a+ib| and |z2 = c+id| then
+
+ |z1..z2 = (a+ib) .. (c+id) = (a+ib) (c-id) = ac+bd + i(bc-ad) |
+
+ There's also a mathematical function, |dot_product|, which takes three arguments. See example \ref{ssub:dot_or_scalar_product}
+
+
+ \item With the same idea, the operation associated with |^| is the determinant i.e.
+
+ |z1 ^ z2 = (a+ib) ^ (c+id) = ad - bc From (a-ib) (c+id) = ac+bd + i(ad - bc)| we take the imaginary part.
+
+\end{itemize}
+% subsection complex_numbers (end)
+% section classes_and_objects (end)
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-convention.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-convention.tex
new file mode 100644
index 0000000000..916e6bd1fb
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-convention.tex
@@ -0,0 +1,88 @@
+\newpage
+
+\section{Writing Convention} % (fold)
+\label{sec:writing_convention}
+
+Writing conventions for real numbers are the same as for \pkg{Lua}.
+The package introduces complex numbers (see \ref{sub:complex_numbers}) in order to associate them with points. |z1 = point (1,2)| designates the affix |z1=1+2i|, |z1| is a complex number, but here it's not a object point (related to objects in object-oriented programming).
+
+|z.A = point : new (1,2)| creates an object point $A$ with coordinates 1 and 2, which are stored as an affix in the table |z|. The key is $A$ and the value |1+2i| (or (1,2) if you prefer.)
+
+\subsection{Assigning a Name to a Point} % (fold)
+\label{sub:assigning_a_name_to_a_point}
+The basic object is the point which belongs to the class point. A point can be created in two ways: either directly |z.A = point : new (1,2)|, or as the result of a function or a method.
+
+Currently the only obligation is to store the points in the table |z| \footnote{To place the point M in the table, simply write |z.M| = \ldots or |z["M"]|= \ldots} if you want to use them in \TIKZ\ or \pkg{tkz-euclide}. If it is a point which will not be used, then you can designate it as you wish by respecting the conventions of Lua.
+
+More generally, with |z.A = point: new (a,b)|, we define a complex number |z.A = a+bi|, where $a$ and $b$ are the coordinates of point $A$. The name $A$ of a point is the key associated with a complex number noted |z.A| whose affix is |a+ib|, with $a$ and $b$ unique coordinates of $A$.
+
+
+There are two cases. Either you want to keep the point to use it with the package that will allow you to draw, or the point is intermediate and you can abandon it.
+
+\vspace{12pt}
+In the second case, simply don't store the point in the |z| table. For example, |A = point : new (1,2)| defines a point $A$ that will not be transferred. Another way of avoiding a transfer is to assign |nil| to the point: |z.A = nil| before exiting the environment \tkzNameEnv{elements}.
+
+ In the first case, you must store the point in the table |z|. The points which occur in the environment \tkzNameEnv{elements} must respect a convention which is |z.name| such that |name| will be the name of the corresponding \tkzname{node}. \footnote{ However, that a point can be deleted with |z.name = nil|.}
+
+What are the conventions for designating |name|? You have to respect the Lua conventions in particular cases.
+\begin{enumerate}
+
+ \item The use of prime is problematic. If the point name contains more than one symbol and ends with |p| then when passing into \pkg{TikZ} or \pkg{tkz-euclide}, the letters |p| will be replaced by |'| using the macro \tkzcname{tkzGetNodes}; \index{prime}
+
+ \item One possibility, however, in order to have a more explicit code is to suppose that you want to designate a point by "euler". It would be possible for example to write |euler = ...|, and at the end of the code for the transfer, |z.E = euler|. It is also possible to use a temporary name |euler| and to replace it in \TIKZ{}. Either at the time of placing the labels, or for example by using |pgfnodealias{E}{euler}|. This possibility also applies in other cases: prime, double prime, etc.
+
+\end{enumerate}
+
+\lefthand\ The syntax |z.name| is important, it allows to store the data of the point in a table named |z|, which will be used for the transition to the program that will perform the plots and place the labels.
+
+Point names: You can use the lower case and unaccented upper case.
+
+The names of the points follow the rules of convention for writing identifiers in lua.
+The name starts with a letter "A to Z" or "a to z" or an underscore "|_|" followed by zero or more letters, underscores, and digits (0 to 9).
+
+You should avoid identifiers starting with an underscore followed by one or more uppercase letters.
+
+In general, the points used in geometry are lower or upper case letters. The use of underscore is also frequent. So it is possible to write |z.T_a|.
+
+\lefthand\ Another use in geometry that can be used with \TIKZ{} is the apostrophe. Unfortunately, the apostrophe is necessary to use strings. There are several ways to get around this difficulty.
+The simplest one, which keeps the syntax consistent, is that if you want to use |A'| as a point name, you can use |Ap|. When switching to \TIKZ{} |Ap| will be replaced by |A'|. All names of more than one character ending in |p| will have the letter |p| replaced by an apostrophe |'|.
+% subsection assigning_a_name_to_a_point (end)
+
+\subsection{Assigning a Name to Other Objects} % (fold)
+\label{sub:assigning_a_name_to_other_objects}
+
+You have the choice to give a name to objects other than points. That said, it is preferable to respect certain rules in order to make the code easier to read.
+I have chosen for my examples the following conventions: first of all I store the objects in tables: |L.name| for lines and segments, |C.name| for circles, |T.name| for triangles, |E.name| for ellipses.
+
+For lines, I use the names of the two points. So if a line passes through points $A$ and $B$, I name the line |L.AB|. It is possible if only one line is named to simply name it |L| but this should be avoided so as not to create bad practices.
+
+For circles, I name |C.AB| the circle of center $A$ passing through $B$, but siomething like |C.euler| or |C.external| is fine.
+
+For triangles, I name |T.ABC| the triangle whose vertices are $A$, $B$ and $C$.
+
+For ellipses, I name |E.ABC| the ellipse with center $A$ through vertex $B$ and covertex $C$.
+% subsection assigning_a_name_to_other_objects(end)
+
+\subsection{Writing conventions for attributes, methods.} % (fold)
+\label{sub:writing_conventions_for_attributs_methods_and_functions}
+
+You must use the conventions of Lua, so
+
+\begin{itemize}
+ \item To obtain an attribute, for all objects, the convention is identical: |object.attribute|. For example, for the point $A$ we access its abscissa with |z.A.re| and its ordinate with |z.A.im|; as for its type we obtain it with |z.A.type|. To get the south pole of the circle |C.OA| you need to write: |C.OA.south|.
+
+ \item To use a method such as obtaining the incircle of a triangle ABC, just write
+
+ |z.i,z.i_a,z.i_b,z.i_c = T.ABC : in_circle ()| (you get the center and its projections on the sides), but to get only the incenter you write |T.ABC.incenter|.
+
+ \item Some methods need a parameter. For example, to know the distance between a point $C$ to the line $(A,B)$ we will write
+
+ |d = L.AB : distance (z.C)|.
+
+ \item Use the underscore to store a result you don't want to use. If you only need the second point of an intersection between a line and a circle, you would write
+
+ |_,z.J = intersection (L.AB , C.OC)|.
+
+\end{itemize}
+% section writing_convention (end)
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-examples.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-examples.tex
new file mode 100644
index 0000000000..bcf0ccacce
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-examples.tex
@@ -0,0 +1,4308 @@
+\newpage
+
+\section{Examples} % (fold)
+\label{sec:examples}
+
+\subsection{D'Alembert 1} % (fold)
+\label{sub:d_alembert_1}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point : new (0,0)
+ z.a = point : new (4,0)
+ z.B = point : new (7,-1)
+ z.b = point : new (5.5,-1)
+ z.C = point : new (5,-4)
+ z.c = point : new (4.25,-4)
+ C.Aa = circle : new (z.A,z.a)
+ C.Bb = circle : new (z.B,z.b)
+ C.Cc = circle : new (z.C,z.c)
+ z.I = C.Aa : external_similitude (C.Bb)
+ z.J = C.Aa : external_similitude (C.Cc)
+ z.K = C.Cc : external_similitude (C.Bb)
+ z.Ip = C.Aa : internal_similitude (C.Bb)
+ z.Jp = C.Aa : internal_similitude (C.Cc)
+ z.Kp = C.Cc : internal_similitude (C.Bb)
+\end{tkzelements}
+\begin{tikzpicture}[rotate=-60]
+ \tkzGetNodes
+ \tkzDrawCircles(A,a B,b C,c)
+ \tkzDrawPoints(A,B,C,I,J,K,I',J',K')
+ \tkzDrawSegments[new](I,K A,I A,J B,I B,K C,J C,K)
+ \tkzDrawSegments[purple](I,J' I',J I',K)
+ \tkzLabelPoints(I,J,K,I',J',K')
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .5
+z.A = point : new (0,0)
+z.a = point : new (4,0)
+z.B = point : new (7,-1)
+z.b = point : new (5.5,-1)
+z.C = point : new (5,-4)
+z.c = point : new (4.25,-4)
+C.Aa = circle : new (z.A,z.a)
+C.Bb = circle : new (z.B,z.b)
+C.Cc = circle : new (z.C,z.c)
+z.I = C.Aa : external_similitude (C.Bb)
+z.J = C.Aa : external_similitude (C.Cc)
+z.K = C.Cc : external_similitude (C.Bb)
+z.Ip = C.Aa : internal_similitude (C.Bb)
+z.Jp = C.Aa : internal_similitude (C.Cc)
+z.Kp = C.Cc : internal_similitude (C.Bb)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}[rotate=30]
+ \tkzGetNodes
+ \tkzDrawCircles(A,a B,b C,c)
+ \tkzDrawPoints(A,B,C,I,J,K,I',J',K')
+ \tkzDrawSegments[new](I,K A,I A,J B,I B,K C,J C,K)
+ \tkzDrawSegments[purple](I,J' I',J I',K)
+ \tkzLabelPoints(I,J,K,I',J',K')
+\end{tikzpicture}
+\hspace*{\fill}
+\vspace*{\fill}
+%\caption{D'Alembert I}
+
+% subsection d_alembert_1 (end)
+
+\subsection{D'Alembert 2} % (fold)
+\label{sub:d_alembert_2}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .75
+ z.A = point : new (0,0)
+ z.a = point : new (5,0)
+ z.B = point : new (7,-1)
+ z.b = point : new (3,-1)
+ z.C = point : new (5,-4)
+ z.c = point : new (2,-4)
+ C.Aa = circle : new (z.A,z.a)
+ C.Bb = circle : new (z.B,z.b)
+ C.Cc = circle : new (z.C,z.c)
+ z.i,z.j = get_points (C.Aa : radical_axis (C.Bb))
+ z.k,z.l = get_points (C.Aa : radical_axis (C.Cc))
+ z.m,z.n = get_points (C.Bb : radical_axis (C.Cc))
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(A,a B,b C,c)
+ \tkzDrawLines[new](i,j k,l m,n)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+ scale = .75
+ z.A = point : new (0,0)
+ z.a = point : new (5,0)
+ z.B = point : new (7,-1)
+ z.b = point : new (3,-1)
+ z.C = point : new (5,-4)
+ z.c = point : new (2,-4)
+ C.Aa = circle : new (z.A,z.a)
+ C.Bb = circle : new (z.B,z.b)
+ C.Cc = circle : new (z.C,z.c)
+ z.i,z.j = get_points (C.Aa : radical_axis (C.Bb))
+ z.k,z.l = get_points (C.Aa : radical_axis (C.Cc))
+ z.m,z.n = get_points (C.Bb : radical_axis (C.Cc))
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(A,a B,b C,c)
+\tkzDrawLines[new](i,j k,l m,n)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{D'alembert II}
+
+% subsection d_alembert_2 (end)
+
+\subsection{Alternate} % (fold)
+\label{sub:alternate}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.C = point: new (1 , 5)
+ T = triangle: new (z.A,z.B,z.C)
+ z.I = T.incenter
+ L.AI = line: new (z.A,z.I)
+ z.D = intersection (L.AI,T.bc)
+ L.LLC = T.ab: ll_from (z.C)
+ z.E = intersection (L.AI,L.LLC)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawLine[purple](C,E)
+ \tkzDrawSegment[purple](A,E)
+ \tkzFillAngles[purple!30,opacity=.4](B,A,C C,E,D)
+ \tkzMarkAngles[mark=|](B,A,D D,A,C C,E,D)
+ \tkzDrawPoints(A,...,E)
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoints[above](C,D,E)
+ \tkzMarkSegments(A,C C,E)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\begin{tkzelements}
+z.A = point: new (0 , 0)
+z.B = point: new (6 , 0)
+z.C = point: new (1 , 5)
+T = triangle: new (z.A,z.B,z.C)
+z.I = T.incenter
+L.AI = line: new (z.A,z.I)
+z.D = intersection (L.AI,T.bc)
+L.LLC = T.ab: ll_from (z.C)
+z.E = intersection (L.AI,L.LLC)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawLine[purple](C,E)
+\tkzDrawSegment[purple](A,E)
+\tkzFillAngles[purple!30,opacity=.4](B,A,C C,E,D)
+\tkzMarkAngles[mark=|](B,A,D D,A,C C,E,D)
+\tkzDrawPoints(A,...,E)
+\tkzLabelPoints(A,B)
+\tkzLabelPoints[above](C,D,E)
+\tkzMarkSegments(A,C C,E)
+\end{tikzpicture}
+\hspace*{\fill}
+
+% subsection alternate (end)
+
+\subsection{Apollonius circle} % (fold)
+\label{sub:apollonius_circle}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+scale=.75
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.M = point: new (5 , 3)
+ T.MAB = triangle : new (z.M,z.A,z.B)
+ L.bis = T.MAB : bisector ()
+ z.C = L.bis.pb
+ L.bisext = T.MAB : bisector_ext ()
+ z.D = intersection (T.MAB.bc, L.bisext)
+ L.CD = line: new (z.C,z.D)
+ z.O = L.CD.mid
+ L.AM = T.MAB.ab
+ z.E = z.M : symmetry (z.A)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawSegment[add=0 and 1](A,M)
+ \tkzDrawSegments[purple](M,C M,D)
+ \tkzDrawCircle[purple](O,C)
+ \tkzDrawSegments(A,B B,M D,B)
+ \tkzDrawPoints(A,B,M,C,D)
+ \tkzLabelPoints[below right](A,B,C,D)
+ \tkzLabelPoints[above](M)
+ \tkzFillAngles[opacity=.4,cyan!20](A,M,B)
+ \tkzFillAngles[opacity=.4,purple!20](B,M,E)
+ \tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D)
+ \tkzMarkAngles[mark=|](A,M,C C,M,B)
+ \tkzMarkAngles[mark=||](B,M,D D,M,E)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\begin{tkzelements}
+scale=.75
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.M = point: new (5 , 3)
+ T.MAB = triangle : new (z.M,z.A,z.B)
+ L.bis = T.MAB : bisector ()
+ z.C = L.bis.pb
+ L.bisext = T.MAB : bisector_ext ()
+ z.D = intersection (T.MAB.bc, L.bisext)
+ L.CD = line: new (z.C,z.D)
+ z.O = L.CD.mid
+ L.AM = T.MAB.ab
+ z.E = z.M : symmetry (z.A)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawSegment[add=0 and 1](A,M)
+ \tkzDrawSegments[purple](M,C M,D)
+ \tkzDrawCircle[purple](O,C)
+ \tkzDrawSegments(A,B B,M D,B)
+ \tkzDrawPoints(A,B,M,C,D)
+ \tkzLabelPoints[below right](A,B,C,D)
+ \tkzLabelPoints[above](M)
+ \tkzFillAngles[opacity=.4,cyan!20](A,M,B)
+ \tkzFillAngles[opacity=.4,purple!20](B,M,E)
+ \tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D)
+ \tkzMarkAngles[mark=|](A,M,C C,M,B)
+ \tkzMarkAngles[mark=||](B,M,D D,M,E)
+\end{tikzpicture}
+\hspace*{\fill}
+
+%subsection apollonius_circle (end)
+
+\subsection{Apollonius and circle circumscribed } % (fold)
+\label{sub:apollonius_and_circle_circumscribed}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale =.75
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ L.AB = line: new (z.A,z.B)
+ z.M = point: new (5 , 4)
+ T.AMB = triangle: new (z.A,z.M,z.B)
+ z.I = T.AMB.incenter
+ L.MI = line: new (z.M,z.I)
+ z.C = intersection (L.AB , L.MI)
+ z.J = L.MI: ortho_from (z.M)
+ L.MJ = line: new (z.M,z.J)
+ z.D = intersection (L.AB , L.MJ)
+ L.CD = line: new (z.C,z.D)
+ z.O = L.CD.mid
+ z.G = T.AMB.circumcenter
+ C.GA = circle: new (z.G,z.A)
+ C.OC = circle: new (z.O,z.C)
+ _,z.N = intersection (C.GA , C.OC)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,M)
+ \tkzDrawCircles[purple](O,C G,A)
+ \tkzDrawSegments[purple](M,D)
+ \tkzDrawSegments(D,B O,G M,C)
+ \tkzDrawSegments[red,dashed](M,N M,O M,G)
+ \tkzDrawPoints(A,B,M,C,D,N,O,G)
+ \tkzLabelPoints[below right](A,B,C,D,N,O,G)
+ \tkzLabelPoints[above](M)
+ \tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\begin{tkzelements}
+ scale =.75
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.M = point: new (5 , 4)
+ T.AMB = triangle: new (z.A,z.M,z.B)
+ L.AB = T.AMB.ac
+ z.I = T.AMB.incenter
+ L.MI = line: new (z.M,z.I)
+ z.C = intersection (L.AB , L.MI)
+ L.MJ = L.MI: ortho_from (z.M)
+ z.D = intersection (L.AB , L.MJ)
+ L.CD = line: new (z.C,z.D)
+ z.O = L.CD.mid
+ z.G = T.AMB.circumcenter
+ C.GA = circle: new (z.G,z.A)
+ C.OC = circle: new (z.O,z.C)
+ _,z.N = intersection (C.GA , C.OC)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,M)
+\tkzDrawCircles[purple](O,C G,A)
+\tkzDrawSegments[purple](M,D)
+\tkzDrawSegments(D,B O,G M,C)
+\tkzDrawSegments[red,dashed](M,N M,O M,G)
+\tkzDrawPoints(A,B,M,C,D,N,O,G)
+\tkzLabelPoints[below right](A,B,C,D,N,O,G)
+\tkzLabelPoints[above](M)
+\tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D)
+\end{tikzpicture}
+\hspace*{\fill}
+
+
+%subsection apollonius_and_circle_circumscribed (end)
+%
+\subsection{Apollonius circles in a triangle} % (fold)
+\label{sub:apollonius_circles}
+
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.C = point: new (4.5 , 1)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ z.I = T.ABC.incenter
+ z.O = T.ABC.circumcenter
+ L.CI = line: new (z.C,z.I)
+ z.Cp = intersection (T.ABC.ab , L.CI)
+ z.x = L.CI.north_pa
+ L.Cx = line: new (z.C,z.x)
+ z.R = intersection (L.Cx,T.ABC.ab)
+ L.CpR = line: new (z.Cp,z.R)
+ z.O1 = L.CpR.mid
+ L.AI = line: new (z.A,z.I)
+ z.Ap = intersection (T.ABC.bc , L.AI)
+ z.y = L.AI.north_pa
+ L.Ay = line: new (z.A,z.y)
+ z.S = intersection (L.Ay,T.ABC.bc)
+ L.ApS = line: new (z.Ap,z.S)
+ z.O2 = L.ApS.mid
+ L.BI = line: new (z.B,z.I)
+ z.Bp = intersection (T.ABC.ac , L.BI)
+ z.z = L.BI.north_pa
+ L.Bz = line: new (z.B,z.z)
+ z.T = intersection (L.Bz,T.ABC.ac)
+ L.Bpt = line: new (z.Bp,z.T)
+ z.O3 = L.Bpt.mid
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles[blue!50!black](O1,C' O2,A' O3,B')
+ \tkzDrawSegments[new](B,S C,T A,R)
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A,B,C,A',B',C',O,I,R,S,T,O1,O2,O3)
+ \tkzLabelPoints(A,B,C,A',B',C',O,I)
+ \tkzLabelPoints(O1,O2,O3)
+ \tkzDrawCircle[purple](O,A)
+ \tkzDrawLine(O1,O2)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.A = point: new (0 , 0)
+z.B = point: new (6 , 0)
+z.C = point: new (4.5 , 1)
+T.ABC = triangle: new (z.A,z.B,z.C)
+z.I = T.ABC.incenter
+z.O = T.ABC.circumcenter
+L.CI = line: new (z.C,z.I)
+z.Cp = intersection (T.ABC.ab , L.CI)
+z.x = L.CI.north_pa
+L.Cx = line: new (z.C,z.x)
+z.R = intersection (L.Cx,T.ABC.ab)
+L.CpR = line: new (z.Cp,z.R)
+z.O1 = L.CpR.mid
+L.AI = line: new (z.A,z.I)
+z.Ap = intersection (T.ABC.bc , L.AI)
+z.y = L.AI.north_pa
+L.Ay = line: new (z.A,z.y)
+z.S = intersection (L.Ay,T.ABC.bc)
+L.ApS = line: new (z.Ap,z.S)
+z.O2 = L.ApS.mid
+L.BI = line: new (z.B,z.I)
+z.Bp = intersection (T.ABC.ac , L.BI)
+z.z = L.BI.north_pa
+L.Bz = line: new (z.B,z.z)
+z.T = intersection (L.Bz,T.ABC.ac)
+L.Bpt = line: new (z.Bp,z.T)
+z.O3 = L.Bpt.mid
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles[blue!50!black](O1,C' O2,A' O3,B')
+\tkzDrawSegments[new](B,S C,T A,R)
+\tkzDrawPolygon(A,B,C)
+\tkzDrawPoints(A,B,C,A',B',C',O,I,R,S,T,O1,O2,O3)
+\tkzLabelPoints(A,B,C,A',B',C',O,I)
+\tkzLabelPoints(O1,O2,O3)
+\tkzDrawCircle[purple](O,A)
+\tkzDrawLine(O1,O2)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Apollonius circles in a triangle}
+
+
+% subsection apollonius_circles (end)
+
+\subsection{Archimedes} % (fold)
+\label{sub:archimedes}
+
+\begin{tkzexample}[small,code only]
+\begin{tkzelements}
+ z.O_1 = point: new (0, 0)
+ z.O_2 = point: new (0, 1)
+ z.A = point: new (0, 3)
+ z.F = point: polar (3, math.pi/6)
+ L = line: new (z.F,z.O_1)
+ C = circle: new (z.O_1,z.A)
+ z.E = intersection (L,C)
+ T = triangle: new (z.F,z.E,z.O_2)
+ z.x = T: parallelogram ()
+ L = line: new (z.x,z.O_2)
+ C = circle: new (z.O_2,z.A)
+ z.C,z.D = intersection (L ,C)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(O_1,A O_2,A)
+ \tkzDrawSegments[new](O_1,A E,F C,D)
+ \tkzDrawSegments[purple](A,E A,F)
+ \tkzDrawPoints(A,O_1,O_2,E,F,C,D)
+ \tkzLabelPoints(A,O_1,O_2,E,F,C,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+ z.O_1 = point: new (0, 0)
+ z.O_2 = point: new (0, 1)
+ z.A = point: new (0, 3)
+ z.F = point: polar (3, math.pi/6)
+ L = line: new (z.F,z.O_1)
+ C = circle: new (z.O_1,z.A)
+ z.E = intersection (L,C)
+ T = triangle: new (z.F,z.E,z.O_2)
+ z.x = T: parallelogram ()
+ L = line: new (z.x,z.O_2)
+ C = circle: new (z.O_2,z.A)
+ z.C,z.D = intersection (L ,C)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(O_1,A O_2,A)
+\tkzDrawSegments[new](O_1,A E,F C,D)
+\tkzDrawSegments[purple](A,E A,F)
+\tkzDrawPoints(A,O_1,O_2,E,F,C,D)
+\tkzLabelPoints(A,O_1,O_2,E,F,C,D)
+\end{tikzpicture}
+\hspace*{\fill}
+ %\caption{Archimedes}
+
+
+\subsection{Bankoff circle} % (fold)
+\label{sub:bankoff_circle}
+\begin{tkzexample}[small,code only]
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (10 , 0)
+ L.AB = line : new (z.A,z.B)
+ z.C = L.AB: gold_ratio ()
+ L.AC = line : new (z.A,z.C)
+ L.CB = line : new (z.C,z.B)
+ z.O_0 = L.AB.mid
+ z.O_1 = L.AC.mid
+ z.O_2 = L.CB.mid
+ C.O0B = circle : new (z.O_0,z.B)
+ C.O1C = circle : new (z.O_1,z.C)
+ C.O2C = circle : new (z.O_2,z.B)
+ z.Pp = C.O0B : midarc (z.B,z.A)
+ z.P = C.O1C : midarc (z.C,z.A)
+ z.Q = C.O2C : midarc (z.B,z.C)
+ L.O1O2 = line : new (z.O_1,z.O_2)
+ L.O0O1 = line : new (z.O_0,z.O_1)
+ L.O0O2 = line : new (z.O_0,z.O_2)
+ z.M_0 = L.O1O2 : harmonic_ext (z.C)
+ z.M_1 = L.O0O1 : harmonic_int (z.A)
+ z.M_2 = L.O0O2 : harmonic_int (z.B)
+ L.BP = line : new (z.B,z.P)
+ L.AQ = line : new (z.A,z.Q)
+ z.S = intersection (L.BP,L.AQ)
+ L.PpO0 = line : new (z.Pp,z.O_0)
+ L.PC = line : new (z.P,z.C)
+ z.Ap = intersection (L.PpO0,L.PC)
+ L.CS = line : new (z.C,z.S)
+ C.M1A = circle : new (z.M_1,z.A)
+ C.M2B = circle : new (z.M_2,z.B)
+ z.P_0 = intersection (L.CS,C.O0B)
+ z.P_1 = intersection (C.M2B,C.O1C)
+ z.P_2 = intersection (C.M1A,C.O2C)
+ T.P0P1P2 = triangle : new (z.P_0,z.P_1,z.P_2)
+ z.O_4 = T.P0P1P2.circumcenter
+ T.CP1P2 = triangle : new (z.C,z.P_1,z.P_2)
+ z.O_5 = T.CP1P2.circumcenter
+\end{tkzelements}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawSemiCircles[teal](O_0,B)
+\tkzDrawSemiCircles[teal,fill=teal!20,opacity=.5](O_1,C O_2,B)
+\tkzDrawCircle[fill=green!10](O_4,P_0)
+\tkzDrawCircle[purple,fill=purple!10,opacity=.5](O_5,C)
+\tkzDrawSegments(A,B O_0,P' B,P A,Q)
+\tkzDrawSegments(P,B Q,O_2 P,O_1)
+\tkzDrawSegments[purple](O_5,P_2 O_5,P_1 O_5,C)
+\tkzDrawPoints(A,B,C,P_0,P_2,P_1,O_0,O_1,O_2,O_4,O_5,Q,P,P',S)
+\tkzLabelPoints[below](A,B,C,O_0,O_1,O_2,P')
+\tkzLabelPoints[above](Q,P)
+\tkzLabelPoints[above right](P_0,P_2,P_1,O_5,O_4,S)
+\begin{scope}[font=\scriptsize]
+ \tkzLabelCircle[above](O_1,C)(120){$(\beta)$}
+ \tkzLabelCircle[above](O_2,B)(70){$(\gamma)$}
+ \tkzLabelCircle[above](O_0,B)(110){$(\alpha)$}
+ \tkzLabelCircle[left](O_4,P_2)(60){$(\delta)$}
+ \tkzLabelCircle[left](O_5,C)(140){$(\epsilon)$}
+\end{scope}
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (10 , 0)
+ L.AB = line : new (z.A,z.B)
+ z.C = L.AB: gold_ratio ()
+ L.AC = line : new (z.A,z.C)
+ L.CB = line : new (z.C,z.B)
+ z.O_0 = L.AB.mid
+ z.O_1 = L.AC.mid
+ z.O_2 = L.CB.mid
+ C.O0B = circle : new (z.O_0,z.B)
+ C.O1C = circle : new (z.O_1,z.C)
+ C.O2C = circle : new (z.O_2,z.B)
+ z.Pp = C.O0B : midarc (z.B,z.A)
+ z.P = C.O1C : midarc (z.C,z.A)
+ z.Q = C.O2C : midarc (z.B,z.C)
+ L.O1O2 = line : new (z.O_1,z.O_2)
+ L.O0O1 = line : new (z.O_0,z.O_1)
+ L.O0O2 = line : new (z.O_0,z.O_2)
+ z.M_0 = L.O1O2 : harmonic_ext (z.C)
+ z.M_1 = L.O0O1 : harmonic_int (z.A)
+ z.M_2 = L.O0O2 : harmonic_int (z.B)
+ L.BP = line : new (z.B,z.P)
+ L.AQ = line : new (z.A,z.Q)
+ z.S = intersection (L.BP,L.AQ)
+ L.PpO0 = line : new (z.Pp,z.O_0)
+ L.PC = line : new (z.P,z.C)
+ z.Ap = intersection (L.PpO0,L.PC)
+ L.CS = line : new (z.C,z.S)
+ C.M1A = circle : new (z.M_1,z.A)
+ C.M2B = circle : new (z.M_2,z.B)
+ z.P_0 = intersection (L.CS,C.O0B)
+ z.P_1 = intersection (C.M2B,C.O1C)
+ z.P_2 = intersection (C.M1A,C.O2C)
+ T.P0P1P2 = triangle : new (z.P_0,z.P_1,z.P_2)
+ z.O_4 = T.P0P1P2.circumcenter
+ T.CP1P2 = triangle : new (z.C,z.P_1,z.P_2)
+ z.O_5 = T.CP1P2.circumcenter
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawSemiCircles[teal](O_0,B)
+\tkzDrawSemiCircles[teal,fill=teal!20,opacity=.5](O_1,C O_2,B)
+\tkzDrawCircle[fill=green!10](O_4,P_0)
+\tkzDrawCircle[purple,fill=purple!10,opacity=.5](O_5,C)
+\tkzDrawSegments(A,B O_0,P' B,P A,Q)
+\tkzDrawSegments(P,B Q,O_2 P,O_1)
+\tkzDrawSegments[purple](O_5,P_2 O_5,P_1 O_5,C)
+\tkzDrawPoints(A,B,C,P_0,P_2,P_1,O_0,O_1,O_2,O_4,O_5,Q,P,P',S)
+\tkzLabelPoints[below](A,B,C,O_0,O_1,O_2,P')
+\tkzLabelPoints[above](Q,P)
+\tkzLabelPoints[above right](P_0,P_2,P_1,O_5,O_4,S)
+\begin{scope}[font=\scriptsize]
+ \tkzLabelCircle[above](O_1,C)(120){$(\beta)$}
+ \tkzLabelCircle[above](O_2,B)(70){$(\gamma)$}
+ \tkzLabelCircle[above](O_0,B)(110){$(\alpha)$}
+ \tkzLabelCircle[left](O_4,P_2)(60){$(\delta)$}
+ \tkzLabelCircle[left](O_5,C)(140){$(\epsilon)$}
+\end{scope}
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Bankoff circle}
+
+
+% subsection bankoff_circle (end)
+
+\subsection{Excircles} % (fold)
+\label{sub:excircles}
+
+
+\begin{tkzexample}[small,code only]
+\begin{tkzelements}
+ scale = 0.7
+ z.A = point: new (0,0)
+ z.B = point: new (6,0)
+ z.C = point: new (.8,4)
+ T = triangle: new ( z.A, z.B, z.C)
+ z.K = T.centroid
+ z.J_a,z.J_b,z.J_c = get_points (T: excentral())
+ z.T_a,z.T_b,z.T_c = get_points (T: extouch())
+ la = line: new ( z.A, z.T_a)
+ lb = line: new ( z.B, z.T_b)
+ z.G = intersection (la,lb)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPoints[new](J_a,J_b,J_c)
+ \tkzClipBB
+ \tkzDrawCircles[gray](J_a,T_a J_b,T_b J_c,T_c)
+ \tkzDrawLines[add=1 and 1](A,B B,C C,A)
+ \tkzDrawSegments[new](A,T_a B,T_b C,T_c)
+ \tkzDrawSegments[new](J_a,T_a J_b,T_b J_c,T_c)
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPolygon[new](T_a,T_b,T_c)
+ \tkzDrawPoints(A,B,C,K)
+ \tkzDrawPoints[new](T_a,T_b,T_c)
+ \tkzLabelPoints[below left](A)
+ \tkzLabelPoints[below](B)
+ \tkzLabelPoints[above](C)
+ \tkzLabelPoints[new,below left](T_b)
+ \tkzLabelPoints[new,below right](T_c)
+ \tkzLabelPoints[new,right=6pt](T_a)
+ \tkzMarkRightAngles[fill=gray!15](J_a,T_a,B J_b,T_b,C J_c,T_c,A)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+ scale=0.7
+ z.A = point: new (0,0)
+ z.B = point: new (6,0)
+ z.C = point: new (.8,4)
+ T = triangle: new ( z.A, z.B, z.C)
+ z.K = T.centroid
+ z.J_a,z.J_b,z.J_c = get_points (T: excentral())
+ z.T_a,z.T_b,z.T_c = get_points (T: extouch())
+ la = line: new ( z.A, z.T_a)
+ lb = line: new ( z.B, z.T_b)
+ z.G = intersection (la,lb)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPoints[new](J_a,J_b,J_c)
+\tkzClipBB
+\tkzDrawCircles[gray](J_a,T_a J_b,T_b J_c,T_c)
+\tkzDrawLines[add=1 and 1](A,B B,C C,A)
+\tkzDrawSegments[new](A,T_a B,T_b C,T_c)
+\tkzDrawSegments[new](J_a,T_a J_b,T_b J_c,T_c)
+\tkzDrawPolygon(A,B,C)
+\tkzDrawPolygon[new](T_a,T_b,T_c)
+\tkzDrawPoints(A,B,C,K)
+\tkzDrawPoints[new](T_a,T_b,T_c)
+\tkzLabelPoints[below left](A)
+\tkzLabelPoints[below](B)
+\tkzLabelPoints[above](C)
+\tkzLabelPoints[new,below left](T_b)
+\tkzLabelPoints[new,below right](T_c)
+\tkzLabelPoints[new,right=6pt](T_a)
+\tkzMarkRightAngles[fill=gray!15](J_a,T_a,B J_b,T_b,C J_c,T_c,A)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Ex-circles}
+
+
+
+% subsection excircles (end)
+
+\subsection{Harmonic division and bisector} % (fold)
+\label{sub:harmonic_division_and_bisector}
+
+\begin{tkzexample}[small,code only]
+\begin{tkzelements}
+ scale = .75
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.M = point: new (5 , 4)
+ T.AMB = triangle : new (z.A,z.M,z.B)
+ L.AB = T.AMB.ac
+ L.bis = T.AMB : bisector (1)
+ z.C = L.bis.pb
+ L.bisext = T.AMB : bisector_ext (1)
+ z.D = intersection (L.bisext,L.AB)
+ L.CD = line: new (z.C,z.D)
+ z.O = L.CD.mid
+ L.AM = line: new (z.A,z.M)
+ L.LL = L.AM : ll_from (z.B)
+ L.MC = line: new (z.M,z.C)
+ L.MD = line: new (z.M,z.D)
+ z.E = intersection (L.LL,L.MC)
+ z.F = intersection (L.LL,L.MD)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,M)
+ \tkzDrawCircle[purple](O,C)
+ \tkzDrawSegments[purple](M,E M,D E,F)
+ \tkzDrawSegments(D,B)
+ \tkzDrawPoints(A,B,M,C,D,E,F)
+ \tkzLabelPoints[below right](A,B,C,D,E)
+ \tkzLabelPoints[above](M,F)
+ \tkzFillAngles[opacity=.4,cyan!20](A,M,B B,E,M)
+ \tkzFillAngles[opacity=.4,purple!20](B,M,F M,F,B)
+ \tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D)
+ \tkzMarkAngles[mark=||](A,M,E E,M,B B,E,M)
+ \tkzMarkAngles[mark=|](B,M,F M,F,B)
+ \tkzMarkSegments(B,E B,M B,F)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+ scale =.75
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.M = point: new (5 , 4)
+ T.AMB = triangle : new (z.A,z.M,z.B)
+ L.AB = T.AMB.ac
+ L.bis = T.AMB : bisector (1)
+ z.C = L.bis.pb
+ L.bisext = T.AMB : bisector_ext (1)
+ z.D = intersection (L.bisext,L.AB)
+ L.CD = line: new (z.C,z.D)
+ z.O = L.CD.mid
+ L.AM = line: new (z.A,z.M)
+ L.LL = L.AM : ll_from (z.B)
+ L.MC = line: new (z.M,z.C)
+ L.MD = line: new (z.M,z.D)
+ z.E = intersection (L.LL,L.MC)
+ z.F = intersection (L.LL,L.MD)
+\end{tkzelements}
+
+
+ \hspace*{\fill}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,M)
+ \tkzDrawCircle[purple](O,C)
+ \tkzDrawSegments[purple](M,E M,D E,F)
+ \tkzDrawSegments(D,B)
+ \tkzDrawPoints(A,B,M,C,D,E,F)
+ \tkzLabelPoints[below right](A,B,C,D,E)
+ \tkzLabelPoints[above](M,F)
+ \tkzFillAngles[opacity=.4,cyan!20](A,M,B B,E,M)
+ \tkzFillAngles[opacity=.4,purple!20](B,M,F M,F,B)
+ \tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D)
+ \tkzMarkAngles[mark=||](A,M,E E,M,B B,E,M)
+ \tkzMarkAngles[mark=|](B,M,F M,F,B)
+ \tkzMarkSegments(B,E B,M B,F)
+ \end{tikzpicture}
+ \hspace*{\fill}
+ %\caption{Harmonic division and bisector}
+
+
+
+
+% subsection harmonic_division_and_bisector (end)
+
+\subsection{Excircle} % (fold)
+\label{sub:excircle}
+
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.a = point: new (1,2)
+ z.b = point: new (5,1)
+ z.c = point: new (2,4)
+ T.abc = triangle: new (z.a,z.b,z.c)
+ z.o,z.p = get_points (T.abc: ex_circle ())
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[add=1 and 1](a,b b,c a,c)
+ \tkzDrawPoints(a,b,c,o,p)
+ \tkzDrawCircles(o,p)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+ z.a = point: new (1,2)
+ z.b = point: new (5,1)
+ z.c = point: new (2,4)
+ T.abc = triangle: new (z.a,z.b,z.c)
+ z.o,z.p = get_points (T.abc: ex_circle ())
+\end{tkzelements}
+
+ \hspace*{\fill}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[add=1 and 1](a,b b,c a,c)
+ \tkzDrawPoints(a,b,c,o,p)
+ \tkzDrawCircles(o,p)
+ \end{tikzpicture}
+ \hspace*{\fill}
+ %\caption{Ex-circles}
+
+
+%
+% subsection excircle (end)
+
+\subsection{In/Out of a circle} % (fold)
+\label{sub:in_out_of_a_circle}
+
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = 1.25
+ z.A = point: new (0,0)
+ z.B = point: new (1,2)
+ z.X = point: new (-2,2)
+ C = circle : new (z.A,z.B)
+ if C:in_out(z.X)
+ then
+ tex.print("In")
+ else
+ tex.print("Out")
+ end
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle(A,B)
+ \tkzDrawPoints(A,B,X)
+ \tkzLabelPoints(A,B,X)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = 2
+z.A = point: new (0,0)
+z.B = point: new (1,2)
+z.X = point: new (-2,2)
+C = circle : new (z.A,z.B)
+if C:in_out(z.X)
+then
+ tex.print("In")
+else
+ tex.print("Out")
+end
+ z.M = C: point (math.pi/6)
+\end{tkzelements}
+\hspace*{\fill}\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle(A,B)
+ \tkzDrawPoints(A,B,X,M)
+ \tkzLabelPoints(A,B,X,M)
+\end{tikzpicture}\hspace*{\fill}
+
+% subsection in_out_of_a_circle (end)
+%
+
+\subsection{Orthogonal circle through} % (fold)
+\label{sub:orthogonal_circle_through}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.O = point: new (0,1)
+ z.A = point: new (1,0)
+ z.z1 = point: new (-1.5,-1.5)
+ z.z2 = point: new (2.5,-1.25)
+ C.OA = circle: new (z.O,z.A)
+ C = C.OA: orthogonal_through (z.z1,z.z2)
+ z.c = C.center
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle(O,A)
+ \tkzDrawCircle[new](c,z1)
+ \tkzDrawPoints[new](O,A,z1,z2,c)
+ \tkzLabelPoints[right](O,A,z1,z2,c)
+\end{tikzpicture}
+\end{tkzexample}%
+
+\begin{tkzelements}
+ z.O = point: new (0,1)
+ z.A = point: new (1,0)
+ z.z1 = point: new (-1.5,-1.5)
+ z.z2 = point: new (2.5,-1.25)
+ C.OA = circle: new (z.O,z.A)
+ C = C.OA: orthogonal_through (z.z1,z.z2)
+ z.c = C.center
+\end{tkzelements}
+
+ \hspace*{\fill}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle(O,A)
+ \tkzDrawCircle[orange](c,z1)
+ \tkzDrawPoints[orange](O,A,z1,z2,c)
+ \tkzLabelPoints[right](O,A,z1,z2,c)
+ \end{tikzpicture}
+ \hspace*{\fill}
+ %\caption{Orthogonal circle through}
+
+
+% subsection orthogonal_circle_through (end)
+
+\subsection{Devine ratio} % (fold)
+\label{sub:devine_ratio}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+z.A = point: new (0 , 0)
+z.B = point: new (8 , 0)
+L.AB = line: new (z.A,z.B)
+z.C = L.AB: gold_ratio ()
+L.AC = line: new (z.A,z.C)
+z.O_1 = L.AC.mid
+z.G,z.H = L.AB: square ()
+z.E,z.F = L.AC: square ()
+L.CB = line: new (z.C,z.B)
+z.O_2 = L.CB.mid
+z.O_0 = L.AB.mid
+L.BE = line: new (z.B,z.E)
+L.GH = line: new (z.G,z.H)
+z.K = intersection (L.BE,L.GH)
+C0 = circle: new (z.O_0,z.B)
+z.R,_ = intersection (L.BE,C0)
+C2 = circle: new (z.O_2,z.B)
+z.S,_ = intersection (L.BE,C2)
+L.AR = line: new (z.A,z.R)
+C1 = circle: new (z.O_1,z.C)
+_,z.T = intersection (L.AR,C1)
+L.BG = line: new (z.B,z.G)
+z.L = intersection (L.AR,L.BG)
+\end{tkzelements}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygons(A,C,E,F A,B,G,H)
+\tkzDrawCircles(O_1,C O_2,B O_0,B)
+\tkzDrawSegments(H,C B,K A,L)
+\tkzDrawPoints(A,B,C,K,E,F,G,H,O_0,O_1,O_2,R,S,T,L)
+\tkzLabelPoints(A,B,C,K,E,F,G,H,O_0,O_1,O_2,R,S,T,L)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.A = point: new (0 , 0)
+z.B = point: new (8 , 0)
+L.AB = line: new (z.A,z.B)
+z.C = L.AB: gold_ratio ()
+L.AC = line: new (z.A,z.C)
+z.O_1 = L.AC.mid
+z.G,z.H = L.AB: square ()
+z.E,z.F = L.AC: square ()
+L.CB = line: new (z.C,z.B)
+z.O_2 = L.CB.mid
+z.O_0 = L.AB.mid
+L.BE = line: new (z.B,z.E)
+L.GH = line: new (z.G,z.H)
+z.K = intersection (L.BE,L.GH)
+C0 = circle: new (z.O_0,z.B)
+z.R,_ = intersection (L.BE,C0)
+C2 = circle: new (z.O_2,z.B)
+z.S,_ = intersection (L.BE,C2)
+L.AR = line: new (z.A,z.R)
+C1 = circle: new (z.O_1,z.C)
+_,z.T = intersection (L.AR,C1)
+L.BG = line: new (z.B,z.G)
+z.L = intersection (L.AR,L.BG)
+\end{tkzelements}
+
+ \hspace*{\fill}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygons(A,C,E,F A,B,G,H)
+ \tkzDrawCircles(O_1,C O_2,B O_0,B)
+ \tkzDrawSegments(H,C B,K A,L)
+ \tkzDrawPoints(A,B,C,K,E,F,G,H,O_0,O_1,O_2,R,S,T,L)
+ \tkzLabelPoints(A,B,C,K,E,F,G,H,O_0,O_1,O_2,R,S,T,L)
+ \end{tikzpicture}
+ \hspace*{\fill}
+ %\caption{Devine or gold ratio}
+
+
+
+% subsection devine_ratio (end)
+
+\subsection{Director circle} % (fold)
+\label{sub:director_circle}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+scale = .5
+z.O = point: new (0 , 0)
+z.F1 = point: new (4 , 0)
+z.F2 = point: new (-4 , 0)
+z.H = point: new (4*math.sqrt(2) , 0)
+E = ellipse: foci (z.F2,z.F1,z.H)
+a,b = E.Rx, E.Ry
+z.A = E.covertex
+T = triangle: new (z.H,z.O,z.A)
+z.P = T: parallelogram ()
+C = circle: new (z.O,z.P)
+z.L = C: point (2)
+L.J,L.K = E: tangent_from (z.L)
+z.J = L.J.pb
+z.K = L.K.pb
+set_lua_to_tex {'a','b'}
+\end{tkzelements}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPoints(F1,F2,O)
+\tkzDrawCircles[teal](O,P)
+\tkzDrawPolygon(H,O,A,P)
+\tkzDrawEllipse[red](O,\a,\b,0)
+\tkzDrawSegments[orange](O,P O,L L,J L,K)
+\tkzDrawPoints(F1,F2,O,H,A,P,L,J,K)
+\tkzLabelPoints(F1,F2,O,H,A,P,L,J,K)
+\tkzMarkRightAngles(A,P,H J,L,K)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .5
+z.O = point: new (0 , 0)
+z.F1 = point: new (4 , 0)
+z.F2 = point: new (-4 , 0)
+z.H = point: new (4*math.sqrt(2) , 0)
+E = ellipse: foci (z.F2,z.F1,z.H)
+a,b = E.Rx, E.Ry
+z.A = E.covertex
+T = triangle: new (z.H,z.O,z.A)
+z.P = T: parallelogram ()
+C = circle: new (z.O,z.P)
+z.L = C: point (2)
+L.J,L.K = E: tangent_from (z.L)
+z.J = L.J.pb
+z.K = L.K.pb
+set_lua_to_tex {'a','b'}
+\end{tkzelements}
+
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPoints(F1,F2,O)
+\tkzDrawCircles[teal](O,P)
+\tkzDrawPolygon(H,O,A,P)
+\tkzDrawEllipse[red](O,\a,\b,0)
+\tkzDrawSegments[orange](O,P O,L L,J L,K)
+\tkzDrawPoints(F1,F2,O,H,A,P,L,J,K)
+\tkzLabelPoints(F1,F2,O,H,A,P,L,J,K)
+\tkzMarkRightAngles(A,P,H J,L,K)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Director circle}
+% subsection director_circle (end)
+
+\subsection{Distance} % (fold)
+\label{sub:distance}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point : new (0 , 0)
+ z.B = point : new (4 , 3)
+ z.C = point : new (2 , 5)
+ L.AB = line : new (z.A,z.B)
+ d = L.AB : distance (z.C)
+ l = L.AB.length
+ z.H = L.AB : projection (z.C)
+ set_lua_to_tex{'d','l'}
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B C,H)
+ \tkzDrawPoints(A,B,C,H)
+ \tkzLabelPoints(A,B,C,H)
+ \tkzLabelSegment[above left,draw](C,H){$CH = \d$}
+ \tkzLabelSegment[below left,draw](C,H){$AB = \l$}
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.A = point : new (0 , 0)
+z.B = point : new (4 , 3)
+z.C = point : new (2 , 5)
+L.AB = line : new (z.A,z.B)
+d = L.AB : distance (z.C)
+l = L.AB.length
+z.H = L.AB : projection (z.C)
+set_lua_to_tex{'d','l'}
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B C,H)
+\tkzDrawPoints(A,B,C,H)
+\tkzLabelPoints(A,B,C,H)
+\tkzLabelSegment[above left,draw](C,H){$CH = \d$}
+\tkzLabelSegment[below left,draw](C,H){$AB = \l$}
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Distance to a line}
+
+
+
+% subsection distance (end)
+
+\subsection{Gold division} % (fold)
+\label{sub:gold_division}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (0,0)
+ z.B = point: new (2.5,0)
+ L.AB = line: new (z.A,z.B)
+ C.AB = circle: new (z.A,z.B)
+ C.BA = circle: new (z.B,z.A)
+ z.J = L.AB: midpoint ()
+ L.JB = line:new (z.J,z.B)
+ z.F,z.E = intersection (C.AB , C.BA)
+ z.I,_ = intersection (L.AB , C.BA)
+ z.K = L.JB : midpoint ()
+ z.k = L.JB: ortho_from (z.K)
+ L.Kk = line:new (z.K,z.k)
+ _,z.G = intersection (L.Kk,C.BA)
+ L.EG = line:new (z.E,z.G)
+ z.C = intersection (L.EG,L.AB)
+ z.O = C.AB: antipode (z.B)
+\end{tkzelements}
+\begin{tikzpicture}
+\tkzGetNodes
+ \tkzDrawArc[delta=5](O,B)(G)
+ \tkzDrawCircles(A,B B,A)
+ \tkzDrawSegments(A,E B,E O,I)
+ \tkzDrawSegments[purple](J,E A,G G,I K,G E,G)
+ \tkzMarkSegments[mark=s||](A,E B,E O,A)
+ \tkzDrawPoints(A,B,C,E,I,J,G,O,K)
+ \tkzLabelPoints(A,B,C,E,I,J,G,O,K)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.A = point: new (0,0)
+z.B = point: new (2.5,0)
+L.AB = line: new (z.A,z.B)
+C.AB = circle: new (z.A,z.B)
+C.BA = circle: new (z.B,z.A)
+z.J = L.AB: midpoint ()
+L.JB = line:new (z.J,z.B)
+z.F,z.E = intersection (C.AB , C.BA)
+z.I,_ = intersection (L.AB , C.BA)
+z.K = L.JB : midpoint ()
+L.mediator = L.JB: mediator ()
+z.G = intersection (L.mediator,C.BA)
+L.EG = line:new (z.E,z.G)
+z.C = intersection (L.EG,L.AB)
+z.O = C.AB: antipode (z.B)
+\end{tkzelements}
+
+ \hspace*{\fill}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawArc[delta=5](O,B)(G)
+ \tkzDrawCircles(A,B B,A)
+ \tkzDrawSegments(A,E B,E O,I)
+ \tkzDrawSegments[purple](J,E A,G G,I K,G E,G)
+ \tkzMarkSegments[mark=s||](A,E B,E O,A)
+ \tkzDrawPoints(A,B,C,E,I,J,G,O,K)
+ \tkzLabelPoints(A,B,C,E,I,J,G,O,K)
+ \end{tikzpicture}
+ \hspace*{\fill}
+ %\caption{gold division}
+
+
+
+
+% subsection gold_division (end)
+
+\subsection{Ellipse} % (fold)
+\label{sub:ellipse}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.C = point: new (3 , 2)
+ z.A = point: new (5 , 1)
+ L.CA = line : new (z.C,z.A)
+ z.b = L.CA.north_pa
+ L = line : new (z.C,z.b)
+ z.B = L : point (0.5)
+ E = ellipse: new (z.C,z.A,z.B)
+ a = E.Rx
+ b = E.Ry
+ slope = math.deg(E.slope)
+ set_lua_to_tex {'a','b','slope'}
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles[teal](C,A)
+ \tkzDrawEllipse[red](C,\a,\b,\slope)
+ \tkzDrawPoints(C,A,B,b)
+ \tkzLabelPoints(C,A,B)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.C = point: new (3 , 2)
+z.A = point: new (5 , 1)
+L.CA = line : new (z.C,z.A)
+z.b = L.CA.north_pa
+L = line : new (z.C,z.b)
+z.B = L : point (0.5)
+E = ellipse: new (z.C,z.A,z.B)
+a = E.Rx
+b = E.Ry
+slope = math.deg(E.slope)
+set_lua_to_tex {'a','b','slope'}
+\end{tkzelements}
+
+ \hspace*{\fill}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles[teal](C,A)
+ \tkzDrawEllipse[red](C,\a,\b,\slope)
+ \tkzDrawPoints(C,A,B,b)
+ \tkzLabelPoints(C,A,B)
+ \end{tikzpicture}
+ \hspace*{\fill}
+ %\caption{Ellipse}
+
+% subsection ellipse (end)
+
+\subsection{Ellipse with radii} % (fold)
+\label{sub:ellipse_with_radii}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+z.C = point: new (0 , 4)
+z.B = point: new (4 , 0)
+z.D = point: new (2 , 6)
+b = math.sqrt(8)
+a = math.sqrt(32)
+ang = math.deg(math.pi/4)
+E = ellipse: radii (z.C,a,b,math.pi/4)
+z.V = E : point (0)
+z.CoV = E : point (math.pi/2)
+set_lua_to_tex {'a','b','ang'}
+\end{tkzelements}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawEllipse[blue](C,\a,\b,\ang)
+\tkzDrawPoints(C,V,CoV)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.C = point: new (0 , 4)
+z.B = point: new (4 , 0)
+z.D = point: new (2 , 6)
+b = math.sqrt(8)
+a = math.sqrt(32)
+ang = math.deg(math.pi/4)
+E = ellipse: radii (z.C,a,b,math.pi/4)
+z.V = E : point (0)
+z.CoV = E : point (math.pi/2)
+set_lua_to_tex {'a','b','ang'}
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawEllipse[blue](C,\a,\b,\ang)
+\tkzDrawPoints(C,V,CoV)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Ellipse with radii}
+% subsection ellipse_with_radii (end)
+
+\subsection{Ellipse\_with\_foci} % (fold)
+\label{sub:ellipse_with_foci}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ local e
+ e = .8
+ z.A = point: new (2 , 3)
+ z.B = point: new (5 , 4)
+ z.K = point: new (6, 7)
+ L.AB = line: new (z.A,z.B)
+ z.C = L.AB.mid
+ c = point.abs(z.B-z.C)
+ a = c/e
+ b = math.sqrt (a^2-c^2)
+ z.V = z.C + a*(z.B-z.C)/point.abs(z.B-z.C)
+ E = ellipse: foci (z.A,z.B,z.V)
+ z.cV = E.covertex
+ ang = math.deg(E.slope)
+ L.ta,L.tb = E: tangent_from (z.K)
+ z.F = L.ta.pb
+ z.G = L.tb.pb
+ set_lua_to_tex{'a','b','ang'}
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPoints(A,B,C,K,F,G,V,cV)
+ \tkzLabelPoints(A,B,C,K,F,G,V,cV)
+ \tkzDrawEllipse[teal](C,\a,\b,\ang)
+ \tkzDrawLines(K,F K,G)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+local e
+e = .8
+z.A = point: new (2 , 3)
+z.B = point: new (5 , 4)
+z.K = point: new (6, 7)
+L.AB = line: new (z.A,z.B)
+z.C = L.AB.mid
+c = point.abs(z.B-z.C)
+a = c/e
+b = math.sqrt (a^2-c^2)
+z.V = z.C + a*(z.B-z.C)/point.abs(z.B-z.C)
+E = ellipse: foci (z.A,z.B,z.V)
+z.cV = E.covertex
+ang = math.deg(E.slope)
+L.ta,L.tb = E: tangent_from (z.K)
+z.F = L.ta.pb
+z.G = L.tb.pb
+set_lua_to_tex{'a','b','ang'}
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPoints(A,B,C,K,F,G,V,cV)
+ \tkzLabelPoints(A,B,C,K,F,G,V,cV)
+ \tkzDrawEllipse[teal](C,\a,\b,\ang)
+ \tkzDrawLines(K,F K,G)
+\end{tikzpicture}
+ \hspace*{\fill}
+ %\caption{Ellipse with foci}
+
+
+
+% subsection ellipse_with_foci (end)
+
+\subsection{Euler relation} % (fold)
+\label{sub:euler_relation}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .75
+ z.A = point: new (0 , 0)
+ z.B = point: new (5 , 0)
+ z.C = point: new (-.4 , 4)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ z.J,z.K = get_points(T.ABC: ex_circle (2))
+ z.X ,z.Y,z.K = T.ABC : projection (z.J)
+ z.I,z.H = get_points(T.ABC : in_circle())
+ z.O = T.ABC.circumcenter
+ C.OA = circle : new (z.O,z.A)
+ T.IBA = triangle: new (z.I,z.B,z.A)
+ z.w = T.IBA.circumcenter
+ L.Ow = line : new (z.O,z.w)
+ _,z.E = intersection (L.Ow, C.OA)
+\end{tkzelements}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawArc(J,X)(Y)
+ \tkzDrawCircles(I,H O,A)
+ \tkzDrawCircle[red](w,I)
+ \tkzDrawLines(Y,C A,B X,C E,w E,B)
+ \tkzDrawSegments[blue](J,C J,K I,H I,O w,B)
+ \tkzDrawPoints(A,B,C,I,J,E,w,H,K,O)
+ \tkzLabelPoints(A,B,C,J,I,w,H,K,E,O)
+ \tkzMarkRightAngles[fill=gray!20,opacity=.4](C,H,I A,K,J)
+ \end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.A = point: new (0 , 0)
+z.B = point: new (5 , 0)
+ z.C = point: new (-.4 , 4)
+T.ABC = triangle: new (z.A,z.B,z.C)
+z.J,z.K = get_points(T.ABC: ex_circle (2))
+z.X ,z.Y,z.K = T.ABC : projection (z.J)
+z.I,z.H = get_points(T.ABC : in_circle())
+z.O = T.ABC.circumcenter
+C.OA = circle : new (z.O,z.A)
+T.IBA = triangle: new (z.I,z.B,z.A)
+z.w = T.IBA.circumcenter
+L.Ow = line : new (z.O,z.w)
+_,z.E = intersection (L.Ow, C.OA)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawArc(J,X)(Y)
+\tkzDrawCircles(I,H O,A)
+\tkzDrawCircle[red](w,I)
+\tkzDrawLines(Y,C A,B X,C E,w E,B)
+\tkzDrawSegments[blue](J,C J,K I,H I,O w,B)
+\tkzDrawPoints(A,B,C,I,J,E,w,H,K,O)
+\tkzLabelPoints(A,B,C,J,I,w,H,K,E,O)
+\tkzMarkRightAngles[fill=gray!20,opacity=.4](C,H,I A,K,J)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Euler relation}
+% subsection euler_relation (end)
+
+\subsection{Euler line} % (fold)
+\label{sub:euler_line}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.C = point: new (1.5 , 3.5)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ z.O = T.ABC.circumcenter
+ z.G = T.ABC.centroid
+ z.N = T.ABC. eulercenter
+ z.H = T.ABC. orthocenter
+ z.P,z.Q,z.R = get_points (T.ABC: orthic())
+ z.K,z.I,z.J = get_points (T.ABC: medial ())
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[blue](O,H)
+ \tkzDrawCircle[red](N,I)
+ \tkzDrawCircles[teal](O,A)
+ \tkzDrawSegments(A,P B,Q C,R)
+ \tkzDrawSegments[red](A,I B,J C,K)
+ \tkzDrawPolygons(A,B,C)
+ \tkzDrawPoints(A,B,C,N,I,J,K,O,P,Q,R,H,G)
+ \tkzLabelPoints(A,B,C,I,J,K,P,Q,R,H)
+ \tkzLabelPoints[below](N,O,G)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+ scale =1
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.C = point: new (1.5 , 3.5)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ z.O = T.ABC.circumcenter
+ z.G = T.ABC.centroid
+ z.N = T.ABC. eulercenter
+ z.H = T.ABC. orthocenter
+ z.P,z.Q,z.R = get_points (T.ABC: orthic())
+ z.K,z.I,z.J = get_points (T.ABC: medial ())
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines[blue](O,H)
+\tkzDrawCircle[red](N,I)
+\tkzDrawCircles[teal](O,A)
+\tkzDrawSegments(A,P B,Q C,R)
+\tkzDrawSegments[red](A,I B,J C,K)
+\tkzDrawPolygons(A,B,C)
+\tkzDrawPoints(A,B,C,N,I,J,K,O,P,Q,R,H,G)
+\tkzLabelPoints(A,B,C,I,J,K,P,Q,R)
+\tkzLabelPoints[below](N,O,G,H)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Euler line}
+% subsection euler_line (end)
+
+\subsection{External angle} % (fold)
+\label{sub:external_angle}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale =.8
+ z.A = point: new (0 , 0)
+ z.B = point: new (5 , 0)
+ z.C = point: new (-2 , 4)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ T.ext = T.ABC: excentral ()
+ z.O = T.ABC.circumcenter
+ z.D = intersection (T.ext.ab,T.ABC.ab)
+ z.E = z.C: symmetry (z.B)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawLine[purple,add=0 and .5](B,C)
+ \tkzDrawSegment[purple](A,D)
+ \tkzDrawSegment[orange](C,D)
+ \tkzFillAngles[purple!30,opacity=.2](D,C,A E,C,D)
+ \tkzMarkAngles[mark=|](D,C,A E,C,D)
+ \tkzDrawPoints(A,...,D)
+ \tkzLabelPoints[above](C)
+ \tkzLabelPoints(A,B,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .8
+z.A = point: new (0 , 0)
+z.B = point: new (5 , 0)
+z.C = point: new (-2 , 4)
+T.ABC = triangle: new (z.A,z.B,z.C)
+T.ext = T.ABC: excentral ()
+z.O = T.ABC.circumcenter
+z.D = intersection (T.ext.ab,T.ABC.ab)
+z.E = z.C: symmetry (z.B)
+\end{tkzelements}
+
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawLine[purple,add=0 and .5](B,C)
+\tkzDrawSegment[purple](A,D)
+\tkzDrawSegment[orange](C,D)
+\tkzFillAngles[purple!30,opacity=.2](D,C,A E,C,D)
+\tkzMarkAngles[mark=|](D,C,A E,C,D)
+\tkzDrawPoints(A,...,D)
+\tkzLabelPoints[above](C)
+\tkzLabelPoints(A,B,D)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{External angle}
+% subsection external_angle (end)
+
+\subsection{Internal angle} % (fold)
+\label{sub:internal_angle}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .8
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.C = point: new (1 , 5)
+ T = triangle: new (z.A,z.B,z.C)
+ z.I = T.incenter
+ L.AI = line: new (z.A,z.I)
+ z.D = intersection (L.AI, T.bc)
+ L.LL = T.ab: ll_from (z.C)
+ L.AD = line: new (z.A,z.D)
+ z.E = intersection (L.LL,L.AD)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawLine[purple](C,E)
+ \tkzDrawSegment[purple](A,E)
+ \tkzFillAngles[purple!30,opacity=.4](B,A,C C,E,D)
+ \tkzMarkAngles[mark=|](B,A,D D,A,C C,E,D)
+ \tkzDrawPoints(A,...,E)
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoints[above](C,D,E)
+ \tkzMarkSegments(A,C C,E)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale =.8
+z.A = point: new (0 , 0)
+z.B = point: new (6 , 0)
+z.C = point: new (1 , 5)
+T = triangle: new (z.A,z.B,z.C)
+z.I = T.incenter
+L.AI = line: new (z.A,z.I)
+z.D = intersection (L.AI, T.bc)
+L.LL = T.ab: ll_from (z.C)
+L.AD = line: new (z.A,z.D)
+z.E = intersection (L.LL,L.AD)
+\end{tkzelements}
+
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawLine[purple](C,E)
+\tkzDrawSegment[purple](A,E)
+\tkzFillAngles[purple!30,opacity=.4](B,A,C C,E,D)
+\tkzMarkAngles[mark=|](B,A,D D,A,C C,E,D)
+\tkzDrawPoints(A,...,E)
+\tkzLabelPoints(A,B)
+\tkzLabelPoints[above](C,D,E)
+\tkzMarkSegments(A,C C,E)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Internal angle}
+%subsection internal_angle (end)
+
+\subsection{Feuerbach theorem} % (fold)
+\label{sub:nine_points}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = 1.5
+ z.A = point: new (0 , 0)
+ z.B = point: new (5 , -.5)
+ z.C = point: new (-.5 , 3)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ z.O = T.ABC.circumcenter
+ z.N = T.ABC.eulercenter
+ z.I,z.K = get_points(T.ABC: in_circle())
+ z.H = T.ABC.ab : projection (z.I)
+ z.Ap,
+ z.Bp,
+ z.Cp = get_points (T.ABC : medial ())
+ C.IH = circle:new (z.I,z.H)
+ C.NAp = circle:new (z.N,z.Ap)
+ C.OA = circle:new (z.O,z.A)
+ z.U = C.OA.south
+ z.L = C.NAp.south
+ z.M = C.NAp.north
+ z.X = T.ABC.ab: projection (z.C)
+ L.CU = line: new (z.C,z.U)
+ L.ML = line: new (z.M,z.L)
+ z.P = L.CU: projection (z.A)
+ z.Q = L.CU: projection (z.B)
+ L.LH = line: new (z.L,z.H)
+ z.F = intersection (L.LH,C.IH) -- feuerbach
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLine(L,F)
+ \tkzDrawCircle[red](N,A')
+ \tkzDrawCircle[blue](I,H)
+ \tkzDrawCircles[teal](O,A L,C')
+ \tkzDrawSegments(M,L B,U Q,C C,X A,P B,Q)
+ \tkzDrawPolygons(A,B,C A',B',C')
+ \tkzDrawPoints(A,B,C,N,H,A',B',C',U,L,M,P,Q,F,I)
+ \tkzLabelPoints(A,B,C,N,H,A',B',C',U,L,M,P,Q,F,I)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = 1
+z.A = point: new (0 , 0)
+z.B = point: new (5 , -.5)
+z.C = point: new (-.5 , 3)
+T.ABC = triangle: new (z.A,z.B,z.C)
+z.O = T.ABC.circumcenter
+z.N = T.ABC.eulercenter
+z.I,z.K = get_points(T.ABC: in_circle())
+z.H = T.ABC.ab : projection (z.I)
+z.Ap,z.Bp,z.Cp = get_points (T.ABC : medial ())
+C.IH = circle:new (z.I,z.H)
+C.NAp = circle:new (z.N,z.Ap)
+C.OA = circle:new (z.O,z.A)
+z.U = C.OA.south
+z.L = C.NAp.south
+z.M = C.NAp.north
+z.X = T.ABC.ab: projection (z.C)
+L.CU = line: new (z.C,z.U)
+L.ML = line: new (z.M,z.L)
+z.P = L.CU: projection (z.A)
+z.Q = L.CU: projection (z.B)
+L.LH = line: new (z.L,z.H)
+z.F = intersection (L.LH,C.IH) -- feuerbach
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}[rotate=90]
+\tkzGetNodes
+\tkzDrawLine(L,F)
+\tkzDrawCircle[red](N,A')
+\tkzDrawCircle[blue](I,H)
+\tkzDrawCircles[teal](O,A L,C')
+\tkzDrawSegments(M,L B,U Q,C C,X A,P B,Q)
+\tkzDrawPolygons(A,B,C A',B',C')
+\tkzDrawPoints(A,B,C,N,H,A',B',C',U,L,M,P,Q,F,I)
+\tkzLabelPoints(A,B,C,N,H,A',B',C',U,L,M,P,Q,F,I)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Feuerbach theorem}
+
+
+
+
+% subsection nine_points (end)
+
+\subsection{Gold ratio with segment} % (fold)
+\label{sub:gold_ratio_with_segment}
+
+ \begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (8 , 0)
+ L.AB = line: new (z.A,z.B)
+ z.X,z.Y = L.AB: square ()
+ L.BX = line: new (z.B,z.X)
+ z.M = L.BX.mid
+ C.MA = circle: new (z.M,z.A)
+ _,z.K = intersection (L.BX,C.MA)
+ L.AK = line: new (z.Y,z.K)
+ z.C = intersection (L.AK,L.AB)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B X,K)
+ \tkzDrawLine[teal](Y,K)
+ \tkzDrawPoints(A,B,C,X,Y,M,K)
+ \tkzDrawArc[delta=20](M,A)(K)
+ \tkzLabelPoints(A,B,C)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .5
+z.A = point: new (0 , 0)
+z.B = point: new (8 , 0)
+L.AB = line: new (z.A,z.B)
+z.X,z.Y = L.AB: square ()
+L.BX = line: new (z.B,z.X)
+z.M = L.BX.mid
+C.MA = circle: new (z.M,z.A)
+_,z.K = intersection (L.BX,C.MA)
+L.AK = line: new (z.Y,z.K)
+z.C = intersection (L.AK,L.AB)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B X,K)
+\tkzDrawLine[teal](Y,K)
+\tkzDrawPoints(A,B,C,X,Y,M,K)
+\tkzDrawArc[delta=20](M,A)(K)
+\tkzLabelPoints(A,B,C)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Gold ration with a segment}
+%subsection gold_ratio_with_segment (end)
+
+\subsection{Gold Arbelos} % (fold)
+\label{sub:gold_arbelos}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .6
+ z.A = point: new (0 , 0)
+ z.C = point: new (6 , 0)
+ L.AC = line: new (z.A,z.C)
+ z.x,z.y = L.AC: square ()
+ z.O_1 = L.AC . mid
+ C = circle: new (z.O_1,z.x)
+ z.B = intersection (L.AC,C)
+ L.CB = line: new (z.C,z.B)
+ z.O_2 = L.CB.mid
+ L.AB = line: new (z.A,z.B)
+ z.O_0 = L.AB.mid
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(O_1,C O_2,B O_0,B)
+ \tkzDrawPoints(A,C,B,O_1,O_2,O_0)
+ \tkzLabelPoints(A,C,B)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .4
+z.A = point: new (0 , 0)
+z.C = point: new (6 , 0)
+L.AC = line: new (z.A,z.C)
+z.x,z.y = L.AC: square ()
+z.O_1 = L.AC . mid
+C = circle: new (z.O_1,z.x)
+z.B = intersection (L.AC,C)
+L.CB = line: new (z.C,z.B)
+z.O_2 = L.CB.mid
+L.AB = line: new (z.A,z.B)
+z.O_0 = L.AB.mid
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(O_1,C O_2,B O_0,B O_1,x)
+\tkzDrawPoints(A,C,B,O_1,O_2,O_0,x)
+\tkzLabelPoints(A,C,B)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Gold Arbelos}
+% subsection gold_arbelos (end)
+
+\subsection{Harmonic division v1} % (fold)
+\label{sub:harmonic_division_v1}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale=.75
+ z.A = point: new (0 , 0)
+ z.B = point: new (4 , 0)
+ z.D = point: new (12,0)
+ L.AB = line : new (z.A,z.B)
+ z.X = L.AB.north_pa
+ L.XB = line : new (z.X,z.B)
+ z.E = L.XB.mid
+ L.DE = line : new (z.D,z.E)
+ L.XA = line : new (z.X,z.A)
+ z.F = intersection (L.DE,L.XA)
+ L.AE = line : new (z.A,z.E)
+ L.BF = line : new (z.B,z.F)
+ z.G = intersection (L.AE,L.BF)
+ L.XG = line : new (z.X,z.G)
+z.C = intersection (L.XG,L.AB)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDefPoints{0/0/A,4/0/B}
+ \tkzDefPoints{2/2/G}
+ \tkzDefLine[parallel=through B,K=.5](A,G) \tkzGetPoint{E}
+ \tkzInterLL(G,E)(A,B) \tkzGetPoint{D}
+ \tkzDefPointBy[symmetry= center B](E) \tkzGetPoint{F}
+ \tkzInterLL(G,F)(A,B) \tkzGetPoint{C}
+ \tkzDrawLines(A,D A,G F,E G,F G,D)
+ \tkzDrawPoints(A,B,G,E,F,C,D)
+ \tkzLabelPoints(A,B,G,E,F,C,D)
+ \tkzMarkSegments(F,B B,E)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale=.75
+z.A = point: new (0 , 0)
+z.B = point: new (4 , 0)
+z.D = point: new (12,0)
+L.AB = line : new (z.A,z.B)
+z.X = L.AB.north_pa
+L.XB = line : new (z.X,z.B)
+z.E = L.XB.mid
+L.DE = line : new (z.D,z.E)
+L.XA = line : new (z.X,z.A)
+z.F = intersection (L.DE,L.XA)
+L.AE = line : new (z.A,z.E)
+L.BF = line : new (z.B,z.F)
+z.G = intersection (L.AE,L.BF)
+L.XG = line : new (z.X,z.G)
+z.C = intersection (L.XG,L.AB)
+\end{tkzelements}
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDefPoints{0/0/A,4/0/B}
+\tkzDefPoints{2/2/G}
+\tkzDefLine[parallel=through B,K=.5](A,G) \tkzGetPoint{E}
+\tkzInterLL(G,E)(A,B) \tkzGetPoint{D}
+\tkzDefPointBy[symmetry= center B](E) \tkzGetPoint{F}
+\tkzInterLL(G,F)(A,B) \tkzGetPoint{C}
+\tkzDrawLines(A,D A,G F,E G,F G,D)
+\tkzDrawPoints(A,B,G,E,F,C,D)
+\tkzLabelPoints(A,B,G,E,F,C,D)
+\tkzMarkSegments(F,B B,E)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Harmonic division V1}
+% subsection harmonic_division_v1 (end)
+
+\subsection{Harmonic division v2} % (fold)
+\label{sub:harmonic_division_v2}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .5
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.D = point: new (12 , 0)
+ L.AB = line: new (z.A,z.B)
+ z.X = L.AB.north_pa
+ L.XB = line: new (z.X,z.B)
+ z.E = L.XB.mid
+ L.ED = line: new (z.E,z.D)
+ L.AX = line: new (z.A,z.X)
+ L.AE = line: new (z.A,z.E)
+ z.F = intersection (L.ED,L.AX)
+ L.BF = line: new (z.B,z.F)
+ z.G = intersection (L.AE,L.BF)
+ L.GX = line: new (z.G,z.X)
+ z.C = intersection (L.GX,L.AB)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,D A,E B,F D,F X,A X,B X,C)
+ \tkzDrawPoints(A,...,G,X)
+ \tkzLabelPoints(A,...,G,X)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .5
+z.A = point: new (0 , 0)
+z.B = point: new (6 , 0)
+z.D = point: new (12 , 0)
+L.AB = line: new (z.A,z.B)
+z.X = L.AB.north_pa
+L.XB = line: new (z.X,z.B)
+z.E = L.XB.mid
+L.ED = line: new (z.E,z.D)
+L.AX = line: new (z.A,z.X)
+L.AE = line: new (z.A,z.E)
+z.F = intersection (L.ED,L.AX)
+L.BF = line: new (z.B,z.F)
+z.G = intersection (L.AE,L.BF)
+L.GX = line: new (z.G,z.X)
+z.C = intersection (L.GX,L.AB)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,D A,E B,F D,F X,A X,B X,C)
+\tkzDrawPoints(A,...,G,X)
+\tkzLabelPoints(A,...,G,X)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Harmonic division V2}
+% subsection harmonic_division_v2 (end)
+
+\subsection{Menelaus} % (fold)
+\label{sub:menelaus}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.C = point: new (5 , 4)
+ z.P = point: new (-1 , 0)
+ z.X = point: new (6 , 3)
+ L.AC = line: new (z.A,z.C)
+ L.PX = line: new (z.P,z.X)
+ L.BC = line: new (z.B,z.C)
+ z.Q = intersection (L.AC,L.PX)
+ z.R = intersection (L.BC,L.PX)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawLine[new](P,R)
+ \tkzDrawLines(P,B A,C B,C)
+ \tkzDrawPoints(P,Q,R,A,B,C)
+ \tkzLabelPoints(A,B,C,P,Q,R)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.A = point: new (0 , 0)
+z.B = point: new (6 , 0)
+z.C = point: new (5 , 4)
+z.P = point: new (-1 , 0)
+z.X = point: new (6 , 3)
+L.AC = line: new (z.A,z.C)
+L.PX = line: new (z.P,z.X)
+L.BC = line: new (z.B,z.C)
+z.Q = intersection (L.AC,L.PX)
+z.R = intersection (L.BC,L.PX)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawLine[new](P,R)
+\tkzDrawLines(P,B A,C B,C)
+\tkzDrawPoints(P,Q,R,A,B,C)
+\tkzLabelPoints(A,B,C,P,Q,R)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Menelaus}
+% subsection menelaus (end)
+
+\subsection{Radical axis v1} % (fold)
+\label{sub:radical_axis_v1}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .75
+ z.X = point : new (0,0)
+ z.B = point : new (2,2)
+ z.Y = point : new (7,1)
+ z.Ap = point : new (8,-1)
+ L.XY = line : new (z.X,z.Y)
+ C.XB = circle : new (z.X,z.B)
+ C.YAp = circle : new (z.Y,z.Ap)
+ z.E,z.F = get_points (C.XB : radical_axis (C.YAp))
+ z.A = C.XB : point (-math.pi)
+ T.ABAp = triangle: new (z.A,z.B,z.Ap)
+ z.O = T.ABAp.circumcenter
+ C.OAp = circle : new (z.O,z.Ap)
+ _,z.Bp = intersection (C.OAp,C.YAp)
+ L.AB = line : new (z.A,z.B)
+ L.ApBp = line : new (z.Ap,z.Bp)
+ z.M = intersection (L.AB,L.ApBp)
+ z.H = L.XY : projection (z.M)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(X,B Y,A')
+ \tkzDrawArc[dashed,delta=30](O,A')(A)
+ \tkzDrawPoints(A,B,A',B',M,H,X,Y,O,E,F)
+ \tkzDrawLines[red](A,M A',M X,Y E,F)
+ \tkzDrawLines[red,add=1 and 3](M,H)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .75
+z.X = point : new (0,0)
+z.B = point : new (2,2)
+z.Y = point : new (7,1)
+z.Ap = point : new (8,-1)
+L.XY = line : new (z.X,z.Y)
+C.XB = circle : new (z.X,z.B)
+C.YAp = circle : new (z.Y,z.Ap)
+z.E,z.F = get_points (C.XB : radical_axis (C.YAp))
+z.A = C.XB : point (-math.pi)
+T.ABAp = triangle: new (z.A,z.B,z.Ap)
+z.O = T.ABAp.circumcenter
+C.OAp = circle : new (z.O,z.Ap)
+_,z.Bp = intersection (C.OAp,C.YAp)
+L.AB = line : new (z.A,z.B)
+L.ApBp = line : new (z.Ap,z.Bp)
+z.M = intersection (L.AB,L.ApBp)
+z.H = L.XY : projection (z.M)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(X,B Y,A')
+\tkzDrawArc[dashed,delta=30](O,A')(A)
+\tkzDrawPoints(A,B,A',B',M,H,X,Y,O,E,F)
+\tkzDrawLines[red](A,M A',M X,Y E,F)
+\tkzDrawLines[red,add=1 and 3](M,H)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Radical axis v1}
+% subsection radical_axis_v1 (end)
+
+\subsection{Radical axis v2} % (fold)
+\label{sub:radical_axis_v2}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.O = point : new (-1,0)
+ z.Op = point : new (4,-1)
+ z.B = point : new (0,2)
+ z.D = point : new (4,0)
+ C.OB = circle : new (z.O,z.B)
+ C.OpD = circle : new (z.Op,z.D)
+ L.EF = C.OB : radical_axis (C.OpD)
+ z.E,z.F = get_points (L.EF)
+ z.M = L.EF : point (2)
+ L.MT,L.MTp = C.OB : tangent_from (z.M)
+ _,z.T = get_points (L.MT)
+ _,z.Tp = get_points (L.MTp)
+ L.MK,L.MKp = C.OpD : tangent_from (z.M)
+ _,z.K = get_points (L.MK)
+ _,z.Kp = get_points (L.MKp)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(O,B O',D)
+ \tkzDrawLine[add=1 and 2](E,F)
+ \tkzDrawLine[add=.5 and .5](O,O')
+ \tkzDrawSegments(M,T M,T' M,K M,K')
+ \tkzDrawCircle(M,T)
+ \tkzDrawPoints(O,O',T,M,T',K,K')
+ \tkzLabelPoints(O,O',T,T',K,K',M)
+ \end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale =1.25
+z.O = point : new (-1,0)
+z.Op = point : new (4,-1)
+z.B = point : new (0,2)
+z.D = point : new (4,0)
+C.OB = circle : new (z.O,z.B)
+C.OpD = circle : new (z.Op,z.D)
+L.EF = C.OB : radical_axis (C.OpD)
+z.E,z.F = get_points (L.EF)
+z.M = L.EF : point (2)
+L.MT,L.MTp = C.OB : tangent_from (z.M)
+_,z.T = get_points (L.MT)
+_,z.Tp = get_points (L.MTp)
+L.MK,L.MKp = C.OpD : tangent_from (z.M)
+_,z.K = get_points (L.MK)
+_,z.Kp = get_points (L.MKp)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(O,B O',D)
+\tkzDrawLine[add=1 and 2](E,F)
+\tkzDrawLine[add=.5 and .5](O,O')
+\tkzDrawSegments(M,T M,T' M,K M,K')
+\tkzDrawCircle(M,T)
+\tkzDrawPoints(O,O',T,M,T',K,K')
+\tkzLabelPoints(O,O',T,T',K,K',M)
+\end{tikzpicture}\hspace*{\fill}
+%\caption{Radical axis v2}
+% subsection radical_axis_v2 (end)
+
+\subsection{Radical axis v3} % (fold)
+\label{sub:radical_axis_v3}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.O = point : new (0,0)
+ z.B = point : new (4,0)
+ z.Op = point : new (6,0)
+ C.OB = circle : new (z.O,z.B)
+ C.OpB = circle : new (z.Op,z.B)
+ L.EF = C.OB : radical_axis (C.OpB)
+ z.E,z.F = get_points(L.EF)
+ z.M = L.EF : point (2)
+ _,L = C.OB : tangent_from (z.M)
+ _,z.T = get_points (L)
+ L,_ = C.OpB : tangent_from (z.M)
+ _,z.Tp = get_points (L)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(O,B O',B)
+ \tkzDrawSegments(M,T M,T')
+ \tkzDrawLine[add=.5 and 1](E,F)
+ \tkzDrawLine[add=.5 and .5](O,O')
+ \tkzDrawPoints(O,B,O',E,F,M,T,T')
+ \tkzLabelPoints(O,O',B,E,F,T,T')
+ \tkzDrawArc(M,T')(T)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.O = point : new (0,0)
+z.B = point : new (4,0)
+z.Op = point : new (6,0)
+C.OB = circle : new (z.O,z.B)
+C.OpB = circle : new (z.Op,z.B)
+L.EF = C.OB : radical_axis (C.OpB)
+z.E,z.F = get_points(L.EF)
+z.M = L.EF : point (2)
+_,L = C.OB : tangent_from (z.M)
+_,z.T = get_points (L)
+L,_ = C.OpB : tangent_from (z.M)
+_,z.Tp = get_points (L)
+\end{tkzelements}
+
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(O,B O',B)
+\tkzDrawSegments(M,T M,T')
+\tkzDrawLine[add=.5 and 1](E,F)
+\tkzDrawLine[add=.5 and .5](O,O')
+\tkzDrawPoints(O,B,O',E,F,M,T,T')
+\tkzLabelPoints(O,O',B,E,F,T,T')
+\tkzDrawArc(M,T')(T)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Radical axis v3}
+% subsection radical_axis_v3 (end)
+
+\subsection{Radical axis v4} % (fold)
+\label{sub:radical_axis_v4}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.O = point : new (0,0)
+ z.B = point : new (5,0)
+ z.Op = point : new (3,0)
+ C.OB = circle : new (z.O,z.B)
+ C.OpB = circle : new (z.Op,z.B)
+ L.EF = C.OB : radical_axis (C.OpB)
+ z.E,z.F = get_points(L.EF)
+ z.M = L.EF : point (1.5)
+ L,_ = C.OB : tangent_from (z.M)
+ _,z.T = get_points (L)
+ L,_ = C.OpB : tangent_from (z.M)
+ _,z.Tp = get_points (L)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(O,B O',B)
+ \tkzDrawSegments(M,T M,T')
+ \tkzDrawLine[add=1 and 1](E,F)
+ \tkzDrawLine[add=.3 and .3](O,O')
+ \tkzDrawPoints(O,O',B,E,F,T,T',M)
+ \tkzLabelPoints[below right](O,O',B,E,F,T,T')
+ \tkzDrawArc(M,T)(B)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\begin{tkzelements}
+ z.O = point : new (0,0)
+ z.B = point : new (5,0)
+ z.Op = point : new (3,0)
+ C.OB = circle : new (z.O,z.B)
+ C.OpB = circle : new (z.Op,z.B)
+ L.EF = C.OB : radical_axis (C.OpB)
+ z.E,z.F = get_points(L.EF)
+ z.M = L.EF : point (1.5)
+ L,_ = C.OB : tangent_from (z.M)
+ _,z.T = get_points (L)
+ L,_ = C.OpB : tangent_from (z.M)
+ _,z.Tp = get_points (L)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(O,B O',B)
+\tkzDrawSegments(M,T M,T')
+\tkzDrawLine[add=1 and 1](E,F)
+\tkzDrawLine[add=.3 and .3](O,O')
+\tkzDrawPoints(O,O',B,E,F,T,T',M)
+\tkzLabelPoints[below right](O,O',B,E,F,T,T')
+\tkzDrawArc(M,T)(B)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Radical axis v4}
+% subsection radical_axis_v4 (end)
+
+\subsection{Radical center} % (fold)
+\label{sub:radical_center}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.O = point : new (0,0)
+ z.x = point : new (1,0)
+ z.y = point : new (4,0)
+ z.z = point : new (2,0)
+ z.Op = point : new (4,2)
+ z.P = point : new (2,2.5)
+ C.Ox = circle : new (z.O,z.x)
+ C.Pz = circle : new (z.P,z.z)
+ C.Opy = circle : new (z.Op,z.y)
+ z.ap,z.a = intersection (C.Ox,C.Pz)
+ z.bp,z.b = intersection (C.Opy,C.Pz)
+ L.aap = line : new (z.a,z.ap)
+ L.bbp = line : new (z.b,z.bp)
+ z.X = intersection (L.aap,L.bbp)
+ L.OOp = line : new (z.O,z.Op)
+ z.H = L.OOp : projection (z.X)
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(O,a O',b P,z)
+ \tkzDrawLines[red](a,X b',X H,X O,O')
+ \tkzDrawPoints(O,O',P,a,a',b,b',X,H)
+ \tkzLabelPoints[below right](O,O',P,H)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.O = point : new (0,0)
+z.x = point : new (1,0)
+z.y = point : new (4,0)
+z.z = point : new (2,0)
+z.Op = point : new (4,2)
+z.P = point : new (2,2.5)
+C.Ox = circle : new (z.O,z.x)
+C.Pz = circle : new (z.P,z.z)
+C.Opy = circle : new (z.Op,z.y)
+z.ap,z.a = intersection (C.Ox,C.Pz)
+z.bp,z.b = intersection (C.Opy,C.Pz)
+L.aap = line : new (z.a,z.ap)
+L.bbp = line : new (z.b,z.bp)
+z.X = intersection (L.aap,L.bbp)
+L.OOp = line : new (z.O,z.Op)
+z.H = L.OOp : projection (z.X)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(O,a O',b P,z)
+\tkzDrawLines[red](a,X b',X H,X O,O')
+\tkzDrawPoints(O,O',P,a,a',b,b',X,H)
+\tkzLabelPoints[below right](O,O',P,H)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Radical center}
+% subsection radical_center (end)
+
+\subsection{Hexagram} % (fold)
+\label{sub:hexagram}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (5 , 1)
+ L.AB = line : new (z.A,z.B)
+ z.C = point: new (.8 , 3)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ z.N = T.ABC.eulercenter
+ z.G = T.ABC.centroid
+ z.O = T.ABC.circumcenter
+ z.H = T.ABC.orthocenter
+ z.Ma,z.Mb,z.Mc = get_points (T.ABC : medial ())
+ z.Ha,z.Hb,z.Hc = get_points (T.ABC : orthic ())
+ z.Ea,z.Eb,z.Ec = get_points (T.ABC: extouch())
+ L.euler = T.ABC : euler_line ()
+ C.circum = T.ABC : circum_circle ()
+ C.euler = T.ABC : euler_circle ()
+ z.I,z.J = intersection (L.euler,C.euler)
+ E = ellipse: foci (z.H,z.O,z.I)
+ a = E.Rx
+ b = E.Ry
+ ang = math.deg(E.slope)
+ L.AH = line: new (z.A,z.H)
+ L.BH = line: new (z.B,z.H)
+ L.CH = line: new (z.C,z.H)
+ z.X = intersection (L.AH,C.circum)
+ _,z.Y = intersection (L.BH,C.circum)
+ _,z.Z = intersection (L.CH,C.circum)
+ L.BC = line: new (z.B,z.C)
+ L.XO = line: new (z.X,z.O)
+ L.YO = line: new (z.Y,z.O)
+ L.ZO = line: new (z.Z,z.O)
+ z.x = intersection (L.BC,L.XO)
+ z.U = intersection (L.XO,E)
+ _,z.V = intersection (L.YO,E)
+ _,z.W = intersection (L.ZO,E)
+ set_lua_to_tex {'a','b','ang'}
+ \end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawCircles[red](N,Ma O,A)
+ \tkzDrawSegments(A,X B,Y C,Z B,Hb C,Hc X,O Y,O Z,O)
+ \tkzDrawPolygon[red](U,V,W)
+ \tkzLabelPoints[red](U,V,W)
+ \tkzLabelPoints(A,B,C,X,Y,Z)
+ \tkzDrawLine[blue](I,J)
+ \tkzLabelPoints[blue,right](O,N,G,H,I,J)
+ \tkzDrawPoints(I,J,U,V,W)
+ \tkzDrawPoints(A,B,C,N,G,H,O,X,Y,Z,Ma,Mb,Mc,Ha,Hb,Hc)
+ \tkzDrawEllipse[blue](N,\a,\b,\ang)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = 1.5
+E = {}
+z.A = point: new (0 , 0)
+z.B = point: new (5 , 1)
+L.AB = line : new (z.A,z.B)
+z.C = point: new (.8 , 3)
+T.ABC = triangle: new (z.A,z.B,z.C)
+z.N = T.ABC.eulercenter
+z.G = T.ABC.centroid
+z.O = T.ABC.circumcenter
+z.H = T.ABC.orthocenter
+z.Ma,z.Mb,z.Mc = get_points (T.ABC : medial ())
+z.Ha,z.Hb,z.Hc = get_points (T.ABC : orthic ())
+z.Ea,z.Eb,z.Ec = get_points (T.ABC: extouch())
+L.euler = T.ABC : euler_line ()
+C.circum = T.ABC : circum_circle ()
+C.euler = T.ABC : euler_circle ()
+z.I,z.J = intersection (L.euler,C.euler)
+ E = ellipse: foci (z.H,z.O,z.I)
+a = E.Rx
+b = E.Ry
+ang = math.deg(E.slope)
+L.AH = line: new (z.A,z.H)
+L.BH = line: new (z.B,z.H)
+L.CH = line: new (z.C,z.H)
+z.X = intersection (L.AH,C.circum)
+_,z.Y = intersection (L.BH,C.circum)
+_,z.Z = intersection (L.CH,C.circum)
+L.BC = line: new (z.B,z.C)
+L.XO = line: new (z.X,z.O)
+L.YO = line: new (z.Y,z.O)
+L.ZO = line: new (z.Z,z.O)
+z.x = intersection (L.BC,L.XO)
+z.U = intersection (L.XO,E)
+_,z.V = intersection (L.YO,E)
+_,z.W = intersection (L.ZO,E)
+set_lua_to_tex {'a','b','ang'}
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawCircles[red](N,Ma O,A)
+\tkzDrawSegments(A,X B,Y C,Z B,Hb C,Hc X,O Y,O Z,O)
+\tkzDrawPolygon[red](U,V,W)
+\tkzLabelPoints[red](U,V,W)
+\tkzLabelPoints(A,B,C,X,Y,Z)
+\tkzDrawLine[blue](I,J)
+\tkzLabelPoints[blue,right](O,N,G,H,I,J)
+\tkzDrawPoints(I,J,U,V,W)
+\tkzDrawPoints(A,B,C,N,G,H,O,X,Y,Z,Ma,Mb,Mc,Ha,Hb,Hc)
+\tkzDrawEllipse[blue](N,\a,\b,\ang)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Hexagram Lemoine,Pascal}
+% subsection hexagram (end)
+
+\subsection{Gold Arbelos properties} % (fold)
+\label{sub:gold_arbelos_properties}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point : new(0,0)
+ z.B = point : new(10,0)
+ z.C = gold_segment_ (z.A,z.B)
+ L.AB = line:new (z.A,z.B)
+ z.O_1 = L.AB.mid
+ L.AC = line:new (z.A,z.C)
+ z.O_2 = L.AC.mid
+ L.CB = line:new (z.C,z.B)
+ z.O_3 = L.CB.mid
+ C1 = circle:new (z.O_1,z.B)
+ C2 = circle:new (z.O_2,z.C)
+ C3 = circle:new (z.O_3,z.B)
+ z.Q = C2.north
+ z.P = C3.north
+ L1 = line:new (z.O_2,z.O_3)
+ z.M_0 = L1:harmonic_ext (z.C)
+ L2 = line:new (z.O_1,z.O_2)
+ z.M_1 = L2:harmonic_int (z.A)
+ L3 = line:new (z.O_1,z.O_3)
+ z.M_2 = L3:harmonic_int (z.B)
+ Lbq = line:new (z.B,z.Q)
+ Lap = line:new (z.A,z.P)
+ z.S = intersection (Lbq,Lap)
+ z.x = z.C: north ()
+ L = line : new (z.C,z.x)
+ z.D,_ = intersection (L,C1)
+ L.CD = line :new (z.C,z.D)
+ z.O_7 = L.CD.mid
+ C.DC = circle: new (z.D,z.C)
+ z.U,z.V = intersection (C.DC,C1)
+ L.UV = line :new (z.U,z.V)
+ z.R ,z.S = L.UV : set_projection (z.O_2,z.O_3)
+ L.O1D = line : new (z.O_1,z.D)
+ z.W = intersection (L.UV,L.O1D)
+ z.O = C.DC : inversion (z.W)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles[teal](O_1,B)
+ \tkzDrawSemiCircles[thin,teal](O_2,C O_3,B)
+ \tkzDrawArc[purple,delta=0](D,V)(U)
+ \tkzDrawCircle[new](O_7,C)
+ \tkzDrawSegments[thin,purple](A,D D,B C,R C,S C,D U,V)
+ \tkzDrawSegments[thin,red](O,D A,O O,B)
+ \tkzDrawPoints(A,B,C,D,O_7) %,
+ \tkzDrawPoints(O_1,O_2,O_3,U,V,R,S,W,O)
+ \tkzDrawSegments[cyan](O_3,S O_2,R)
+ \tkzDrawSegments[very thin](A,B)
+ \tkzDrawSegments[cyan,thin](C,U U,D)
+ \tkzMarkRightAngles[size=.2,fill=gray!40,opacity=.4](D,C,A A,D,B
+ D,S,C D,W,V O_3,S,U O_2,R,U)
+ \tkzFillAngles[cyan!40,opacity=.4](B,A,D A,D,O_1
+ C,D,B D,C,R B,C,S A,R,O_2)
+ \tkzFillAngles[green!40,opacity=.4](S,C,D W,R,D
+ D,B,C R,C,A O_3,S,B)
+ \tkzLabelPoints[below](C,O_2,O_3,O_1)
+ \tkzLabelPoints[above](D)
+ \tkzLabelPoints[below](O)
+ \tkzLabelPoints[below left](A)
+ \tkzLabelPoints[above left](R)
+ \tkzLabelPoints[above right](S)
+ \tkzLabelPoints[left](V)
+ \tkzLabelPoints[below right](B,U,W,O_7)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.A = point : new(0,0)
+z.B = point : new(10,0)
+z.C = gold_segment_ (z.A,z.B)
+L.AB = line:new (z.A,z.B)
+z.O_1 = L.AB.mid
+L.AC = line:new (z.A,z.C)
+z.O_2 = L.AC.mid
+L.CB = line:new (z.C,z.B)
+z.O_3 = L.CB.mid
+C1 = circle:new (z.O_1,z.B)
+C2 = circle:new (z.O_2,z.C)
+C3 = circle:new (z.O_3,z.B)
+z.Q = C2.north
+z.P = C3.north
+L1 = line:new (z.O_2,z.O_3)
+z.M_0 = L1:harmonic_ext (z.C)
+L2 = line:new (z.O_1,z.O_2)
+z.M_1 = L2:harmonic_int (z.A)
+L3 = line:new (z.O_1,z.O_3)
+z.M_2 = L3:harmonic_int (z.B)
+Lbq = line:new (z.B,z.Q)
+Lap = line:new (z.A,z.P)
+z.S = intersection (Lbq,Lap)
+z.x = z.C: north ()
+L = line : new (z.C,z.x)
+z.D,_ = intersection (L,C1)
+L.CD = line :new (z.C,z.D)
+z.O_7 = L.CD.mid
+C.DC = circle: new (z.D,z.C)
+z.V,z.U = intersection (C.DC,C1)
+L.UV = line :new (z.U,z.V)
+z.R ,z.S = L.UV : set_projection (z.O_2,z.O_3)
+L.O1D = line : new (z.O_1,z.D)
+z.W = intersection (L.UV,L.O1D)
+z.O = C.DC : inversion (z.W)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles[teal](O_1,B)
+\tkzDrawSemiCircles[thin,teal](O_2,C O_3,B)
+\tkzDrawArc[purple,delta=0](D,V)(U)
+\tkzDrawCircle[new](O_7,C)
+\tkzDrawSegments[thin,purple](A,D D,B C,R C,S C,D U,V)
+\tkzDrawSegments[thin,red](O,D A,O O,B)
+\tkzDrawPoints(A,B,C,D,O_7) %,
+\tkzDrawPoints(O_1,O_2,O_3,U,V,R,S,W,O)
+\tkzDrawSegments[cyan](O_3,S O_2,R)
+\tkzDrawSegments[very thin](A,B)
+\tkzDrawSegments[cyan,thin](C,U U,D)
+\tkzMarkRightAngles[size=.2,fill=gray!40,opacity=.4](D,C,A A,D,B
+ D,S,C D,W,V O_3,S,U O_2,R,U)
+\tkzFillAngles[cyan!40,opacity=.4](B,A,D A,D,O_1
+ C,D,B D,C,R B,C,S A,R,O_2)
+\tkzFillAngles[green!40,opacity=.4](S,C,D W,R,D
+ D,B,C R,C,A O_3,S,B)
+\tkzLabelPoints[below](C,O_2,O_3,O_1)
+\tkzLabelPoints[above](D)
+\tkzLabelPoints[below](O)
+\tkzLabelPoints[below left](A)
+\tkzLabelPoints[above left](R)
+\tkzLabelPoints[above right](S)
+\tkzLabelPoints[left](V)
+\tkzLabelPoints[below right](B,U,W,O_7)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Gold Arbelos properties}
+% subsection gold_arbelos_properties (end)
+
+\subsection{Apollonius circle v1 with inversion} % (fold)
+\label{sub:apollonius_circle_v1_with_inversion}
+\begin{tkzexample}[code only,small]
+\begin{tkzelements}
+scale = .75
+ z.A = point: new (0,0)
+ z.B = point: new (6,0)
+ z.C = point: new (0.8,4)
+ T.ABC = triangle : new (z.A,z.B,z.C)
+ C.euler = T.ABC: euler_circle ()
+ z.N,z.Ma = get_points (C.euler)
+ z.I_a,z.I_b,z.I_c = get_points (T.ABC : excentral())
+ z.Ea,z.Eb,z.Ec = get_points (T.ABC : feuerbach ())
+ -- The Feuerbach triangle is the triangle formed by the three points
+ -- of tangency of the nine-point circle with the excircles
+ z.S,z.p = get_points (T.ABC: spieker_circle ())
+ -- z.Xa,z.Xb,z.Xc = get_points (T.ABC : extouch())
+ C.exa = T.ABC : ex_circle ()
+ z.Ia,z.Xa = get_points (C.exa)
+ C.exb = T.ABC : ex_circle (1)
+ z.Ib,z.Xb = get_points (C.exb)
+ C.exc = T.ABC : ex_circle (2)
+ z.Ic,z.Xc = get_points (C.exc)
+ -- S spieker point is the radical center of the last three circles
+ L.fa = line : new (z.S,z.Ea)
+ L.fb = line : new (z.S,z.Eb)
+ L.fc = line : new (z.S,z.Ec)
+ z.f_a = intersection (L.fa,C.exa)
+ z.f_b = intersection (L.fb,C.exb)
+ _,z.f_c = intersection (L.fc,C.exc)
+ T = triangle : new ( z.f_a, z.f_b , z.f_c )
+ z.o = T.circumcenter
+ _,z.l = get_points (C.exa : orthogonal_from (z.S))
+ -- S center of inversion !!
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles[red](o,f_a N,Ma)
+ \tkzDrawPoints[red](f_a,f_b,f_c,Ea,Eb,Ec,o,N)
+ \tkzClipCircle(o,f_a)
+ \tkzDrawLines[add=3 and 3](A,B A,C B,C)
+ \tkzDrawCircles(I_a,Xa I_b,Xb I_c,Xc)
+ \tkzDrawCircles[cyan](S,l)
+ \tkzDrawPoints(A,B,C)
+ \tkzDrawPoints[cyan](S)
+ \tkzDrawSegments[dashed,red](S,f_a S,f_b S,f_c)
+ \tkzDrawSegments[dashed,teal](o,f_a o,f_b o,f_c)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .5
+z.A = point: new (0,0)
+z.B = point: new (6,0)
+z.C = point: new (0.8,4)
+T.ABC = triangle : new (z.A,z.B,z.C)
+C.euler = T.ABC: euler_circle ()
+z.N,z.Ma = get_points (C.euler)
+z.I_a,z.I_b,z.I_c = get_points (T.ABC : excentral())
+z.Ea,z.Eb,z.Ec = get_points (T.ABC : feuerbach ())
+-- The Feuerbach triangle is the triangle formed by the three points of tangency of the nine-point circle with the excircles
+z.S,z.p = get_points (T.ABC: spieker_circle ())
+ -- z.Xa,z.Xb,z.Xc = get_points (T.ABC : extouch())
+C.exa = T.ABC : ex_circle ()
+z.Ia,z.Xa = get_points (C.exa)
+C.exb = T.ABC : ex_circle (1)
+z.Ib,z.Xb = get_points (C.exb)
+C.exc = T.ABC : ex_circle (2)
+z.Ic,z.Xc = get_points (C.exc)
+
+-- S spieker point is the radical center of the last three circles
+L.fa = line : new (z.S,z.Ea)
+L.fb = line : new (z.S,z.Eb)
+L.fc = line : new (z.S,z.Ec)
+z.f_a = intersection (L.fa,C.exa)
+z.f_b = intersection (L.fb,C.exb)
+_,z.f_c = intersection (L.fc,C.exc)
+T = triangle : new ( z.f_a, z.f_b , z.f_c )
+z.o = T.circumcenter
+_,z.l = get_points (C.exa : orthogonal_from (z.S))
+-- S center of inversion !!
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles[red](o,f_a N,Ma)
+\tkzDrawPoints[red](f_a,f_b,f_c,Ea,Eb,Ec,o,N)
+\tkzClipCircle(o,f_a)
+\tkzDrawLines[add=3 and 3](A,B A,C B,C)
+\tkzDrawCircles(I_a,Xa I_b,Xb I_c,Xc)
+\tkzDrawCircles[cyan](S,l)
+\tkzDrawPoints(A,B,C)
+\tkzDrawPoints[cyan](S)
+\tkzDrawSegments[dashed,red](S,f_a S,f_b S,f_c)
+\tkzDrawSegments[dashed,teal](o,f_a o,f_b o,f_c)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Apollonius circle V1}
+% subsection apollonius_circle_v1_with_inversion (end)
+
+\subsection{Apollonius circle v2} % (fold)
+\label{sub:apollonius_circle_v2}
+ \begin{tkzexample}[small,code only]
+\begin{tkzelements}
+ scale = .5
+ z.A = point: new (0,0)
+ z.B = point: new (6,0)
+ z.C = point: new (0.8,4)
+ T.ABC = triangle: new(z.A,z.B,z.C)
+ z.O = T.ABC.circumcenter
+ z.H = T.ABC.orthocenter
+ z.G = T.ABC.centroid
+ z.L = T.ABC: lemoine_point ()
+ z.S = T.ABC: spieker_center ()
+ C.euler = T.ABC: euler_circle ()
+ z.N,z.Ma = get_points (C.euler)
+ C.exA = T.ABC : ex_circle ()
+ z.Ja,z.Xa = get_points (C.exA)
+ C.exB = T.ABC : ex_circle (1)
+ z.Jb,z.Xb = get_points (C.exB)
+ C.exC = T.ABC : ex_circle (2)
+ z.Jc,z.Xc = get_points (C.exC)
+ L.OL = line: new (z.O,z.L)
+ L.NS = line: new (z.N,z.S)
+ z.o = intersection (L.OL,L.NS) -- center of Apollonius circle
+ L.NMa = line: new (z.N,z.Ma)
+ L.ox = L.NMa: ll_from (z.o)
+ L.MaS = line: new (z.Ma,z.S)
+ z.t = intersection (L.ox,L.MaS) -- through
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[add=1 and 1](A,B A,C B,C)
+ \tkzDrawCircles(Ja,Xa Jb,Xb Jc,Xc o,t N,Ma) %
+ \tkzClipCircle(o,t)
+ \tkzDrawLines[red](o,L N,o Ma,t)
+ \tkzDrawLines[cyan,add=4 and 4](Ma,N o,t)
+ \tkzDrawPoints(A,B,C,Ma,Ja,Jb,Jc)
+ \tkzDrawPoints[red](N,O,L,S,o,t)
+ \tkzLabelPoints[right,font=\tiny](A,B,C,Ja,Jb,Jc,O,N,L,S,Ma,o)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale =.5
+z.A = point: new (0,0)
+z.B = point: new (6,0)
+z.C = point: new (0.8,4)
+T.ABC = triangle: new(z.A,z.B,z.C)
+z.O = T.ABC.circumcenter
+z.H = T.ABC.orthocenter
+z.G = T.ABC.centroid
+z.L = T.ABC: lemoine_point ()
+z.S = T.ABC: spieker_center ()
+C.euler = T.ABC: euler_circle ()
+z.N,z.Ma = get_points (C.euler)
+C.exA = T.ABC : ex_circle ()
+z.Ja,z.Xa = get_points (C.exA)
+C.exB = T.ABC : ex_circle (1)
+z.Jb,z.Xb = get_points (C.exB)
+C.exC = T.ABC : ex_circle (2)
+z.Jc,z.Xc = get_points (C.exC)
+L.OL = line: new (z.O,z.L)
+L.NS = line: new (z.N,z.S)
+z.o = intersection (L.OL,L.NS) -- center of Apollonius circle
+L.NMa = line: new (z.N,z.Ma)
+L.ox = L.NMa: ll_from (z.o)
+L.MaS = line: new (z.Ma,z.S)
+z.t = intersection (L.ox,L.MaS) -- through
+\end{tkzelements}
+
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines[add=1 and 1](A,B A,C B,C)
+\tkzDrawCircles(Ja,Xa Jb,Xb Jc,Xc o,t N,Ma) %
+\tkzClipCircle(o,t)
+\tkzDrawLines[red](o,L N,o Ma,t)
+\tkzDrawLines[cyan,add=4 and 4](Ma,N o,t)
+\tkzDrawPoints(A,B,C,Ma,Ja,Jb,Jc)
+\tkzDrawPoints[red](N,O,L,S,o,t)
+\tkzLabelPoints[right,font=\tiny](A,B,C,Ja,Jb,Jc,O,N,L,S,Ma,o)
+\end{tikzpicture}
+\hspace*{\fill}
+% subsection apollonius_circle_v2 (end)
+
+
+\subsection{Orthogonal circles v1} % (fold)
+\label{sub:orthogonal_circles_v1}
+
+\begin{tkzexample}[small,code only]
+\begin{tkzelements}
+ scale = .6
+ z.C_1 = point: new (0,0)
+ z.C_2 = point: new (8,0)
+ z.A = point: new (5,0)
+ C = circle: new (z.C_1,z.A)
+ z.S,z.T = get_points (C: orthogonal_from (z.C_2))
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(C_1,T C_2,T)
+ \tkzDrawSegments(C_1,T C_2,T)
+ \tkzDrawLine(C_1,C_2)
+ \tkzMarkRightAngle[fill=teal,%
+ opacity=.2,size=1](C_1,T,C_2)
+ \tkzDrawPoints(C_1,C_2,T)
+ \tkzLabelPoints(C_1,C_2)
+ \tkzLabelPoints[above](T)
+ \tkzLabelSegment[left](C_1,T){r}
+ \tkzLabelSegments[right](C_2,T){\gamma}
+ \tkzLabelSegment[below](C_1,C_2){d}
+ \tkzLabelCircle[left=10pt](C_1,T)(180){Circle 1}
+ \tkzLabelCircle[right=10pt](C_2,T)(180){Circle 2}
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .6
+z.C_1 = point: new (0,0)
+z.C_2 = point: new (8,0)
+z.A = point: new (5,0)
+C = circle: new (z.C_1,z.A)
+z.S,z.T = get_points (C: orthogonal_from (z.C_2))
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(C_1,T C_2,T)
+\tkzDrawSegments(C_1,T C_2,T)
+\tkzDrawLine(C_1,C_2)
+\tkzMarkRightAngle[fill=teal,opacity=.2,size=.5](C_1,T,C_2)
+\tkzDrawPoints(C_1,C_2,T)
+\tkzLabelPoints(C_1,C_2)
+\tkzLabelPoints[above](T)
+\tkzLabelSegment[left](C_1,T){r}
+\tkzLabelSegments[right](C_2,T){\gamma}
+\tkzLabelSegment[below](C_1,C_2){d}
+\tkzLabelCircle[left=10pt](C_1,T)(180){Circle 1}
+\tkzLabelCircle[right=10pt](C_2,T)(180){Circle 2}
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Orthogonal circles v1 }
+% subsection orthogonal_circles_v1 (end)
+
+\subsection{Orthogonal circles v2} % (fold)
+\label{sub:orthogonal_circles_v2}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .75
+ z.O = point: new (2,2)
+ z.Op = point: new (-4,1)
+ z.P = point: polar (4,0)
+ C.OP = circle: new (z.O,z.P)
+ C.Oz1,C.Oz2 = C.OP : orthogonal_from (z.Op)
+ z.z1 = C.Oz1.through
+ z.z2 = C.Oz2.through
+ L.OP = line : new (z.O,z.P)
+ C.Opz1 = circle: new (z.Op,z.z1)
+ L.T,L.Tp = C.Opz1 : tangent_from (z.O)
+ z.T = L.T.pb
+ z.Tp = L.Tp.pb
+ L.OOp = line : new (z.O,z.Op)
+ z.M = L.OOp.mid
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle[red](O,P)
+ \tkzDrawCircle[purple](O',z1)
+ \tkzDrawCircle[cyan](M,T)
+ \tkzDrawSegments(O',T O,T' O',T')
+ \tkzDrawSegment[purple](O',T)
+ \tkzDrawSegments[red](O,T O,O')
+ \tkzDrawPoints(O,O',T,T',M)
+ \tkzMarkRightAngle[fill=gray!10](O',T,O)
+ \tkzLabelPoint[below](O){$O$}
+ \tkzLabelPoint[above](T){$T$}
+ \tkzLabelPoint[above](M){$M$}
+ \tkzLabelPoint[below](T'){$T'$}
+ \tkzLabelPoint[above left](O'){$O'$}
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .75
+z.O = point: new (2,2)
+z.Op = point: new (-4,1)
+z.P = point: polar (4,0)
+C.OP = circle: new (z.O,z.P)
+C.Oz1,C.Oz2 = C.OP : orthogonal_from (z.Op)
+z.z1 = C.Oz1.through
+z.z2 = C.Oz2.through
+L.OP = line : new (z.O,z.P)
+C.Opz1 = circle: new (z.Op,z.z1)
+L.T,L.Tp = C.Opz1 : tangent_from (z.O)
+z.T = L.T.pb
+z.Tp = L.Tp.pb
+L.OOp = line : new (z.O,z.Op)
+z.M = L.OOp.mid
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircle[red](O,P)
+\tkzDrawCircle[purple](O',z1)
+\tkzDrawCircle[cyan](M,T)
+\tkzDrawSegments(O',T O,T' O',T')
+\tkzDrawSegment[purple](O',T)
+\tkzDrawSegments[red](O,T O,O')
+\tkzDrawPoints(O,O',T,T',M)
+\tkzMarkRightAngle[fill=gray!10](O',T,O)
+\tkzLabelPoint[below](O){$O$}
+\tkzLabelPoint[above](T){$T$}
+\tkzLabelPoint[above](M){$M$}
+\tkzLabelPoint[below](T'){$T'$}
+\tkzLabelPoint[above left](O'){$O'$}
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Orthogonal circles v2}
+% subsection orthogonal_circles_v2 (end)
+
+\subsection{Orthogonal circle to two circles} % (fold)
+\label{sub:orthogonal_circle_to_two_circles}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.O = point : new (-1,0)
+ z.B = point : new (0,2)
+ z.Op = point : new (4,-1)
+ z.D = point : new (4,0)
+ C.OB = circle : new (z.O,z.B)
+ C.OpD = circle : new (z.Op,z.D)
+ z.E,z.F = get_points (C.OB : radical_axis (C.OpD))
+ L.EF = line : new (z.E,z.F)
+ z.M = L.EF : point (2.25)
+ L.T,L.Tp = C.OB : tangent_from (z.M)
+ L.K,L.Kp = C.OpD : tangent_from (z.M)
+ z.T = L.T.pb
+ z.K = L.K.pb
+ z.Tp = L.Tp.pb
+ z.Kp = L.Kp.pb
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(O,B O',D)
+ \tkzDrawLine[add=1 and 2,cyan](E,F)
+ \tkzDrawLines[add=.5 and .5,orange](O,O' O,T O,T')
+ \tkzDrawSegments[cyan](M,T M,T' M,K M,K')
+ \tkzDrawCircle(M,T)
+ \tkzDrawPoints(O,O',T,M,T',K,K')
+ \tkzLabelPoints(O,O',T,T',M,K,K')
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.O = point : new (-1,0)
+z.B = point : new (0,2)
+z.Op = point : new (4,-1)
+z.D = point : new (4,0)
+C.OB = circle : new (z.O,z.B)
+C.OpD = circle : new (z.Op,z.D)
+z.E,z.F = get_points (C.OB : radical_axis (C.OpD))
+L.EF = line : new (z.E,z.F)
+z.M = L.EF : point (2.25)
+L.T,L.Tp = C.OB : tangent_from (z.M)
+L.K,L.Kp = C.OpD : tangent_from (z.M)
+z.T = L.T.pb
+z.K = L.K.pb
+z.Tp = L.Tp.pb
+z.Kp = L.Kp.pb
+\end{tkzelements}
+
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(O,B O',D)
+\tkzDrawLine[add=1 and 2,cyan](E,F)
+\tkzDrawLines[add=.5 and .5,orange](O,O' O,T O,T')
+\tkzDrawSegments[cyan](M,T M,T' M,K M,K')
+\tkzDrawCircle(M,T)
+\tkzDrawPoints(O,O',T,M,T',K,K')
+\tkzLabelPoints(O,O',T,T',M,K,K')
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Orthogonal to two circles}
+% \subsection{Orthogonal to two circles} % (fold)
+
+\subsection{Midcircles} % (fold)
+\label{sub:midcircles}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (10 , 0)
+ L.AB = line : new (z.A,z.B)
+ z.C = L.AB: gold_ratio ()
+ L.AC = line : new (z.A,z.C)
+ L.CB = line : new (z.C,z.B)
+ z.O_0 = L.AB.mid
+ z.O_1 = L.AC.mid
+ z.O_2 = L.CB.mid
+ C.O0B = circle : new (z.O_0,z.B)
+ C.O1C = circle : new (z.O_1,z.C)
+ C.O2C = circle : new (z.O_2,z.B)
+ z.Q = C.O1C : midarc (z.C,z.A)
+ z.P = C.O2C : midarc (z.B,z.C)
+ L.O1O2 = line : new (z.O_1,z.O_2)
+ L.O0O1 = line : new (z.O_0,z.O_1)
+ L.O0O2 = line : new (z.O_0,z.O_2)
+ z.M_0 = L.O1O2 : harmonic_ext (z.C)
+ z.M_1 = L.O0O1 : harmonic_int (z.A)
+ z.M_2 = L.O0O2 : harmonic_int (z.B)
+ L.BQ = line : new (z.B,z.Q)
+ L.AP = line : new (z.A,z.P)
+ z.S = intersection (L.BQ,L.AP)
+ L.CS = line : new (z.C,z.S)
+ C.M1A = circle : new (z.M_1,z.A)
+ C.M2B = circle : new (z.M_2,z.B)
+ z.P_0 = intersection (L.CS,C.O0B)
+ z.P_1 = intersection (C.M2B,C.O1C)
+ z.P_2 = intersection (C.M1A,C.O2C)
+ T.P012 = triangle : new (z.P_0,z.P_1,z.P_2)
+ z.O_4 = T.P012.circumcenter
+ T.CP12 = triangle : new (z.C,z.P_1,z.P_2)
+ z.O_5 = T.CP12.circumcenter
+ z.BN = z.B : north ()
+ L.BBN = line : new (z.B,z.BN)
+ L.M1P2 = line : new (z.M_1,z.P_2)
+ z.J = intersection (L.BBN,L.M1P2)
+ L.AP0 = line : new (z.A,z.P_0)
+ L.BP0 = line : new (z.B,z.P_0)
+ C.O4P0 = circle : new (z.O_4,z.P_0)
+ _,z.G = intersection (L.AP0,C.O4P0)
+ z.H = intersection (L.BP0,C.O4P0)
+ z.Ap = z.M_1: symmetry (z.A)
+ z.H_4,z.F,z.E,z.H_0 = L.AB : set_projection (z.O_4,z.G,z.H,z.P_0)
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle[thin,fill=green!10](O_4,P_0)
+ \tkzDrawCircle[purple,fill=purple!10,opacity=.5](O_5,C)
+ \tkzDrawSemiCircles[teal](O_0,B)
+ \tkzDrawSemiCircles[thin,teal,fill=teal!20,opacity=.5](O_1,C O_2,B)
+ \tkzDrawSemiCircles[new](M_2,B)
+ \tkzDrawSemiCircles[new](M_1,A')
+ \tkzDrawArc[purple,delta=0](M_0,P_0)(C)
+ \tkzDrawSegments[very thin](A,B A,P B,Q)
+ \tkzDrawSegments[step 1](O_0,P_0 B,J G,J G,O_0 H,O_2)
+ \tkzDrawSegments[ultra thin,purple](M_1,P_0 M_2,P_0 M_1,M_0 M_0,P_1 M_0,P_0 M_1,J)
+ \tkzDrawPoints(A,B,C,P_0,P_2,P_1,M_0,M_1,M_2,J,P,Q,S)
+ \tkzDrawPoints(O_0,O_1,O_2,O_4,O_5,G,H)
+ \tkzMarkRightAngle[size=.2,fill=gray!20,opacity=.4](O_0,P_0,M_0)
+ \tkzLabelPoints[below](A,B,C,M_0,M_1,M_2,O_1,O_2,O_0)
+ \tkzLabelPoints[above](P_0,O_5,O_4)
+ \tkzLabelPoints[above](P_1,J)
+ \tkzLabelPoints[above](P_2,P,Q,S)
+ \tkzLabelPoints[above right](H,E)
+ \tkzLabelPoints[above left](F,G)
+ \tkzLabelPoints[below right](H_0)
+ \tkzLabelCircle[below=4pt,font=\scriptsize](O_1,C)(80){$(\beta)$}
+ \tkzLabelCircle[below=4pt,font=\scriptsize](O_2,B)(80){$(\gamma)$}
+ \tkzLabelCircle[below=4pt,font=\scriptsize](O_0,B)(110){$(\alpha)$}
+ \tkzLabelCircle[left,font=\scriptsize](O_4,P_2)(60){$(\delta)$}
+ \tkzLabelCircle[above left,font=\scriptsize](O_5,C)(40){$(\epsilon)$}
+ \end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.A = point: new (0 , 0)
+z.B = point: new (10 , 0)
+L.AB = line : new (z.A,z.B)
+z.C = L.AB: gold_ratio ()
+L.AC = line : new (z.A,z.C)
+L.CB = line : new (z.C,z.B)
+z.O_0 = L.AB.mid
+z.O_1 = L.AC.mid
+z.O_2 = L.CB.mid
+C.O0B = circle : new (z.O_0,z.B)
+C.O1C = circle : new (z.O_1,z.C)
+C.O2C = circle : new (z.O_2,z.B)
+z.Q = C.O1C : midarc (z.C,z.A)
+z.P = C.O2C : midarc (z.B,z.C)
+L.O1O2 = line : new (z.O_1,z.O_2)
+L.O0O1 = line : new (z.O_0,z.O_1)
+L.O0O2 = line : new (z.O_0,z.O_2)
+z.M_0 = L.O1O2 : harmonic_ext (z.C)
+z.M_1 = L.O0O1 : harmonic_int (z.A)
+z.M_2 = L.O0O2 : harmonic_int (z.B)
+L.BQ = line : new (z.B,z.Q)
+L.AP = line : new (z.A,z.P)
+z.S = intersection (L.BQ,L.AP)
+L.CS = line : new (z.C,z.S)
+C.M1A = circle : new (z.M_1,z.A)
+C.M2B = circle : new (z.M_2,z.B)
+z.P_0 = intersection (L.CS,C.O0B)
+z.P_1 = intersection (C.M2B,C.O1C)
+z.P_2 = intersection (C.M1A,C.O2C)
+T.P012 = triangle : new (z.P_0,z.P_1,z.P_2)
+z.O_4 = T.P012.circumcenter
+T.CP12 = triangle : new (z.C,z.P_1,z.P_2)
+z.O_5 = T.CP12.circumcenter
+z.BN = z.B : north ()
+L.BBN = line : new (z.B,z.BN)
+L.M1P2 = line : new (z.M_1,z.P_2)
+z.J = intersection (L.BBN,L.M1P2)
+L.AP0 = line : new (z.A,z.P_0)
+L.BP0 = line : new (z.B,z.P_0)
+C.O4P0 = circle : new (z.O_4,z.P_0)
+_,z.G = intersection (L.AP0,C.O4P0)
+z.H = intersection (L.BP0,C.O4P0)
+z.Ap = z.M_1: symmetry (z.A)
+z.H_4,z.F,z.E,z.H_0 = L.AB : set_projection (z.O_4,z.G,z.H,z.P_0)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircle[thin,fill=green!10](O_4,P_0)
+\tkzDrawCircle[purple,fill=purple!10,opacity=.5](O_5,C)
+\tkzDrawSemiCircles[teal](O_0,B)
+\tkzDrawSemiCircles[thin,teal,fill=teal!20,opacity=.5](O_1,C O_2,B)
+\tkzDrawSemiCircles[color = orange](M_2,B)
+\tkzDrawSemiCircles[color = orange](M_1,A')
+\tkzDrawArc[purple,delta=0](M_0,P_0)(C)
+\tkzDrawSegments[very thin](A,B A,P B,Q)
+\tkzDrawSegments[color=cyan](O_0,P_0 B,J G,J G,O_0 H,O_2)
+\tkzDrawSegments[ultra thin,purple](M_1,P_0 M_2,P_0 M_1,M_0 M_0,P_1 M_0,P_0 M_1,J)
+\tkzDrawPoints(A,B,C,P_0,P_2,P_1,M_0,M_1,M_2,J,P,Q,S)
+\tkzDrawPoints(O_0,O_1,O_2,O_4,O_5,G,H)
+\tkzMarkRightAngle[size=.2,fill=gray!20,opacity=.4](O_0,P_0,M_0)
+\tkzLabelPoints[below](A,B,C,M_0,M_1,M_2,O_1,O_2,O_0)
+\tkzLabelPoints[above](P_0,O_5,O_4)
+\tkzLabelPoints[above](P_1,J)
+\tkzLabelPoints[above](P_2,P,Q,S)
+\tkzLabelPoints[above right](H,E)
+\tkzLabelPoints[above left](F,G)
+\tkzLabelPoints[below right](H_0)
+\tkzLabelCircle[below=4pt,font=\scriptsize](O_1,C)(80){$(\beta)$}
+\tkzLabelCircle[below=4pt,font=\scriptsize](O_2,B)(80){$(\gamma)$}
+\tkzLabelCircle[below=4pt,font=\scriptsize](O_0,B)(110){$(\alpha)$}
+\tkzLabelCircle[left,font=\scriptsize](O_4,P_2)(60){$(\delta)$}
+\tkzLabelCircle[above left,font=\scriptsize](O_5,C)(40){$(\epsilon)$}
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Midcircles}
+% subsection midcircles (end)
+
+\subsection{Pencil v1} % (fold)
+\label{sub:pencil_v1}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .75
+ z.A = point : new (0,2)
+ z.B = point : new (0,-2)
+ z.C_0 = point : new (-3,0)
+ z.C_1 = point : new (2,0)
+ z.C_3 = point : new (2.5,0)
+ z.C_5 = point : new (1,0)
+ L.BA = line : new (z.B,z.A)
+ z.M_0 = L.BA : point (1.25)
+ z.M_1 = L.BA : point (1.5)
+ C.C0A = circle : new (z.C_0,z.A)
+ z.x,z.y = get_points (C.C0A : orthogonal_from (z.M_0))
+ z.xp,z.yp = get_points (C.C0A : orthogonal_from (z.M_1))
+ z.O = L.BA.mid
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(C_0,A C_1,A C_3,A C_5,A)
+ \tkzDrawCircles[thick,color=red](M_0,x M_1,x')
+ \tkzDrawCircles[thick,color=blue](O,A)
+ \tkzDrawLines(C_0,C_1 B,M_1)
+ \tkzDrawPoints(A,B,C_0,C_1,M_0,M_1,x,y)
+ \tkzLabelPoints[below right](A,B,C_0,C_1,M_0,M_1,x,y)
+ \tkzLabelLine[pos=1.25,right]( M_0,M_1){$(\Delta)$}
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale=.75
+z.A = point : new (0,2)
+z.B = point : new (0,-2)
+z.C_0 = point : new (-3,0)
+z.C_1 = point : new (2,0)
+z.C_3 = point : new (2.5,0)
+z.C_5 = point : new (1,0)
+L.BA = line : new (z.B,z.A)
+z.M_0 = L.BA : point (1.25)
+z.M_1 = L.BA : point (1.5)
+C.C0A = circle : new (z.C_0,z.A)
+z.x,z.y = get_points (C.C0A : orthogonal_from (z.M_0))
+z.xp,z.yp = get_points (C.C0A : orthogonal_from (z.M_1))
+z.O = L.BA.mid
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(C_0,A C_1,A C_3,A C_5,A)
+\tkzDrawCircles[thick,color=red](M_0,x M_1,x')
+\tkzDrawCircles[thick,color=blue](O,A)
+\tkzDrawLines(C_0,C_1 B,M_1)
+\tkzDrawPoints(A,B,C_0,C_1,M_0,M_1,x,y)
+\tkzLabelPoints[below right](A,B,C_0,C_1,M_0,M_1,x,y)
+\tkzLabelLine[pos=1.25,right]( M_0,M_1){$(\Delta)$}
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Pencil v1}
+% subsection pencil_v1 (end)
+
+\subsection{Pencil v2} % (fold)
+\label{sub:pencil_v2}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale=.75
+ z.A = point : new (0,0)
+ z.B = point : new (1,0)
+ z.C_0 = point : new (-2,0)
+ z.C_1 = point : new (4,0)
+ C.C0A = circle : new (z.C_0,z.A)
+ C.C1B = circle : new (z.C_1,z.B)
+ L.EF = C.C0A : radical_axis (C.C1B)
+ z.M_0 = L.EF : point (2)
+ z.M_1 = L.EF : point (-1)
+ z.M_2 = L.EF : point (-2)
+ C.orth0 = C.C0A : orthogonal_from (z.M_0)
+ C.orth1 = C.C0A : orthogonal_from (z.M_1)
+ C.orth2 = C.C0A : orthogonal_from (z.M_2)
+ z.u = C.orth0.through
+ z.v = C.orth1.through
+ z.t = C.orth2.through
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(C_0,A C_1,B)
+ \tkzDrawCircles[thick,color=red](M_0,u M_1,v M_2,t)
+ \tkzDrawLines[add= .75 and .75](C_0,C_1 M_0,M_1)
+ \tkzDrawPoints(A,B,C_0,C_1,M_0,M_1,M_2)
+ \tkzLabelPoints[below right](A,B,C_0,C_1,M_0,M_1,M_2)
+ \tkzLabelLine[pos=2,right]( M_0,M_1){$(\Delta)$}
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+ scale=.75
+ z.A = point : new (0,0)
+ z.B = point : new (1,0)
+ z.C_0 = point : new (-2,0)
+ z.C_1 = point : new (4,0)
+ C.C0A = circle : new (z.C_0,z.A)
+ C.C1B = circle : new (z.C_1,z.B)
+ L.EF = C.C0A : radical_axis (C.C1B)
+ z.M_0 = L.EF : point (2)
+ z.M_1 = L.EF : point (-1)
+ z.M_2 = L.EF : point (-2)
+ C.orth0 = C.C0A : orthogonal_from (z.M_0)
+ C.orth1 = C.C0A : orthogonal_from (z.M_1)
+ C.orth2 = C.C0A : orthogonal_from (z.M_2)
+ z.u = C.orth0.through
+ z.v = C.orth1.through
+ z.t = C.orth2.through
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(C_0,A C_1,B)
+\tkzDrawCircles[thick,color=red](M_0,u M_1,v M_2,t)
+\tkzDrawLines[add= .75 and .75](C_0,C_1 M_0,M_1)
+\tkzDrawPoints(A,B,C_0,C_1,M_0,M_1,M_2)
+\tkzLabelPoints[below right](A,B,C_0,C_1,M_0,M_1,M_2)
+\tkzLabelLine[pos=2,right]( M_0,M_1){$(\Delta)$}
+\end{tikzpicture}
+\hspace*{\fill}
+%subsection pencil_v2 (end)
+
+\subsection{Power v1} % (fold)
+\label{sub:power_v1}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.O = point : new (0,0)
+ z.A = point : new (2,-2)
+ z.M = point : new (-6,0)
+ L.AM = line : new (z.A,z.M)
+ C.OA = circle : new (z.O,z.A)
+ z.Ap = C.OA : antipode (z.A)
+ z.B = intersection (L.AM, C.OA)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle(O,A)
+ \tkzMarkRightAngle[fill=gray!10](A',B,M)
+ \tkzDrawSegments(M,O A,A' A',B)
+ \tkzDrawPoints(O,A,A',M,B)
+ \tkzLabelPoints(O,A,A',M,B)
+ \tkzDrawSegments[-Triangle](M,A M,A')
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = 1.25
+z.O = point : new (0,0)
+z.A = point : new (2,-2)
+z.M = point : new (-6,0)
+L.AM = line : new (z.A,z.M)
+C.OA = circle : new (z.O,z.A)
+z.Ap = C.OA : antipode (z.A)
+z.B = intersection (L.AM, C.OA)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircle(O,A)
+\tkzMarkRightAngle[fill=gray!10](A',B,M)
+\tkzDrawSegments(M,O A,A' A',B)
+\tkzDrawPoints(O,A,A',M,B)
+\tkzLabelPoints(O,A,A',M,B)
+\tkzDrawSegments[-Triangle](M,A M,A')
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Power v1}
+% subsection power_v1 (end)
+
+\subsection{Power v2} % (fold)
+\label{sub:power_v2}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.O = point : new (0,0)
+ z.A = point : new (2,2)
+ z.M = point : new (-1.5,0)
+ L.AM = line : new (z.A,z.M)
+ C.OA = circle : new (z.O,z.A)
+ z.Ap = C.OA : antipode (z.A)
+ _,z.B = intersection (L.AM, C.OA)
+ z.m = z.M : north(1)
+ L.mM = line : new (z.m,z.M)
+ z.U,z.V = intersection (L.mM,C.OA)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle(O,A)
+ \tkzMarkRightAngle[fill=gray!10](A',B,M)
+ \tkzDrawSegments(M,O A,A' A',B A,B U,V)
+ \tkzDrawPoints(O,A,A',M,B,U,V,m)
+ \tkzLabelPoints(O,A,M,U,V,m)
+ \tkzLabelPoints[below left](A',B)
+ \tkzDrawSegments(M,A M,A')
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = 1.25
+z.O = point : new (0,0)
+z.A = point : new (2,2)
+z.M = point : new (-1.5,0)
+L.AM = line : new (z.A,z.M)
+C.OA = circle : new (z.O,z.A)
+z.Ap = C.OA : antipode (z.A)
+_,z.B = intersection (L.AM, C.OA)
+z.m = z.M : north(1)
+L.mM = line : new (z.m,z.M)
+z.U,z.V = intersection (L.mM,C.OA)
+\end{tkzelements}
+
+\hspace*{\fill}\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircle(O,A)
+\tkzMarkRightAngle[fill=gray!10](A',B,M)
+\tkzDrawSegments(M,O A,A' A',B A,B U,V)
+\tkzDrawPoints(O,A,A',M,B,U,V,m)
+\tkzLabelPoints(O,A,M,U,V,m)
+\tkzLabelPoints[below left](A',B)
+\tkzDrawSegments(M,A M,A')
+\end{tikzpicture}\hspace*{\fill}
+ %\caption{Power v2}
+% subsection power_v2 (end)
+
+\subsection{Reim v1} % (fold)
+\label{sub:reim_v1}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (0,0)
+ z.E = point: new (-2,2)
+ C.AE = circle : new (z.A,z.E)
+ z.C = C.AE : point (math.pi/6)
+ z.D = C.AE : point (-math.pi/180*40)
+ z.F = C.AE : point (-math.pi/180*100)
+ L.EC = line: new (z.E,z.C)
+ z.H = L.EC : point (1.5)
+ T.CDH = triangle : new (z.C,z.D,z.H)
+ z.B = T.CDH.circumcenter
+ C.BD = circle : new (z.B,z.D)
+ L.FD = line: new (z.F,z.D)
+ z.G = intersection (L.FD,C.BD)
+ z.O = intersection (L.EC,L.FD)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(A,E B,H)
+ \tkzDrawSegments(E,D C,F)
+ \tkzDrawLines(E,O F,O)
+ \tkzDrawLines[red](E,F H,G)
+ \tkzDrawPoints(A,...,H,O)
+ \tkzLabelPoints(A,B,D,F,G,O)
+ \tkzLabelPoints[above](E,C,H)
+ \tkzMarkAngles[size=.5](E,C,F E,D,F)
+ \tkzFillAngles[green!40,opacity=.4,size=.5](E,C,F E,D,F)
+ \tkzMarkAngles[size=.5](F,C,H G,D,E)
+ \tkzFillAngles[red!40,opacity=.4,size=.5](F,C,H G,D,E)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.A = point: new (0,0)
+z.E = point: new (-2,2)
+C.AE = circle : new (z.A,z.E)
+z.C = C.AE : point (math.pi/6)
+z.D = C.AE : point (-math.pi/180*40)
+z.F = C.AE : point (-math.pi/180*100)
+L.EC = line: new (z.E,z.C)
+z.H = L.EC : point (1.5)
+T.CDH = triangle : new (z.C,z.D,z.H)
+z.B = T.CDH.circumcenter
+C.BD = circle : new (z.B,z.D)
+L.FD = line: new (z.F,z.D)
+z.G = intersection (L.FD,C.BD)
+z.O = intersection (L.EC,L.FD)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(A,E B,H)
+\tkzDrawSegments(E,D C,F)
+\tkzDrawLines(E,O F,O)
+\tkzDrawLines[red](E,F H,G)
+\tkzDrawPoints(A,...,H,O)
+\tkzLabelPoints(A,B,D,F,G,O)
+\tkzLabelPoints[above](E,C,H)
+\tkzMarkAngles[size=.5](E,C,F E,D,F)
+\tkzFillAngles[green!40,opacity=.4,size=.5](E,C,F E,D,F)
+\tkzMarkAngles[size=.5](F,C,H G,D,E)
+\tkzFillAngles[red!40,opacity=.4,size=.5](F,C,H G,D,E)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Reim v1}
+% subsection reim_v1 (end)
+
+\subsection{Reim v2} % (fold)
+\label{sub:reim_v2}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .6
+ z.A = point: new (0,0)
+ z.B = point: new (10,0)
+ z.C = point: new (4,0)
+ C.AC = circle: new (z.A,z.C)
+ z.c,z.cp = get_points (C.AC: tangent_at (z.C))
+ z.M = C.AC: point (1.2*math.pi)
+ L.MC = line: new (z.M,z.C)
+ C.BC = circle: new (z.B,z.C)
+ z.N = intersection (L.MC,C.BC)
+ z.m,z.mp = get_points (C.AC: tangent_at (z.M))
+ z.n,z.np = get_points (C.BC: tangent_at (z.N))
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(A,C B,C)
+ \tkzDrawLines[new,add=1 and 1](M,m N,n C,c)
+ \tkzDrawSegment(M,N)
+ \tkzDrawPoints(A,B,C,M,N)
+ \tkzLabelPoints[below right](A,B,C,M,N)
+ \tkzFillAngles[blue!30,opacity=.3](m',M,C N,C,c' M,C,c n',N,C)
+ \tkzLabelCircle[below=4pt,font=\scriptsize](A,C)(90){$(\alpha)$}
+ \tkzLabelCircle[left=4pt,font=\scriptsize](B,C)(-90){$(\beta)$}
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .6
+z.A = point: new (0,0)
+z.B = point: new (10,0)
+z.C = point: new (4,0)
+C.AC = circle: new (z.A,z.C)
+z.c,z.cp = get_points (C.AC: tangent_at (z.C))
+z.M = C.AC: point (1.2*math.pi)
+L.MC = line: new (z.M,z.C)
+C.BC = circle: new (z.B,z.C)
+z.N = intersection (L.MC,C.BC)
+z.m,z.mp = get_points (C.AC: tangent_at (z.M))
+z.n,z.np = get_points (C.BC: tangent_at (z.N))
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(A,C B,C)
+\tkzDrawLines[new,add=1 and 1](M,m N,n C,c)
+\tkzDrawSegment(M,N)
+\tkzDrawPoints(A,B,C,M,N)
+\tkzLabelPoints[below right](A,B,C,M,N)
+\tkzFillAngles[blue!30,opacity=.3](m',M,C N,C,c' M,C,c n',N,C)
+\tkzLabelCircle[below=4pt,font=\scriptsize](A,C)(90){$(\alpha)$}
+\tkzLabelCircle[left=4pt,font=\scriptsize](B,C)(-90){$(\beta)$}
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Reim v2}
+% subsection reim_v2 (end)
+
+\subsection{Reim v3} % (fold)
+\label{sub:reim_v3}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (0,0)
+ z.B = point: new (8,0)
+ z.C = point: new (2,6)
+ L.AB = line : new (z.A,z.B)
+ L.AC = line : new (z.A,z.C)
+ L.BC = line : new (z.B,z.C)
+ z.I = L.BC : point (0.75)
+ z.J = L.AC : point (0.4)
+ z.K = L.AB : point (0.5)
+ T.AKJ = triangle : new (z.A,z.K,z.J)
+ T.BIK = triangle : new (z.B,z.I,z.K)
+ T.CIJ = triangle : new (z.C,z.I,z.J)
+ z.x = T.AKJ.circumcenter
+ z.y = T.BIK.circumcenter
+ z.z = T.CIJ.circumcenter
+ C.xK = circle: new (z.x,z.K)
+ C.yK = circle: new (z.y,z.K)
+ z.O,_ = intersection (C.xK,C.yK)
+ C.zO = circle: new (z.z,z.O)
+ L.KO = line: new (z.K,z.O)
+ z.D = intersection (L.KO,C.zO)
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawSegments(K,D D,C)
+ \tkzDrawPolygon[teal](A,B,C)
+ \tkzDrawCircles[orange](x,A y,B z,C)
+ \tkzDrawPoints[fill=white](A,B,C,I,J,K,D)
+ \tkzLabelPoints[below](A,B,J,K,O)
+ \tkzLabelPoints[above](C,D,I)
+ \tkzDrawPoints[fill=black](O)
+ \tkzLabelCircle[below=4pt,font=\scriptsize](x,A)(20){$(\alpha)$}
+ \tkzLabelCircle[left=4pt,font=\scriptsize](y,B)(60){$(\beta)$}
+ \tkzLabelCircle[below=4pt,font=\scriptsize](z,C)(60){$(\gamma)$}
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+ scale = 1.25
+ z.A = point: new (0,0)
+ z.B = point: new (8,0)
+ z.C = point: new (2,6)
+ L.AB = line : new (z.A,z.B)
+ L.AC = line : new (z.A,z.C)
+ L.BC = line : new (z.B,z.C)
+ z.I = L.BC : point (0.75)
+ z.J = L.AC : point (0.4)
+ z.K = L.AB : point (0.5)
+ T.AKJ = triangle : new (z.A,z.K,z.J)
+ T.BIK = triangle : new (z.B,z.I,z.K)
+ T.CIJ = triangle : new (z.C,z.I,z.J)
+ z.x = T.AKJ.circumcenter
+ z.y = T.BIK.circumcenter
+ z.z = T.CIJ.circumcenter
+ C.xK = circle: new (z.x,z.K)
+ C.yK = circle: new (z.y,z.K)
+ z.O,_ = intersection (C.xK,C.yK)
+ C.zO = circle: new (z.z,z.O)
+ L.KO = line: new (z.K,z.O)
+ z.D = intersection (L.KO,C.zO)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawSegments(K,D D,C)
+\tkzDrawPolygon[teal](A,B,C)
+\tkzDrawCircles[orange](x,A y,B z,C)
+\tkzDrawPoints[fill=white](A,B,C,I,J,K,D)
+\tkzLabelPoints[below](A,B,J,K,O)
+\tkzLabelPoints[above](C,D,I)
+\tkzDrawPoints[fill=black](O)
+\tkzLabelCircle[below=4pt,font=\scriptsize](x,A)(20){$(\alpha)$}
+\tkzLabelCircle[left=4pt,font=\scriptsize](y,B)(60){$(\beta)$}
+\tkzLabelCircle[below=4pt,font=\scriptsize](z,C)(60){$(\gamma)$}
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Reim v3}
+% subsection reim_v3 (end)
+
+\subsection{Tangent and circle} % (fold)
+\label{sub:tangent_and_circle}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (1,0)
+ z.B = point: new (2,2)
+ z.E = point: new (5,-4)
+ L.AE = line : new (z.A,z.E)
+ C.AB = circle: new (z.A , z.B)
+ z.S = C.AB.south
+ z.M = L.AE.mid
+ L.Ti,L.Tj = C.AB: tangent_from (z.E)
+ z.i = L.Ti.pb
+ z.j = L.Tj.pb
+ z.k,z.l = get_points (C.AB: tangent_at (z.B))
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(A,B M,A)
+ \tkzDrawPoints(A,B,E,i,j,M,S)
+ \tkzDrawLines(E,i E,j k,l)
+ \tkzLabelPoints[right,font=\small](A,B,E,S,M)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.A = point: new (1,0)
+z.B = point: new (2,2)
+z.E = point: new (5,-4)
+L.AE = line : new (z.A,z.E)
+C.AB = circle: new (z.A , z.B)
+z.S = C.AB.south
+z.M = L.AE.mid
+L.Ti,L.Tj = C.AB: tangent_from (z.E)
+z.i = L.Ti.pb
+z.j = L.Tj.pb
+z.k,z.l = get_points (C.AB: tangent_at (z.B))
+\end{tkzelements}
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(A,B M,A)
+\tkzDrawPoints(A,B,E,i,j,M,S)
+\tkzDrawLines(E,i E,j k,l)
+\tkzLabelPoints[right,font=\small](A,B,E,S,M)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Tangent and circle}
+% subsection tangent_and_circle (end)
+
+\subsection{Homothety} % (fold)
+\label{sub:homothety}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (0,0)
+ z.B = point: new (1,2)
+ z.E = point: new (-3,2)
+ z.C,z.D = z.E : set_homothety(2,z.A,z.B)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPoints(A,B,C,E,D)
+ \tkzLabelPoints(A,B,C,E)
+ \tkzDrawCircles(A,B C,D)
+ \tkzDrawLines(E,C E,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .6
+z.A = point: new (0,0)
+z.B = point: new (1,2)
+z.E = point: new (-3,2)
+z.C,z.D = z.E : set_homothety(2,z.A,z.B)
+\end{tkzelements}
+\hspace*{\fill}\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPoints(A,B,C,E,D)
+\tkzLabelPoints(A,B,C,E)
+\tkzDrawCircles(A,B C,D)
+\tkzDrawLines(E,C E,D)
+\end{tikzpicture}\hspace*{\fill}
+%\caption{Homothety}
+% subsection homothety (end)
+
+\subsection{Tangent and chord} % (fold)
+\label{sub:tangent_and_chord}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = .8
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.C = point: new (1 , 5)
+ z.Bp = point: new (2 , 0)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ L.AB = line: new (z.A,z.B)
+ z.O = T.ABC.circumcenter
+ C.OA = circle: new (z.O,z.A)
+ z.D = C.OA: point (4.5)
+ L.AO = line: new (z.A,z.O)
+ z.b1,z.b2 = get_points (C.OA: tangent_at (z.B))
+ z.H = L.AB: projection (z.O)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle(O,A)
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawSegments[new](A,O B,O O,H A,D D,B)
+ \tkzDrawLine(b1,b2)
+ \tkzDrawPoints(A,B,C,D,H,O)
+ \tkzFillAngles[green!20,opacity=.3](H,O,B A,C,B A,B,b1)
+ \tkzFillAngles[teal!20,opacity=.3](B,D,A b2,B,A)
+ \tkzLabelPoints(A,B,C,D,H,O)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = 0.75
+z.A = point: new (0 , 0)
+z.B = point: new (6 , 0)
+z.C = point: new (1 , 5)
+z.Bp = point: new (2 , 0)
+T.ABC = triangle: new (z.A,z.B,z.C)
+L.AB = line: new (z.A,z.B)
+z.O = T.ABC.circumcenter
+C.OA = circle: new (z.O,z.A)
+z.D = C.OA: point (4.5)
+L.AO = line: new (z.A,z.O)
+z.b1,z.b2 = get_points (C.OA: tangent_at (z.B))
+z.H = L.AB: projection (z.O)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircle(O,A)
+\tkzDrawPolygon(A,B,C)
+\tkzDrawSegments[new](A,O B,O O,H A,D D,B)
+\tkzDrawLine(b1,b2)
+\tkzDrawPoints(A,B,C,D,H,O)
+\tkzFillAngles[green!20,opacity=.3](H,O,B A,C,B A,B,b1)
+\tkzFillAngles[teal!20,opacity=.3](B,D,A b2,B,A)
+\tkzLabelPoints(A,B,C,D,H,O)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Tangent and chord}
+% subsection tangent_and_chord (end)
+
+
+\subsection{Three chords} % (fold)
+\label{sub:three_chords}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.O = point: new (0 , 0)
+ z.B = point: new (0 , 2)
+ z.P = point: new (1 , -.5)
+ C.OB = circle : new (z.O,z.B)
+ C.PB = circle : new (z.P,z.B)
+ _,z.A = intersection (C.OB,C.PB)
+ z.D = C.PB: point(math.pi/3)
+ z.C = C.PB: point(-math.pi/3)
+ z.E = C.OB: point(-math.pi/180*50)
+ L.AB = line : new (z.A,z.B)
+ L.CD = line : new (z.C,z.D)
+ z.G = intersection (L.AB,L.CD)
+ L.GE = line : new (z.G,z.E)
+ z.F,_ = intersection (L.GE,C.OB)
+ T.CDE = triangle: new (z.C,z.D,z.E)
+ T.BFD = triangle: new (z.B,z.F,z.D)
+ z.w = T.CDE.circumcenter
+ z.x = T.BFD.circumcenter
+ L.GB = line : new (z.G,z.B)
+ L.GE = line : new (z.G,z.E)
+ L.GD = line : new (z.G,z.D)
+ C.xB = circle : new (z.x,z.B)
+ C.xF = circle : new (z.x,z.F)
+ C.xD = circle : new (z.x,z.D)
+ z.Ap = intersection (L.GB,C.xB)
+ z.Ep = intersection (L.GE,C.xF)
+ z.Cp = intersection (L.GD,C.xD)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(O,B)
+ \tkzDrawCircles[cyan](P,B)
+ \tkzDrawCircles[red](w,E)
+ \tkzDrawCircles[new](x,F)
+ \tkzDrawSegments(A,G E,G C,G)
+ \tkzDrawPolygons[new](A,E,C A',E',C')
+ \tkzDrawPoints(A,...,G,A',E',C',O,P)
+ \begin{scope}[font=\scriptsize]
+ \tkzLabelPoints(A,...,F)
+ \tkzLabelPoints[above left](G,A',E',C')
+ \tkzLabelCircle[left](O,B)(30){$(\beta)$}
+ \tkzLabelCircle[below](P,A)(40){$(\gamma)$}
+ \tkzLabelCircle[right](w,C)(90){$(\alpha)$}
+ \tkzLabelCircle[left](x,B)(-230){$((\delta))$}
+ \end{scope}
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.O = point: new (0 , 0)
+z.B = point: new (0 , 2)
+z.P = point: new (1 , -.5)
+C.OB = circle : new (z.O,z.B)
+C.PB = circle : new (z.P,z.B)
+_,z.A = intersection (C.OB,C.PB)
+z.D = C.PB: point(math.pi/3)
+z.C = C.PB: point(-math.pi/3)
+z.E = C.OB: point(-math.pi/180*50)
+L.AB = line : new (z.A,z.B)
+L.CD = line : new (z.C,z.D)
+z.G = intersection (L.AB,L.CD)
+L.GE = line : new (z.G,z.E)
+z.F,_ = intersection (L.GE,C.OB)
+T.CDE = triangle: new (z.C,z.D,z.E)
+T.BFD = triangle: new (z.B,z.F,z.D)
+z.w = T.CDE.circumcenter
+z.x = T.BFD.circumcenter
+L.GB = line : new (z.G,z.B)
+L.GE = line : new (z.G,z.E)
+L.GD = line : new (z.G,z.D)
+C.xB = circle : new (z.x,z.B)
+C.xF = circle : new (z.x,z.F)
+C.xD = circle : new (z.x,z.D)
+z.Ap = intersection (L.GB,C.xB)
+z.Ep,_ = intersection (L.GE,C.xF)
+z.Cp,_ = intersection (L.GD,C.xD)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(O,B)
+\tkzDrawCircles[cyan](P,B)
+\tkzDrawCircles[red](w,E)
+\tkzDrawCircles[new](x,F)
+\tkzDrawSegments(A,G E,G C,G)
+\tkzDrawPolygons[new](A,E,C A',E',C')
+\tkzDrawPoints(A,...,G,A',E',C',O,P)
+\begin{scope}[font=\scriptsize]
+ \tkzLabelPoints(A,...,F)
+ \tkzLabelPoints[above left](G,A',E',C')
+ \tkzLabelCircle[left](O,B)(30){$(\beta)$}
+ \tkzLabelCircle[below](P,A)(40){$(\gamma)$}
+ \tkzLabelCircle[right](w,C)(90){$(\alpha)$}
+ \tkzLabelCircle[left](x,B)(-230){$((\delta))$}
+\end{scope}
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Three chords}
+% subsection three_chords (end)
+
+\subsection{Three tangents} % (fold)
+\label{sub:three_tangents}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (-1 , 0)
+ z.C = point: new (4 , -1.5)
+ z.E = point: new (1 , -1)
+ z.F = point: new (1.5 , 2.5)
+ T.AEF = triangle : new (z.A,z.E,z.F)
+ T.CEF = triangle : new (z.C,z.E,z.F)
+ z.w = T.AEF.circumcenter
+ z.x = T.CEF.circumcenter
+ C.wE = circle : new (z.w,z.E)
+ C.xE = circle : new (z.x,z.E)
+ L.Aw = line : new (z.A,z.w)
+ L.Cx = line : new (z.C,z.x)
+ z.G = intersection (L.Aw,L.Cx)
+ L.TA = C.wE : tangent_at (z.A)
+ L.TC = C.xE : tangent_at (z.C)
+ z.I = intersection (L.TA,L.TC)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(w,E)
+ \tkzDrawCircles[cyan](x,E)
+ \tkzDrawCircles[red](G,A)
+ \tkzDrawLines(A,I C,I F,I)
+ \tkzDrawPoints(A,C,E,F)
+ \tkzLabelPoints[right](A)
+ \tkzLabelPoints[above right](E,F)
+ \tkzLabelPoints[below](C)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .75
+z.A = point: new (-1 , 0)
+z.C = point: new (4 , -1.5)
+z.E = point: new (1 , -1)
+z.F = point: new (1.5 , 2.5)
+T.AEF = triangle : new (z.A,z.E,z.F)
+T.CEF = triangle : new (z.C,z.E,z.F)
+z.w = T.AEF.circumcenter
+z.x = T.CEF.circumcenter
+C.wE = circle : new (z.w,z.E)
+C.xE = circle : new (z.x,z.E)
+L.Aw = line : new (z.A,z.w)
+L.Cx = line : new (z.C,z.x)
+z.G = intersection (L.Aw,L.Cx)
+L.TA = C.wE : tangent_at (z.A)
+L.TC = C.xE : tangent_at (z.C)
+z.I = intersection (L.TA,L.TC)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(w,E)
+\tkzDrawCircles[cyan](x,E)
+\tkzDrawCircles[red](G,A)
+\tkzDrawLines(A,I C,I F,I)
+\tkzDrawPoints(A,C,E,F)
+\tkzLabelPoints[right](A)
+\tkzLabelPoints[above right](E,F)
+\tkzLabelPoints[below](C)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Three tangents}
+% subsection three_tangents (end)
+
+\subsection{Midarc} % (fold)
+\label{sub:midarc}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (-1,0)
+ z.B = point: new (2,4)
+ C.AB = circle: new (z.A,z.B)
+ z.C = z.A: rotation (math.pi/3,z.B)
+ z.D = C.AB: midarc (z.B,z.C)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPoints(A,B,C)
+ \tkzDrawCircles(A,B)
+ \tkzDrawPoints(A,...,D)
+ \tkzLabelPoints(A,...,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .5
+z.A = point: new (-1,0)
+z.B = point: new (2,4)
+C.AB = circle: new (z.A,z.B)
+z.C = z.A: rotation (math.pi/3,z.B)
+z.D = C.AB: midarc (z.B,z.C)
+\end{tkzelements}
+
+\hspace*{\fill}\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPoints(A,B,C)
+\tkzDrawCircles(A,B)
+\tkzDrawPoints(A,...,D)
+\tkzLabelPoints(A,...,D)
+\end{tikzpicture}\hspace*{\fill}
+%\caption{Midarc}
+% subsection midarc (end)
+
+\subsection{Lemoine Line without macro} % (fold)
+\label{sub:lemoine_line_without_macro}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = 1.6
+ z.A = point: new (1,0)
+ z.B = point: new (5,2)
+ z.C = point: new (1.2,2)
+ T = triangle: new(z.A,z.B,z.C)
+ z.O = T.circumcenter
+ L.AB = line: new (z.A,z.B)
+ L.AC = line: new (z.A,z.C)
+ L.BC = line: new (z.B,z.C)
+ C.OA = circle: new (z.O,z.A)
+ z.Ar,z.Al = get_points (C.OA: tangent_at (z.A))
+ z.Br,z.Bl = get_points (C.OA: tangent_at (z.B))
+ z.Cr,z.Cl = get_points (C.OA: tangent_at (z.C))
+ L.tA = line: new (z.Ar,z.Al)
+ L.tB = line: new (z.Br,z.Bl)
+ L.tC = line: new (z.Cr,z.Cl)
+ z.P = intersection (L.tA,L.BC)
+ z.Q = intersection (L.tB,L.AC)
+ z.R = intersection (L.tC,L.AB)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon[teal](A,B,C)
+ \tkzDrawCircle(O,A)
+ \tkzDrawPoints(A,B,C,P,Q,R)
+ \tkzLabelPoints(A,B,C,P,Q,R)
+ \tkzDrawLine[blue](Q,R)
+ \tkzDrawLines[red](Ar,Al Br,Q Cr,Cl)
+ \tkzDrawSegments(A,R C,P C,Q)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = 0.75
+z.A = point: new (1,0)
+z.B = point: new (5,2)
+z.C = point: new (1.2,2)
+T = triangle: new(z.A,z.B,z.C)
+z.O = T.circumcenter
+L.AB = line: new (z.A,z.B)
+L.AC = line: new (z.A,z.C)
+L.BC = line: new (z.B,z.C)
+C.OA = circle: new (z.O,z.A)
+z.Ar,z.Al = get_points (C.OA: tangent_at (z.A))
+z.Br,z.Bl = get_points (C.OA: tangent_at (z.B))
+z.Cr,z.Cl = get_points (C.OA: tangent_at (z.C))
+L.tA = line: new (z.Ar,z.Al)
+L.tB = line: new (z.Br,z.Bl)
+L.tC = line: new (z.Cr,z.Cl)
+z.P = intersection (L.tA,L.BC)
+z.Q = intersection (L.tB,L.AC)
+z.R = intersection (L.tC,L.AB)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon[teal](A,B,C)
+\tkzDrawCircle(O,A)
+\tkzDrawPoints(A,B,C,P,Q,R)
+\tkzLabelPoints(A,B,C,P,Q,R)
+\tkzDrawLine[blue](Q,R)
+\tkzDrawLines[red](Ar,Al Br,Q Cr,Cl)
+\tkzDrawSegments(A,R C,P C,Q)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Lemoine Line without macro}
+% subsection lemoine_line_without_macro (end)
+
+\subsection{First Lemoine circle} % (fold)
+\label{sub:first_lemoine_circle}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.A = point: new (1,1)
+ z.B = point: new (5,1)
+ z.C = point: new (2,3)
+ T = triangle: new (z.A,z.B,z.C)
+ z.O = T.circumcenter
+ z.o,z.w = get_points (T : first_lemoine_circle ())
+ z.L = T : lemoine_point ()
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygons(A,B,C)
+ \tkzDrawPoints(A,B,C,o,w,O,L)
+ \tkzLabelPoints(A,B,C,o,w,O,L)
+ \tkzDrawCircles(o,w O,A)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.A = point: new (1,1)
+z.B = point: new (5,1)
+z.C = point: new (2,3)
+T = triangle: new (z.A,z.B,z.C)
+z.O = T.circumcenter
+z.o,z.w = get_points (T : first_lemoine_circle ())
+z.L = T : lemoine_point ()
+\end{tkzelements}
+
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygons(A,B,C)
+\tkzDrawPoints(A,B,C,o,w,O,L)
+\tkzLabelPoints(A,B,C,o,w,O,L)
+\tkzDrawCircles(o,w O,A)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{First Lemoine circle}
+% subsection first_lemoine_circle (end)
+
+\subsection{First and second Lemoine circles} % (fold)
+\label{sub:first_and_second_lemoine_circles}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = 2
+ z.a = point: new (0,0)
+ z.b = point: new (5,0)
+ z.c = point: new (2,3)
+ T = triangle: new (z.a,z.b,z.c)
+ z.O = T.circumcenter
+ z.o,z.p = get_points (T : first_lemoine_circle ())
+ L.ab = line : new (z.a,z.b)
+ L.ac = line : new (z.a,z.c)
+ L.bc = line : new (z.b,z.c)
+ z.L,z.x = get_points (T : second_lemoine_circle ())
+ C.first_lemoine = circle : new (z.o,z.p)
+ z.y1,z.y2 = intersection (L.ab,C.first_lemoine)
+ z.y5,z.y6 = intersection (L.bc,C.first_lemoine)
+ z.y3,z.y4 = intersection (L.ac,C.first_lemoine)
+ C.second_lemoine = circle : new (z.L,z.x)
+ z.x1,z.x2 = intersection (L.ab,C.second_lemoine)
+ z.x3,z.x4 = intersection (L.bc,C.second_lemoine)
+ z.x5,z.x6 = intersection (L.ac,C.second_lemoine)
+ L.y1y6 = line : new (z.y1,z.y6)
+ L.y4y5 = line : new (z.y4,z.y5)
+ L.y2y3 = line : new (z.y2,z.y3)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygons(a,b,c y1,y2,y3,y4,y5,y6)
+ \tkzDrawPoints(x1,x2,x3,x4,x5,x6,L)
+ \tkzDrawPoints(a,b,c,o,O,y1,y2,y3,y4,y5,y6)
+ \tkzLabelPoints[below right](a,b,c,o,O,y1,y2,y3,y4,y5,y6)
+ \tkzLabelPoints[below left](x1,x2,x3,x4,x5,x6)
+ \tkzLabelPoints[above](L)
+ \tkzDrawCircles(L,x o,p O,a)
+ \tkzDrawSegments(L,O x1,x4 x2,x5 x3,x6)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = 2
+z.a = point: new (0,0)
+z.b = point: new (5,0)
+z.c = point: new (2,3)
+T = triangle: new (z.a,z.b,z.c)
+z.O = T.circumcenter
+z.o,z.p = get_points (T : first_lemoine_circle ())
+L.ab = line : new (z.a,z.b)
+L.ac = line : new (z.a,z.c)
+L.bc = line : new (z.b,z.c)
+z.L,z.x = get_points (T : second_lemoine_circle ())
+C.first_lemoine = circle : new (z.o,z.p)
+z.y1,z.y2 = intersection (L.ab,C.first_lemoine)
+z.y5,z.y6 = intersection (L.bc,C.first_lemoine)
+z.y3,z.y4 = intersection (L.ac,C.first_lemoine)
+C.second_lemoine = circle : new (z.L,z.x)
+z.x1,z.x2 = intersection (L.ab,C.second_lemoine)
+z.x3,z.x4 = intersection (L.bc,C.second_lemoine)
+z.x5,z.x6 = intersection (L.ac,C.second_lemoine)
+L.y1y6 = line : new (z.y1,z.y6)
+L.y4y5 = line : new (z.y4,z.y5)
+L.y2y3 = line : new (z.y2,z.y3)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygons(a,b,c y1,y2,y3,y4,y5,y6)
+\tkzDrawPoints(x1,x2,x3,x4,x5,x6,L)
+\tkzDrawPoints(a,b,c,o,O,y1,y2,y3,y4,y5,y6)
+\tkzLabelPoints[below right](a,b,c,o,O,y1,y2,y3,y4,y5,y6)
+\tkzLabelPoints[below left](x1,x2,x3,x4,x5,x6)
+\tkzLabelPoints[above](L)
+\tkzDrawCircles(L,x o,p O,a)
+\tkzDrawSegments(L,O x1,x4 x2,x5 x3,x6)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{First and second Lemoine circles}
+% subsection first_and_second_lemoine_circles (end)
+
+\subsection{Inversion} % (fold)
+\label{sub:inversion}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+ \begin{tkzelements}
+ z.A = point: new (-1,0)
+ z.B = point: new (2,2)
+ z.C = point: new (2,4)
+ z.E = point: new (1,6)
+ C.AC = circle: new (z.A,z.C)
+ L.Tt1,L.Tt2 = C.AC: tangent_from (z.E)
+ z.t1 = L.Tt1.pb
+ z.t2 = L.Tt2.pb
+ L.AE = line: new (z.A,z.E)
+ z.H = L.AE : projection (z.t1)
+ z.Bp,
+ z.Ep,
+ z.Cp = C.AC: set_inversion ( z.B, z.E, z.C )
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPoints(A,B,C)
+ \tkzDrawCircles(A,C A,B)
+ \tkzDrawLines(A,B' E,t1 E,t2 t1,t2 A,E)
+ \tkzDrawPoints(A,B,C,E,t1,t2,H,B',E')
+ \tkzLabelPoints(A,B,C,E,t1,t2,B',E')
+ \tkzLabelPoints[above](C')
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+scale = .75
+z.A = point: new (-1,0)
+z.B = point: new (2,2)
+z.C = point: new (2,4)
+z.E = point: new (1,6)
+C.AC = circle: new (z.A,z.C)
+L.Tt1,L.Tt2 = C.AC: tangent_from (z.E)
+z.t1 = L.Tt1.pb
+z.t2 = L.Tt2.pb
+L.AE = line: new (z.A,z.E)
+z.H = L.AE : projection (z.t1)
+z.Bp,
+z.Ep,
+z.Cp = C.AC: set_inversion ( z.B, z.E, z.C )
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPoints(A,B,C)
+ \tkzDrawCircles(A,C A,B)
+ \tkzDrawLines(A,B' E,t1 E,t2 t1,t2 A,E)
+ \tkzDrawPoints(A,B,C,E,t1,t2,H,B',E')
+ \tkzLabelPoints(A,B,C,E,t1,t2,B',E')
+ \tkzLabelPoints[above](C')
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Inversion}
+% subsection inversion (end)
+
+\subsection{Gergonne point} % (fold)
+\label{sub:gergonne_point}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.a = point: new(1,0)
+ z.b = point: new(6,2)
+ z.c = point: new(2,5)
+ T = triangle : new (z.a,z.b,z.c)
+ z.g = T : gergonne_point ()
+ z.i = T.incenter
+ z.ta,z.tb,z.tc = get_points (T : intouch ())
+end{elements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygons(a,b,c)
+ \tkzDrawPoints(a,b,c,g)
+ \tkzLabelPoints(a,b,c)
+ \tkzDrawSegments (a,ta b,tb c,tc)
+ \tkzDrawCircle(i,ta)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.a = point: new(1,0)
+z.b = point: new(6,2)
+z.c = point: new(2,5)
+T = triangle : new (z.a,z.b,z.c)
+z.g = T : gergonne_point ()
+z.i = T.incenter
+z.ta,z.tb,z.tc = get_points (T : intouch ())
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygons(a,b,c)
+\tkzDrawPoints(a,b,c,g)
+\tkzLabelPoints(a,b,c)
+\tkzDrawSegments (a,ta b,tb c,tc)
+\tkzDrawCircle(i,ta)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Gergonne point}
+% subsection gergonne_point (end)
+
+\subsection{Antiparallel through Lemoine point} % (fold)
+\label{sub:antiparallel_through_lemoine_point}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ z.a = point: new (0,0)
+ z.b = point: new (5,0)
+ z.c = point: new (1,4)
+ T = triangle: new (z.a,z.b,z.c)
+ z.L = T : lemoine_point ()
+ L.anti = T : antiparallel (z.L,0)
+ z.x_0,z.x_1 = get_points (L.anti)
+ L.anti = T : antiparallel (z.L,1)
+ z.y_0,z.y_1 = get_points (L.anti)
+ L.anti = T : antiparallel (z.L,2)
+ z.z_0,z.z_1 = get_points (L.anti)
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygons(a,b,c)
+ \tkzDrawPoints(a,b,c,L,x_0,x_1,y_0,y_1,z_0,z_1)
+ \tkzLabelPoints(a,b)
+ \tkzLabelPoints[above](L,c)
+ \tkzDrawSegments(x_0,x_1 y_0,y_1 z_0,z_1)
+ \tkzDrawCircle(L,x_0)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzelements}
+z.a = point: new (0,0)
+z.b = point: new (5,0)
+z.c = point: new (1,4)
+T = triangle: new (z.a,z.b,z.c)
+z.L = T : lemoine_point ()
+L.anti = T : antiparallel (z.L,0)
+z.x_0,z.x_1 = get_points (L.anti)
+L.anti = T : antiparallel (z.L,1)
+z.y_0,z.y_1 = get_points (L.anti)
+L.anti = T : antiparallel (z.L,2)
+z.z_0,z.z_1 = get_points (L.anti)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygons(a,b,c)
+\tkzDrawPoints(a,b,c,L,x_0,x_1,y_0,y_1,z_0,z_1)
+\tkzLabelPoints(a,b)
+\tkzLabelPoints[above](L,c)
+\tkzDrawSegments(x_0,x_1 y_0,y_1 z_0,z_1)
+\tkzDrawCircle(L,x_0)
+\end{tikzpicture}
+\hspace*{\fill}
+%\caption{Antiparallels}
+% subsection antiparallel_through_lemoine_point (end) \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-howtouse.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-howtouse.tex
new file mode 100644
index 0000000000..0b94576633
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-howtouse.tex
@@ -0,0 +1,193 @@
+\newpage
+\section{How to use} % (fold)
+\label{sec:how_to_use}
+
+You need to load either \TIKZ{} or \pkg{tkz-euclide} if you want to use these packages to get your plots, then you need to load \pkg{tkz-elements}.
+
+Loading \pkg{tkz-elements} allows you to use the \env{elements} environment. However, you can use the macro \tkzcname{directlua} or the \env{luacode} environment (the package \pkg{luacode} is loaded automatically).
+
+
+\subsection{Environment elements} % (fold)
+\label{sub:environment_elements}
+
+You must first create an environment \tkzNameEnv{tkzelements}, then in this environment you create the fixed points of your figure. (For the moment, you place the environment \env{elements} before the environment \env{tikzpicture} but it is possible to place it inside the latter.)
+
+In the following example, three fixed points are used (lines 8, 9 and 10), the first object \tkzNameObj{point} $A$ is created by
+
+|z.A = point: new (2 , 4)|.
+
+Then we create a \tkzNameObj{triangle} (line 11)
+
+|T.ABC = triangle: new (z.A,z.B,z.C)|
+
+Once the triangle has been created, you can either use its attributes or a method associated with the triangle object. In all cases, the result is either a number or a new object.
+
+In order to obtain the circle inscribed in this triangle, we use a method of the \tkzname{triangle}. We obtain a new object, a circle, which I call |C.Ii|. A circle is defined by its center and a point through which it passes. $I$ is the center and $i$ is the projection of this center on the side opposed to the first point of the triangle.
+
+There are several ways of obtaining these two points. As in the example, |get_points| is a function that extracts the points from the object given as an argument. You can also use the circle attributes: |z.I = C.Ii.center| and |z.i = CIi.through|. The first method is obviously simpler, but less explicit. Another possibility would be to obtain the center as an attribute of the triangle |z.I = T.ABC.incircle| and then project this center onto one of the sides, for example |z.i = T.ABC.bc : projection (z.I)|. An explanation is in order: |T.ABC.bc | is the straight line defined by the last two points of the triangle (see triangle attributes \ref{sec:classe_triangle}).
+
+Then we look for the circumscribed circle, which is obtained using a method of the triangle object. We define the circumscribed \tkzNameObj{circle} named |C.WA|.
+
+|C.WA = T.ABC : circum_circle ()| (line 16)
+
+| z.W,_ = get_points (C.WA)| is used to get the center but possible is
+
+ |z.W = T.ABC.circumcircle|
+
+The south pole of the circle with center $W$ passing through $A$ is given by an attribute of the object \tkzNameObj{circle}.
+
+We finally look for the intersection of two lines.
+
+Line 17 an object line is created. Line 18 I name a line object already created (it's a triangle attribute).
+
+All points are defined and stored in the |z| table. The macro \tkzcname{tkzGetNodes} retrieves the keys and associated values from this table and creates the nodes to be used by \TIKZ\ or \pkg{tkz-euclide}.
+
+\begin{tkzexample}[small,code only,num]
+% !TEX TS-program = lualatex
+\documentclass{article}
+\usepackage{tkz-euclide}
+\usepackage{tkz-elements}
+\begin{document}
+
+\begin{tkzelements}
+ z.A = point: new (2 , 4)
+ z.B = point: new (0 , 0)
+ z.C = point: new (8 , 0)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ C.Ii = T.ABC: in_circle ()
+ z.I,z.i = get_points (C.Ii)
+ C.WA = T.ABC : circum_circle ()
+ z.W,_ = get_points (C.WA)
+ z.O = C.WA.south
+ L.AO = line: new (z.A,z.O)
+ L.BC = T.ABC.bc
+ z.I_A = intersection (L.AO,L.BC)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(W,A I,i)
+ \tkzDrawArc(O,C)(B)
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawSegments[new](A,O B,O C,O)
+ \tkzDrawLine(B,I)
+ \tkzDrawPoints(A,B,C,I,I_A,W,O)
+ \tkzFillAngles[green!20,opacity=.3](A,O,B A,C,B)
+ \tkzFillAngles[teal!20,opacity=.3](O,B,C B,C,O B,A,O O,A,C)
+ \tkzLabelPoints(I,I_A,W,B,C)
+ \tkzLabelPoints[above](A)
+\end{tikzpicture}
+\end{document}
+\end{tkzexample}
+
+\begin{tkzelements}
+ scale =.75
+ z.A = point: new (2 , 4)
+ z.B = point: new (0 , 0)
+ z.C = point: new (8 , 0)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ C.Ii = T.ABC: in_circle ()
+ z.I,z.i = get_points (C.Ii)
+ C.WA = T.ABC : circum_circle ()
+ z.W,_ = get_points (C.WA)
+ z.O = C.WA.south
+ L.AO = line: new (z.A,z.O)
+ L.BC = T.ABC.bc
+ z.I_A = intersection (L.AO,L.BC)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(W,A I,i)
+\tkzDrawArc(O,C)(B)
+\tkzDrawPolygon(A,B,C)
+\tkzDrawSegments[new](A,O B,O C,O)
+\tkzDrawLine(B,I)
+\tkzDrawPoints(A,B,C,I,I_A,W,O)
+\tkzFillAngles[green!20,opacity=.3](A,O,B A,C,B)
+\tkzFillAngles[teal!20,opacity=.3](O,B,C B,C,O B,A,O O,A,C)
+\tkzLabelPoints(I,I_A,W,B,C,O)
+\tkzLabelPoints[above](A)
+\end{tikzpicture}
+\hspace*{\fill}
+% subsection environment_elements (end)
+
+\subsection{Fom Lua to tkz-euclide or TikZ} % (fold)
+\label{sub:fom_lua_to_tkz_euclide_or_tikz}
+
+\subsubsection{Points transfer} % (fold)
+\label{ssub:points_transfer}
+We use an environment \tkzname{elements} outside an environment \tkzname{tikzpicture} which allows us to carry out all the necessary calculations, then we launch the macro \tkzcname{tkzGetNodes} which transforms the affixes of the table \tkzname{z} into a list of \tkzname{Nodes}. It only remains to draw.
+
+Currently the drawing program is either \TIKZ\ or \pkg{tkz-euclide}. You have the possibility to use another package to trace but for that you have to create a macro similar to \tkzcname{tkzGetNodes}. Of course, this package must be able to store the points as does \TIKZ\ or \pkg{tkz-euclide}.
+
+\vspace*{1em}
+
+\begin{tkzexample}[latex=0cm,small,code only]
+\def\tkzGetNodes{\directlua{%
+ for K,V in pairs(z) do
+ local KS,n,sd,ft
+ KS = tostring(K)
+ n = string.len(KS)
+ if n >1 then
+ _,_,ft, sd = string.find( KS , "(.+)(.)" )
+ if sd == "p" then K=ft.."'" end
+ end
+ tex.print("\\coordinate ("..K..") at ("..V.re..","..V.im..") ;\\\\")
+end}
+}
+\end{tkzexample}
+
+The environment \tkzNameEnv{elements} allows to use the underscore |_| and the macro \tkzcname{tkzGetNodes} allows to obtain names of nodes containing \tkzname{prime}. (see the next example)
+
+\begin{minipage}{0.5\textwidth}
+\begin{tkzexample}[latex=0cm,small,code only]
+\begin{tkzelements}
+ scale = 1.2
+ z.o = point: new (0,0)
+ z.a_1 = point: new (2,1)
+ z.a_2 = point: new (1,2)
+ z.ap = z.a_1 + z.a_2
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawSegments(o,a_1 o,a_2 o,a')
+ \tkzDrawSegments[red](a_1,a' a_2,a')
+ \tkzDrawPoints(a_1,a_2,a',o)
+ \tkzLabelPoints(o,a_1,a_2,a')
+\end{tikzpicture}
+\end{tkzexample}%
+\end{minipage}%
+\begin{minipage}{0.5\textwidth}
+\begin{tkzelements}
+scale = 1.2
+z.o = point: new (0,0)
+z.a_1 = point: new (2,1)
+z.a_2 = point: new (1,2)
+z.ap = z.a_1 + z.a_2
+\end{tkzelements}
+\begin{tikzpicture}
+\tkzGetNodes
+ \tkzDrawSegments(o,a_1 o,a_2 o,a')
+ \tkzDrawSegments[red](a_1,a' a_2,a')
+ \tkzDrawPoints(a_1,a_2,a',o)
+ \tkzLabelPoints(o,a_1,a_2,a')
+\end{tikzpicture}
+\end{minipage}%
+
+% subsection fom_lua_to_tkz_euclide_or_tikz (end)
+\subsubsection{Other transfers} % (fold)
+\label{ssub:other_transfers}
+
+Sometimes it's useful to transfer angle or length measurements. For this purpose, I have created the function (see \ref{ssub:transfer_from_lua_to_tex})
+\Igfct{package}{set\_lua\_to\_tex (list)}
+
+% subsubsection other_transfers (end)
+% subsubsection points_transfer (end)
+
+% section how_to_use (end)
+
+
+
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-intersection.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-intersection.tex
new file mode 100644
index 0000000000..db290e3447
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-intersection.tex
@@ -0,0 +1,315 @@
+\newpage
+\section{Intersections} % (fold)
+\label{sec:intersections}
+
+It's an essential tool. For the moment, the classes concerned are lines, circles and ellipses, with the following combinations: line-line; line-circle; circle-circle and line-ellipse. The argument is a pair of objects, in any order.
+Results consist of one or two values, either points, boolean \tkzname{false} or underscore |_|.
+
+\subsection{Line-line} % (fold)
+\label{sub:line_line}
+
+The result is of the form: |point| or |false|.
+
+\begin{minipage}{0.6\textwidth}
+\begin{tkzexample}[small,code only]
+\begin{tkzelements}
+ z.A = point : new (1,-1)
+ z.B = point : new (4,1)
+ z.C = point : new (2,1)
+ z.D = point : new (4,-2)
+ z.I = point : new (0,0)
+ L.AB = line : new (z.A,z.B)
+ L.CD = line : new (z.C,z.D)
+ x = intersection (L.AB,L.CD)
+ if x == false then
+ tex.print('error')
+ else
+ z.I = x
+ end
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawSegments(A,B C,D)
+ \tkzDrawPoints(A,B,C,D,I)
+ \tkzLabelPoints(A,B,C,D,I)
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.4\textwidth}
+\begin{tkzelements}
+z.A = point : new (1,-1)
+z.B = point : new (4,1)
+z.C = point : new (2,1)
+z.D = point : new (4,-2)
+ z.I = point : new (0,0)
+L.AB = line : new (z.A,z.B)
+L.CD = line : new (z.C,z.D)
+x = intersection (L.AB,L.CD)
+if x == false then
+tex.print('error')
+else
+z.I = x
+end
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawSegments(A,B C,D)
+ \tkzDrawPoints(A,B,C,D,I)
+ \tkzLabelPoints(A,B,C,D,I)
+\end{tikzpicture}
+\end{minipage}
+
+Other examples: \ref{ssub:altshiller}, \ref{ssub:lemoine}, \ref{sub:alternate}, \ref{sub:environment_elements}
+% subsection line_line (end)
+
+\newpage
+\subsection{Line-circle} % (fold)
+\label{sub:line_circle}
+The result is of the form : |point,point| or |false,false|. If the line is tangent to the circle, then the two points are identical. You can ignore one of the points by using the underscore: |_,point| or |point,_|. When the intersection yields two solutions, the order of the points is determined by the argument of |(z.p - z.c)| with |c| center of the circle and |p| point of intersection. The first solution corresponds to the smallest argument (arguments are between 0 and $2\pi$).
+
+\begin{minipage}{0.6\textwidth}
+\begin{tkzexample}[small,code only]
+\begin{tkzelements}
+ z.A = point : new (1,-1)
+ z.B = point : new (1,2)
+ L.AB = line : new (z.A,z.B)
+ z.O = point : new (2,1)
+ z.D = point : new (3,1)
+ z.E = point : new (3,2)
+ L.AE = line : new (z.A,z.E)
+ C.OD = circle : new (z.O,z.D)
+ z.I,_ = intersection (L.AB,C.OD)
+ _,z.K = intersection (C.OD,L.AE)
+\end{tkzelements}
+
+\begin{tikzpicture}
+\tkzGetNodes
+ \tkzDrawLines(A,B A,E)
+ \tkzDrawCircle(O,D)
+ \tkzDrawPoints(A,B,O,D,I,K)
+ \tkzLabelPoints[left](A,B,O,D,I,K)
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.4\textwidth}
+\begin{tkzelements}
+ scale = 2
+z.A = point : new (1,-1)
+z.B = point : new (1,2)
+L.AB = line : new (z.A,z.B)
+z.O = point : new (2,1)
+z.D = point : new (3,1)
+z.E = point : new (3,2)
+L.AE = line : new (z.A,z.E)
+C.OD = circle : new (z.O,z.D)
+z.I,_ = intersection (L.AB,C.OD)
+_,z.K = intersection (C.OD,L.AE)
+\end{tkzelements}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B A,E)
+\tkzDrawCircle(O,D)
+\tkzDrawPoints(A,B,O,D,I,K)
+\tkzLabelPoints[left](A,B,O,D,I,K)
+\end{tikzpicture}
+\end{minipage}
+
+Other examples: \ref{ssub:altshiller}
+% subsection line_circle (end)
+
+\newpage
+\subsection{Circle-circle} % (fold)
+\label{sub:circle_circle}
+
+The result is of the form : |point,point| or |false,false|. If the circles are tangent, then the two points are identical. You can ignore one of the points by using the underscore: |_ , point| or |point , _|. As for the intersection of a line and a circle, consider the argument of |z.p-z.c| with |c| center of the first circle and |p| point of intersection. The first solution corresponds to the smallest argument (arguments are between 0 and $2\pi$).
+
+\begin{minipage}{0.5\textwidth}
+\begin{tkzexample}[small,code only]
+\begin{tkzelements}
+ z.A = point : new (1,1)
+ z.B = point : new (2,2)
+ z.C = point : new (3,3)
+ z.D = point : new (3,0)
+ C.AB = circle : new (z.A,z.B)
+ C.CB = circle : new (z.C,z.B)
+ z.I,_ = intersection (C.AB,C.CB)
+ C.DC = circle : new (z.D,z.C)
+ z.J,z.K = intersection (C.DC,C.CB)
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(A,B C,B D,C)
+ \tkzDrawPoints(A,I,C,D,J,K)
+ \tkzLabelPoints(A,I,C,D,J,K)
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\begin{tkzelements}
+z.A = point : new (1,1)
+z.B = point : new (2,2)
+z.C = point : new (3,3)
+z.D = point : new (3,0)
+C.AB = circle : new (z.A,z.B)
+C.CB = circle : new (z.C,z.B)
+z.I,_ = intersection (C.AB,C.CB)
+C.DC = circle : new (z.D,z.C)
+ z.J,z.K = intersection (C.DC,C.CB)
+\end{tkzelements}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles(A,B C,B D,C)
+\tkzDrawPoints(A,I,C,D,J,K)
+\tkzLabelPoints(A,I,C,D,J,K)
+\end{tikzpicture}
+\end{minipage}
+
+Other examples: \ref{ssub:altshiller}, \ref{sub:the_figure_pappus_circle}
+% subsection circle_circle (end)
+
+\newpage
+\subsection{Line-ellipse} % (fold)
+\label{sub:line_ellipse}
+The following example is complex, but it shows the possibilities of Lua.
+The designation of intersection points is a little more complicated than the previous one, as the argument characterizing the major axis must be taken into account. The principle is the same, but this argument must be subtracted. In concrete terms, you need to consider the slopes of the lines formed by the center of the ellipse and the points of intersection, and the slope of the major axis.
+
+\begin{minipage}{0.5\textwidth}
+\begin{tkzexample}[code only,small]
+\begin{tkzelements}
+ scale = .5
+ z.a = point: new (5 , 2)
+ z.b = point: new (-4 , 0)
+ z.m = point: new (2 , 4)
+ z.n = point: new (4 , 4)
+ L.ab = line : new (z.a,z.b)
+ L.mn = line : new (z.m,z.n)
+ z.c = L.ab. mid
+ z.e = L.ab: point (-.2)
+ E = ellipse: foci (z.a,z.b,z.e)
+ z.u,z.v = intersection (E,L.mn)
+ -- transfer to tex
+ a = E.Rx
+ b = E.Ry
+ ang = math.deg(E.slope)
+ set_lua_to_tex {'a','b','ang'}
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[red](a,b u,v) % p,s p,t
+ \tkzDrawPoints(a,b,c,e,u,v) %
+ \tkzLabelPoints(a,b,c,u,v)
+ \tkzDrawEllipse[teal](c,\a,\b,\ang)
+ \tkzDrawSegments(c,u c,v)
+ \tkzFillAngles[green!30,opacity=.4](e,c,v)
+ \tkzFillAngles[green!80,opacity=.4](e,c,u)
+\end{tikzpicture}
+\end{tkzexample}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\begin{tkzelements}
+ scale =.5
+ z.a = point: new (5 , 2)
+ z.b = point: new (-4 , 0)
+ z.m = point: new (2 , 4)
+ z.n = point: new (4 , 4)
+ L.ab = line : new (z.a,z.b)
+ L.mn = line : new (z.m,z.n)
+ z.c = L.ab. mid
+ z.e = L.ab: point (-.2)
+ E = ellipse: foci (z.a,z.b,z.e)
+ z.u,z.v = intersection (E,L.mn)
+ -- transfer to tex
+ a = E.Rx
+ b = E.Ry
+ ang = math.deg(E.slope)
+ set_lua_to_tex {'a','b','ang'}
+\end{tkzelements}
+\hspace*{\fill}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[red](a,b u,v) % p,s p,t
+ \tkzDrawPoints(a,b,c,e,u,v) %
+ \tkzLabelPoints(a,b,c,u,v)
+ \tkzDrawEllipse[teal](c,\a,\b,\ang)
+ \tkzFillAngles[green!30,opacity=.4](e,c,v)
+ \tkzFillAngles[green!80,opacity=.4](e,c,u)
+ \tkzDrawSegments(c,u c,v)
+\end{tikzpicture}
+\hspace*{\fill}
+\end{minipage}
+
+Other examples: \ref{ssub:function_tkzname_ellipse__foci}, \ref{sub:hexagram}
+%\caption{Intersection line and ellipse}
+
+% \begin{tkzexample}[code only,small]
+% \begin{tkzelements}
+% scale = .5
+% z.a = point: new (5 , 2)
+% z.b = point: new (-4 , 0)
+% z.m = point: new (2 , -3)
+% z.n = point: new (4 , -3)
+% L.ab = line : new (z.a,z.b)
+% L.mn = line : new (z.m,z.n)
+% z.c = L.ab. mid
+% z.e = L.ab: point (-.2)
+% E = ellipse: foci (z.a,z.b,z.e)
+% z.u,z.v = intersection (E,L.mn)
+% -- transfer to tex
+% a = E.Rx
+% b = E.Ry
+% ang = math.deg(E.slope)
+% set_lua_to_tex {'a','b','ang'}
+% \end{tkzelements}
+%
+% \begin{tikzpicture}
+% \tkzGetNodes
+% \tkzDrawLines[red](a,b u,v) % p,s p,t
+% \tkzDrawPoints(a,b,c,e,u,v) %
+% \tkzLabelPoints(a,b,c,u,v)
+% \tkzDrawEllipse[teal](c,\a,\b,\ang)
+% \tkzDrawSegments(c,u c,v)
+% \tkzFillAngles[green!30,opacity=.4,size=1.2](e,c,v)
+% \tkzFillAngles[green!80,opacity=.4](e,c,u)
+% \end{tikzpicture}
+% \end{tkzexample}
+%
+% \begin{tkzelements}
+% scale=.5
+% z.a = point: new (5 , 2)
+% z.b = point: new (-4 , 0)
+% z.m = point: new (2 , -3)
+% z.n = point: new (4 , -3)
+% L.ab = line : new (z.a,z.b)
+% L.mn = line : new (z.m,z.n)
+% z.c = L.ab. mid
+% z.e = L.ab: point (-.2)
+% E = ellipse: foci (z.a,z.b,z.e)
+% z.u,z.v = intersection (E,L.mn)
+% -- transfer to tex
+% a = E.Rx
+% b = E.Ry
+% ang = math.deg(E.slope)
+% set_lua_to_tex {'a','b','ang'}
+% \end{tkzelements}
+%
+%
+% \hspace*{\fill}
+% \begin{tikzpicture}
+% \tkzGetNodes
+% \tkzDrawLines[red](a,b u,v) % p,s p,t
+% \tkzDrawPoints(a,b,c,e,u,v) %
+% \tkzLabelPoints(a,b,c,u,v)
+% \tkzDrawEllipse[teal](c,\a,\b,\ang)
+% \tkzDrawSegments(c,u c,v)
+% \tkzFillAngles[green!30,opacity=.4,size=1.2](e,c,v)
+% \tkzFillAngles[green!80,opacity=.4](e,c,u)
+% \end{tikzpicture}
+% \hspace*{\fill}
+%\caption{Intersection line and ellipse}
+
+% subsection line_ellipse (end)
+% section intersections (end) \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-main.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-main.tex
new file mode 100644
index 0000000000..6fa4bc6166
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-main.tex
@@ -0,0 +1,198 @@
+% !TEX TS-program = lualatex
+% encoding : utf8
+% Documentation of tkz-elements v1.00b
+% Copyright 2023 Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+% This work has the LPPL maintenance status “maintained”.
+% The Current Maintainer of this work is Alain Matthes.
+\PassOptionsToPackage{unicode}{hyperref}
+
+\documentclass[DIV = 14,
+ fontsize = 10,
+ index = totoc,
+ twoside,
+ cadre,
+ headings = small
+ ]{tkz-doc}
+\gdef\tkznameofpack{tkz-elements}
+\gdef\tkzversionofpack{1.00b}
+\gdef\tkzdateofpack{\today}
+\gdef\tkznameofdoc{tkz-elements.pdf}
+\gdef\tkzversionofdoc{1.00b}
+\gdef\tkzdateofdoc{\today}
+\gdef\tkzauthorofpack{Alain Matthes}
+\gdef\tkzadressofauthor{}
+\gdef\tkznamecollection{AlterMundus}
+\gdef\tkzurlauthor{http://altermundus.fr}
+\gdef\tkzengine{lualatex}
+\gdef\tkzurlauthorcom{http://altermundus.fr}
+\nameoffile{\tkznameofpack}
+% -- Packages ---------------------------------------------------
+\usepackage[dvipsnames,svgnames]{xcolor}
+\usepackage{calc}
+\usepackage{tkz-base}
+\usepackage{tkz-euclide}
+\usepackage{tkz-elements}
+\usepackage{pgfornament}
+\usetikzlibrary{backgrounds}
+\usepackage[colorlinks,pdfencoding=auto, psdextra]{hyperref}
+\hypersetup{
+ linkcolor=Gray,
+ citecolor=Green,
+ filecolor=Mulberry,
+ urlcolor=NavyBlue,
+ menucolor=Gray,
+ runcolor=Mulberry,
+ linkbordercolor=Gray,
+ citebordercolor=Green,
+ filebordercolor=Mulberry,
+ urlbordercolor=NavyBlue,
+ menubordercolor=Gray,
+ runbordercolor=Mulberry,
+ pdfsubject={Euclidean Geometry},
+ pdfauthor={\tkzauthorofpack},
+ pdftitle={\tkznameofpack},
+ pdfcreator={\tkzengine}
+}
+\usepackage{tkzexample}
+\usepackage{fontspec}
+\setmainfont{texgyrepagella}[
+ Extension = .otf,
+ UprightFont = *-regular ,
+ ItalicFont = *-italic ,
+ BoldFont = *-bold ,
+ BoldItalicFont = *-bolditalic
+]
+\setsansfont{texgyreheros}[
+ Extension = .otf,
+ UprightFont = *-regular ,
+ ItalicFont = *-italic ,
+ BoldFont = *-bold ,
+ BoldItalicFont = *-bolditalic ,
+]
+
+\setmonofont{lmmono10-regular.otf}[
+ Numbers={Lining,SlashedZero},
+ ItalicFont=lmmonoslant10-regular.otf,
+ BoldFont=lmmonolt10-bold.otf,
+ BoldItalicFont=lmmonolt10-boldoblique.otf,
+]
+\newfontfamily\ttcondensed{lmmonoltcond10-regular.otf}
+%% (La)TeX font-related declarations:
+\linespread{1.05} % Pagella needs more space between lines
+\usepackage[math-style=literal,bold-style=literal]{unicode-math}
+\usepackage{fourier-otf}
+\let\rmfamily\ttfamily
+\usepackage{multicol,lscape}
+\usepackage[english]{babel}
+\usepackage[normalem]{ulem}
+\usepackage{multirow,multido,booktabs,cellspace}
+\usepackage{shortvrb,fancyvrb,bookmark}
+\usepackage{makeidx}
+%\usepackage{float}
+\makeindex
+
+\makeatletter
+\renewenvironment{theindex}
+ {\section*{\indexname}\begin{multicols}{2}%
+ \@mkboth{\MakeUppercase\indexname}%
+ {\MakeUppercase\indexname}%
+ \thispagestyle{plain}\parindent\z@
+ \parskip\z@ \@plus .3\p@\relax
+ \columnseprule \z@
+ \columnsep 35\p@
+ \let\item\@idxitem}
+ {\end{multicols}}
+\makeatother
+\newcommand*{\tkzfname}[1]{\Amacro{#1}\textbf{\texttt{\textcolor{MidnightBlue}{%
+ #1}}}}
+ \newcommand*{\tkzmname}[1]{\Amacro{#1}\textbf{\texttt{\textcolor{MidnightBlue}{%
+#1}}}}
+ \newcommand*{\tkzaname}[1]{\Amacro{#1}\textbf{\texttt{\textcolor{MidnightBlue}{%
+#1}}}}
+\def\langle{} \def\rangle{}
+\renewcommand*{\IargName}[2]{\texttt{#2}\index{#1_2@\texttt{#1: argument(s)}!\texttt{#2}}}
+\newcommand*{\Amacro}[1]{\index{#1_1@\texttt{#1}}}
+\renewcommand*{\IoptName}[2]{\texttt{#2}\index{#1_3@\texttt{#1: attribute(s)}!\texttt{#2}}}
+\newcommand*{\Iattr}[2]{\texttt{#2}\index{#1_3@\texttt{#1: attribute}!\texttt{#2}}}
+\newcommand*{\Imeth}[2]{\texttt{#2}\index{#1_3@\texttt{#1: method}!\texttt{#2}}}
+\newcommand*{\Igfct}[2]{\texttt{#2}\index{#1_3@\texttt{#1: function}!\texttt{#2}}}
+\newcommand*{\Iclass}[2]{\texttt{#2}\index{#1_3@\texttt{#1: class}!\texttt{#2}}}
+\newcommand*{\tkzNameObj}[1]{\tkzname{#1}\Iobj{#1}}
+\newcommand*{\Iobj}[1]{\index{Object_1@\texttt{Object}!\texttt{#1}}}
+
+%<--------------------------------------------------------------------------->
+% settings styles
+\tkzSetUpColors[background=white,text=black]
+\tkzSetUpCompass[color=orange, line width=.2pt,delta=10]
+\tkzSetUpArc[color=gray,line width=.2pt]
+\tkzSetUpPoint[size=2,color=teal]
+\tkzSetUpLine[line width=.2pt,color=teal]
+\tkzSetUpStyle[color=orange,line width=.2pt]{new}
+\tikzset{every picture/.style={line width=.2pt}}
+\tikzset{label angle style/.append style={color=teal,font=\footnotesize}}
+\tikzset{label style/.append style={below,color=teal,font=\scriptsize}}
+\tikzset{new/.style={color=orange,line width=.2pt}}
+\def\tkzar{\hspace{1em}-->\hspace{1em}}
+
+\AtBeginDocument{\MakeShortVerb{\|}} % link to shortvrb
+\begin{document}
+
+\parindent=0pt
+\tkzTitleFrame{tkz-elements \tkzversionofpack\\Euclidean Geometry}
+\clearpage
+
+\defoffile{\lefthand\
+ This document brings together some notes about \tkzname{\tkznameofpack}, the first version of a library written in lua, allowing to make all the necessary calculations to define the objects of a Euclidean geometry figure. You need to compile with Lua\LaTeX.\\ With \pkg{tkz-elements}, the definitions and calculations are only done with \pkg{lua}. \\ The main possibility of programmation proposed is oriented "object programming" with object classes like point, line, triangle, circle and ellipse. For the moment, once the calculations are done, it is \pkg{tkz-euclide} or \pkg{TikZ} which allows the drawings.\\
+ I discovered Lua and object-oriented programming when I created this package, so it's highly probable that I've made a few mistakes. If you'd like to participate in the development of this package or give me advice on how to proceed, please contact me via my email. \\ This version \tkzversionofpack\ is a beta version.\\
+English is not my native language so there might be some errors.
+}
+
+\presentation
+
+\vspace*{1cm}
+
+\lefthand\ Acknowledgements : I received much valuable advice, remarks, corrections from \\ \tkzimp{Nicolas Kisselhoff}, \tkzimp{David Carlisle}, \tkzimp{Roberto Giacomelli} and \tkzimp{Qrrbrbirlbel}.
+
+\vspace*{12pt}
+\lefthand\ I would also like to thank \tkzimp{Eric Weisstein}, creator of
+\href{http://mathworld.wolfram.com/about/author.html}{MathWorld}.
+
+\vspace*{12pt}
+\lefthand\ You can find some examples on my site:
+\href{http://altermundus.fr}{altermundus.fr}. \hspace{2cm} under construction!
+
+\vfill
+Please report typos or any other comments to this documentation to: \href{mailto:al.ma@mac.com}{\textcolor{blue}{Alain Matthes}}.
+
+This file can be redistributed and/or modified under the terms of the \LaTeX{}
+Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ archives.
+
+\clearpage
+\tableofcontents
+
+\clearpage
+\newpage
+
+\input{TKZdoc-elements-presentation.tex}
+\input{TKZdoc-elements-convention.tex}
+\input{TKZdoc-elements-howtouse.tex}
+\input{TKZdoc-elements-classes.tex}
+\input{TKZdoc-elements-classes-point.tex}
+\input{TKZdoc-elements-classes-line.tex}
+\input{TKZdoc-elements-classes-circle.tex}
+\input{TKZdoc-elements-classes-triangle.tex}
+\input{TKZdoc-elements-classes-ellipse.tex}
+\input{TKZdoc-elements-classes-misc.tex}
+\input{TKZdoc-elements-intersection.tex}
+\input{TKZdoc-elements-examples.tex}
+
+\clearpage\newpage
+\small\printindex
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-presentation.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-presentation.tex
new file mode 100644
index 0000000000..d837d4a826
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-presentation.tex
@@ -0,0 +1,167 @@
+\section{Presentation}
+
+I created \pkg{tkz-euclide} to give math teachers and students a tool to draw Euclidean geometry figures. This package was created as an interface based on \pkg{TikZ}, itself based on \TEX{}. The only problem encountered with this method is, in complicated cases, the lack of precision of the calculations made by \TEX{}.
+
+To remedy this lack of precision, I first introduced the package \pkg{fp}, then the package \pkg{xfp}. Lately, with the arrival of lua\LATEX{}, I have been able to add a \tkzname{Lua} option whose goal was to perform some calculations with \tkzname{Lua}. It is much easier to program mathematics with \tkzname{Lua} than with \TEX{} so having prepared \pkg{tkz-euclide}, by separating the first parts of definitions and calculations from the drawing part, the idea of carrying out the first parts with only \tkzname{Lua} was necessary.
+
+I had received some examples of programming with \tkzname{Lua} from Nicolas Kisselhoff and I took many of his ideas.
+
+The essential principles of figure construction with \tkzname{tkz-euclide} are kept: definition, calculations, tracings, labels as well as the step-by-step programmation, corresponding to a construction with a ruler and a compass.
+
+Then, I read an article by Roberto Giacomelli on object programming based on the \tkzname{Lua} and \TIKZ\ tools. This was my second source of inspiration. Not only could the programming be done step-by-step, but the introduction of objects allowed the link between the code and the geometry. The code becomes more readable, the code is more explicit and better structured but it is less concise. Finally, as the problem of precision disappeared, I came to appreciate more and more what I was getting with object programming. So I've tried to develop this programming as much as possible.
+
+In order to organize and maintain all the functions and methods, I chose to use classes of objects whose main ones are \tkzname{point}, \tkzname{line}, \tkzname{triangle}, \tkzname{circle} and \tkzname{ellipse}.
+
+\subsection{With Lua} % (fold)
+\label{sub:with_lua}
+
+The purpose of tkz-elements is simply to calculate dimensions and define points. This is done in Lua. You can think of tkz-elements as a kernel that will be used either by tkz-euclide or by TikZ, see MetaPost.
+Definitions and calculations are done inside the environment \tkzNameEnv{tkzelements}, this environment is based on \tkzNameEnv{luacode}.
+To improve precision, if it's necessary to modify the scale of your figure, it's best to change the "scale" variable at the start of the code placed in environment \tkzNameEnv{tkzelements}.
+Then we need to be able to transfer the coordinates of the points to a package that can use them, in this case tkz-euclide or TikZ.
+% subsection with_lua (end)
+
+\subsection{The main process : from tkz-elements (lua) to tkz-euclide (TikZ) with Lua\LaTeX.} % (fold)
+\label{sub:the_main_process}
+
+
+When all the points necessary for the drawing are obtained, they must be transformed into \tkzname{nodes} so that \pkg{TikZ} or \pkg{tkz-euclide} can draw the figure. This is done through the macro \tkzcname{tkzGetNodes}. This macro browse all the elements of the table |z| using the key (in fact the name of the point) and retrieves the values associated with it, i.e. the coordinates of the point (node).
+
+A point $A$ is defined and stored in tkz-elements as follows:
+|z.A| is an element of a table |z| which contains the coordinates of $A$ in the form of a complex number (very useful for calculations). Then a macro, \tkzcname{tkzGetNodes}, transforms all elements of table |z| into nodes usable by tkz-euclide or TikZ. For another package, you'll need to adapt \tkzcname{tkzGetNodes}.
+
+% subsection the_main_process (end)
+
+\newpage
+\subsection{Complete example: Pappus circle} % (fold)
+\label{sub:the_figure_pappus_circle}
+
+The figure:
+
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (10 , 0)
+ L.AB = line: new ( z.A, z.B)
+ z.C = L.AB: gold_ratio ()
+ L.AC = line: new ( z.A, z.C)
+ L.CB = line: new ( z.C, z.B)
+ L.AB = line: new ( z.A, z.B)
+ z.O_0 = L.AB.mid
+ z.O_1 = L.AC.mid
+ z.O_2 = L.CB.mid
+ C.AB = circle: new ( z.O_0, z.B)
+ C.AC = circle: new ( z.O_1, z.C)
+ C.CB = circle: new ( z.O_2, z.B)
+ z.P = C.CB.north
+ z.Q = C.AC.north
+ z.O = C.AB.south
+ z.c = z.C : north (2)
+ C.PC = circle: new ( z.P, z.C)
+ C.QA = circle: new ( z.Q, z.A)
+ z.P_0 = intersection (C.PC,C.AB)
+ z.P_1 = intersection (C.PC,C.AC)
+ _,z.P_2 = intersection (C.QA,C.CB)
+ T = triangle: new ( z.P_0, z.P_1, z.P_2)
+ z.O_3 = T.circumcenter
+\end{tkzelements}
+\hspace*{\fill}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle[black,fill=yellow!20,opacity=.4](O_0,B)
+ \tkzDrawCircles[teal,fill=teal!40,opacity=.6](O_1,C O_2,B)
+ \tkzDrawCircle[purple,fill=purple!20,opacity=.4](O_3,P_0)
+ \tkzDrawArc[cyan,delta=10](Q,A)(P_0)
+ \tkzDrawArc[cyan,delta=10](P,P_0)(B)
+ \tkzDrawArc[cyan,delta=10](O,B)(A)
+ \tkzDrawPoints(A,B,C,O_0,O_1,O_2,P,Q,P_0,P_0,P_1,P_2,O)
+ \tkzLabelPoints(A,B,C,O_0,O_1,O_2,P,Q,P_0,P_0,P_1,P_2,O)
+ \end{tikzpicture}
+\hspace*{\fill}
+% subsection the_figure_pappus_circle (end)
+
+\subsubsection{The code} % (fold)
+\label{ssub:the_code}
+
+\begin{tkzexample}[small, code only,num]
+% !TEX TS-program = lualatex
+\documentclass{article}
+\usepackage{tkz-euclide}
+\usepackage{tkz-elements}
+\begin{document}
+
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (10 , 0)
+ L.AB = line: new ( z.A, z.B)
+ z.C = L.AB: gold_ratio ()
+ L.AC = line: new ( z.A, z.C)
+ L.CB = line: new ( z.C, z.B)
+ L.AB = line: new ( z.A, z.B)
+ z.O_0 = L.AB.mid
+ z.O_1 = L.AC.mid
+ z.O_2 = L.CB.mid
+ C.AB = circle: new ( z.O_0, z.B)
+ C.AC = circle: new ( z.O_1, z.C)
+ C.CB = circle: new ( z.O_2, z.B)
+ z.P = C.CB.north
+ z.Q = C.AC.north
+ z.O = C.AB.south
+ z.c = z.C : north (2)
+ C.PC = circle: new ( z.P, z.C)
+ C.QA = circle: new ( z.Q, z.A)
+ z.P_0 = intersection (C.PC,C.AB)
+ z.P_1 = intersection (C.PC,C.AC)
+ _,z.P_2 = intersection (C.QA,C.CB)
+ T = triangle: new ( z.P_0, z.P_1, z.P_2)
+ z.O_3 = T.circumcenter
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle[black,fill=yellow!20,opacity=.4](O_0,B)
+ \tkzDrawCircles[teal,fill=teal!40,opacity=.6](O_1,C O_2,B)
+ \tkzDrawCircle[purple,fill=purple!20,opacity=.4](O_3,P_0)
+ \tkzDrawArc[cyan,delta=10](Q,A)(P_0)
+ \tkzDrawArc[cyan,delta=10](P,P_0)(B)
+ \tkzDrawArc[cyan,delta=10](O,B)(A)
+ \tkzDrawPoints(A,B,C,O_0,O_1,O_2,P,Q,P_0,P_0,P_1,P_2,O)
+ \tkzLabelPoints(A,B,C,O_0,O_1,O_2,P,Q,P_0,P_0,P_1,P_2,O)
+\end{tikzpicture}
+\end{document}
+\end{tkzexample}
+% subsubsection the_code (end)
+
+\subsubsection{Some explanations} % (fold)
+\label{ssub:some_explanations}
+
+Half of the code concerns the direct creation of objects (|point: new |, |circle: new | etc.)
+
+Then points are obtained using object attributes like |L.AB.mid| which determines the middle of the segment $[AB]$ or |C.AB.south| which allows to obtain the south pole of the circle with center $A$ passing through $B$.
+
+About the naming of objects, see the section \ref{sec:writing_convention}
+
+\begin{itemize}
+ \item Lines 8 and 9 create two fixed points $A$ and $B$.
+
+ \item Line 10 these two points are used to create the line.
+
+ \item Line 11 the gold method creates a point $C$ which divides the segment $[AB]$ according to the golden ratio.
+
+ \item Lines 12, 13 and 14 creation of 3 new lines.
+
+\item Lines 15, 16 and 17 creation of 3 points: the midpoints of the previous segments. These points are predefined and it is enough to use the attributes of the lines. Another possibility is to use the triangle T.ABC with the method : |medial_tr|
+
+\item Lines 18, 19 et 20 creation of three circles.
+
+\item Line 21 creation of the south pole $P$ of the circle of center C passing through B. It is also a predefined point and we still use an attribute.
+
+\item Lines 22 and 23 we create two new poles: north and south for two other circles.
+
+\item Lines 24 and 25 creation of two circles.
+
+\item Lines 26 and 27 search for intersections of two circles.
+
+\item Lines 28 and 29 we use a triangle to search for its circum center.
+\end{itemize}
+% subsubsection some_explanations (end)
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/tkz-elements.pdf b/macros/latex/contrib/tkz/tkz-elements/doc/tkz-elements.pdf
new file mode 100644
index 0000000000..7c2839b3f4
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/tkz-elements.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo-1.pdf b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo-1.pdf
new file mode 100644
index 0000000000..0c97b2e50b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo-1.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_1.pdf b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_1.pdf
new file mode 100644
index 0000000000..373dc1b0bc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_1.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_1.tex b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_1.tex
new file mode 100644
index 0000000000..faa0ef52bb
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_1.tex
@@ -0,0 +1,46 @@
+% !TEX TS-program = lualatex
+% Author Alain Matthes 2023
+\documentclass{article}
+\usepackage{tkz-euclide}
+\usepackage{tkz-elements}
+\begin{document}
+
+\begin{tkzelements}
+ z.A = point: new (0 , 0)
+ z.B = point: new (10 , 0)
+ L.AB = line: new ( z.A, z.B)
+ z.C = L.AB: gold_ratio ()
+ L.AC = line: new ( z.A, z.C)
+ L.CB = line: new ( z.C, z.B)
+ L.AB = line: new ( z.A, z.B)
+ z.O_0 = L.AB.mid
+ z.O_1 = L.AC.mid
+ z.O_2 = L.CB.mid
+ C.AB = circle: new ( z.O_0, z.B)
+ C.AC = circle: new ( z.O_1, z.C)
+ C.CB = circle: new ( z.O_2, z.B)
+ z.P = C.CB.north
+ z.Q = C.AC.north
+ z.O = C.AB.south
+ z.c = z.C : north (2)
+ C.PC = circle: new ( z.P, z.C)
+ C.QA = circle: new ( z.Q, z.A)
+ z.P_0 = intersection (C.PC,C.AB)
+ z.P_1 = intersection (C.PC,C.AC)
+ _,z.P_2 = intersection (C.QA,C.CB)
+ T = triangle: new ( z.P_0, z.P_1, z.P_2)
+ z.O_3 = T.circumcenter
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle[black,fill=yellow!20,opacity=.4](O_0,B)
+ \tkzDrawCircles[teal,fill=teal!40,opacity=.6](O_1,C O_2,B)
+ \tkzDrawCircle[purple,fill=purple!20,opacity=.4](O_3,P_0)
+ \tkzDrawArc[cyan,delta=10](Q,A)(P_0)
+ \tkzDrawArc[cyan,delta=10](P,P_0)(B)
+ \tkzDrawArc[cyan,delta=10](O,B)(A)
+ \tkzDrawPoints(A,B,C,O_0,O_1,O_2,P,Q,P_0,P_0,P_1,P_2,O)
+ \tkzLabelPoints(A,B,C,O_0,O_1,O_2,P,Q,P_0,P_0,P_1,P_2,O)
+\end{tikzpicture}
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_2.pdf b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_2.pdf
new file mode 100644
index 0000000000..0816322b1b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_2.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_2.tex b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_2.tex
new file mode 100644
index 0000000000..337c3f8cbe
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_2.tex
@@ -0,0 +1,59 @@
+% !TEX TS-program = lualatex
+% Author Alain Matthes 2023
+\documentclass{article}
+\usepackage{tkz-euclide}
+\usepackage{tkz-elements}
+\begin{document}
+
+ The Feuerbach triangle is the triangle formed by the three points of tangency of the nine-point circle with the excircles
+
+\begin{tkzelements}
+ scale = .5
+ z.A = point: new (0,0)
+ z.B = point: new (6,0)
+ z.C = point: new (0.8,4)
+ T.ABC = triangle : new (z.A,z.B,z.C)
+ C.euler = T.ABC: euler_circle ()
+ z.N,z.Ma = get_points (C.euler)
+ z.I_a,z.I_b,z.I_c = get_points (T.ABC : excentral())
+ z.Ea,z.Eb,z.Ec = get_points (T.ABC : feuerbach ())
+ z.S,z.p = get_points (T.ABC : spieker_circle ())
+ -- S spieker point is the radical center of the last three circles
+ C.exa = T.ABC : ex_circle ()
+ C.exb = T.ABC : ex_circle (1)
+ C.exc = T.ABC : ex_circle (2)
+ _,z.Xa = get_points (C.exa)
+ _,z.Xb = get_points (C.exb)
+ _,z.Xc = get_points (C.exc)
+ L.fa = line : new (z.S,z.Ea)
+ L.fb = line : new (z.S,z.Eb)
+ L.fc = line : new (z.S,z.Ec)
+ z.f_a = intersection (L.fa,C.exa)
+ z.f_b = intersection (L.fb,C.exb)
+ _,z.f_c = intersection (L.fc,C.exc)
+ T = triangle : new ( z.f_a, z.f_b , z.f_c )
+ z.o = T.circumcenter
+ _,z.l = get_points (C.exa : orthogonal_from (z.S))
+ -- S center of inversion !!
+\end{tkzelements}
+\vspace*{2em}
+\hfill
+\begin{tikzpicture}
+\tkzSetUpLine[ultra thin,color=teal]
+\tkzGetNodes
+\tkzDrawCircles[red](o,f_a N,Ma)
+\tkzDrawPoints[red](f_a,f_b,f_c,Ea,Eb,Ec,o,N)
+\tkzClipCircle(o,f_a)
+\tkzDrawLines[add=3 and 3](A,B A,C B,C)
+\tkzDrawCircles(I_a,Xa I_b,Xb I_c,Xc)
+\tkzDrawCircles[cyan](S,l)
+\tkzDrawPoints(A,B,C)
+\tkzDrawPoints[cyan](S)
+\tkzDrawSegments[dashed,red](S,f_a S,f_b S,f_c)
+\tkzDrawSegments[dashed,teal](o,f_a o,f_b o,f_c)
+\end{tikzpicture}
+\hfill
+\end{document}
+
+
+
diff --git a/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_3.pdf b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_3.pdf
new file mode 100644
index 0000000000..1873fd5c85
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_3.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_3.tex b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_3.tex
new file mode 100644
index 0000000000..684475e28e
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/examples/tkz-elements-demo_3.tex
@@ -0,0 +1,62 @@
+% !TEX TS-program = lualatex
+% Author Alain Matthes 2023
+\documentclass{article}
+\usepackage{tkz-euclide}
+\usepackage{tkz-elements}
+\begin{document}
+
+\begin{tkzelements}
+ scale = 2
+ z.A = point: new (0 , 0)
+ z.B = point: new (5 , 1)
+ L.AB = line : new (z.A,z.B)
+ z.C = point: new (.8 , 3)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ z.N = T.ABC.eulercenter
+ z.G = T.ABC.centroid
+ z.O = T.ABC.circumcenter
+ z.H = T.ABC.orthocenter
+ z.Ma,z.Mb,z.Mc = get_points (T.ABC : medial ())
+ z.Ha,z.Hb,z.Hc = get_points (T.ABC : orthic ())
+ z.Ea,z.Eb,z.Ec = get_points (T.ABC: extouch())
+ L.euler = T.ABC : euler_line ()
+ C.circum = T.ABC : circum_circle ()
+ C.euler = T.ABC : euler_circle ()
+ z.I,z.J = intersection (L.euler,C.euler)
+ E = ellipse: foci (z.H,z.O,z.I)
+ a = E.Rx
+ b = E.Ry
+ ang = math.deg(E.slope)
+ L.AH = line: new (z.A,z.H)
+ L.BH = line: new (z.B,z.H)
+ L.CH = line: new (z.C,z.H)
+ z.X = intersection (L.AH,C.circum)
+ _,z.Y = intersection (L.BH,C.circum)
+ _,z.Z = intersection (L.CH,C.circum)
+ L.BC = line: new (z.B,z.C)
+ L.XO = line: new (z.X,z.O)
+ L.YO = line: new (z.Y,z.O)
+ L.ZO = line: new (z.Z,z.O)
+ z.x = intersection (L.BC,L.XO)
+ z.U = intersection (L.XO,E)
+ _,z.V = intersection (L.YO,E)
+ _,z.W = intersection (L.ZO,E)
+ set_lua_to_tex {'a','b','ang'}
+ \end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawCircles[red](N,Ma O,A)
+ \tkzDrawSegments(A,X B,Y C,Z B,Hb C,Hc X,O Y,O Z,O)
+ \tkzDrawPolygon[red](U,V,W)
+ \tkzLabelPoints[red](U,V,W)
+ \tkzLabelPoints(A,B,C,X,Y,Z)
+ \tkzDrawLine[blue](I,J)
+ \tkzLabelPoints[blue,right](O,N,G,H,I,J)
+ \tkzDrawPoints(I,J,U,V,W)
+ \tkzDrawPoints(A,B,C,N,G,H,O,X,Y,Z,Ma,Mb,Mc,Ha,Hb,Hc)
+ \tkzDrawEllipse[blue](N,\a,\b,\ang)
+\end{tikzpicture}
+\end{document}
+
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz-elements.sty b/macros/latex/contrib/tkz/tkz-elements/latex/tkz-elements.sty
new file mode 100644
index 0000000000..a147a045aa
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz-elements.sty
@@ -0,0 +1,35 @@
+% encoding : utf8
+% tkz-elements v1.00b
+% Copyright 2023 Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+% This work has the LPPL maintenance status “maintained”.
+% The Current Maintainer of this work is Alain Matthes.
+
+\ProvidesPackage{tkz-elements}[2023/10/20 v1.00b Graphic Object Library]
+\RequirePackage{luacode}
+\RequirePackage{filecontents}
+\directlua{require "tkz_elements_main"}
+
+\newenvironment{tkzelements}
+ {\directlua{scale=1}
+ \luacode}
+ {\endluacode}
+\def\tkzGetNodes{\directlua{%
+ for K,V in pairs(z) do
+ local KS,n,sd,ft
+ KS = tostring(K)
+ n = string.len(KS)
+ if n >1 then
+ _,_,ft, sd = string.find( KS , "(.+)(.)" )
+ if sd == "p" then K=ft.."'" end
+ end
+ tex.print("\\coordinate ("..K..") at ("..V.re..","..V.im..") ;\\\\")
+end}
+}
+\endinput
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circles.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circles.lua
new file mode 100644
index 0000000000..52da83fc25
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circles.lua
@@ -0,0 +1,129 @@
+-- tkz_elements-circles.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+---------------------------------------------------------------------------
+-- circles
+---------------------------------------------------------------------------
+circle = {}
+function circle: new (c, t) -- c --> center t --> through
+ local type = 'circle'
+ local radius = point.abs ( c - t )
+ local south = c - point (0,radius)
+ local east = c + point (radius,0)
+ local north = c + point (0,radius)
+ local west = c - point (radius,0)
+ local new_circle = { center = c, through = t, radius = radius,
+ south=south,east=east,north=north,west=west,type = type}
+ setmetatable(new_circle, {__index = circle})
+ return new_circle
+end
+
+function circle: antipode (pt)
+ return 2 * self.center - pt
+end
+
+function circle: power (pt)
+ local d
+ d = point.abs (self.center - pt)
+ return d * d - self.radius * self.radius
+end
+
+function circle: in_out (pt)
+ local d
+ d = point.abs (pt - self.center)
+ if d <= self.radius
+ then
+ return true
+ else
+ return false
+ end
+end
+
+-- function circle: tangent_at (pt)
+-- return tangent_at_ (self.center,self.through,pt)
+-- end
+
+function circle: tangent_at (pt)
+ return line : new ( rotation_ (pt,math.pi/2,self.center),rotation_ (pt,-math.pi/2,self.center))
+ end
+
+
+function circle: tangent_from (pt)
+ local t1,t2
+ t1,t2 = tangent_from_ (self.center,self.through,pt)
+ return line :new (pt,t1),line : new (pt,t2)
+ end
+
+function circle: orthogonal_from (pt)
+ local t1,t2
+ t1,t2 = tangent_from_ (self.center,self.through,pt)
+ return circle : new (pt,t1), circle : new (pt,t2)
+end
+
+function circle: orthogonal_through (pta,ptb)
+ return circle : new (orthogonal_through_ (self.center,self.through,pta,ptb),pta)
+ end
+
+ function circle: inversion (pt)
+ return inversion_ (self.center,self.through,pt)
+ end
+
+ function circle: set_inversion (...)
+ local tp = table.pack(...)
+ local i
+ local t = {}
+ for i=1,tp.n do
+ table.insert( t , inversion_ ( self.center,self.through, tp[i] ) )
+ end
+ return table.unpack ( t )
+ end
+
+ function circle: midarc (z1,z2)
+ local phi = 0.5 * get_angle_(self.center,z1,z2 )
+ return rotation_ (self.center,phi,z1)
+ end
+
+ function circle: point (phi)
+ return point (self.center.re+self.radius*math.cos(phi),self.center.im+self.radius*math.sin(phi) )
+ end
+
+function circle: random_pt(lower, upper)
+local t
+ math.randomseed( tonumber(tostring(os.time()):reverse():sub(1,6)) )
+ phi = lower + math.random() * (upper - lower)
+return point (self.center.re+self.radius*math.cos(phi),self.center.im+self.radius*math.sin(phi) )
+end
+
+function circle: radical_axis (C)
+ local t1,t2
+ t1,t2 = radical_axis_ (self.center,self.through,C.center,C.through)
+return line : new (t1,t2)
+end
+
+function circle: internal_similitude (C)
+ return barycenter_ ({self.center,C.radius},{C.center,self.radius})
+end
+
+function circle: external_similitude (C)
+ return barycenter_ ({C.center,self.radius},{self.center,-C.radius})
+end
+
+function circle: draw ()
+ local x,y
+ x, y = self.center: get ()
+ local r = self.radius
+ local frmt = '\\draw (%0.3f,%0.3f) circle [radius=%0.3f];'
+ tex.sprint(string.format(frmt, x,y,r))
+end
+
+return circle \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_class.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_class.lua
new file mode 100644
index 0000000000..8a2564bd36
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_class.lua
@@ -0,0 +1,48 @@
+-- tkz_elements_class.lua
+-- from class.lua (Simple Lua Classes from Lua-users wiki)
+-- Compatible with Lua 5.1 (not 5.0).
+-- http://lua-users.org/wiki/SimpleLuaClasses DavidManura
+
+function class(base, init)
+ local c = {} -- a new class instance
+ if not init and type(base) == 'function' then
+ init = base
+ base = nil
+ elseif type(base) == 'table' then
+ -- our new class is a shallow copy of the base class!
+ for i,v in pairs(base) do
+ c[i] = v
+ end
+ c._base = base
+ end
+ -- the class will be the metatable for all its objects,
+ -- and they will look up their methods in it.
+ c.__index = c
+
+ -- expose a constructor which can be called by <classname>(<args>)
+ local mt = {}
+ mt.__call = function(class_tbl, ...)
+ local obj = {}
+ setmetatable(obj,c)
+ if init then
+ init(obj,...)
+ else
+ -- make sure that any stuff from the base class is initialized!
+ if base and base.init then
+ base.init(obj, ...)
+ end
+ end
+ return obj
+ end
+ c.init = init
+ c.is_a = function(self, klass)
+ local m = getmetatable(self)
+ while m do
+ if m == klass then return true end
+ m = m._base
+ end
+ return false
+ end
+ setmetatable(c, mt)
+ return c
+end \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_ellipses.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_ellipses.lua
new file mode 100644
index 0000000000..0e15d5ab86
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_ellipses.lua
@@ -0,0 +1,119 @@
+-- tkz_elements-ellipses.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+---------------------------------------------------------------------------
+-- circles
+---------------------------------------------------------------------------
+ellipse = {}
+
+function ellipse: new(pc, pa ,pb)
+-- pc --> center pa --> through big axe pb --> little axe
+ local type = 'ellipse'
+ local Rx = point.abs ( pa - pc )
+ local Ry = point.abs ( pb - pc )
+ local slope = slope_ (pc,pa)
+ local c = math.sqrt (Rx*Rx-Ry*Ry)
+ local Fa = pc + c*(point(math.cos(slope),math.sin(slope)))
+ local Fb = pc - c*(point(math.cos(slope),math.sin(slope)))
+ local east = pa
+ local north = pb
+ local west = 2 * pc - pa
+ local south = 2 * pc - pb
+ local vertex = pa
+ local covertex = pb
+ local new_ellipse = { center = pc,
+ vertex = vertex,
+ covertex = covertex,
+ Rx = Rx,
+ Ry = Ry,
+ slope = slope,
+ Fa = Fa,
+ Fb = Fb,
+ type = type,
+ north = north,
+ south = south,
+ east = east,
+ west = west }
+ setmetatable(new_ellipse, {__index = ellipse})
+ return new_ellipse
+end
+
+function ellipse: foci (f1,f2,v )
+ local c,a,h,b,cov
+ c = midpoint_ (f1,f2)
+ a = point.abs(v-c)
+ h = point.abs(f1-c)
+ b = math.sqrt(a^2-h^2)
+ cov = (v-c)*point(0,1)/point.abs(v-c)*b+c
+ return ellipse: new (c,v,cov)
+end
+
+function ellipse: radii (c,a,b,sl )
+ local z,v,cov
+ z = point (a*math.cos(sl),a*math.sin(sl))
+ v = c + z
+ z.V = v
+ cov = (v-c)*point(0,1)/point.abs(v-c)*b+c
+return ellipse: new (c,v,cov)
+end
+
+function ellipse: point (phi)
+ local ax,ay,bx,by,cx,cy
+ cx = self.center.re
+ cy = self.center.im
+ ax = self.Rx * math.cos(self.slope) * math.cos(phi)
+ ay = self.Rx * math.sin(self.slope) * math.cos(phi)
+ bx = -self.Ry * math.sin(self.slope) * math.sin(phi)
+ by = self.Ry * math.cos(self.slope) * math.sin(phi)
+return point (cx+ax+bx,cy+ay+by)
+end
+
+function ellipse: tangent_at (pt)
+ local zi,u,v
+ zi = in_center_ (self.Fa,pt,self.Fb)
+ u = pt+(zi-pt)*point(0,1)
+ v = pt : symmetry (u)
+ return line : new (u,v)
+end
+
+function ellipse: tangent_from (pt)
+ local da,db,zx,zy,zz,u,v,L,U,V
+ zx = 2 * self.Rx * math.cos(self.slope)
+ zy = 2 * self.Rx * math.sin(self.slope)
+ zz = self.Fb + point(zx,zy)
+ s1,s2 = intersection_cc_ (pt,self.Fa,self.Fb,zz)
+ u,v = mediator_ (s2,self.Fa)
+ L = line: new (u,v)
+ U,U = intersection_le (L,self)
+ u,v = mediator_ (s1,self.Fa)
+ L = line: new (pt,u)
+ V,V = intersection_le (L,self)
+ return line : new (pt,U), line : new (pt,V)
+end
+
+function ellipse: in_out (pt)
+ local d,D,an,m,epsilon
+ epsilon = 10^(-12)
+ d = point.abs (pt - self.center)
+ an = point.arg (pt - self.center)
+ m = point(self.Rx*math.cos(an),self.Ry*math.sin(an))
+ D = point.abs (m - self.center)
+ if D-d > epsilon
+ then
+ return true
+ else
+ return false
+ end
+end
+return ellipse \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_circles.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_circles.lua
new file mode 100644
index 0000000000..e1d6b4bd53
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_circles.lua
@@ -0,0 +1,108 @@
+-- tkz_elements_functions_circles.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+-- define a circle by the center and a radius
+
+function circle_cr ( c, r )
+ return c + point(r,0)
+end
+
+function midarc_ (o,a,b) -- a -> b
+ local phi = 0.5 * get_angle_ ( a,o,b )
+ return rotation_ (o,phi,b)
+end
+---------------------------------------------------------------------------
+-- -- possible (C,p) with C.center and C.through
+-- function tangent_from (c,p)
+-- local m = midpoint_ (c.center,p)
+-- return intersection_cc_ (c.center,c.through,m,p)
+-- end
+---------------------------------------------------------------------------
+-- tangente à un cercle
+---------------------------------------------------------------------------
+function tangent_from_ (c,p,pt)
+ local o
+ o = midpoint_ ( c,pt )
+ return intersection_cc_ (o,c,c,p)
+end
+
+function tangent_at_ (a,b,p)
+ return rotation_ (p,math.pi/2,a),rotation_ (p,-math.pi/2,a)
+end
+
+function orthogonal_from_ (a,b,p)
+ return tangent_from_ (a,b,p)
+end
+
+function orthogonal_through_ (a,b,x,y)
+ local d,z
+ d = 1/point.mod(x-a)
+ z = a +(b-a)*d
+ return circum_center_ (x,y,z)
+end
+
+
+function inversion_ (c,p,pt)
+ local ry = point.abs(c-p)
+ local d = point.abs(c-pt)
+ local r = (ry*ry)/d
+ return c+polar_ (r,point.arg(pt-c))
+end
+
+function radical_axis_ (c1,p1,c2,p2)
+ local d,m,m1,m2,epsilon,ci,cj,ck,cm,cn,r1,r2
+ r1 = point.abs(c1-p1)
+ r2 = point.abs(c2-p2)
+ epsilon = 10^(-12)
+ d = point.abs (c2 - c1)
+ m = d - (r1+r2)
+ m1 = math.abs (d - (r1+r2))
+ m2 = math.abs (d - math.abs(r1-(r2)))
+ if m2 < epsilon then
+ ci = rotation_ (p1,math.pi/2,c2)
+ cj = rotation_ (p1,-math.pi/2,c2)
+ return ci,cj
+ elseif m1 < epsilon then -- circles tangent
+ ci = rotation_ (p1,math.pi/2,c2)
+ cj = rotation_ (p1,-math.pi/2,c2)
+ return ci,cj
+ -- circles disjoints
+ elseif m > 0 then
+ ck = rotation_ (c1,math.pi/3,c2)
+ ci,cj = intersection_cc_ (c1,p1,ck,c1)
+ cm,cn = intersection_cc_ (c2,p2,ck,c1)
+ ci = intersection_ll_ (ci,cj,cm,cn)
+ cj = projection_ (c1,c2,ci)
+ return ci,cj
+ else
+ ci,cj = intersection_cc_ (c1,p1,c2,p2)
+ return ci,cj
+ end
+end
+
+function south_pole_ (c,p)
+ local r
+ r = point.abs (c-p)
+ return c - point (0,r)
+ end
+
+function north_pole_ (c,p)
+ local r
+ r = point.abs (c-p)
+ return c + point (0,r)
+end
+
+function antipode_ (c,pt)
+ return 2 * c - pt
+end
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_intersections.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_intersections.lua
new file mode 100644
index 0000000000..8c5123129d
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_intersections.lua
@@ -0,0 +1,207 @@
+-- tkz_elements_intersections.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+-------------------------------------------------------------------------
+-- intersection of lines
+-------------------------------------------------------------------------
+function intersection_ll (la,lb)
+ return intersection_ll_ (la.pa,la.pb,lb.pa,lb.pb)
+end
+---------------------------------------------------------------------------
+-- intersection of a line and a circle
+---------------------------------------------------------------------------
+function intersection_lc (D,C )
+ return intersection_lc_ ( D.pa,D.pb ,C.center,C.through )
+end -- function
+---------------------------------------------------------------------------
+-- intersection of two circles
+---------------------------------------------------------------------------
+function intersection_cc (Ca , Cb )
+ return intersection_cc_(Ca.center,Ca.through,Cb.center,Cb.through)
+end -- function
+
+-- line ellipse
+function intersection_le (L,E)
+ local a,b,c,d,t1,t2,z1,z2,Bx,By,Ax,Ay,Rx,Ry,epsilon,sd
+ A = (L.pa - E.center)*(point(math.cos(E.slope),-math.sin(E.slope)))
+ B = (L.pb - E.center)*(point(math.cos(E.slope),-math.sin(E.slope)))
+ epsilon = 10^(-6)
+ Rx = E.Rx
+ Ry = E.Ry
+ Ax = A.re
+ Ay = A.im
+ Bx = B.re
+ By = B.im
+ a = Rx^2 * (By-Ay)^2 +Ry^2 * (Bx-Ax)^2
+ b = 2 * Rx^2 * Ay * (By-Ay)+ 2 * Ry^2 * Ax * (Bx-Ax)
+ c = Rx^2 * Ay^2 + Ry^2 * Ax^2 - Rx^2 * Ry^2
+ d = b^2 - 4 * a * c
+
+ if d > 0 then
+ sd = math.sqrt(d)
+ t1 = (-(b)+sd)/(2*a)
+ t2 = (-(b)-sd)/(2*a)
+ z1 = point ( Ax + (Bx-Ax)*t1 , Ay + (By-Ay)*t1 )
+ z2 = point ( Ax + (Bx-Ax)*t2 , Ay + (By-Ay)*t2 )
+ if angle_normalize (point.arg(z1)) < angle_normalize (point.arg(z2))
+ then
+ return z1*(point(math.cos(E.slope),math.sin(E.slope))) + E.center,
+ z2*(point(math.cos(E.slope),math.sin(E.slope))) + E.center
+ else
+ return z2*(point(math.cos(E.slope),math.sin(E.slope))) + E.center,
+ z1*(point(math.cos(E.slope),math.sin(E.slope))) + E.center
+ end -- if
+ elseif math.abs(d) < epsilon
+ then
+ t1 = (-(b))/(2*a)
+ z1 = point ( Ax + (Bx-Ax)*t1 , Ay + (By-Ay)*t1 )
+ return z1*(point(math.cos(E.slope),math.sin(E.slope))) + E.center,
+ z1*(point(math.cos(E.slope),math.sin(E.slope))) + E.center
+ else
+ return false,false
+ end
+end
+
+function intersection_ll_ (a,b,c,d)
+ local x1,x2,x3,x4,y1,y2,y3,y4,DN,NX,NY,epsilon
+ epsilon = 10^(-12)
+ x1 = a.re
+ y1 = a.im
+ x2 = b.re
+ y2 = b.im
+ x3 = c.re
+ y3 = c.im
+ x4 = d.re
+ y4 = d.im
+ DN = (x1-x2)*(y3-y4) - (y1-y2)*(x3-x4)
+ if math.abs ( DN ) < epsilon then
+ return false
+ else
+ NX = (x1*y2-y1*x2)*(x3-x4) - (x1-x2)*(x3*y4-y3*x4)
+ NY = (x1*y2-y1*x2)*(y3-y4) - (y1-y2)*(x3*y4-y3*x4)
+ return point (NX/DN,NY/DN)
+ end
+end
+
+function intersection_lc_ (pa,pb,c,p)
+ local zh, dh, arg_ab, test, phi,epsilon,c1,c2,r
+ r = point.mod (c-p)
+ epsilon = 10^(-12)
+ zh = projection_ (pa,pb,c)
+ dh = point.abs (c - zh)
+ arg_ab = point.arg (pa - pb)
+ if dh < epsilon
+ then
+ return
+ c + polar_ (r , math.pi + arg_ab), -- through center
+ c + polar_ (r , arg_ab)
+ elseif math.abs (r - dh) < epsilon
+ then
+ return zh , zh -- tangent
+ elseif dh > r
+ then return false , false -- no intersection
+ else
+ phi = math.asin (dh / r)
+ -- phi = angle_normalize(phi)
+ test = (pa-pb) * point.conj (c-zh)
+ if test.im < 0
+ then phi = math.pi + phi
+ end
+ c1 = angle_normalize (arg_ab + phi )
+ c2 = angle_normalize (math.pi + arg_ab - phi )
+ if c2 < c1 then
+ return
+ c + polar_ (r, c2) ,
+ c + polar_ (r, c1)
+ else
+ return
+ c + polar_ (r, c1) ,
+ c + polar_ (r, c2)
+ end -- if
+ end -- if
+
+end -- function
+
+function intersection_cc_ (ca,pa,cb,pb )
+ local d, cosphi, phi,ra,rb,epsilon
+ epsilon = 12
+ d = point.abs (ca - cb)
+ ra = point.abs (ca - pa)
+ rb = point.abs (cb - pb)
+ cosphi = tkzround(((ra * ra + d * d - rb * rb)
+ /( 2 * ra * d )) , epsilon)
+ phi = tkzround (math.acos(cosphi),epsilon)
+ if not phi then
+ return false , false
+ elseif phi == 0 then
+ return ca + polar_ (ra, phi + point.arg (cb - ca)) ,
+ ca + polar_ (ra, phi + point.arg (cb - ca))
+ else
+ c1 = angle_normalize ( phi + point.arg(cb - ca))
+ c2 = angle_normalize (-phi + point.arg(cb - ca))
+ if c1 < c2 then
+ return
+ ca + polar_(ra, c1),
+ ca + polar_(ra, c2)
+else
+ return
+ ca + polar_(ra, c2),
+ ca + polar_(ra, c1)
+ end -- if
+ end -- if
+ end -- function
+
+function intersection ( X , Y )
+ local i,z1,z2
+ local t = {}
+
+ if X.type == 'circle'
+ then
+ if Y.type == 'circle'
+ then
+ z1,z2 = intersection_cc ( X , Y )
+ table.insert (t , z1 )
+ table.insert (t , z2 )
+ else -- Y[i] est une droite
+ z1,z2 = intersection_lc ( Y , X )
+ table.insert (t , z1 )
+ table.insert (t , z2 )
+ end -- if
+ else
+ if X.type == 'line' then
+ if Y.type == 'circle'
+ then
+ z1,z2 = intersection_lc ( X , Y )
+ table.insert ( t , z1 )
+ table.insert ( t , z2 )
+ else
+ if Y.type == 'line' then
+ z1 = intersection_ll ( X , Y )
+ table.insert (t , z1 )
+ else -- ellipse
+ z1,z2 = intersection_le ( X , Y )
+ table.insert ( t , z1 )
+ table.insert ( t , z2 )
+ end
+ end -- if
+ else
+ if X.type == 'ellipse' then
+ z1,z2 = intersection_le ( Y,X)
+ table.insert ( t , z1 )
+ table.insert ( t , z2 )
+ end
+ end
+ end -- if
+ return table.unpack ( t )
+end -- function \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_lines.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_lines.lua
new file mode 100644
index 0000000000..87ea1de043
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_lines.lua
@@ -0,0 +1,120 @@
+-- tkz_elements_functions_lines.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+---------------------------------------------------------------------------
+-- Lines
+---------------------------------------------------------------------------
+
+function ortho_from_ ( p , a , b )
+ return p+(b-a)*point(0,1)
+end
+
+function ll_from_ ( p , a , b )
+ return p+b-a
+end
+
+function slope_ (a,b)
+ local z = b - a
+ angle = point.arg(z)
+ return angle
+end
+
+function gold_segment_ (a,b)
+ return a + (b-a)*tkzinvphi
+end
+
+function online_ (a,b,t)
+ return barycenter_({a,(1-t)},{b,t})
+ end
+
+ function mediator_ (a,b)
+ local m = midpoint_ (a,b)
+ return m , rotation_ (m,math.pi/2,b)
+ end
+
+ function midpoint_ (z1 , z2)
+ return (z1+z2)/2
+ end
+-- triangle specific
+function equilateral_tr (a,b)
+ return rotation_ (a,math.pi/3,b)
+end
+
+function isosceles_right_tr (a,b)
+ local pt
+ pt = rotation_ (a,math.pi/4,b)
+ return a + (pt-a) * math.sin(math.pi/4)
+end
+
+function gold_tr (a,b)
+ local pt
+ pt = rotation_ (a,math.pi/2,b)
+ return a + (pt-a) * tkzinvphi
+end
+
+function euclide_tr (a,b)
+ return rotation_ (a,math.pi/5,b)
+end
+
+function golden_tr (a,b)
+ local pt
+ pt = rotation_ (a,2*math.pi/5,b)
+ return a + (pt-a) * tkzphi
+end
+
+function div_harmonic_int_(a,b,n)
+ local k = point.abs(a-n)/point.abs(b-n)
+ return barycenter_ ( {a,1} , {b,k} )
+end
+
+function div_harmonic_ext_(a,b,n)
+ local k = point.abs(a-n)/point.abs(b-n)
+ return barycenter_ ( {a,1} , {b,-k} )
+end
+
+function div_harmonic_both_(a,b,k)
+ return barycenter_ ( {a,1} , {b,k} ) , barycenter_ ( {a,1} , {b,-k} )
+end
+
+function golden_ratio_(a,b)
+ local invphi = ( math.sqrt(5) - 1 )/2
+ return a + (b-a) * invphi
+end
+-- projection
+function projection ( Dt,pt )
+ return projection_ ( Dt.pa,Dt.pb,pt )
+end
+
+function projection_ ( pa,pb,pt )
+ local v
+ local z
+ if aligned ( pa,pb,pt ) then
+ return pt
+ else
+ v = pb - pa
+ z = ((pt - pa)..v)/(point.norm(v)) -- .. dot product
+ return pa + z * v
+ end
+end
+
+function symmetry_axial_(pa,pb,pt)
+ local p
+ p = projection_ (pa,pb,pt)
+ return symmetry_(p,pt)
+end
+
+
+function square_ (a,b)
+ return rotation_ (b,-math.pi/2,a), rotation_ (a,math.pi/2,b)
+end \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_maths.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_maths.lua
new file mode 100644
index 0000000000..866912468a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_maths.lua
@@ -0,0 +1,123 @@
+-- tkz_elements_functions_maths.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+-- constant
+tkzphi = (1+math.sqrt(5))/2
+tkzinvphi = (math.sqrt(5)-1)/2
+tkzsqrtphi = math.sqrt(tkzphi)
+---------------------------------------------------------------------------
+function round(num, idp)
+ return topoint(string.format("%." .. (idp or 0) .. "f", num))
+end
+
+function tkzround( num, idp )
+ local mult = 10 ^ ( idp or 0 )
+ return math.floor( num * mult + 0.5 ) / mult
+end
+
+function dot_product (a,b,c)
+ return (b-a)..(c-a)
+end
+
+function Cramer33(a1,a2,a3,b1,b2,b3,c1,c2,c3)
+ return a1*b2*c3+a3*b1*c2+a2*b3*c1-a3*b2*c1-a1*b3*c2-a2*b1*c3
+end
+
+function Cramer22(a1,a2,b1,b2)
+ return a1*b2-a2*b1
+end
+
+function aligned ( m,a,b )
+ local z,epsilon
+ epsilon = 10^(-8)
+ z = (b-a)/(m-b)
+ if math.abs(z.im) < epsilon
+ then
+ return true
+ else
+ return false
+ end
+end
+
+function islinear (z1,z2,z3)
+ local epsilon
+ local dp
+ epsilon = 10^(-8)
+ dp = (z2-z1) ^ (z3-z1)
+ if math.abs(dp) < epsilon
+ then
+ return true
+ else
+ return false
+ end
+end
+
+function isortho (z1,z2,z3)
+ local epsilon
+ local dp
+ epsilon = 10^(-8)
+ dp = (z2-z1) .. (z3-z1)
+ if math.abs(dp) < epsilon
+ then
+ return true
+ else
+ return false
+ end
+end
+
+function set_lua_to_tex (t)
+ for k,v in pairs(t) do
+ token.set_macro(v,_ENV[v],'global')
+ end
+end
+
+function parabola (a,b,c)
+ local xa,xb,xc,ya,yb,yc
+ xa = a.re
+ ya = a.im
+ xb = b.re
+ yb = b.im
+ xc = c.re
+ yc = c.im
+ D = (xa-xb)*(xa-xc)*(xb-xc)
+ A = (xc*(yb-ya) + xb*(ya-yc)+xa*(yc-yb))/D
+ B = (xc*xc*(ya-yb)+xb*xb*(yc-ya)+xa*xa*(yb-yc))/D
+ C = (xb*xc*(xb-xc)*ya + xc*xa*(xc-xa)*yb +xa*xb*(xa-xb)*yc)/D
+ return A,B,C
+end
+
+function value (v)
+ return scale * v
+end
+
+function get_angle (a,b,c)
+ return angle_normalize(get_angle_( a,b,c ))
+end
+
+function get_angle_( a,b,c )
+ return point.arg ((c-a)/(b-a))
+end
+
+function angle_normalize (a)
+local dblpi
+ dblpi = 2 * math.pi
+ if a > dblpi
+ then
+ a = a - dblpi
+ end
+ if a < 0 then
+ a = a + dblpi
+ end
+ return a
+end \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_points.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_points.lua
new file mode 100644
index 0000000000..fcd249d891
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_points.lua
@@ -0,0 +1,81 @@
+-- tkz_elements_functions_points.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+function id ()
+for i,k in pairs(z) do
+ if _G[i]==k then else _G[i]=k end
+ end
+end
+
+function polar_ (radius, phi)
+ return point(radius * math.cos(phi), radius * math.sin(phi))
+end
+
+function barycenter_ (...)
+local cp = table.pack(...)
+local i
+local sum = 0
+local weight=0
+for i=1,cp.n do
+ sum = sum + cp[i][1]*cp[i][2]
+ weight = weight + cp[i][2]
+end
+return sum/weight
+end
+
+function rotation_ (center,alpha,pt)
+ local z = point( math.cos(alpha) , math.sin(alpha) )
+ return z*(pt-center)+center
+end
+
+function symmetry_(c,pt)
+ return 2 * c - pt
+end
+
+function homothety_(c,t,p)
+ return c + t * (p - c)
+end
+
+function translation_(a , p)
+ return a+p
+end
+
+function set_translation_ (u,...)
+ local tp = table.pack(...)
+ local i
+ local t = {}
+ for i=1,tp.n do
+ table.insert( t , (u + tp[i]) )
+ end
+ return table.unpack ( t )
+end
+
+function random_point(lower, upper)
+ math.randomseed( tonumber(tostring(os.time()):reverse():sub(1,6)) )
+ x = math.random (lower, upper)
+ y = math.random (lower, upper)
+ return scale * point (x,y)
+end
+
+function midpoints_ (...)
+ local arg = table.pack(...)
+ local n = arg.n
+ local i
+ local t = {}
+ for i=1, n-1 do
+ table.insert( t , (arg[i]+arg[i+1])/2 )
+ end
+ table.insert( t , (arg[n]+arg[1])/2 )
+ return table.unpack ( t )
+end \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_triangles.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_triangles.lua
new file mode 100644
index 0000000000..b4e41104d1
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_triangles.lua
@@ -0,0 +1,315 @@
+-- tkz_elements_functions_triangles.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+---------------------------------------------------------------------------
+ -- triangle center with circle
+---------------------------------------------------------------------------
+------------------------
+-- Points --
+------------------------
+function circum_center_ ( a,b,c )
+ local ka = math.sin (2 * get_angle_ ( a,b,c ))
+ local kb = math.sin (2 * get_angle_ ( b,c,a ))
+ local kc = math.sin (2 * get_angle_ ( c,a,b ))
+ return barycenter_ ( {a,ka} , {b,kb} , {c,kc} )
+end
+
+function in_center_ ( a,b,c )
+ local ka = point.abs (b-c)
+ local kc = point.abs (b-a)
+ local kb = point.abs (c-a)
+ return barycenter_ ( {a,ka} , {b,kb} , {c,kc} )
+end
+
+function ex_center_ ( a,b,c )
+ local ka = point.abs (b-c)
+ local kc = point.abs (b-a)
+ local kb = point.abs (c-a)
+ return barycenter_ ( {a,-ka} , {b,kb} , {c,kc} )
+ end
+
+-- N,G,H,O
+function centroid_ (a,b,c)
+ return barycenter_ ( {a,1} , {b,1} , {c,1} )
+end
+centroid_center_ = centroid_
+
+function ortho_center_ (a,b,c)
+ local ka = math.tan (get_angle_ ( a,b,c ))
+ local kb = math.tan (get_angle_ ( b,c,a ))
+ local kc = math.tan (get_angle_ ( c,a,b ))
+ return barycenter_ ( {a,ka} , {b,kb} , {c,kc} )
+end
+
+function euler_center_ (a,b,c)
+ local ma,mb,mc = medial_tr_ ( a,b,c)
+ return circum_center_ (ma,mb,mc)
+end
+
+function gergonne_point_ (a,b,c)
+ local u,v,w
+ u,v,w = intouch_tr_ (a,b,c)
+ return intersection_ll_ ( a,u , b,v)
+end
+
+function lemoine_point_(a,b,c)
+local ma,mb,mc,ha,hb,hc,u,v,w
+u = point.abs(c-b)
+v = point.abs(a-c)
+w = point.abs(b-a)
+ return barycenter_ ({a,u*u},{b,v*v},{c,w*w})
+end
+
+function nagel_point_ (a,b,c)
+ local u,v,w
+ u,v,w = extouch_tr_ ( a,b,c )
+return intersection_ll_ (a,u,b,v)
+end
+
+function feuerbach_point_ (a,b,c)
+ local i,h,e,ma
+ i,h = in_circle_ (a,b,c)
+ e = euler_center_ (a,b,c)
+ ma = (b+c)/2
+return intersection_cc_ (i,h,e,ma)
+end
+
+function spieker_center_ (a,b,c)
+return in_center_ (medial_tr_ ( a,b,c))
+end
+
+function euler_points_ (a,b,c)
+ local H
+ H = ortho_center_ ( a , b , c )
+ return midpoint_ ( H,a ), midpoint_ ( H,b ), midpoint_ ( H,c )
+end
+--------------------
+-- lines --
+--------------------
+function euler_line_ (a,b,c)
+ check_equilateral_ (a,b,c)
+ local A = math.tan( get_angle_ ( a,b,c ))
+ local B = math.tan( get_angle_ ( b,c,a ))
+ local C = math.tan( get_angle_ ( c,a,b ))
+
+ return euler_center_ (a,b,c),
+ barycenter_ ( {a,1} , {b,1} , {c,1} ) ,
+ barycenter_ ( {a,A} , {b,B} , {c,C} ) ,
+ barycenter_ ( {a,B+C} , {b,A+C} , {c,A+B} )
+end
+
+function bisector_ (a,b,c) -- possible intersection bisector with side
+ return in_center_ (a,b,c)
+end
+
+function bisector_ext_ (a,b,c)
+ local i
+ i = in_center_ (a,b,c)
+ return rotation_ (a,math.pi/2,i)
+end
+
+function mediators_ (a,b,c)
+ local o = circum_center (a,b,c)
+ return o ,
+ projection_ (b,c,o) ,
+ projection_ (a,c,o) ,
+ projection_ (a,b,o)
+end
+--------------------
+-- circles --
+--------------------
+function circum_circle_ ( a,b,c )
+ local ka = math.sin (2 * get_angle_ ( a,b,c ))
+ local kb = math.sin (2 * get_angle_ ( b,c,a ))
+ local kc = math.sin (2 * get_angle_ ( c,a,b ))
+ return barycenter_ ( {a,ka} , {b,kb} , {c,kc} )
+end
+
+function in_circle_ ( a,b,c )
+ local ka,kb,kc,o
+ ka = point.abs (b-c)
+ kc = point.abs (b-a)
+ kb = point.abs (c-a)
+ o = barycenter_ ( {a,ka} , {b,kb} , {c,kc} )
+ return o ,
+ projection_ (a,b,o) ,
+ projection_ (b,c,o) ,
+ projection_ (c,a,o)
+end
+
+function ex_circle_ ( a,b,c )
+ local ka,kb,kc,o
+ ka = point.abs (b-c)
+ kc = point.abs (b-a)
+ kb = point.abs (c-a)
+ o = barycenter_ ( {a,-ka} , {b,kb} , {c,kc} )
+ return o ,
+ projection_ (b,c,o) ,
+ projection_ (a,c,o) ,
+ projection_ (b,a,o)
+end
+
+function euler_circle_ (a,b,c)
+ local o,ma,mb,mc,H,ha,hb,hc
+ o = euler_center_ (a,b,c)
+ ma,mb,mc = medial_tr_ ( a,b,c)
+ ha,hb,hc = orthic_tr_ ( a,b,c)
+ local _,_,H,_ = euler_line_ (a,b,c)
+ return
+ o,ma,mb,mc,ha,hb,hc,
+ midpoint_ ( H,a ),
+ midpoint_ ( H,b ),
+ midpoint_ ( H,c )
+end
+--------------------
+-- triangles --
+--------------------
+function orthic_tr_ (a,b,c)
+ local o = ortho_center_ (a,b,c)
+ return projection_ (b,c,o) ,
+ projection_ (a,c,o) ,
+ projection_ (b,a,o)
+end
+
+function medial_tr_ (a,b,c)
+ return barycenter_ ( {a,0} , {b,1} , {c,1} ) ,
+ barycenter_ ( {a,1} , {b,0} , {c,1} ) ,
+ barycenter_ ( {a,1} , {b,1} , {c,0} )
+end
+
+function anti_tr_(a,b,c)
+ return barycenter_ ( {a,-1} , {b,1} , {c,1} ) ,
+ barycenter_ ( {a,1} , {b,-1} , {c,1} ) ,
+ barycenter_ ( {a,1} , {b,1} , {c,-1} )
+end
+
+function incentral_tr_ (a,b,c)
+ local i,r,s,t
+ i = in_center (a , b , c)
+ r = intersection_ll_ ( a,i , b,c)
+ s = intersection_ll_ ( b,i , a,c)
+ t = intersection_ll_ ( c,i , a,b)
+return i,r,s,t
+end
+
+function excentral_tr_ (a,b,c)
+ local r,s,t,ka,kb,kc
+ ka = point.abs (b-c)
+ kc = point.abs (b-a)
+ kb = point.abs (c-a)
+ r = barycenter_ ( {a,-ka} , {b,kb} , {c,kc} )
+ s = barycenter_ ( {a,ka} , {b,-kb} , {c,kc} )
+ t = barycenter_ ( {a,ka} , {b,kb} , {c,-kc} )
+ return r,s,t
+end
+
+function intouch_tr_ (a,b,c)
+ local i
+ i = in_center_ (a , b , c)
+ return projection_ (b,c,i),
+ projection_ (a,c,i),
+ projection_ (a,b,i)
+end
+
+function cevian_ (a,b,c,p)
+ return intersection_ll_ (a,p,b,c),
+ intersection_ll_ (b,p,a,c),
+ intersection_ll_ (c,p,a,b)
+end
+
+function extouch_tr_ (a,b,c)
+ local u,v,w
+ u,v,w = excentral_tr_ (a,b,c)
+ return projection_ (b,c,u) ,
+ projection_ (a,c,v) ,
+ projection_ (a,b,w)
+end
+
+function tangential_tr_ (a,b,c)
+ local u,v,w,x,y,z,xx,yy,zz
+ u,v,w = orthic_tr_ (a,b,c)
+ x = ll_from_ ( a , v , w )
+ y = ll_from_ ( b , u , w )
+ z = ll_from_ ( c , u , v )
+ xx = intersection_ll_ (c,z,b,y)
+ yy = intersection_ll_ (a,x,c,z)
+ zz = intersection_ll_ (a,x,b,y)
+return xx,yy,zz
+end
+
+function feuerbach_tr_ (a,b,c)
+ local e,m,ja,ha,jb,hb,jc,hc
+ e = euler_center_ (a,b,c)
+ m = midpoint_( b , c )
+ ja,ha = ex_circle_ ( a , b , c )
+ jb,hb = ex_circle_ ( b , c , a )
+ jc,hc = ex_circle_ ( c , a , b )
+ return intersection_cc_ (e,m,ja,ha),
+ intersection_cc_ (e,m,jb,hb),
+ intersection_cc_ (e,m,jc,hc)
+end
+--------------------
+-- miscellanous --
+--------------------
+
+function area_ (a,b,c)
+ return point.mod(a - projection_(b,c,a))*point.mod (b - c)/2
+end
+
+function check_equilateral_ (a,b,c)
+ local A,B,C,epsilon
+ epsilon = 10 ^(-8)
+ A = b - c
+ B = a - c
+ C = a - b
+ if (point.abs(A)-point.abs(B) < epsilon) and (point.abs(B)-point.abs(C) < epsilon)
+ then
+ tex.print("equilateral !!")
+ error("something went wrong!")
+ end
+end
+
+function parallelogram_ (a,b,c)
+ local x = c + a - b
+ return x
+end
+
+function barycentric_coordinates_ (a,b,c,pt)
+ local AT,AA,AB,AC,x,y,z
+ AT = area_(a,b,c)
+ AA = area_(pt,b,c)
+ AB = area_(a,pt,c)
+ AC = area_(a,b,pt)
+ x = AA/AT
+ y = AB/AT
+ z = AC/AT
+ return x,y,z
+end
+
+function in_out_ (a,b,c,pt)
+ local cba,cbb,cbc,TT,AT,AA,AB,AC
+ AT = area_(a,b,c)
+ AA = area_(pt,b,c)
+ AB = area_(a,pt,c)
+ AC = area_(a,b,pt)
+ cba = AA/AT
+ cbb = AB/AT
+ cbc = AC/AT
+ if (cba >= 0 and cba <= 1) and (cbb >= 0 and cbb <= 1) and (cbc >= 0 and cbc <= 1)
+ then
+ return true
+ else
+ return false
+ end
+end \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_lines.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_lines.lua
new file mode 100644
index 0000000000..05d4196938
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_lines.lua
@@ -0,0 +1,183 @@
+-- tkz_elements_lines.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+-- -------------------------------------------------------------------------
+-- Lines
+-- -------------------------------------------------------------------------
+line = {}
+function line: new(za, zb)
+ local type = 'line'
+ local mid = (za+zb)/2
+ local north_pa = rotation_ (za,math.pi/2,zb)
+ local south_pa = rotation_ (za,-math.pi/2,zb)
+ local north_pb = rotation_ (zb,-math.pi/2,za)
+ local south_pb = rotation_ (zb,math.pi/2,za)
+ local west = rotation_ (za,math.pi/2,north_pa)
+ local east = rotation_ (zb,math.pi/2,south_pb)
+ local slope = point.arg(zb-za)
+ local length = point.mod(zb-za)
+ local new_line = {pa = za, pb = zb,
+ north_pa = north_pa,south_pa = south_pa,west = west,east = east,
+ north_pb = north_pb,south_pb = south_pb,
+ slope = slope,mid = mid,type = type,length = length}
+ setmetatable(new_line, {__index = line})
+ return new_line
+end
+-------------------
+-- Result -> point
+-------------------
+function line: set_projection (...)
+ local tp = table.pack(...)
+ local i
+ local t = {}
+ for i=1,tp.n do
+ table.insert( t , projection_ (self.pa,self.pb , tp[i]) )
+ end
+ return table.unpack ( t )
+end
+
+function line: symmetry_axial ( pt )
+ return symmetry_axial_ ( self.pa,self.pb,pt )
+end
+
+function line: set_symmetry_axial (...)
+ local tp = table.pack(...)
+ local i
+ local t = {}
+ for i=1,tp.n do
+ table.insert( t , symmetry_axial_ (self.pa,self.pb , tp[i]) )
+ end
+ return table.unpack ( t )
+end
+-- k_div ig "gold" or "phi" then
+
+function line: barycenter (ka,kb)
+ return barycenter_({self.pa,ka},{self.pb,kb})
+end
+
+function line: point (t) -- t=o A t=1 B t = AM / AB
+ return barycenter_({self.pa,1-t},{self.pb,(t)})
+end
+
+function line: midpoint ()
+ return (self.pa+self.pb)/2
+end
+
+function line: harmonic_int (pt)
+ return div_harmonic_int_(self.pa,self.pb,pt)
+end
+
+function line: harmonic_ext (pt)
+ return div_harmonic_ext_(self.pa,self.pb,pt)
+end
+
+function line: harmonic_both (k)
+ return div_harmonic_both_(self.pa,self.pb,k)
+end
+
+function line: gold_ratio()
+ return self.pa + (self.pb-self.pa)*tkzinvphi
+end
+-------------------
+-- Result -> line
+-------------------
+function line: ll_from ( pt )
+ return line : new (pt,pt+self.pb-self.pa)
+end
+
+function line: ortho_from ( pt )
+ return line : new (pt,pt+(self.pb-self.pa)*point(0,1))
+end
+
+function line: projection ( pt )
+ return projection_ ( self.pa,self.pb,pt )
+end
+
+function line: mediator ()
+ local m
+ m = midpoint_ (self.pa,self.pb)
+ return line : new (m,rotation_ (m,math.pi/2,self.pb))
+end
+-------------------
+-- Result -> circle
+-------------------
+function line: circle ()
+ return circle : new (self.pa,self.pb)
+end
+
+function line: circle_swap ()
+ return circle : new (self.pb,self.pa)
+end
+-------------------
+-- Result -> real
+-------------------
+function line: distance (pt)
+ return point.mod(projection(self,pt)-pt)
+end
+-------------------
+-- Result -> boolean
+-------------------
+function line: in_out (pt)
+ local sc,epsilon
+ epsilon = 10^(-12)
+ sc = math.abs ((pt-self.pa)^(pt-self.pb))
+ if sc <= epsilon
+ then
+ return true
+ else
+ return false
+ end
+end
+
+function line: slope ()
+ return slope_(self.pa,self.pb)
+end
+----------------------
+-- Result -> triangle
+----------------------
+function line: equilateral ()
+ return triangle : new (self.pa,self.pb,rotation_ (self.pa,math.pi/3,self.pb))
+end
+
+function line: isosceles (phi)
+ local pta,ptb
+ pta = rotation_ (self.pa,phi,self.pb)
+ ptb = rotation_ (self.pb,-phi,self.pa)
+ return triangle : new (self.pa,self.pb, intersection_ll_ (self.pa,pta,self.pb,ptb ))
+
+end
+
+function line: gold ()
+ local pt
+ pt = rotation_ (self.pa,math.pi/2,self.pb)
+ return triangle : new (self.pa,self.pb, self.pa + (pt-self.pa) * tkzinvphi)
+end
+
+function line: euclide ()
+ return triangle : new (self.pa,self.pb, rotation_ (self.pa,math.pi/5,self.pb))
+ end
+
+function line: golden ()
+ local pt
+ pt = rotation_ (self.pa,2*math.pi/5,self.pb)
+ return triangle : new (self.pa,self.pb, self.pa + (pt-self.pa) * tkzphi)
+end
+------------------------------
+-- Result -> couple of points
+------------------------------
+function line: square ()
+ return rotation_ (self.pb,-math.pi/2,self.pa), rotation_ (self.pa,math.pi/2,self.pb)
+end
+
+return line \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_main.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_main.lua
new file mode 100644
index 0000000000..92e006fe78
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_main.lua
@@ -0,0 +1,47 @@
+-- tkz_elements-main.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+ z = {}
+ L = {}
+ C = {}
+ T = {}
+ V = {}
+ E = {}
+ Q = {}
+ scale = 1
+
+require "tkz_elements_point.lua"
+
+require "tkz_elements_points.lua"
+require "tkz_elements_lines.lua"
+require "tkz_elements_circles.lua"
+require "tkz_elements_triangles.lua"
+require "tkz_elements_vectors.lua"
+require "tkz_elements_ellipses.lua"
+
+require "tkz_elements_functions_maths.lua"
+require "tkz_elements_functions_intersections.lua"
+require "tkz_elements_functions_points.lua"
+require "tkz_elements_functions_lines.lua"
+require "tkz_elements_functions_circles.lua"
+require "tkz_elements_functions_triangles.lua"
+
+function get_points (obj)
+if obj.type == 'line' then return obj.pa,obj.pb
+ elseif
+ obj.type == 'triangle' then return obj.pa,obj.pb,obj.pc
+ elseif
+ obj.type == 'circle' then return obj.center,obj.through
+end
+end \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_point.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_point.lua
new file mode 100644
index 0000000000..0b2e3dec4a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_point.lua
@@ -0,0 +1,181 @@
+-- tkz_elements_point.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+-- point.lua
+require 'tkz_elements_class'
+
+point = class(function(p,re,im)
+ if type(re) == 'number' then
+ p.re = re
+ p.im = im
+ else
+ p.re = re.re
+ p.im = re.im
+ end
+ p.type = 'point'
+ p.argument = math.atan(p.im, p.re)
+ p.modulus = math.sqrt(p.re*p.re + p.im*p.im)
+end)
+
+local sqrt = math.sqrt
+local cos = math.cos
+local sin = math.sin
+local exp = math.exp
+local atan = math.atan
+local min = math.min
+local max = math.max
+local abs = math.abs
+
+local function topoint (z1)
+ if (type(z1) == "number") then return point(z1,0) else return z1 end
+end
+
+local function check(z1,z2)
+ if type(z1) == 'number' then return point(z1,0),z2
+ elseif type(z2) == 'number' then return z1,point(z2,0)
+ else return z1,z2
+ end
+end
+-- -------------------------------------------------------------------
+-- metamethods
+-- -------------------------------------------------------------------
+-- redefine arithmetic operators!
+function point.__add(z1,z2)
+ local c1,c2 = check(z1,z2)
+ return point(c1.re + c2.re, c1.im + c2.im)
+end
+
+function point.__sub(z1,z2)
+ local c1,c2 = check(z1,z2)
+ return point(c1.re - c2.re, c1.im - c2.im)
+end
+
+function point.__unm(z)
+ local z = topoint(z)
+ return point(-z.re, -z.im)
+end
+
+function point.__mul(z1,z2)
+ local c1,c2 = check(z1,z2)
+ return point(c1.re*c2.re - c1.im*c2.im, c1.im*c2.re + c1.re*c2.im)
+end
+
+-- dot product is '..' (a+ib) (c-id) = ac+bd + i(bc-ad)
+function point.__concat(z1,z2)
+ local z
+ z = z1 * point.conj(z2)
+ return z.re
+end
+
+-- determinant is '^' (a+ib) (a-ib) (c+id) = ac+bd + i(ad - bc)
+function point.__pow(z1,z2)
+ local z
+ z = point.conj(z1) * z2
+ return z.im
+end
+
+function point.__div(x,y)
+ local xx = topoint(x); local yy = topoint(y)
+ return point(
+ (xx.re * yy.re + xx.im * yy.im) / (yy.re * yy.re + yy.im * yy.im),
+ (xx.im * yy.re - xx.re * yy.im) / (yy.re * yy.re + yy.im * yy.im)
+ )
+end
+
+function point.__tostring(z)
+ if (z.re == 0) then
+ if (z.im == 0) then
+ return "0"
+ else
+ if (z.im ==1) then
+ return "" .. "i"
+ else
+ if (z.im ==-1) then
+ return "" .. "-i"
+ else
+ return "" .. z.im .. "i"
+ end
+ end
+ end
+ else
+ if (z.im > 0) then
+ if (z.im ==1) then
+ return "" .. z.re .. "+" .. "i"
+ else
+ return "" .. z.re .. "+" .. z.im .. "i"
+ end
+ elseif (z.im < 0) then
+ if (z.im ==-1) then
+ return "" .. z.re .. "-" .. "i"
+ else
+ return "" .. z.re .. z.im .. "i"
+ end
+ else
+ return "" .. z.re
+
+ end
+ end
+end
+
+function point.__tonumber(z)
+ if (z.im == 0) then
+ return z.re
+ else
+ return nil
+ end
+end
+
+function point.__eq(z1,z2)
+ return z1.re==z2.re and z1.im==z2.im
+end
+-- -------------------------------------------------------------------
+local function pyth(a, b)
+ if a == 0 and b == 0 then return 0 end
+ a, b = abs(a), abs(b)
+ a, b = max(a,b), min(a,b)
+ return a * sqrt(1 + (b / a)^2)
+end
+
+function point.conj(z)
+ return point(z.re,-z.im)
+end
+
+function point.mod(z)
+ local function sqr(x) return x*x end
+ return pyth (z.re,z.im)
+end
+
+function point.abs (z)
+ local function sqr(x) return x*x end
+ return sqrt(sqr(z.re) + sqr(z.im))
+end
+
+function point.norm (z)
+ local function sqr(x) return x*x end
+ return (sqr(z.re) + sqr(z.im))
+end
+
+function point.arg (z)
+ return math.atan(z.im, z.re)
+end
+
+function point.get(z)
+ return z.re, z.im
+end
+
+function point.sqrt(z)
+ local y = sqrt((point.mod(z)-z.re)/2)
+ local x = z.im/(2*y)
+ return point(x,y)
+end \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_points.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_points.lua
new file mode 100644
index 0000000000..bcaff010cc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_points.lua
@@ -0,0 +1,98 @@
+-- tkz_elements_points.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+-- ----------------------------------------------------------------
+-- points create
+-- ----------------------------------------------------------------
+
+function point: new ( a,b )
+ return scale * point (a,b )
+end
+
+function point: polar ( radius, phi )
+ return scale * polar_ ( radius, phi )
+end
+
+function point: polar_deg ( radius, phi )
+ return scale * polar_ ( radius, phi * math.pi/180 )
+end
+
+function point: north(d)
+ local d = d or 1
+ return self+ polar_ ( d, math.pi/2 )
+end
+
+function point: south(d)
+ local d = d or 1
+ return self + polar_ ( d, -math.pi/2 )
+ end
+
+function point: east(d)
+ local d = d or 1
+ return self+ point( d, 0 )
+end
+
+function point: west(d)
+ local d = d or 1
+ return self + point ( -d, 0 )
+ end
+-- ----------------------------------------------------------------
+-- transformations
+-- ----------------------------------------------------------------
+function point: symmetry(pt)
+ return symmetry_ (self ,pt)
+end
+
+function point: set_symmetry (...)
+ local tp = table.pack(...)
+ local i
+ local t = {}
+ for i=1,tp.n do
+ table.insert( t , symmetry_ (self , tp[i]) )
+ end
+ return table.unpack ( t )
+end
+
+function point: rotation(angle , pt)
+ return rotation_(self,angle,pt)
+end
+
+function point:set_rotation (angle,...)
+ local tp = table.pack(...)
+ local i
+ local t = {}
+ for i=1,tp.n do
+ table.insert( t , rotation_ (self,angle , tp[i]) )
+ end
+ return table.unpack ( t )
+end
+
+function point: homothety(t,pt)
+ return homothety_(self,t,pt)
+end
+
+function point: set_homothety (coeff,...)
+ local tp = table.pack(...)
+ local i
+ local t = {}
+ for i=1,tp.n do
+ table.insert( t , homothety_ (self, coeff , tp[i]) )
+ end
+ return table.unpack ( t )
+end
+
+function point: normalize()
+ local d = point.abs(self)
+ return point(self.re/d,self.im/d)
+end
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangles.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangles.lua
new file mode 100644
index 0000000000..1960248e50
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangles.lua
@@ -0,0 +1,366 @@
+-- tkz_elements_triangles.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+triangle = {}
+function triangle: new (za, zb ,zc)
+ local type = 'triangle'
+ local circumcenter = circum_center_ (za , zb , zc)
+ local centroid = barycenter_ ( {za,1} , {zb,1} , {zc,1} )
+ local incenter = in_center_ (za , zb , zc)
+ local orthocenter = ortho_center_ (za , zb , zc)
+ local eulercenter = euler_center_ (za , zb , zc)
+ local c = point.abs(zb-za)
+ local a = point.abs(zc-zb)
+ local b = point.abs(za-zc)
+ local alpha = point.arg ((zc-za) / (zb-za))
+ local beta = point.arg ((za-zb) / (zc-zb))
+ local gamma = point.arg ((zb-zc) / (za-zc))
+ local ab =line : new (za,zb)
+ local ac =line : new (za,zc)
+ local bc =line : new (zb,zc)
+ local new_triangle = {pa = za, pb = zb, pc = zc, type = type,
+ circumcenter=circumcenter,centroid=centroid,incenter=incenter,
+ eulercenter=eulercenter, orthocenter=orthocenter,a=a,b=b,c=c,ab=ab,ac=ac,bc=bc,
+ alpha=alpha,beta=beta,gamma=gamma}
+ setmetatable(new_triangle, {__index = triangle})
+ return new_triangle
+end
+-----------------------
+-- points --
+-----------------------
+function triangle: bevan_point ()
+ return circum_center_ ( self : excentral_tr())
+end
+
+function triangle: mittenpunkt_point ()
+ return lemoine_point_ ( self : excentral_tr())
+end
+
+function triangle: gergonne_point ()
+ return gergonne_point_ ( self.pa , self.pb , self.pc)
+end
+
+function triangle: nagel_point ()
+return nagel_point_ ( self.pa , self.pb , self.pc)
+end
+
+function triangle: feuerbach_point ()
+return feuerbach_point_ ( self.pa , self.pb , self.pc)
+end
+
+function triangle: lemoine_point()
+ return lemoine_point_ ( self.pa , self.pb , self.pc)
+end
+
+function triangle: symmedian_point()
+ return lemoine_point_ ( self.pa , self.pb , self.pc)
+end
+
+function triangle: spieker_center()
+return spieker_center_ ( self.pa , self.pb , self.pc )
+end
+
+function triangle: barycenter (ka,kb,kc)
+ return barycenter_ ({self.pa,ka},{self.pb,kb},{self.pc,kc})
+end
+
+function triangle: base (u,v) -- (ab,ac) base coord u,v
+ return barycenter_ ({self.pa,(1-u-v)},{self.pb,u},{self.pc,v})
+end
+
+function triangle: euler_points ()
+ local H
+ H = ortho_center_ ( self.pa , self.pb , self.pc )
+ return midpoint_ ( H,self.pa ), midpoint_ ( H,self.pb ), midpoint_ ( H,self.pc )
+end
+
+function triangle: nine_points ()
+ local H,ma,mb,mc,H,ha,hb,hc
+ ma,mb,mc = medial_tr_ ( self.pa , self.pb , self.pc)
+ ha,hb,hc = orthic_tr_ ( self.pa , self.pb , self.pc)
+ H = ortho_center_ ( self.pa , self.pb , self.pc )
+ return
+ ma,mb,mc,
+ ha,hb,hc,
+ midpoint_ ( H,self.pa ),
+ midpoint_ ( H,self.pb ),
+ midpoint_ ( H,self.pc )
+end
+
+-------------------
+-- Result -> line
+-------------------
+-- N,H,G,O -- check_equilateral (a,b,c)
+function triangle: euler_line ()
+ return line : new (self.orthocenter,self.circumcenter)
+end
+
+function triangle: symmedian_line (n)
+ local a,b,c,l
+ a = self.pa
+ b = self.pb
+ c = self.pc
+ l = self : lemoine_point ()
+ if n==1 then
+ return line : new (b,intersection_ll_ (b,l,a,c))
+ elseif n==2 then
+ return line : new (c,intersection_ll_ (c,l,a,b))
+ else
+ return line : new (a,intersection_ll_ (a,l,b,c))
+ end
+end
+
+function triangle: altitude (n)
+ local a,b,c,o
+ a = self.pa
+ b = self.pb
+ c = self.pc
+ o = ortho_center_ (a,b,c)
+ if n==1 then
+ return line : new (b,intersection_ll_ (b,o,a,c))
+ elseif n==2 then
+ return line : new (c,intersection_ll_ (c,o,a,b))
+ else
+ return line : new (a,intersection_ll_ (a,o,b,c))
+ end
+end
+
+function triangle: bisector (n)
+ local a,b,c,i
+ a = self.pa
+ b = self.pb
+ c = self.pc
+ i = in_center_ (a,b,c)
+ if n==1 then
+ return line : new (b,intersection_ll_ (b,i,a,c))
+ elseif n==2 then
+ return line : new (c,intersection_ll_ (c,i,a,b))
+ else
+ return line : new (a,intersection_ll_ (a,i,b,c))
+ end
+end
+
+function triangle: bisector_ext(n) -- n =1 swap n=2 2 swap
+local a,b,c
+ a = self.pa
+ b = self.pb
+ c = self.pc
+ if n==1 then -- ac
+ return line : new (b,bisector_ext_ (b,c,a))
+ elseif n==2 then -- ab
+
+ return line : new (c,bisector_ext_ (c,a,b))
+ else -- bc
+ return line : new (a,bisector_ext_ (a,b,c))
+ end
+end
+
+function triangle: antiparallel(pt,n) -- n =1 swap n=2 2 swap
+local a,b,c,i,u,v,w
+ a = self.pa
+ b = self.pb
+ c = self.pc
+ i = in_center_ (a,b,c)
+ if n==1 then
+ u = symmetry_axial_ (b,i,a)
+ v = symmetry_axial_ (b,i,c)
+ w = ll_from_ ( pt , u , v )
+ intersection_ll_ (pt,w,a,b)
+ return line : new (intersection_ll_ (pt,w,c,b),intersection_ll_ (pt,w,a,b))
+ elseif n==2 then
+ u = symmetry_axial_ (c,i,a)
+ v = symmetry_axial_ (c,i,b)
+ w = ll_from_ ( pt , u , v )
+ intersection_ll_ (pt,w,a,c)
+ return line : new (intersection_ll_ (pt,w,b,c),intersection_ll_ (pt,w,a,c))
+ else
+ u = symmetry_axial_ (a,i,b)
+ v = symmetry_axial_ (a,i,c)
+ w = ll_from_ ( pt , u , v )
+ intersection_ll_ (pt,w,b,c)
+ return line : new (intersection_ll_ (pt,w,c,a),intersection_ll_ (pt,w,b,a))
+ end
+end
+-----------------------
+-- circles --
+-----------------------
+function triangle: euler_circle ()
+ return circle : new (euler_center_ ( self.pa , self.pb , self.pc),midpoint_( self.pb , self.pc))
+end
+
+function triangle: circum_circle()
+return circle : new (circum_circle_ ( self.pa , self.pb , self.pc), self.pa )
+end
+
+function triangle: in_circle ()
+ local o
+ o = in_center_ ( self.pa , self.pb , self.pc)
+return circle : new (o, projection_ (self.pb , self.pc,o) )
+end
+
+function triangle: ex_circle(n) -- n =1 swap n=2 2 swap
+ local a,b,c,o
+ a = self.pa
+ b = self.pb
+ c = self.pc
+ if n==1 then
+ o = ex_center_ (b,c,a)
+ return circle : new (o , projection_ (c,a,o))
+ elseif n==2 then
+ o = ex_center_ (c,a,b)
+ return circle : new (o , projection_ (a,b,o))
+ else
+ o = ex_center_ (a,b,c)
+ return circle : new (o , projection_ (b,c,o))
+ end
+end
+
+function triangle: first_lemoine_circle()
+local lc,oc
+ lc = self: lemoine_point()
+ oc = self.circumcenter
+return circle : new( midpoint_ (lc,oc),intersection_ll_ (lc,ll_from_ (lc,self.pa,self.pb),self.pa,self.pc))
+end
+
+function triangle: second_lemoine_circle()
+local lc,a,b,c,r,th
+ lc = self: lemoine_point()
+ a = point.abs(self.pc-self.pb)
+ b = point.abs(self.pa-self.pc)
+ c = point.abs(self.pb-self.pa)
+ r = ( a*b*c) / (a*a+b*b+c*c)
+ th = lc + point(r,0)
+ return circle : new (lc, th )
+end
+
+function triangle: spieker_circle()
+local ma,mb,mc,sp
+ ma,mb,mc = medial_tr_ ( self.pa , self.pb , self.pc)
+ sp = in_center_ (ma,mb,mc)
+return circle : new (sp,projection_ (ma,mb,sp))
+end
+
+-------------------
+-- Result -> triangle
+-------------------
+function triangle: orthic()
+return triangle : new (orthic_tr_ ( self.pa , self.pb , self.pc))
+end
+
+function triangle: medial()
+return triangle : new (medial_tr_ ( self.pa , self.pb , self.pc))
+end
+
+function triangle: incentral()
+ return triangle : new (incentral_tr_ ( self.pa , self.pb , self.pc))
+end
+
+function triangle: excentral()
+ return triangle : new (excentral_tr_ ( self.pa , self.pb , self.pc))
+end
+
+function triangle: intouch()
+ return triangle : new (intouch_tr_ ( self.pa , self.pb , self.pc))
+end
+
+function triangle: contact()
+ return triangle : new (intouch_tr_ ( self.pa , self.pb , self.pc))
+end
+
+function triangle: extouch()
+ return triangle : new (extouch_tr_ ( self.pa , self.pb , self.pc))
+end
+
+function triangle: feuerbach()
+ return triangle : new (feuerbach_tr_ (self.pa , self.pb , self.pc))
+end
+
+function triangle: anti ()
+ return triangle : new (anti_tr_ (self.pa,self.pb,self.pc))
+end
+
+function triangle: tangential ()
+ return triangle : new (tangential_tr_ (self.pa,self.pb,self.pc))
+end
+
+function triangle: cevian (p)
+ return triangle : new (cevian_ (self.pa,self.pb,self.pc,p))
+end
+
+function triangle: symmedian ()
+ local p
+ p = lemoine_point_ ( self.pa , self.pb , self.pc)
+ return triangle : new (cevian_ (self.pa,self.pb,self.pc,p))
+end
+
+function triangle: euler ()
+ return triangle : new (euler_points_ (self.pa,self.pb,self.pc) )
+end
+
+-------------------
+-- Result -> miscellaneous
+-------------------
+function triangle: get_angle (n)
+ local a,b,c
+ a = self.pa
+ b = self.pb
+ c = self.pc
+ if n==1 then
+ return point.arg ((a-b)/(c-b))
+ elseif n==2 then
+ return point.arg ((b-c)/(a-c))
+ else
+ return point.arg ((c-a)/(b-a))
+ end
+end
+
+function triangle: projection (p)
+ local x,y,z
+ x = projection_ (self.pb,self.pc,p)
+ y = projection_ (self.pa,self.pc,p)
+ z = projection_ (self.pa,self.pb,p)
+ return x,y,z
+end
+
+function triangle: parallelogram ()
+ local x = self.pc + self.pa - self.pb
+ return x
+end
+
+function triangle: check_equilateral ()
+ local A,B,C,epsilon
+ epsilon = 10 ^(-8)
+ A = self.pb - self.pc
+ B = self.pa - self.pc
+ C = self.pa - self.pb
+ if (point.abs(A)-point.abs(B) < epsilon) and (point.abs(B)-point.abs(C) < epsilon)
+ then
+ tex.print("equilateral !!")
+ error("something went wrong!")
+ end
+end
+
+function triangle: area ()
+ return area_(self.pa,self.pb,self.pc)
+end
+
+function triangle: barycentric_coordinates (pt)
+ return barycentric_coordinates_ (self.pa,self.pb,self.pc,pt)
+end
+
+function triangle: in_out (pt)
+ return in_out_ (self.pa,self.pb,self.pc,pt)
+end
+
+return triangle \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vectors.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vectors.lua
new file mode 100644
index 0000000000..44ea2f7f2e
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vectors.lua
@@ -0,0 +1,35 @@
+-- tkz_elements_vectors.lua
+-- date 2023/10/20
+-- version 1.00b
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+-- ----------------------------------------------------------------------------
+vector = {}
+function vector: new(z1, z2)
+ local type = 'vector'
+ local norm = point.abs(z2-z1)
+ local new_vector = {st = z1, ed = z2,norm = norm,type=type}
+ setmetatable(new_vector, {__index = vector})
+ return new_vector
+end
+
+function vector: normalize ()
+ local z = self.ed-self.st
+ local d = point.abs(z)
+ local nz = point(z.re/d,z.im/d)
+ return nz + self.st
+end
+
+ function vector: add (v)
+ return vector :new (self.st+v.st, self.ed,v.ed)
+ end
+return vector
diff --git a/macros/latex/contrib/tkz/tkz-euclide/README.md b/macros/latex/contrib/tkz/tkz-euclide/README.md
index a272f5a384..c50db0cb55 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/README.md
+++ b/macros/latex/contrib/tkz/tkz-euclide/README.md
@@ -1,6 +1,6 @@
# tkz-euclide — for euclidean geometry
-Release 5.03c 2023/10/20
+Release 5.04c 2023/10/26
## Description
@@ -65,23 +65,25 @@ Other examples, in French, are on my site.
## History
-- 5.03c. Correction of the file tkz-obj-lua-points-spc.tex. Bug in the macro `\tkzDefBarycentricPointTwo`.
+- 5.04c Some files have been renamed.
+
+- 5.03c Correction of the file tkz-obj-lua-points-spc.tex. Bug in the macro `\tkzDefBarycentricPointTwo`.
Add macro |\tkzDrawEllipse|;
-- 5.02c. Correction of the file tkz-lib-eu-shape.tex. Remove duplicate macro inside tkz-draw-eu-points.tex (ex tkz-obj-eu-draw-points.tex);
+- 5.02c Correction of the file tkz-lib-eu-shape.tex. Remove duplicate macro inside tkz-draw-eu-points.tex (ex tkz-obj-eu-draw-points.tex);
- 5.01c Correction of the date of the file tkz-euclide.sty. Cleaned up the file tkz-tools-lua-math.tex. Added file tkz-obj-eu-points-spc.tex;
- 5.00c Added the "lua" option to the package, allowing to perform most of the calculations with "lua". This saves time and precision;
-- 4.25c. Remove \input{tkz-obj-eu-draw-triangles.tex} from the list of files to load.
+- 4.25c Remove \input{tkz-obj-eu-draw-triangles.tex} from the list of files to load.
-- 4.24c. Correction of a bug in the macro `\tkzMarkAngle`;
+- 4.24c Correction of a bug in the macro `\tkzMarkAngle`;
Modification of the macro `\tkzDefCircle[apollonius]`;
-- 4.23c. Correction of a bug in the macro `\tkzDrawSemiCircle`,
+- 4.23c Correction of a bug in the macro `\tkzDrawSemiCircle`,
Modification of `\tkzDefRadicalAxis`,
Remove old codes,
Correction of the documentation;
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex
index 8ab85da376..6e98386a2d 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex
@@ -21,10 +21,10 @@
headings = small
]{tkz-doc}
\gdef\tkznameofpack{tkz-euclide}
-\gdef\tkzversionofpack{5.03c}
+\gdef\tkzversionofpack{5.04c}
\gdef\tkzdateofpack{\today}
\gdef\tkznameofdoc{doc-tkz-euclide}
-\gdef\tkzversionofdoc{5.03c}
+\gdef\tkzversionofdoc{5.04c}
\gdef\tkzdateofdoc{\today}
\gdef\tkzauthorofpack{Alain Matthes}
\gdef\tkzadressofauthor{}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf b/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf
index e8ccbe8cdc..76a0b3c7f5 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-angles.tex
index 5f79e810fa..001c8f3226 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-angles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-angles.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tool-eu-angles.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tool-eu-angles.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% tkzSetUpArc
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-circles.tex
index e083f9a96b..aef5271531 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-circles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-circles.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-draw-circles.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-draw-circles.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% tkzSetUpCircle
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-compass.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-compass.tex
index aea5f55ba1..046bd4b9bd 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-compass.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-compass.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-compass.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-compass.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Author Alain Matthes
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-ellipses.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-ellipses.tex
index f92aa7054e..cbacfdd3d4 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-ellipses.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-ellipses.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-draw-ellipses.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-draw-ellipses.tex}
\makeatletter
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-lines.tex
index a268113f85..0a5c9c1be8 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-lines.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-lines.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-draw-lines.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-draw-lines.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-points.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-points.tex
index 38a6020d46..520e3159e8 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-points.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-points.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-draw-eu-points.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-draw-eu-points.tex}
\makeatletter
%<--------------------------------------------------------------------------->
% tkzSetUpPoint définit la forme d'un point
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-polygons.tex
index 8d15afdf16..df42073c07 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-polygons.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-polygons.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-polygons.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-polygons.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Polygon
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-protractor.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-protractor.tex
index 520188ed7d..1400924439 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-protractor.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-protractor.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-protractor.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-protractor.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% !!! idea from Y. Combe !!!
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-sectors.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-sectors.tex
index b20d1945a8..31684e81fe 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-sectors.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-sectors.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-sectors.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-sectors.tex}
\makeatletter
%<----------------------- Sectors ------------------------------–>
\gdef\tkz@nums{0}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-show.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-show.tex
index 7a13c1e0b4..7dd82c3f3b 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-show.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-show.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-show.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-show.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% finding specific points in a triangle
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-marks.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-marks.tex
index 83f04d1314..5c25cf710e 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-marks.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-marks.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-lib-eu-marks.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-lib-eu-marks.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Création des symboles
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-shape.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-shape.tex
index 0837f37a12..f21fa29fd9 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-shape.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-shape.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-lib-eu-shape.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-lib-eu-shape.tex}
%<--------------------------------------------------------------------------–>
% Création des symboles
%<--------------------------------------------------------------------------–>
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-circles-by.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-circles-by.tex
index 6f5eb1c577..3dc06c7e29 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-circles-by.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-circles-by.tex
@@ -11,8 +11,8 @@
% The Current Maintainer of this work is Alain Matthes.
\def\fileversion{6.00}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 6.00 tkz-obj-eu-circles.tex}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 6.00 tkz-obj-eu-circles.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% tkzCircle center and one point
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-circles.tex
index 68f17c42ea..b6d733b242 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-circles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-circles.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-lua-circles.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-lua-circles.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% tkzCircle center and one point
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-by.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-by.tex
index 75c8b0629c..3333524d78 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-by.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-by.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-lua-points-by.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-lua-points-by.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Transformations Géométriques
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-spc.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-spc.tex
index ec4932d8ac..6003bb8efe 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-spc.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-spc.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
+\def\fileversion{5.04c}
\def\filedate{2023/01/23}
-\typeout{2023/01/23 5.03c tkz-obj-lua-points-spc.tex}
+\typeout{2023/01/23 5.04c tkz-obj-lua-points-spc.tex}
\makeatletter
%add ExCenter
%<--------------------------------------------------------------------------–>
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-with.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-with.tex
index 7b4cae6c57..fe5ba902c0 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-with.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points-with.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-lua-points-with.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-lua-points-with.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Vectors
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points.tex
index 936955cba0..744639a8a3 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-eu-lua-points.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-lua-points.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-lua-points.tex}
\makeatletter
%<--------------------------------------------------------------------------->
% init def point
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-axesmin.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-axesmin.tex
index 2505134139..1684d3b5cd 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-axesmin.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-axesmin.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-axesmin}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-axesmin}
\makeatletter
\def\removedot#1.{#1}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles-by.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles-by.tex
index f74d9b8b98..05b66f6f10 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles-by.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles-by.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-circles.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-circles.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% tkzCircle center and one point
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles.tex
index 7ddc7036d4..2f57f39d16 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-circles.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-circles.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% tkzCircle center and one point
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-grids.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-grids.tex
index ca51a16e94..e09d0b5b53 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-grids.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-grids.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-grids.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-grids.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Setup Grid
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-lines.tex
index beb9b6dbb6..31bcc0d577 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-lines.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-lines.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-lines.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-lines.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% les lignes
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-by.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-by.tex
index dc4eac8267..b23f431925 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-by.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-by.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-eu-points-by.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-eu-points-by.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Transformations Géométriques
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-rnd.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-rnd.tex
index 63cd1dc1a8..838d573ff2 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-rnd.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-rnd.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-points-rnd.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-points-rnd.tex}
%<--------------------------------------------------------------------------–>
\makeatletter
%<-------------------------------------------------------------------------–>
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-spc.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-spc.tex
index 38693d87f5..ac65123719 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-spc.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-spc.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-el-points.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-el-points.tex}
\makeatletter
%add ExCenter
%<--------------------------------------------------------------------------–>
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-with.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-with.tex
index 370a5a3e4d..9d73a8316f 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-with.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-with.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-points-with.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-points-with.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Vectors
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points.tex
index 3b3b5fe730..70e6c0702a 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-points.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-points.tex}
\makeatletter
%<--------------------------------------------------------------------------->
% init def point
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-polygons.tex
index 7600ce7925..6bdf499aa6 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-polygons.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-polygons.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-polygons.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-polygons.tex}
% bug in regular polygon side 2020/03/09
\makeatletter
%<--------------------------------------------------------------------------–>
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-triangles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-triangles.tex
index 2faf7a305d..0312eaca5d 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-triangles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-triangles.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-triangles.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-triangles.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Triangle Equilateral
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
index 3fa2cfe477..b62312367e 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
@@ -16,9 +16,9 @@
% and save the file in a directory part of your TEXINPUTS environment
% variable.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-euclide.cfg}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-euclide.cfg}
%<------ colors ---------------------------------------–>
\def\tkz@backgroundcolor{white}
\def\tkz@textcolor{black}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
index 508cf3a9c9..8c8208f98a 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
@@ -10,11 +10,11 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
%-------------------------------------------------------------------------------
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-euclide.sty}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-euclide.sty}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tkz-euclide}[ 2023/10/20 5.03c for pure Euclidean Geometry ]
+\ProvidesPackage{tkz-euclide}[ 2023/10/26 5.04c for pure Euclidean Geometry ]
\newif\if@tkzlua
\@tkzluafalse
\DeclareOption{lua}{\@tkzluatrue}
@@ -180,16 +180,16 @@
% % next from euclide
\makeatletter
\if@tkzlua
-\input{tkz-tools-lua-base.tex}
-\input{tkz-obj-lua-points.tex}
-\input{tkz-tools-lua-math.tex}
-\input{tkz-tools-lua-intersections.tex}
-\input{tkz-obj-lua-points-by.tex}
-\input{tkz-obj-lua-points-with.tex}
-\input{tkz-obj-lua-points-spc.tex}
-\input{tkz-tools-lua-angles.tex}
-\input{tkz-obj-lua-circles.tex}
-\input{tkz-obj-lua-circles-by.tex}
+\input{tkz-tools-eu-lua-base.tex}
+\input{tkz-obj-eu-lua-points.tex}
+\input{tkz-tools-eu-lua-math.tex}
+\input{tkz-tools-eu-lua-intersections.tex}
+\input{tkz-obj-eu-lua-points-by.tex}
+\input{tkz-obj-eu-lua-points-with.tex}
+\input{tkz-obj-eu-lua-points-spc.tex}
+\input{tkz-tools-eu-lua-angles.tex}
+\input{tkz-obj-eu-lua-circles.tex}
+\input{tkz-obj-eu-lua-circles-by.tex}
\else
\input{tkz-obj-eu-points.tex}
\input{tkz-obj-eu-points-by.tex}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-angles.tex
index c104de0808..e5c9d373c6 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-angles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-angles.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-lua-angles.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-lua-angles.tex}
\makeatletter
\def\tkzmathrotatepointaround#1#2#3{%
\pgf@process{%
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-base.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-base.tex
index c2dc0b146b..45068a64e3 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-base.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-base.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-lua-base.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-lua-base.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
\global\let\tkz@tmp@xa\tkz@init@xmin% modif 2016
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-intersections.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-intersections.tex
index 1632ee208b..127db80eba 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-intersections.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-intersections.tex
@@ -13,9 +13,9 @@
% The Current Maintainer of this work is Alain Matthes.
% utf8 encoding
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-lua-intersections.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-lua-intersections.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% intersection de deux lignes
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-math.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-math.tex
index f7509fb217..dc92fb70ca 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-math.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-eu-lua-math.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-lua-math.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-lua-math.tex}
\makeatletter
%<-------------------------------------------------------------------------->
%<-------------------------------------------------------------------------->
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-BB.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-BB.tex
index ed1fd5387e..3212c55e44 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-BB.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-BB.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-BB.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-BB.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
\def\tkzShowBB{\pgfutil@ifnextchar[{\tkz@ShowBB}{\tkz@ShowBB[]}}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-angles.tex
index 8ba68fa57b..f32c105855 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-angles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-angles.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-eu-angles.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-eu-angles.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
%<--------------------------------------------------------------------------–>
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-base.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-base.tex
index ce0e6db135..22a7787ae6 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-base.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-base.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-eu-base.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-eu-base.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
\global\let\tkz@tmp@xa\tkz@init@xmin% modif 2016
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-colors.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-colors.tex
index f91f7535ad..b991a2fd22 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-colors.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-colors.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-eu-colors}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-eu-colors}
\makeatletter
%<------ Initialisation of the colors with tkzSetUpColors ----------------->
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-intersections.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-intersections.tex
index daad8f7f9d..fdab77f658 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-intersections.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-intersections.tex
@@ -13,9 +13,9 @@
% The Current Maintainer of this work is Alain Matthes.
% utf8 encoding
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-eu-intersections.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-eu-intersections.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% intersection de deux lignes
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-math.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-math.tex
index 701b594e52..9e39d90217 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-math.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-math.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-eu-math.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-eu-math.tex}
\makeatletter
%<-------------------------------------------------------------------------->
% \tkzpointnormalised#
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-modules.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-modules.tex
index 4b2a86591d..916b166af9 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-modules.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-modules.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-eu-utilities.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-eu-utilities.tex}
\makeatletter
%<------------- % chargement des modules ---------------------------------->
\def\tkz@obj@all{angles,arcs,compass,defcircles,deflines,defpoints,defpointsby,defpointsrnd,defpointswith,polygons,protractor,sectors,show,triangles}%
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-text.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-text.tex
index 59fce4bcb6..66dbf64bd7 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-text.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-text.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-eu-text.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-eu-text.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% tkzText
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-utilities.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-utilities.tex
index 27f6079312..0bf0b046a9 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-utilities.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-utilities.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-tools-eu-utilities.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-tools-eu-utilities.tex}
\makeatletter
\pgfkeys{/tkzClip/.cd,
space/.store in = {\tkz@CLI@space},
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index c412b4e4bd..207e69f4e9 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -25,9 +25,6 @@ $mirrors = {
'Hong Kong' => {
'https://mirror-hk.koddos.net/CTAN/' => 1,
},
- 'India' => {
- 'https://mirror.niser.ac.in/ctan/' => 1,
- },
'Indonesia' => {
'http://repo.ugm.ac.id/ctan/' => 1,
'https://mirror.unpad.ac.id/ctan/' => 1,
@@ -46,7 +43,6 @@ $mirrors = {
'http://ftp.ktug.org/tex-archive/' => 1,
'https://cran.asia/tex/' => 1,
'https://ftp.kaist.ac.kr/pub/tex-archive/' => 1,
- 'https://lab.uklee.pe.kr/tex-archive/' => 1,
'https://mirror.kakao.com/CTAN/' => 1,
'https://mirror.navercorp.com/CTAN/' => 1,
},
@@ -135,6 +131,7 @@ $mirrors = {
},
'Portugal' => {
'https://ftp.eq.uc.pt/software/TeX/' => 1,
+ 'https://mirrors.up.pt/pub/CTAN/' => 1,
},
'Romania' => {
'https://mirrors.nxthost.com/ctan/' => 1,
@@ -146,7 +143,6 @@ $mirrors = {
'https://mirrors.mi-ras.ru/CTAN/' => 1,
},
'Spain' => {
- 'https://ctan.fisiquimicamente.com/' => 1,
'https://ctan.javinator9889.com/' => 1,
'https://osl.ugr.es/CTAN/' => 1,
},
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 346f8272a0..2661d4dbae 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2023
-depend revision/68652
+depend revision/68666
name 00texlive.image
category TLCore
-revision 68643
+revision 68667
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -4324,6 +4324,7 @@ runfiles size=13138
tlpkg/tlpsrc/tkz-berge.tlpsrc
tlpkg/tlpsrc/tkz-bernoulli.tlpsrc
tlpkg/tlpsrc/tkz-doc.tlpsrc
+ tlpkg/tlpsrc/tkz-elements.tlpsrc
tlpkg/tlpsrc/tkz-euclide.tlpsrc
tlpkg/tlpsrc/tkz-fct.tlpsrc
tlpkg/tlpsrc/tkz-graph.tlpsrc
@@ -4795,7 +4796,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 68642
+revision 68654
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
@@ -34415,7 +34416,7 @@ catalogue-version 1.9
name beamertheme-arguelles
category Package
-revision 66645
+revision 68659
shortdesc Simple, typographic beamer theme
relocated 1
longdesc Arguelles is a beamer theme that helps you create beautiful
@@ -34425,14 +34426,15 @@ longdesc elegant but subtle, so as to keep the audience's attention on
longdesc your content. This is brought to life by Alegreya, one of the
longdesc 53 Fonts of the Decade selected by the Association
longdesc Typographique Internationale (2011).
-containersize 3036
-containerchecksum 706c15d2263f2361bea82f546f523bd900b1ac92fc38f95408c04caef0f365862e50de388a367ce3e3a4bc309224ca5fcbf50f1476f0f8c00edf4fb319bf54f3
-doccontainersize 656416
-doccontainerchecksum bc797cc5223deac0b293c817713b5628a273bdfe2f900ae780e5d1076d4fdf20118dd80c953283bfc84bddd5bdd6f72e84a17d0863df89c7aff262f239be4637
-docfiles size=165
+containersize 3176
+containerchecksum e8b070e76ada96ff6a679c6c7d553d7ff67d4cc3fc792183bf68eee73fd9be3059eda0f0f7fe970655b6debef3af018b15b3a408bd494bdd506bf187d80055a5
+doccontainersize 1763964
+doccontainerchecksum c9f34943ba6a1233f24be443a56abe9aabd51dfe7c4531ffbe793ddbcdeef637edf87686934b09e78bcf3213d4530165bf28646e86300ce790b94f0ad8fcc7b2
+docfiles size=705
RELOC/doc/latex/beamertheme-arguelles/LICENSE
RELOC/doc/latex/beamertheme-arguelles/README.md details="Readme"
RELOC/doc/latex/beamertheme-arguelles/demo/demo-arguelles.pdf details="Example of use"
+ RELOC/doc/latex/beamertheme-arguelles/demo/demo-arguelles.png
RELOC/doc/latex/beamertheme-arguelles/demo/demo-arguelles.tex
runfiles size=5
RELOC/tex/latex/beamertheme-arguelles/beamercolorthemeArguelles.sty
@@ -34445,7 +34447,7 @@ catalogue-contact-repository https://github.com/piazzai/arguelles
catalogue-ctan /macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles
catalogue-license mit
catalogue-topics presentation
-catalogue-version 2.2.0
+catalogue-version 2.3.0
name beamertheme-cuerna
category Package
@@ -60346,7 +60348,7 @@ catalogue-version 1.1
name cje
category Package
-revision 46721
+revision 68656
shortdesc LaTeX document class for CJE articles
relocated 1
longdesc The cje article class allows authors to format their papers to
@@ -60355,15 +60357,14 @@ longdesc class includes options for two other formats: "review" (double
longdesc spaced, for use at the submission stage) and "proof" (used by
longdesc the typesetters to prepare the proof authors will receive for
longdesc approval).
-containersize 26216
-containerchecksum cab80d266c2b5f9d4ba9d37cc5490e831e3f773d86c92fcbfab9474864aebbb6123e1ed44877127e84b6e1fe8037f2425259789b9b9597de49e1b24b123992a4
-doccontainersize 634044
-doccontainerchecksum 47a2d96b6b530be732385617af832ad48c3d6c7a34a7e9e0523c38a03b5116b94588c995afd153c25be6ceea9bc199685fab9eb83636b5fe27525b19a4bc7cec
-docfiles size=178
+containersize 26192
+containerchecksum 764c9429f8000aede2b8dd85fbb2bd7eedf8e6bd2924347b75d2aa51a05b060921da15b1a55d9cc33582e5fe658d89edf8337e02f164a3de033c66bed3c6c2b7
+doccontainersize 24948
+doccontainerchecksum 791757a59293d7144844cd05ae3346068bef42dee489138e5faacac68b0ed0ec639eb8c60d0fe34e29f37e1238601ae074d43d0e7194f07c1940a0f9411f8f85
+docfiles size=28
RELOC/doc/latex/cje/README.txt details="Readme"
RELOC/doc/latex/cje/ageingbib.bib
RELOC/doc/latex/cje/canadian-flag.pdf
- RELOC/doc/latex/cje/cjeguide.pdf details="Package documentation"
RELOC/doc/latex/cje/cjeguide.tex
RELOC/doc/latex/cje/cjetemplate.tex
runfiles size=31
@@ -60374,7 +60375,7 @@ runfiles size=31
catalogue-ctan /macros/latex/contrib/cje
catalogue-license lppl1.3c
catalogue-topics journalpub
-catalogue-version 1.06
+catalogue-version 1.07
name cjhebrew
category Package
@@ -73242,7 +73243,7 @@ containerchecksum 951e172129275fa2cb7ccea6bf23f27484503533ebee4c3bef7d2f4ddda594
name collection-pictures
category Collection
-revision 68515
+revision 68664
shortdesc Graphics, pictures, diagrams
relocated 1
longdesc Including TikZ, pict, etc., but MetaPost and PStricks are
@@ -73476,6 +73477,7 @@ depend tkz-base
depend tkz-berge
depend tkz-bernoulli
depend tkz-doc
+depend tkz-elements
depend tkz-euclide
depend tkz-fct
depend tkz-graph
@@ -73497,8 +73499,8 @@ depend worldflags
depend xistercian
depend xpicture
depend xypic
-containersize 1628
-containerchecksum a8e03b8c6d4f00099f700ab7a04304baaf625ef7705816794fe86ccf69b83eb4e8e1a760ea7ac66868d5b8bd3579a4ef79de5a12310f8944487f43df7b7dab19
+containersize 1632
+containerchecksum 89913bbfbead2042133028d09b636a90a41029c0a157282cd6b8db995724c60a39bb24f1c923f7884fe78cf50d272a6c8e2dac3e6b59891fd3e0cd0915f972ff
name collection-plaingeneric
category Collection
@@ -117418,7 +117420,7 @@ catalogue-version 1.1
name exesheet
category Package
-revision 68192
+revision 68660
shortdesc Typesetting exercise or exam sheets
relocated 1
longdesc This package is used for typesetting exercise or exam sheets.
@@ -117427,15 +117429,15 @@ longdesc The package provides: macros for organizing exercises and
longdesc subparts, specific settings for enumeration lists, environments
longdesc for questions and answers, with conditional display, macros to
longdesc display a marking scheme with detailed comments in the margins.
-containersize 6072
-containerchecksum dbd81beee850f0bbcb129cc81d68aefce0ff5f2587e08f3461d48f3b522ffb713f65dd7dda0b467cb94aff553574716967ed9245f7ba8a6e2cc849ca169cfc85
-doccontainersize 227648
-doccontainerchecksum 42f60eb70ee3665a99d3eb36f18e916b097b0dbed2794a692023a32bd968a0c1b0640576883832e82e8d18794c4e666b8d30f14688c14fd100c62b3a2c69d1af
-docfiles size=73
+containersize 6188
+containerchecksum 02cc3ef30bade68fd64e47aa0045d8b92bd1e488e31eefa84cd13fa26109f5a3e01172a6ddaaecc513d6232250b58dbef9d3e37f6267936b88fa44eb6a9d9c71
+doccontainersize 229992
+doccontainerchecksum 803da81edc19d278e957399a9b99afebf23916aac7c4b03b6e7b58f1c96fc5744aed4691a5b77533b6c425c10945d13591e2534f30900d8a480aa2599ddf885b
+docfiles size=74
RELOC/doc/latex/exesheet/README.md details="Readme"
RELOC/doc/latex/exesheet/exesheet.pdf details="Package documentation"
-srccontainersize 24476
-srccontainerchecksum c8ef2688fc765fcaac9a73c077147da7af0e85dcb31af166e09d58edd178a4d31d297a8300ccb2302a5ed2c1f6fa626f00c4074e4e103ff8b807caa71f4f1ed8
+srccontainersize 24920
+srccontainerchecksum 6bfe2aeee2a3caf81c1fa903fdb84d84ef9cae3511874724140ba632334bedd5f9513e06103c56264d88fb7e210c288479d0091fb85d09096cf41784669b78e4
srcfiles size=26
RELOC/source/latex/exesheet/exesheet.dtx
RELOC/source/latex/exesheet/exesheet.ins
@@ -117446,7 +117448,7 @@ catalogue-also schooldocs
catalogue-ctan /macros/latex/contrib/exesheet
catalogue-license lppl1.3
catalogue-topics exam exercise teaching class
-catalogue-version 2.2
+catalogue-version 2.3
name exframe
category Package
@@ -146981,21 +146983,21 @@ catalogue-version 2.7
name hypdoc
category Package
-revision 65678
+revision 68661
shortdesc Hyper extensions for doc.sty
relocated 1
longdesc This package adds hypertext features to the package doc that is
longdesc used in the documentation system of LaTeX2e. Bookmarks are
longdesc added and references are linked as far as possible.
-containersize 3556
-containerchecksum 216c3adfa731d4c18b7072d3fd812065195bd06b849cc2b669650a24d51b93cd5c4dd8b9dbfb5874e90d2b928e32a675d5bafed1f5543b826041374f2d4885dd
-doccontainersize 325076
-doccontainerchecksum 8ef2afe4f1e69aa9934d80363d206a852444396a7067e99ee9ea33c5ab8648e94997631e657f6eca0d9d65e4c14132d46eac7d639ea5f8ba558e83d17c39a2f4
-docfiles size=83
+containersize 3624
+containerchecksum bdd5a75f53b714976f54f0fea68093d79dc0d781a708dabbd3cb90e49d77f282ee15cbf8c1082cd5746bbe6b701e58e71bde38141db56cab5042d7556771d286
+doccontainersize 326408
+doccontainerchecksum cece39375981cc4adb60b20387ca441404a69c734f686cbe51df759b3025833814e9ec09aa4b720359cce4c4ae14b12cc03ff38954c3fb12ef268304a60f9dfd
+docfiles size=84
RELOC/doc/latex/hypdoc/README.md details="Readme"
RELOC/doc/latex/hypdoc/hypdoc.pdf details="Package documentation"
-srccontainersize 8564
-srccontainerchecksum a68d3134f4c96ee6edcd3da623fc37b475c5ec7d599e363b2d5bb14bfb74d4906b7831d595cd1e547534e773a0348cd4cd11252f7ebdb64c7ed11ad0a5e2ab9a
+srccontainersize 8684
+srccontainerchecksum 3bf5a01f6ce3ec8cacc04fdd4d3b83d9cbdced6dc75120991e031a56a3dc4e5958c367f009c4f5fbbdabb02d0d7b391fb8fbbcdc2c4d5f68b9c0cf8d68259d1f
srcfiles size=9
RELOC/source/latex/hypdoc/hypdoc.dtx
runfiles size=3
@@ -147005,7 +147007,7 @@ catalogue-contact-repository https://github.com/ho-tex/hypdoc
catalogue-ctan /macros/latex/contrib/hypdoc
catalogue-license lppl1.3c
catalogue-topics doc-supp hyper
-catalogue-version 1.18
+catalogue-version 1.19
name hypdvips
category Package
@@ -225995,7 +225997,7 @@ catalogue-version 0.54
name newpx
category Package
-revision 68635
+revision 68655
shortdesc Alternative uses of the PX fonts, with improved metrics
relocated 1
longdesc This package, initially based on pxfonts, provides many fixes
@@ -226006,10 +226008,10 @@ longdesc options. For proper operation, the packages require that the
longdesc packages newtxmath, pxfonts, and TeXGyrePagella be installed
longdesc and their map files enabled.
execute addMap newpx.map
-containersize 4729012
-containerchecksum 2a5e7942775cdad80480681204aeb0a803155710dd234089bf9b8b2d33937cb898dd60ad55bb0dd2700e35c5933ad7b6a9cb98a83270a57f1344a28b7bfb6d0a
-doccontainersize 466280
-doccontainerchecksum 8a3ec9c6f3b6898e30181d4af98d3e8f20313d208c2665f1136d63e3bd3caf9fa175367d719fe2e8a3006a0d4e427323a8f2c9ec5626d8357e78761aea551f99
+containersize 4728272
+containerchecksum ae3b8c46034ad091b4c74e4d2d0aae1ba74c8b9b6abc5a8289a4fc1c1087bf61e6161dce57bdf1178ff160ada9af2099e43efca84ecc210d48034776b9f0679a
+doccontainersize 466312
+doccontainerchecksum 8a2a3ffd9ff0c7e79591169f5c9a232d0f17836d92595e8fbb6c7757f36d6826d696e862e9ab658248eac24fedd09c2d8673137091183a6e84504f1f79a2ea56
docfiles size=142
RELOC/doc/fonts/newpx/ChangesInV1.4.txt
RELOC/doc/fonts/newpx/MANIFEST-newpx.txt
@@ -226020,10 +226022,10 @@ docfiles size=142
RELOC/doc/fonts/newpx/newpxeg-crop.pdf
RELOC/doc/fonts/newpx/pxfontseg-crop.pdf
srccontainersize 392
-srccontainerchecksum cb30a1c1639ad09f4379803505206989de3fd28a1c9944128a1fdf5234816a1ed494adfafe5cf6b676d811a91b8b2b482b76ea3f15cdb5185f0ca225ab60e41c
+srccontainerchecksum d18026ad920ef75814f9a116460f3efdffe9a954cccaf7568f69125ccdd47f2ab265dbb5bf9d35ddff94af1700f6a8ee569e19f7331b5bc70712f6c43870b45d
srcfiles size=1
RELOC/source/fonts/newpx/TRK.fea
-runfiles size=3695
+runfiles size=3685
RELOC/fonts/afm/public/newpx/NewPXBMI.afm
RELOC/fonts/afm/public/newpx/NewPXBMI_gnu.afm
RELOC/fonts/afm/public/newpx/NewPXMI.afm
@@ -226610,8 +226612,6 @@ runfiles size=3695
RELOC/tex/latex/newpx/newpx.sty
RELOC/tex/latex/newpx/newpxmath.sty
RELOC/tex/latex/newpx/newpxtext.sty
- RELOC/tex/latex/newpx/newpxtext1.sty
- RELOC/tex/latex/newpx/newpxtextX.sty
RELOC/tex/latex/newpx/omlnpxmi.fd
RELOC/tex/latex/newpx/ot1minzpl.fd
RELOC/tex/latex/newpx/ot1npxtt.fd
@@ -226658,7 +226658,7 @@ runfiles size=3695
catalogue-ctan /fonts/newpx
catalogue-license lppl ofl
catalogue-topics font font-body font-maths font-serif font-proportional font-type1 font-otf font-supp font-t1enc
-catalogue-version 1.53
+catalogue-version 1.531
name newsletr
category Package
@@ -247990,15 +247990,15 @@ catalogue-version 1.01
name pdfwin
category Package
-revision 54074
+revision 68667
shortdesc customizable windows for screen viewing of TeX documents
relocated 1
longdesc Inspired by the pdfscreen package.
containersize 15876
-containerchecksum 13981a137ab920fe72e1f79ae3bb14bd9e37cd4eb4dbb66095926e54eddfd28903b403a896a013ac40fcac80736c566e983e34fb9b7a54d0759148ce33af14aa
-doccontainersize 310744
-doccontainerchecksum 2b8d546b5591773cb9ec3ee407d7390b81e8ec1a6232b626ddbf9bb2cdbbc8c9c00e08ae4772a4b67cb38e96ec2be3db981eb163d412738e5e7bf94e5196637d
-docfiles size=130
+containerchecksum 1064e81793884565568f6bde33072dc007c9b9a07c010be602111ea4429ccb803c18a3af13c85bc1367279624266063756bc59c72e6190e70090eadc8857b8b1
+doccontainersize 291932
+doccontainerchecksum 5055cfb0e2cf0e1cc105a43fb82c05e133863cd22278792de5aa931afd84afe7cc3b35566a399dba97645da4495d16e47d723155991ecf1bb3e13a892f230787
+docfiles size=123
RELOC/doc/latex/pdfwin/BucResampling.pdf
RELOC/doc/latex/pdfwin/BucSystem1.pdf
RELOC/doc/latex/pdfwin/BucSystem2.pdf
@@ -248008,7 +248008,6 @@ docfiles size=130
RELOC/doc/latex/pdfwin/BucSystem6.pdf
RELOC/doc/latex/pdfwin/Bucuresti2003.tex
RELOC/doc/latex/pdfwin/JWGU-Logo.png
- RELOC/doc/latex/pdfwin/Thumbs.db
RELOC/doc/latex/pdfwin/marble.png
RELOC/doc/latex/pdfwin/normprot.tex
RELOC/doc/latex/pdfwin/shortvec.tex
@@ -251900,7 +251899,7 @@ catalogue-version 1.3
name physics2
category Package
-revision 66742
+revision 68657
shortdesc Macros for typesetting maths faster and more simply
relocated 1
longdesc The physics2 package defines commands for typesetting maths
@@ -251911,27 +251910,31 @@ longdesc provide the following support: Automatic braces; Dirac bra-ket
longdesc notation; Easy way to typeset diagonal matrices and matrices
longdesc with similar entries; Double cross and double dot (binary)
longdesc operators for tensors.
-containersize 7796
-containerchecksum 4205601e0ad82a1bb293d7be4eef89e9a0627d7c9b904c50d9ab84a2b4ebafed8b77eb5c2eb98cfc870978afc20112a1a107eb8d61631ec1b3d78ab4134fc659
-doccontainersize 178176
-doccontainerchecksum 873329820b95eb1b34634e20ee7875068d5b5d2b9b6622b19fd89f9f84641d5f9302706ae152d992cd16ad5e52aee41105bc1afb69b1f780f43fe54ed96bce2b
-docfiles size=57
+containersize 6896
+containerchecksum 74b2976b01cf9419437ca7fc262d6992ab8004705f300e74f1534f5e244d1b7174777a869611520fef66b49a53ac2e2faafd4f678f32f8d6919d4e41fc7ad424
+doccontainersize 310708
+doccontainerchecksum 825274f88fc7626fde014cde9a31c7166ec4e835d6401430e2f30b0c5b442fe75a8fc842dd6aacd2fab470a06effa2d0a2f16ac729809587d9ab2123e9fc8e7a
+docfiles size=91
RELOC/doc/latex/physics2/README.md details="Readme"
RELOC/doc/latex/physics2/phy2docdef.tex
+ RELOC/doc/latex/physics2/physics2-code.pdf
RELOC/doc/latex/physics2/physics2-legacy.pdf details="physics2 manual for physics users"
RELOC/doc/latex/physics2/physics2-legacy.tex
RELOC/doc/latex/physics2/physics2.pdf details="Package documentation"
RELOC/doc/latex/physics2/physics2.tex
-runfiles size=16
+srccontainersize 11480
+srccontainerchecksum 48de8656a8627f1fe48f9ccc77e96bcd95cc036b9f6ac9cc550679d19446226077df965d9b240858a845108abbf10dcddcd5c9c668337b3adb6d28b04e4929a5
+srcfiles size=15
+ RELOC/source/latex/physics2/physics2-code.dtx
+ RELOC/source/latex/physics2/physics2.ins
+runfiles size=15
RELOC/tex/latex/physics2/phy-ab.braket.sty
RELOC/tex/latex/physics2/phy-ab.legacy.sty
RELOC/tex/latex/physics2/phy-ab.sty
RELOC/tex/latex/physics2/phy-bm-um.legacy.sty
RELOC/tex/latex/physics2/phy-braket.sty
- RELOC/tex/latex/physics2/phy-common.sty
RELOC/tex/latex/physics2/phy-diagmat.sty
RELOC/tex/latex/physics2/phy-doubleprod.sty
- RELOC/tex/latex/physics2/phy-explsetup.sty
RELOC/tex/latex/physics2/phy-nabla.legacy.sty
RELOC/tex/latex/physics2/phy-op.legacy.sty
RELOC/tex/latex/physics2/phy-qtext.legacy.sty
@@ -251943,7 +251946,7 @@ catalogue-contact-repository https://github.com/AlphaZTX/physics2
catalogue-ctan /macros/latex/contrib/physics2
catalogue-license lppl1.3c
catalogue-topics physics maths
-catalogue-version 0.2.1
+catalogue-version 1.0.0
name physunits
category Package
@@ -259962,27 +259965,27 @@ catalogue-version 3.00b
name profmaquette
category Package
-revision 68222
+revision 68662
shortdesc Use exercises in different types of documents
relocated 1
longdesc This LaTeX package can help French maths teachers to put one
longdesc and the same exercise into different sorts of documents.
-containersize 13760
-containerchecksum dd3520bc7df0494842ffac4ef64732b595a1154d1343ffed7e55eb9f17b95549bb66185fbf2b5545a66a7a16177900aefb5b1bb833b0cce0fc95ae3fae7c14b3
-doccontainersize 178328
-doccontainerchecksum 37e416fe0d180eb19b7cdfdfdef1ee148fa28a1cb273eb347747c309c02c4b0900e8df999eeaecc0ff313b162a0baa6959ba37ae2abefd18f08fa750f6b678d2
-docfiles size=61
+containersize 16480
+containerchecksum 438fb7b20656421d7a0bb813250f12e971f941b2c2a07353f934a3831f336626cd36e0057ba61ada66186a56f0581804c33c150f2e528ff7b111eb2a06df835a
+doccontainersize 204208
+doccontainerchecksum 470286d2aed6bfd5ae748628db732f3980ca255d2e6b0d10745a1513cc3acb8d2dd3812864ea92bda0a8f482433d2c1d32282dbcd30dce627ed5d99562bb1931
+docfiles size=69
RELOC/doc/latex/profmaquette/README details="Readme"
RELOC/doc/latex/profmaquette/TestParcoursPerso.pdf
RELOC/doc/latex/profmaquette/TestParcoursPerso.tex
RELOC/doc/latex/profmaquette/profmaquette-doc.pdf details="Package documentation" language="fr"
RELOC/doc/latex/profmaquette/profmaquette-doc.tex
-runfiles size=19
+runfiles size=24
RELOC/tex/latex/profmaquette/ProfMaquette.sty
catalogue-ctan /macros/latex/contrib/profmaquette
catalogue-license lppl1.3c
catalogue-topics teaching exercise maths
-catalogue-version 0.45
+catalogue-version 0.55
name profsio
category Package
@@ -316333,7 +316336,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 68642
+revision 68654
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.
@@ -316341,10 +316344,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 114072
-containerchecksum fcae2f8df664ad3dbd32ea03af4fd6fa03579faf7ed182052c361541f7f3569e2697c7cd68fd4a4e01af15cf712f8beabcd4ad2e613255d6ccec3d29e5c0f8b5
-doccontainersize 428276
-doccontainerchecksum 8dfb089dd339e98ab9f38e9c008a0a2f0013f5698ec0099582fe5e0d3a27be47cc645be323f403ab14057ba3c5fa58aaddc1f2a38dbf210a5a878a82c1d9f111
+containersize 114040
+containerchecksum 8e7fa8be58bd504a2a99e4fbc5a1c036a2b227f591fad8c82b564bb8d1d24c2ea7f9b4f5b3cfecb738fd12f96e996f5597dab3331a4d60ccd78fb02a49bb2247
+doccontainersize 428324
+doccontainerchecksum bfff7287695f374c25613ef82e0bb3253798971b58a51523dba88564665b85f1ae3cc996427daf050eb0b091a6327bd644a9c8ca2b2db788191feaf0e90b4984
docfiles size=550
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -325288,41 +325291,105 @@ catalogue-version 0.1.1
name tkz-doc
category Package
-revision 66115
+revision 68665
shortdesc Documentation macros for the TKZ series of packages
relocated 1
longdesc This bundle offers a documentation class (tkz-doc) and a
longdesc package (tkzexample). These files are used in the documentation
longdesc of the author's packages tkz-base, tkz-euclide, tkz-fct,
longdesc tkz-linknodes, and tkz-tab.
-containersize 508
-containerchecksum db90dac3cf407685944f313f11d10e658c1372e4570bd2804dd8b85dd0084ca7b0516b9bf7204b2754390035c66a7ba4589160be49ae028629d4479a17134bfa
-doccontainersize 40184
-doccontainerchecksum dc4f0a61593a28522935d83e294b22db9e950702da3405ce1cc689a826bd4791c1bb64b24c5bc6f8d7e2fecd7f767efb8932f50e0ec19cca54fc02a677f652f2
-docfiles size=19
+containersize 6744
+containerchecksum ba4c220f4a53089f8e6cde73cbdd7e1b8eb68f4828217dd5dbd3360086bb946fbfc30a993c678bb8c6e4987579016f610875fb2edc796fd19968c3940a0f4402
+doccontainersize 34436
+doccontainerchecksum f4e798620ecafd750332e5ae7b3491eebc72c02ecad00e9a67247ed0eba56a537d8ea139bafa6bd9bb1c908dbcf0e13491d2c208805cce1f18db438e8da38a71
+docfiles size=13
RELOC/doc/latex/tkz-doc/README.md details="Readme"
- RELOC/doc/latex/tkz-doc/doc/latex/tkz-doc.tex
- RELOC/doc/latex/tkz-doc/doc/tkz-doc.pdf
- RELOC/doc/latex/tkz-doc/latex/tkz-doc.cfg
- RELOC/doc/latex/tkz-doc/latex/tkz-doc.cls
+ RELOC/doc/latex/tkz-doc/tkz-doc.pdf
+ RELOC/doc/latex/tkz-doc/tkz-doc.tex
+runfiles size=6
+ RELOC/tex/latex/tkz-doc/tkz-doc.cfg
+ RELOC/tex/latex/tkz-doc/tkz-doc.cls
catalogue-contact-home http://altermundus.fr
catalogue-ctan /macros/latex/contrib/tkz-doc
catalogue-license lppl1.3
catalogue-topics doc-supp class macro-demo
catalogue-version 1.45c
+name tkz-elements
+category Package
+revision 68664
+shortdesc A Lua library for drawing Euclidean geometry with TikZ or tkz-euclide
+relocated 1
+longdesc This package provides a library written in Lua, allowing to
+longdesc make all the necessary calculations to define the objects of a
+longdesc Euclidean geometry figure. You need to compile with LuaLaTeX.
+longdesc The definitions and calculations are only done with Lua. The
+longdesc main possibility of programmation proposed is oriented "object
+longdesc programming" with object classes like point, line, triangle,
+longdesc circle and ellipse. For the moment, once the calculations are
+longdesc done, it is tkz-euclide or TikZ which allows the drawings.
+containersize 12384
+containerchecksum 743f0d803ed22dd6bae6daa0b434d6557c3c5cee11c7e6830243ce444902bea90319389710bb63f1a1c10561510f713b3aac4cfc7f19c1f4bffbd36099c9a62f
+doccontainersize 490100
+doccontainerchecksum 7b5dc7dae4a6fe8c3388e84c8c72bd29668280e7f6b7d901193621150708713967365fdc1d85ca39ac8e80ea6094e129d697d55e42099e38d227fbdb6e6f4610
+docfiles size=189
+ RELOC/doc/latex/tkz-elements/README.md details="Readme"
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-classes-ellipse.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-classes-misc.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-classes.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-convention.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-examples.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-howtouse.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-intersection.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-main.tex
+ RELOC/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex
+ RELOC/doc/latex/tkz-elements/examples/tkz-elements-demo-1.pdf
+ RELOC/doc/latex/tkz-elements/examples/tkz-elements-demo_1.pdf
+ RELOC/doc/latex/tkz-elements/examples/tkz-elements-demo_1.tex
+ RELOC/doc/latex/tkz-elements/examples/tkz-elements-demo_2.pdf
+ RELOC/doc/latex/tkz-elements/examples/tkz-elements-demo_2.tex
+ RELOC/doc/latex/tkz-elements/examples/tkz-elements-demo_3.pdf
+ RELOC/doc/latex/tkz-elements/examples/tkz-elements-demo_3.tex
+ RELOC/doc/latex/tkz-elements/tkz-elements.pdf details="Package documentation"
+runfiles size=23
+ RELOC/tex/latex/tkz-elements/tkz-elements.sty
+ RELOC/tex/latex/tkz-elements/tkz_elements_circles.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_class.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_ellipses.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_functions_circles.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_functions_intersections.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_functions_lines.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_functions_maths.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_functions_points.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_functions_triangles.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_lines.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_main.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_point.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_points.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_triangles.lua
+ RELOC/tex/latex/tkz-elements/tkz_elements_vectors.lua
+catalogue-contact-home https://altermundus.fr
+catalogue-ctan /macros/latex/contrib/tkz/tkz-elements
+catalogue-license lppl1.3
+catalogue-topics maths calculation luatex
+catalogue-version 1.00b
+
name tkz-euclide
category Package
-revision 68604
+revision 68663
shortdesc Tools for drawing Euclidean geometry
relocated 1
longdesc The tkz-euclide package is a set of files designed to give math
longdesc teachers and students easy access to the programming of
longdesc Euclidean geometry with TikZ.
-containersize 41844
-containerchecksum 47daf4e58f067f8331fc0304c5004320969c040141f4531ee522931ee6fe2447087dea1f2d8a0fb7b4108fa11b7e9fb321b3effd79dd3a8cc9a9949faf7b8fd8
-doccontainersize 1175576
-doccontainerchecksum 868f035f3f553936579647a42506a8814ce731c28006bf3d08a7c00aee8241fee1baf2bc11ed1d43b013bc621dcb419d2b15e5089b0efd812e5e52e29dac425f
+containersize 41916
+containerchecksum 40c6d322cfe290d22b00ad6a68489a8eefa7159fff3cf54b7cf3e2547942a0b43461121f3563ec270a80555fa25744010356dd32262ef460ab18c69567c1428f
+doccontainersize 1175256
+doccontainerchecksum 3eae2af57539537872d46e4ede46ecbe9d7d51ecac4473bcc0d8847e544907fb416e24539d33c308dee057abb998a11733b9262ea9c300303dc5a0f50270ef80
docfiles size=392
RELOC/doc/latex/tkz-euclide/README.md details="Readme"
RELOC/doc/latex/tkz-euclide/TKZdoc-euclide-FAQ.tex
@@ -325378,6 +325445,12 @@ runfiles size=116
RELOC/tex/latex/tkz-euclide/tkz-obj-eu-circles.tex
RELOC/tex/latex/tkz-euclide/tkz-obj-eu-grids.tex
RELOC/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex
+ RELOC/tex/latex/tkz-euclide/tkz-obj-eu-lua-circles-by.tex
+ RELOC/tex/latex/tkz-euclide/tkz-obj-eu-lua-circles.tex
+ RELOC/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-by.tex
+ RELOC/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-spc.tex
+ RELOC/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-with.tex
+ RELOC/tex/latex/tkz-euclide/tkz-obj-eu-lua-points.tex
RELOC/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex
RELOC/tex/latex/tkz-euclide/tkz-obj-eu-points-rnd.tex
RELOC/tex/latex/tkz-euclide/tkz-obj-eu-points-spc.tex
@@ -325385,31 +325458,25 @@ runfiles size=116
RELOC/tex/latex/tkz-euclide/tkz-obj-eu-points.tex
RELOC/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex
RELOC/tex/latex/tkz-euclide/tkz-obj-eu-triangles.tex
- RELOC/tex/latex/tkz-euclide/tkz-obj-lua-circles-by.tex
- RELOC/tex/latex/tkz-euclide/tkz-obj-lua-circles.tex
- RELOC/tex/latex/tkz-euclide/tkz-obj-lua-points-by.tex
- RELOC/tex/latex/tkz-euclide/tkz-obj-lua-points-spc.tex
- RELOC/tex/latex/tkz-euclide/tkz-obj-lua-points-with.tex
- RELOC/tex/latex/tkz-euclide/tkz-obj-lua-points.tex
RELOC/tex/latex/tkz-euclide/tkz-tools-eu-BB.tex
RELOC/tex/latex/tkz-euclide/tkz-tools-eu-angles.tex
RELOC/tex/latex/tkz-euclide/tkz-tools-eu-base.tex
RELOC/tex/latex/tkz-euclide/tkz-tools-eu-colors.tex
RELOC/tex/latex/tkz-euclide/tkz-tools-eu-intersections.tex
+ RELOC/tex/latex/tkz-euclide/tkz-tools-eu-lua-angles.tex
+ RELOC/tex/latex/tkz-euclide/tkz-tools-eu-lua-base.tex
+ RELOC/tex/latex/tkz-euclide/tkz-tools-eu-lua-intersections.tex
+ RELOC/tex/latex/tkz-euclide/tkz-tools-eu-lua-math.tex
RELOC/tex/latex/tkz-euclide/tkz-tools-eu-math.tex
RELOC/tex/latex/tkz-euclide/tkz-tools-eu-modules.tex
RELOC/tex/latex/tkz-euclide/tkz-tools-eu-text.tex
RELOC/tex/latex/tkz-euclide/tkz-tools-eu-utilities.tex
- RELOC/tex/latex/tkz-euclide/tkz-tools-lua-angles.tex
- RELOC/tex/latex/tkz-euclide/tkz-tools-lua-base.tex
- RELOC/tex/latex/tkz-euclide/tkz-tools-lua-intersections.tex
- RELOC/tex/latex/tkz-euclide/tkz-tools-lua-math.tex
catalogue-also eukleides pst-eucl
catalogue-contact-home https://altermundus.fr
catalogue-ctan /macros/latex/contrib/tkz/tkz-euclide
catalogue-license lppl1.3
catalogue-topics maths graphics-use use-luatex
-catalogue-version 5.03c
+catalogue-version 5.04c
name tkz-fct
category Package
@@ -354951,17 +355018,17 @@ catalogue-version 1.25
name xcharter-math
category Package
-revision 67680
+revision 68658
shortdesc XCharter-based OpenType Math font for LuaTeX and XeTeX
relocated 1
longdesc This package provides an Unicode Math font XCharter-Math.otf
longdesc meant to be used together with XCharter Opentype Text fonts
longdesc (extension of Bitstream Charter) in LuaLaTeX or XeLaTeX
longdesc documents.
-containersize 241724
-containerchecksum f481f1045b48afebe6633302bd1db31622a2441d9988b39051ad580475ec176a10b1070be087d72e32d23a75f18b1020641fb433f4029bd1c4b91caa61a36d36
-doccontainersize 1981536
-doccontainerchecksum 3126ee9b40211bc0c5dbe0e07b3c4280e374f72dc0a7d8c25e644ade9840dd6ff66699f44439d7837d1f15f65923006cf991a17781e693c99b41df7aa56f595e
+containersize 243464
+containerchecksum 25a78c0ace62ae6210c0bdefa69ebc2e1c19204d33f9550b3055eacd83c2c6622174d2565aa711600c6f355ff73090e27d078c34d57007d1042f396ce9bbf7bb
+doccontainersize 1981072
+doccontainerchecksum 67d0f527ccf5136faf24d74264a276768b004df83b8df87a23c1bcbcccdab32729d0d4dacadd1cc6cdeec0717a3bfbe3a7844ba951216a9639b1789b7dd71fd0
docfiles size=518
RELOC/doc/fonts/xcharter-math/README.md details="Readme"
RELOC/doc/fonts/xcharter-math/XCharter-Math.ltx
@@ -354975,7 +355042,7 @@ runfiles size=117
catalogue-ctan /fonts/xcharter-math
catalogue-license ofl lppl1.3
catalogue-topics font font-otf font-maths font-supp-maths
-catalogue-version 0.50
+catalogue-version 0.51
name xcite
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index bce3b7f231..5e96ce7bfc 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-96b61613436a954c5bab74658972e1bd texlive.tlpdb
+2a598f8d32e40913eb32549161577507 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index b3d95deddd..8e19a91b96 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-401457d5c93eeafba66cdc13268b341d87ccf567482c70bd5b6a0a369d3fc09a00f3a2aaac473e88b2d9b1ac4f11daff98042d9092bff46f3265258d751e86a7 texlive.tlpdb
+a4a9d794b042673b86300ebe53f0bdf1b979f01a0ae2cbcc185d643ef81d13049eb7b84de4e5ad2d1ca2c3e924c487f8b15f56775dae4dd59fbbfe659e619d18 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index aa669e896d..aa1d109268 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+QqiBBqTOGHfhlDjHAFAmU5qJcACgkQTOGHfhlD
-jHA5egf9GnOH05TTEAw6hDNBEJoZ8//YkliBDSwuUw2WVRycJ8f//kYsmNWZH8xP
-DGuK0NUF3o04IFtwnDNgoFZtfMML6PfIeAfAbhymTbbX5mOttmt0Yh/58pR8gNt5
-C5Hww6reXmpd1ESn7o0bemwmlS30nfhwGhdnXz1wr4kY/dI5sOKFrSsb+idqLlg9
-8UBlkndiHz3PAiHk2q/3opblr4/caPWu4YiJUUYVOlkMIvAsjpMwTJDY7bc7rjTz
-0sMNp3TukRKeWq8SJc1aSwg/p7hWqSWeDLAPI13+btBbXl13ddp9hXRgs7EdVy6J
-UZFXh7WrNHkBJnZ4b/CRrvFgcdBkaA==
-=ruHV
+iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmU6+iYACgkQTOGHfhlD
+jHBxDQgAuoleth1jyMdIssw3t0yEupGled4mdNjFT4TUXwL4CPkm9A5N7ahS+Y7Q
+n0MxvhiTzDDIQ0OWKQX40b4KqnynYPCe8LMqEYfGQfB7xSLXKqmsfOltVkmT/oHy
+hklLQDBjHs2a872sY3FHV7ddFUSU+eE3hDnHiCocjIyJIIF6rPj6xV4H/MXWA3Pi
+CcwCfbHG1EkWGev5Az1XtNRJmZZD1PtM+Kn7BMMSEu2GD7WwSJkV78/HE9E4cvxs
+/3Zp2exEB08mlvG1EISzmDCVmk3ZlbVig9ulVoKvzXu3m5XNxHhYiMjvkfvdZWk1
+WiLc2OkmGuAFLyJvaQJlAN4D2UJkTA==
+=lWvh
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 3edadfe5dc..f8c2c60b40 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/files.csv.lzma b/systems/win32/miktex/tm/packages/files.csv.lzma
index f14f8c0951..bec8c1873a 100644
--- a/systems/win32/miktex/tm/packages/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/files.csv.lzma b/systems/win32/miktex/tm/packages/next/files.csv.lzma
index d4b0bb0f39..0963c5d9e7 100644
--- a/systems/win32/miktex/tm/packages/next/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/next/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index db24726225..8462cc263d 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1697278867
+date=1698324103
lastupd=miktex-zzip-bin-x64-2.9 miktex-zlib-bin-x64-2.9 miktex-yap-bin-x64-2.9 miktex-xml2pmx-bin-x64 miktex-xetex-bin-x64-2.9 miktex-web-bin-x64-2.9 miktex-uriparser-bin-x64-2.9 miktex-upmendex-bin-x64 miktex-ttf2pk2-bin-x64-2.9 miktex-texworks-bin-x64-2.9 miktex-texware-bin-x64-2.9 miktex-texify-bin-x64-2.9 miktex-tex4ht-bin-x64-2.9 miktex-tex2xindy-bin-x64-2.9 miktex-tex-bin-x64-2.9 miktex-teckit-bin-x64-2.9 miktex-tdsutil-bin-x64 miktex-synctex-bin-x64-2.9 miktex-runtime-bin-x64-2.9 miktex-ptex-bin-x64
-lstdigest=6f03d01740281642312d94719b2021f9
-numpkg=6892
+lstdigest=ac2399838751217486faa77ae30cfaf0
+numpkg=6897
relstate=next
-version=8687
+version=8699
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: bHZRFYZCR4RJUW8+M76MS0bcJUdWZiZijYJvEHKPmbenL5Kf9tyFkGOvxfzmIcaA3Nvp8UdSD1mJHZBZvr1KSSb9x+RMVyQLAGIpz2n/A8P4MHlOrAYD5aiFeut8hf1FK/XE5SuhtOCDHVwUvTFS3vL+71lmAQb0tPu2sk7bQOPQ1smWkyNcLqzUM3EPjgDnS3FfK+ZwmOpJRJZ31vSnPKLdKv/REX8hxfRoXK9VwjeIOMT70it2YAvezY2FHoqR5FzrrQiMDcAufSFa9p9TPGS35gUNSjdDyMMlHSC9rrGJDFImNUQGkqb3/zQi8mRYEaBUzdF+rvODESld2fUGTQ==
+;;;; signature/miktex: sPVo1ikgMS7yFyvECgfMJhJHTK1uWobcJ8P0ySAgQ4XYz56JefEkoWPn9Yy9buBJKRJwfAAPrMJ7SEpLh1LUVN0KCNenxxPxDSk6hbATZcv032ap0rqiK9C9JD56aUJR4CVHddNhXdsdUYCngUWs8Cf2R4RCUDqmzM35/ILRMd+tllGbnllRLgmm09I4OnP52vxkFQXLUku6LkFBo2VelwSvGuBu/4tox7v+b8qRVChdp3UXEnKFaatIYODUN2Guz3GPByzKXVkQM1Xey6kfTVySgmOIpHKWSD5ktbWZZ/Kt3QW0FLGpoXGJWdOinz/3nqUrwkb8fWODToCbksrLGA==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index f152242786..ab8c719710 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1697278802
-lastupd=tex4ht simpleicons__doc simpleicons latexindent__source latexindent__doc latexindent bodeplot__source bodeplot__doc bodeplot bib2gls__source bib2gls__doc bib2gls babel-greek__source babel-greek__doc babel-greek abntexto__source abntexto__doc abntexto pixelarttikz__source pixelarttikz__doc
-lstdigest=be3a6a8e2181b15308390b8cbd858b72
-numpkg=6892
+date=1698323976
+lastupd=yet-another-guide-latex2e__source yet-another-guide-latex2e unbtex__source unbtex__doc unbtex tkz-euclide__source tkz-euclide__doc tkz-euclide titlesec__source titlesec__doc titlesec tikz-osci__source tikz-osci__doc tikz-osci stex__source stex__doc stex simpleicons__source simpleicons__doc simpleicons
+lstdigest=c8675c00354ddaad8ab3fb0f37473f92
+numpkg=6897
relstate=stable
-version=8687
+version=8699
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: KilFLSrdLsdbGDoRyPjJqEu91DqCpOW91AB6d57nr95oGrDWs2jiNXla65E/idkyM80smiy6VR92hMkR92gCQctJ2NfYw0xxtPUIkfNyCqbzFfM7PxalcRVj73SrSHLxgAYmEAjoAHWvQVlid1HSztx/mNc+PWu7g7Q/BKNpztAeuEPjUvSccUu1AGxW1p0yxmAoVXj5MWHeUOaoj+eEz9Z/Cyi4X+615HVbqdhqxOp98JRlHBnzErNOp0bQq3Vtgxx2eX7syWfmYvgaUDMQ6Z0l2CcNuDzObRLAm2gPngQ5l9bMrl3tO3VRv3FpGHrOGOBt9B85qwBEV3y+PQ4tMg==
+;;;; signature/miktex: huj0BPUTbJ6DpjgyHYHx3pnBuevBJFIxX1aS9KIKoeqWQpGy0V2p9+k50LC2UWOrFawZiDR477Z8MVjJaqa87x3JaPWn/VsRYZ11NkKgwK0y8jHpfmBFQVPbJME9426s5x1AmyxlN5RDiwu+mrU5AGmqgI7/fsD2+Z5KZnKPg5Pi5ymMX6mHW8RPs7pi0TClBa3iwXKkcy6eE7oqVuFVPTw+7ZQxsJ9XPVTcwgED7Ucgq9NZkQTp+8WwV4J2hzz9nkx12v3wO8BnhfzfH9mpSMtJEHFgrtFyGqhqDOM6pDHMFgVRBKkchVwg9/kw/I1RpXYsyCKoxIbcJ1SzuEd/0w==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index c4c2412160..5b3e79673f 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-10-26-02-02
+2023-10-27-02-02