summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tkz
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-01-25 03:01:31 +0000
committerNorbert Preining <norbert@preining.info>2020-01-25 03:01:31 +0000
commit75672286990bb55c7b46277f845d14eafcf2ba61 (patch)
tree29456eb5880d5a2629b2ae329423c9ceaaaf6887 /macros/latex/contrib/tkz
parente1192611f0655a1ccaff0dff2f53c7c65fa5db07 (diff)
CTAN sync 202001250301
Diffstat (limited to 'macros/latex/contrib/tkz')
-rw-r--r--macros/latex/contrib/tkz/tkz-base/README90
-rw-r--r--macros/latex/contrib/tkz/tkz-base/doc/README24
-rw-r--r--macros/latex/contrib/tkz/tkz-base/doc/TKZdoc-base.pdfbin0 -> 392458 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-base/doc/tkz-base-screen.pdfbin443650 -> 0 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/Makefile7
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/how_to_compile.txt2
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/info_base_tex.txt15
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/main.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-10-2-0.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-1-1.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-2-1.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-3-1.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-4-0.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-5-1.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-6-1.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-6-2.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-7-0.tex18
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-9-0.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-1-0.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-1-1.tex18
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-10-1.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-10-2.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-10-3.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-2-0.tex17
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-3-1.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-5-0.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-7-0.tex20
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-8-1.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-13-2-0.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-14-1-2.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-1-1.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-1-2.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-2-1.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-3-1.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-3-2.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-4-1.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-16-1-1.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-1-1.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-2-1.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-2-2.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-3-1.tex24
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-4-0.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-5-1.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-1.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-2.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-3.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-4.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-2-1.tex21
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-1-1.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-1-2.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-0.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-1.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-2.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-3.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-1.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-2.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-3.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-4.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-5.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-6.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-10-1.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-1.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-10.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-11.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-2.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-3.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-4.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-5.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-6.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-7.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-8.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-9.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-3-1.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-3-2.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-3-3.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-7-1.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-7-2.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-7-3.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-8-1.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-8-2.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-9-1.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-1.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-10.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-11.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-2.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-3.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-4.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-5.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-6.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-7.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-8.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-9.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-1.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-2.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-3.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-4.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-5.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-10-1.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-10-2.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-10-3.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-11-2.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-11-3.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-12-1.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-2-0.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-3-1.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-4-1.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-4-2.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-5-1.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-5-2.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-5-3.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-6-1.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-6-2.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-7-1.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-7-2.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-8-1.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-9-1.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-9-2.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-base/examples/tkzbasepreamble.ltx18
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-base.cfg169
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-base.sty119
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-lib-marks.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-lib-symbols.tex)12
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-axes.tex462
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-grids.tex78
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-marks.tex (renamed from macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-obj-marks.tex)122
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-points.tex327
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-rep.tex62
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-BB.tex63
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-arith.tex (renamed from macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-arith.tex)34
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-base.tex83
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-math.tex117
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-misc.tex82
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-modules.tex60
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-print.tex79
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-text.tex82
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-utilities.tex182
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-base.cfg131
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-base.sty197
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-obj-points.tex519
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-obj-segments.tex142
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-base.tex700
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-math.tex688
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-misc.tex181
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-obsolete.tex219
-rw-r--r--macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-utilities.tex338
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/README87
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/Euclidean_geometry.pdfbin0 -> 480539 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/TKZdoc-euclide.pdfbin0 -> 633226 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/cheatsheet_euclide_1.pdfbin0 -> 24350 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/cheatsheet_euclide_2.pdfbin0 -> 20779 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-FAQ.tex49
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-alea.tex124
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-arcs.tex141
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-base.tex105
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex628
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-compass.tex126
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-config.tex106
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-example.tex347
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-exemples.tex142
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-installation.tex167
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-intersec.tex411
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex341
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex176
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-obj.tex98
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-points.tex605
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-polygons.tex551
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex239
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-rapporteur.tex156
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-sectors.tex212
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-segments.tex254
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tips_and_tricks.tex1
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex325
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-transf.tex472
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-vec.tex129
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/euclide.ist6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide-screen.pdfbin686795 -> 0 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/Makefile7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/how_to_compile.txt2
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/info_euclide_tex.txt17
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/main.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-10-0-2.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-10-0-3.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-1-1.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-2-1.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-3-1.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-4-1.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-5-1.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-6-1.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-7-1.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-7-2.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-12-1-0.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-1.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-10.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-11.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-2.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-3.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-4.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-5.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-6.tex19
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-7.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-8.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-9.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-2-1.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-2-0.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-3-0.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-4-0.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-4-1.tex20
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-5-1.tex23
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-6-0.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-7-0.tex25
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-1.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-2.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-3.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-4.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-5.tex18
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-6.tex20
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-1-1.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-1-2.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-1-3.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-2-1.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-1-1.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-1-2.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-1-3.tex21
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-2-0.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-3-1.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-3-2.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-4-1.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-0.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-1.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-2.tex26
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-3.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-1-1.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-1-2.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-1-3.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-2-1.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-2-2.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-3-1.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-4-1.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-5-1.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-1.tex26
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-2.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-3.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-4.tex17
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-5.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-6.tex22
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-7.tex21
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-1-1.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-1-2.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-1-3.tex20
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-3-1.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-3-2.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-3-3.tex17
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-4-1.tex17
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-5-1.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-6-1.tex35
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-6-2.tex20
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-7-1.tex17
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-1.tex18
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-2.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-3.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-4.tex22
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-5.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-6.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-7.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-2-1.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-2-2.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-2-3.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-1-1.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-1.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-2.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-3.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-4.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-4-1.tex19
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-5-1.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-6-1.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-1-1.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-1.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-2.tex22
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-3.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-4.tex19
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-6.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-7.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-8.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-9.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-1.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-2.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-3.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-4.tex29
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-1-1.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-1-2.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-1-3.tex23
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-2-1.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-2-2.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-3-1.tex21
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-1.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-2.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-3.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-4.tex24
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-7-1.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-7-2.tex23
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-8-1.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-1.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-2.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-3.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-4.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-5.tex24
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-2-1.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-2-2.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-3-1.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-1-0.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-2-0.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-3-0.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-4-0.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-5-0.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-6-0.tex19
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-1-1.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-1-2.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-2-0.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-3-0.tex17
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-1.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-2.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-3.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-4.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-2-1.tex27
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-2-2.tex19
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-29-1-1.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-30-1-0.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-30-2-0.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-2.tex17
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-3.tex21
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-4.tex24
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-5.tex26
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-1.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-10.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-11.tex32
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-12.tex43
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-2.tex17
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-3.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-4.tex17
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-5.tex21
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-6.tex26
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-7.tex19
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-8.tex24
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-9.tex19
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-5-0-0.tex23
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-6-2-0.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-6-3-0.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-6-4-0.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-1-1.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-1-2.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-1-3.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-3-0.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-4-0.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-5-1.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-5-2.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-5-3.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-1-1.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-2-1.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-2-2.tex17
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-3-0.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-1.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-2.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-3.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-4.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-5.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-6.tex28
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-7.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclpreamble.ltx18
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty23
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-angles.tex289
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-arcs.tex167
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex237
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex105
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex251
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex425
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex83
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex207
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex402
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex114
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex248
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex465
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex113
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-protractor.tex)135
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-sectors.tex)79
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex344
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex509
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-angles.tex65
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-intersections.tex (renamed from macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-tools-intersections.tex)359
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-euclide.sty20
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-addpoints.tex159
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-angles.tex332
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-arcs.tex272
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-circles.tex259
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-lines.tex342
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-polygons.tex278
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-vectors.tex119
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-tools-transformations.tex525
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/readme-tkz-euclide-fr.txt107
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/readme-tkz-euclide.txt124
398 files changed, 9964 insertions, 12230 deletions
diff --git a/macros/latex/contrib/tkz/tkz-base/README b/macros/latex/contrib/tkz/tkz-base/README
index 6e648a23e4..58252fe03e 100644
--- a/macros/latex/contrib/tkz/tkz-base/README
+++ b/macros/latex/contrib/tkz/tkz-base/README
@@ -1,14 +1,10 @@
-% encodage utf8
-%%%%%%%%%%%%%%%%%%%%%% english readme %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% encodage utf8
-readme-tkz-base.txt V1.16d 19/09/20118
+readme-tkz-base.txt V3.01 c 2020/01/24
-Purpose
--------
-
-The tkz-base package is the base of a set of packages, designed to give math teachers (and students) easy access at the programmation of drawings with TikZ. I therefore hope that my packages provide ideal tools for teachers wanting to offer their students fine documents of maths.
-
-The tkz-base package is built on top of PGF and its associated front-end, TikZ and is a (La)TeX-friendly drawing package. The aim is to provide some useful macros to help others packages to build drawings like graph of functions, or constructions in elementary plane geometry but also graphic representations of data in statistics.
+The package tkz-base provides some tools like a Cartesian (rectangular) coordinate system to other packages like tkz-euclide or tkz-fct.
+With this package, you can draw coordinate axis, grids, draw points, the
+principle is to specify the position of any point in two-dimensional space by an unique couple of coordinates.
Licence
-------
@@ -17,73 +13,65 @@ This program can be redistributed and/or modified under the terms
of the LaTeX Project Public License Distributed from CTAN
archives in directory macros/latex/base/lppl.txt.
+
Features
--------
- -- needs etex and fp.sty;
- -- allows to use TikZ;
- -- works with utf8, pdflatex;
- -- works with the chain dvi->dvips->ps2pdf;
- -- not ready to TeX and ConText (I need more time and ideas).
+ -- needs xfp.sty, numprint;
+ -- requires and automatically loads PGF/TikZ > 3.0;
+ -- compiles with utf8, pdflatex, lualatex;
+
Installation
------------
-If you want to just test it quickly or if you need to install it by yourself, save the files (below) in a directory, which is part of your
-local TeX tree.
-
-tkz-base.sty uses a lot of files. The package is inside a folder that contains others files :
-
-_ tkz-base.cfg .................. configuration file
-_ tkz-base.sty .................. the head file
-_ tkz-obj-marks.tex ..............adds marks and tools for marks
-_ tkz-obj-points.tex ............. adds points and tools for points
-_ tkz-obj-segments.tex ........... adds segments and tools for segments
-_ tkz-tools-arith.tex ............ some useful tool for integers
-_ tkz-tools-base.tex ............ the main file
-_ tkz-tools-math.tex ............ mathematic tools
-_ tkz-tools-misc.tex ............. misc tools
-_ tkz-tools-utilities.tex
+You can experiment with the tkz-base package by placing all of the
+distribution files in the directory containing your current tex file.
+You can also placing all of the distribution files in the directory :
+/texmf/tex/latex/tkz.
+
How to use it
-------------
-\usepackage{tkz-base} loads TikZ, so if you need to use some options for xcolor.sty, you need to launch xcolor before tkz-base.
-
-The main macro is \tkzInit to define a Cartesian coordinate system or rectangular coordinate system. This system is in two dimensions and defined by a pair of perpendicular axes. The user needs only to define the single unit of length for both axes.
+To use the package tkz-base, place the following lines in the preamble of
+ your LaTeX document.
-\tkzAxeX, \tkzDrawX, \tkzLabelX are macros for axes.
-\tkzDefPoint \tkzDrawPoint \tkzLabelPoint are macros for points.
-But other objects have specific macros like segments.
-
-tkz-base provides some useful tools for packages like tkz-euclide and tkz-fct.
+\usepackage{tkz-base}
+
+\usepackage{tkz-base} loads TikZ.
+\usetkzobj{all} loads all objects used by tkz-euclide.
+With \usepackage{tkz-euclide} you don't need to use \usetkzobj
-Extension
----------
-tkz-base can use some objects like points and segments, but it is possible to use some objects created for tkz-euclide. Thus to use the macros associated with the polygons, just put in the preamble:
+To avoid package conflicts, you need to load xcolor before TikZ or tkz-base or tkz-euclide
-\usetkzobj{polygons}.
+Documentation
+-------------
+Documentations for tkz-base and tkz-euclide are available on CTAN and your distribution.
+
+
Examples
--------
-All examples of documentation will be on my sites:
- http://altermundus.fr ou http://altermundus.com
-Documentation
--------------
- tkz-base-screen.pdf is in french actually but a lot of examples are given in the documentation.
-Documentation for printing will be ready soon.
+All examples given in documentation will be stored on CTAN as standalone
+ files, ready for compilation. You can use the main.tex file to load and compile an example.
+
+Other examples can be found on my site http://altermundus.fr (en français)
Compatibility
--------------
-This new package is not compatible with older packages tkz-base, tkz-2d and especially tkz-arith.
+-------------
+
+The new package tkz-base 3.01c is *not* fully compatible with the version 1.16 but the differences are minor
History
-------
+
+-- 3.01c this version
-- 1.16 correction of bugs
--- 1.13 first version
+-- 1.13 first version
Alain Matthes
5 rue de Valence
Paris 75005
- al (dot) ma (at) mac (dot) com \ No newline at end of file
+ al (dot) ma (at) mac (dot) com \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/doc/README b/macros/latex/contrib/tkz/tkz-base/doc/README
deleted file mode 100644
index b7a2bce4e1..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/doc/README
+++ /dev/null
@@ -1,24 +0,0 @@
-% encodage utf8
-
-How to compile the sources
---------------------------
-
-All these files are in utf8.
-
-You only need to run
-
-$ pdflatex TKZdoc-base-main.tex
-
-If you want the same index of my documentation
-$ cd path-to-the-sources
-$ pdflatex TKZdoc-base-main.tex
-$ makeindex -s base.ist TKZdoc-base-main.idx
-$ pdflatex TKZdoc-base-main.tex
-
-The end
-
- Alain Matthes
- 5 rue de Valence
- Paris 75005
-
- al (dot) ma (at) mac (dot) com \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/doc/TKZdoc-base.pdf b/macros/latex/contrib/tkz/tkz-base/doc/TKZdoc-base.pdf
new file mode 100644
index 0000000000..f89b3b18d5
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/doc/TKZdoc-base.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-base/doc/tkz-base-screen.pdf b/macros/latex/contrib/tkz/tkz-base/doc/tkz-base-screen.pdf
deleted file mode 100644
index 1408d5130c..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/doc/tkz-base-screen.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/Makefile b/macros/latex/contrib/tkz/tkz-base/examples/Makefile
deleted file mode 100644
index e6d2c02491..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/examples/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-all: doc
-
-doc:
- for datei in $$(ls *tex | cut -d \. -f 1) ; do make $$datei.pdf ; done
-
-%.pdf: %.tex
- pdflatex --shell-escape $*.tex \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/how_to_compile.txt b/macros/latex/contrib/tkz/tkz-base/examples/how_to_compile.txt
new file mode 100644
index 0000000000..784c4a6fd0
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/how_to_compile.txt
@@ -0,0 +1,2 @@
+If you want to compile the file tkzbase-6-1-1.tex.
+You add \input{tkzbase-6-1-1} inside the environment "document" \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/info_base_tex.txt b/macros/latex/contrib/tkz/tkz-base/examples/info_base_tex.txt
deleted file mode 100644
index c23c4fa144..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/examples/info_base_tex.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-2018/09/19
-
-This archive contains all the examples of the documentation about tkz-base.
-
-You need to compile a file with pdflatex to have in the same directory the file tkzbasepreamble.ltx. This file is present in the archive.
-
-You can also find Makefile in the archive. The way to use the Makefile is :
-
-$ cd <path of the archive>
-$ make
-
-Best regards
-
-Alain Matthes
-
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/main.tex b/macros/latex/contrib/tkz/tkz-base/examples/main.tex
new file mode 100644
index 0000000000..831c906046
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/main.tex
@@ -0,0 +1,11 @@
+% !TEX TS-program = pdflatex
+% Created by Alain Matthes on 2020-01-23.
+% Copyright (c) 2020 __ AlterMundus __.
+
+\documentclass{standalone}
+%\usepackage{xcolor}
+\usepackage{tkz-euclide} %you can add tkz-fct etc.
+
+\begin{document}
+\input{tkzeuclide-5-0-0}
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-10-2-0.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-10-2-0.tex
new file mode 100644
index 0000000000..cf627547bc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-10-2-0.tex
@@ -0,0 +1,7 @@
+\tikzset{xaxe style/.style = {<->}}
+\tikzset{xlabel style/.style={below=6pt}}
+\begin{tikzpicture}
+ \tkzInit[xmin=-0.5,xmax=5]
+ \tkzDrawX
+ \tkzLabelX
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-1-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-1-1.tex
new file mode 100644
index 0000000000..447f11373e
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-1-1.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzInit[ymax=5,xmax=8]
+ \tkzGrid
+ \tkzDefPoint(3,0){A}
+ \begin{scope}
+ \tkzClipBB
+ \tkzDrawCircle[R](A,5 cm)
+ \tkzShowBB
+ \end{scope}
+\tkzDrawCircle[R,red](A,4 cm)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-2-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-2-1.tex
new file mode 100644
index 0000000000..aacd2388f1
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-2-1.tex
@@ -0,0 +1,12 @@
+ \begin{tikzpicture}
+ \tkzInit[xmin=-3,xmax=6, ymin=-1,ymax=6]
+ \tkzDefPoint(0,0){O}\tkzDefPoint(3,1){I}
+ \tkzDefPoint(1,4){J}
+ \tkzDefLine[bisector](I,O,J) \tkzGetPoint{i}
+ \tkzDefLine[bisector out](I,O,J) \tkzGetPoint{j}
+ \tkzDrawPoints(O,I,J,i,j)
+ \tkzClipBB
+ \tkzDrawLines[add = 1 and 2,color=red](O,I O,J)
+ \tkzDrawLines[add = 1 and 2,color=blue](O,i O,j)
+ \tkzShowBB
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-3-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-3-1.tex
new file mode 100644
index 0000000000..101bed7930
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-3-1.tex
@@ -0,0 +1,11 @@
+above\\
+left
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(3,3){B}
+ \tkzDefPoint(1,1){C}
+ \tkzSetBB(A)(2,2)
+ \tkzDrawSegment(A,B)
+ \tkzDrawPoints(A,C)
+ \tkzShowBB
+\end{tikzpicture}right
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-4-0.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-4-0.tex
new file mode 100644
index 0000000000..20a3b8acad
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-4-0.tex
@@ -0,0 +1,10 @@
+Une figure au-dessus du texte\\
+\begin{tikzpicture}
+ \begin{scope}
+ \tkzSetBB(0,0)(6,2) \tkzShowBB[fill=blue!20]
+ \tkzSaveBB
+ \end{scope}
+ \tkzDefPoint(3,3){A}\tkzShowBB
+ \tkzDrawCircle[R,fill=yellow,opacity=.2](A,2cm)
+ \tkzRestoreBB
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-5-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-5-1.tex
new file mode 100644
index 0000000000..5667f1eeb2
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-5-1.tex
@@ -0,0 +1,14 @@
+ \vspace{ 2cm}
+Start\\
+\begin{tikzpicture}
+ \tkzDefPoint(-2,-2){A}
+ \tkzDefPoint(2,1){B}
+ \tkzDefPoint(0,0){O}
+ \tkzSaveBB
+ \tkzShowBB[red,line width=1pt]
+ \tkzRestoreBB
+ \tkzDrawCircle(O,B)
+ \tkzClipBB
+ \tkzFillCircle[gray!20](O,B)
+\end{tikzpicture}
+End
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-6-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-6-1.tex
new file mode 100644
index 0000000000..022d31c9c6
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-6-1.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=3, ymax=3]
+ \tkzGrid
+ \tkzAxeXY
+ \tkzClip
+ \draw[red] (-1,-1)--(5,5);
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-6-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-6-2.tex
new file mode 100644
index 0000000000..483673326c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-6-2.tex
@@ -0,0 +1,6 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=3, ymax=3]
+ \tkzGrid \tkzAxeXY
+ \tkzClip[space=-0.5]
+ \draw[red] (-0.5,-0.5)--(3.5,3.5);
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-7-0.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-7-0.tex
new file mode 100644
index 0000000000..b8bbbb37e8
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-7-0.tex
@@ -0,0 +1,18 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzInit[xmin=-5,xmax=5,ymin=-5,ymax=5]
+ \pgfinterruptboundingbox
+ \tkzDefPoints{-.5/0/P1,.5/0/P2}
+ \foreach \i [count=\j from 3] in {2,...,7}{%
+ \tkzDefShiftPoint[P\i]({45*(\i-1)}:1 cm){P\j}
+ }
+ \endpgfinterruptboundingbox
+ \tkzClipOutPolygon(P1,P2,P3,P4,P5,P6,P7,P8)
+ \tkzCalcLength[cm](P1,P5)\tkzGetLength{r}
+ \begin{scope}[blend group=screen]
+ \foreach \i in {1,...,8}{%
+ \pgfmathparse{100-5*\i}
+ \tkzFillCircle[R,color=MidnightBlue!%
+ \pgfmathresult](P\i,\r)
+ }
+ \end{scope}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-9-0.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-9-0.tex
new file mode 100644
index 0000000000..52b79d04b0
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-11-9-0.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}
+\tkzDefPoint(0,5){A}\tkzDefPoint(5,4){B}
+\tkzDefPoint(0,0){C}\tkzDefPoint(5,1){D}
+\pgfinterruptboundingbox
+ \tkzInterLL(A,B)(C,D)\tkzGetPoint{I}
+\endpgfinterruptboundingbox
+\tkzClipBB
+ \tkzDrawCircle(I,B)
+\tkzDrawSegments(A,B C,D A,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-1-0.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-1-0.tex
new file mode 100644
index 0000000000..65822571b6
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-1-0.tex
@@ -0,0 +1,10 @@
+ \begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(2,-3){B}
+ \tkzDefPoint(2,5){C}
+ \tkzDrawSegments[red](A,B A,C)
+ \tkzDuplicateSegment(A,B)(A,C) \tkzGetPoint{D}
+ \tkzDrawSegment[green](A,D)
+ \tkzDrawPoints[color=red](A,B,C,D)
+ \tkzLabelPoints[above right=3pt](A,B,C,D)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-1-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-1-1.tex
new file mode 100644
index 0000000000..ae926c1f1a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-1-1.tex
@@ -0,0 +1,18 @@
+\begin{tikzpicture}[rotate=-90,scale=.75]
+ \tkzInit[xmax=10,ymax=10]
+ \tkzClip[space=1]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(10,0){B}
+ \tkzDefMidPoint(A,B) \tkzGetPoint{I}
+ \tkzDefPointWith[orthogonal,K=-.75](B,A)
+ \tkzGetPoint{C}
+ \tkzInterLC(B,C)(B,I) \tkzGetSecondPoint{D}
+ \tkzDuplicateSegment(B,D)(D,A) \tkzGetPoint{E}
+ \tkzInterLC(A,B)(A,E) \tkzGetPoints{N}{M}
+ \tkzDrawArc[delta=10](D,E)(B)
+ \tkzDrawArc[delta=10](A,M)(E)
+ \tkzDrawLines(A,B B,C A,D)
+ \tkzDrawArc[delta=10](B,D)(I)
+ \tkzDrawPoints(A,B,D,C,M,I,N)
+ \tkzLabelPoints(A,B,D,C,M,I,N)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-10-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-10-1.tex
new file mode 100644
index 0000000000..bb3223027d
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-10-1.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(3,-4){B}
+ \tkzDefCircle[through](A,B)
+ \tkzGetLength{rABpt}
+ \tkzpttocm(\rABpt){rABcm}
+ \tkzDrawCircle(A,B)
+ \tkzDrawPoints(A,B)
+ \tkzLabelPoints(A,B)
+ \tkzDrawSegment[dashed](A,B)
+ \tkzLabelSegment(A,B){%
+ $\pgfmathprintnumber{\rABcm}$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-10-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-10-2.tex
new file mode 100644
index 0000000000..3a975adeb6
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-10-2.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=5,ymax=3]
+ \tkzGrid[sub,orange]
+ \tkzAxeXY
+ \tkzDefPoint(1,0){A}
+ \tkzDefPoint(4,2){B}
+ \tkzGetPointCoord(A){a}
+ \tkzGetPointCoord(B){b}
+ \tkzDefPoint(\ax,\ay){C}
+ \tkzDefPoint(\bx,\by){D}
+ \tkzDrawPoints[color=red](C,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-10-3.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-10-3.tex
new file mode 100644
index 0000000000..600cc01cfc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-10-3.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[>=latex]
+ \tkzDefPoint(1,4){a}
+ \tkzDefPoint(3,2){b}
+ \tkzDefPoint(1,1){c}
+ \tkzDrawSegment[->,red](a,b)
+ \tkzGetPointCoord(c){c}
+ \draw[color=blue,->](a) -- ([shift=(b)]\cx,\cy) ;
+ \draw[color=purple,->](b) -- ([shift=(b)]\cx,\cy) ;
+ \tkzDrawSegment[->,blue](a,c)
+ \tkzDrawSegment[->,purple](b,c)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-2-0.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-2-0.tex
new file mode 100644
index 0000000000..c367b54f8f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-2-0.tex
@@ -0,0 +1,17 @@
+\begin{tikzpicture}[scale=1.5]
+ \tkzInit[xmax=4,ymax=5]\tkzGrid[sub]
+ \tkzDefPoint(1,2){A} \tkzDefPoint(3,4){B}
+ \tkzDefPoint(3,2){C} \tkzDefPoint(3,1){D}
+ \tkzDrawSegments(A,B A,C A,D)
+ \tkzDrawPoints[color=red](A,B,C,D)
+ \tkzLabelPoints(A,B,C,D)
+ \tkzFindSlope(A,B){SAB} \tkzFindSlope(A,C){SAC}
+ \tkzFindSlope(A,D){SAD}
+ \pgfkeys{/pgf/number format/.cd,fixed,precision=2}
+ \tkzText[fill=Gold!50,draw=brown](1,4)%
+ {La pente de (AB) est : $\pgfmathprintnumber{\SAB}$}
+ \tkzText[fill=Gold!50,draw=brown](1,3.5)%
+ {La pente de (AC) est : $\pgfmathprintnumber{\SAC}$}
+ \tkzText[fill=Gold!50,draw=brown](1,3)%
+ {La pente de (AD) est : $\pgfmathprintnumber{\SAD}$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-3-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-3-1.tex
new file mode 100644
index 0000000000..43b62c1276
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-3-1.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}
+ \tkzInit
+ \tkzDefPoint(0,0){A} \tkzDefPoint(3,2){B}
+ \tkzDefLine[mediator](A,B) \tkzGetPoints{I}{J}
+ \tkzCalcLength[cm](A,B) \tkzGetLength{dAB}
+ \tkzFindSlopeAngle(A,B) \tkzGetAngle{tkzangle}
+ \begin{scope}[rotate=\tkzangle]
+ \tikzset{arc/.style={color=gray,delta=10}}
+ \tkzDrawArc[R,arc](B,3/4*\dAB)(120,240)
+ \tkzDrawArc[R,arc](A,3/4*\dAB)(-45,60)
+ \tkzDrawLine(I,J) \tkzDrawSegment(A,B)
+ \end{scope}
+ \tkzDrawPoints(A,B,I,J) \tkzLabelPoints(A,B)
+ \tkzLabelPoints[right](I,J)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-5-0.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-5-0.tex
new file mode 100644
index 0000000000..ac826cc80a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-5-0.tex
@@ -0,0 +1,16 @@
+\begin{tikzpicture}
+ \tkzInit
+ \tkzDefPoint(1,5){A} \tkzDefPoint(5,2){B}
+ \tkzDrawSegment(A,B)
+ \tkzFindSlopeAngle(A,B)\tkzGetAngle{tkzang}
+ \tkzDefPointBy[rotation= center A angle \tkzang ](B)
+ \tkzGetPoint{C}
+ \tkzDefPointBy[rotation= center A angle -\tkzang ](B)
+ \tkzGetPoint{D}
+ \tkzCompass[length=1,dashed,color=red](A,C)
+ \tkzCompass[delta=10,Maroon](B,C)
+ \tkzDrawPoints(A,B,C,D)
+ \tkzLabelPoints(B,C,D)
+ \tkzLabelPoints[above left](A)
+ \tkzDrawSegments[style=dashed,color=bistre](A,C A,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-7-0.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-7-0.tex
new file mode 100644
index 0000000000..722cf5e2bc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-7-0.tex
@@ -0,0 +1,20 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=-1,ymin=-1,xmax=7,ymax=7]
+ \tkzClip
+ \tkzDefPoint (0,0){O} \tkzDefPoint (6,0){A}
+ \tkzDefPoint (5,5){B} \tkzDefPoint (3,4){M}
+ \tkzFindAngle (A,O,M) \tkzGetAngle{an}
+ \tkzDefPointBy[rotation=center O angle \an](A)
+ \tkzGetPoint{C}
+ \tkzDrawSector[fill = blue!50,opacity=.5](O,A)(C)
+ \tkzFindAngle(M,B,A) \tkzGetAngle{am}
+ \tkzDefPointBy[rotation = center O angle \am](A)
+ \tkzGetPoint{D}
+ \tkzDrawSector[fill = red!50,opacity = .5](O,A)(D)
+ \tkzDrawPoints(O,A,B,M,C,D)
+ \tkzLabelPoints(O,A,B,M,C,D)
+ \edef\an{\fpeval{round(\an,2)}}\edef\am{\fpeval{round(\am,2)}}
+ \tkzDrawSegments(M,B B,A)
+ \tkzText(4,2){$\widehat{AOC}=\widehat{AOM}=\an^{\circ}$}
+ \tkzText(1,4){$\widehat{AOD}=\widehat{MBA}=\am^{\circ}$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-8-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-8-1.tex
new file mode 100644
index 0000000000..4fce5d5edf
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-12-8-1.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
+ \tkzDrawLine[add= .6 and .2](A,B)
+ \tkzCalcLength[cm](A,B)\tkzGetLength{dAB}
+ \tkzDefLine[perpendicular=through A](A,B)
+ \tkzDrawLine(A,tkzPointResult) \tkzGetPoint{D}
+ \tkzShowLine[orthogonal=through A,gap=2](A,B)
+ \tkzMarkRightAngle(B,A,D)
+ \tkzVecKOrth[-1](B,A)\tkzGetPoint{C}
+ \tkzCompasss(A,D D,C)
+ \tkzDrawArc[R](B,\dAB)(80,110)
+ \tkzDrawPoints(A,B,C,D)
+ \tkzDrawSegments[color=gray,style=dashed](B,C C,D)
+ \tkzLabelPoints(A,B,C,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-13-2-0.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-13-2-0.tex
new file mode 100644
index 0000000000..50a329e519
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-13-2-0.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[scale=0.75]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(4,0){B}
+ \tkzDefPoint(3,3){C}
+ \tkzDefCircle[in](A,B,C)
+ \tkzGetPoint{I}\tkzGetLength{rI}
+ \tkzDrawCircle[R](I,\rI)
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A,B,C,I)
+ \tkzLabelPoints(A,B,C,I)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-14-1-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-14-1-2.tex
new file mode 100644
index 0000000000..c4953be507
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-14-1-2.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}
+ \tikzset{xaxe style/.style={-}}
+ \tikzset{yaxe style/.style={-}}
+ \tkzInit[xmax=4,ymax=4]
+ \tkzGrid
+ \tkzDrawX
+ \tkzDrawY
+ \tkzRep[color=red,ynorm=2]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-1-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-1-1.tex
new file mode 100644
index 0000000000..c74e062ca0
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-1-1.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}[scale=2]
+ \tkzInit[xmax=3,ymax=1.5]
+ \tkzAxeXY
+ \tkzHLine[color = blue,
+ style = dashed,
+ line width = 2pt]{1}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-1-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-1-2.tex
new file mode 100644
index 0000000000..491659cdc7
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-1-2.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=-3,xmax=3,ymin=-2,ymax=1.5]
+ \foreach\v in {-1,1}
+ {\tkzHLine[color=red]{\v*pi/2}}
+ \tkzDrawY
+ \tkzAxeX[trig=2]
+ \tkzLabelY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-2-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-2-1.tex
new file mode 100644
index 0000000000..8d6f47fdf2
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-2-1.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=5,ymax=4]
+ \tkzAxeXY
+ \tkzHLines[color = magenta]{1,...,3}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-3-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-3-1.tex
new file mode 100644
index 0000000000..1280ab3e36
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-3-1.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}[scale=2]
+ \tkzInit[xmax=3,ymax=1]
+ \tkzAxeXY
+ \tkzVLine[color = blue,
+ style = dashed,
+ line width = 2pt]{1/3}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-3-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-3-2.tex
new file mode 100644
index 0000000000..f80b01cfc7
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-3-2.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=7,ymin=-1,ymax=1]
+ \foreach\v in {1,2}
+ {\tkzVLine[color=red]{\v*pi}}
+ \tkzDrawY
+ \tkzAxeX[trig=2]
+ \tkzLabelY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-4-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-4-1.tex
new file mode 100644
index 0000000000..140faf25c4
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-15-4-1.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=5,ymax=2]
+ \tkzAxeXY
+ \tkzVLines[color = green]{1,2,...,4}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-16-1-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-16-1-1.tex
new file mode 100644
index 0000000000..c58f08c1d9
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-16-1-1.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=6]
+ \tkzDrawX
+ \tkzHTick[mark=ball,mark size=3pt]{pi/2}
+ \tkzHTick[mark=*,
+ mark options={color=purple}]{2*exp(1)}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-1-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-1-1.tex
new file mode 100644
index 0000000000..5414b56805
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-1-1.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[scale=0.75]
+\tkzInit[xmax=6,ymin=1000,ymax=5000,ystep=1000]
+\tkzDrawX[label=$m$,below=10pt]
+\tkzDrawY[label=$R(m)$,above=10pt]
+\tkzLabelX[font=\scriptsize]
+\tkzLabelY[font=\scriptsize]
+\tkzDefSetOfPoints[show]{1/2000,2/3000,4/2500,5/4200}
+\tkzDrawSetOfPoints[mark=ball,mark size=3pt]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-2-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-2-1.tex
new file mode 100644
index 0000000000..79a1a993e2
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-2-1.tex
@@ -0,0 +1,16 @@
+\begin{tikzpicture}[scale=1]
+\tkzInit[xmax=5,
+ ymin=1000,ymax=6000,ystep=1000]
+\tkzDrawX[label=$m$,below=13pt]
+\tkzDrawY[label=$R(m)$]
+\tkzLabelX[font=\scriptsize]
+\tkzLabelY[font=\scriptsize]
+\tkzDefSetOfPoints{%
+ 1/2000,2/3000,4/2500,5/4200}
+\tkzJoinSetOfPoints[%
+ thick,
+ color=Maroon]
+\tkzDrawSetOfPoints[%
+ mark=ball
+ ,mark size=3pt]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-2-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-2-2.tex
new file mode 100644
index 0000000000..4f02808f0c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-2-2.tex
@@ -0,0 +1,14 @@
+\begin{tikzpicture}[scale=.5]
+\tkzInit[xmax=5,ymin=1000,
+ ymax=6000,ystep=1000]
+\tkzGrid[color=orange!30]
+\tkzDrawX[label=$m$,below=13pt]
+\tkzDrawY[label=$R(m)$]
+\tkzLabelX[font=\scriptsize]
+\tkzLabelY[font=\scriptsize]
+\tkzDefSetOfPoints[prefix=P]{%
+ 1/2000,2/3000,3/2000,4/2500,5/4200}
+\tkzDrawPolySeg[%
+ color=Maroon!50,
+ line width=2pt](P1,P2,P3,P4,P5)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-3-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-3-1.tex
new file mode 100644
index 0000000000..e6a73da41b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-3-1.tex
@@ -0,0 +1,24 @@
+\begin{tikzpicture}
+\tkzInit[xmax=5.5,ymin=1000,%
+ ymax=6000,ystep=2000]
+\tkzGrid[color=orange!30]
+\tkzDrawX[label=$m$,below=13pt]
+\tkzDrawY[above left,label=$R(m)$]
+\tkzLabelX[below right,font=\scriptsize]
+\tkzLabelY[font=\scriptsize]
+\tkzDefSetOfPoints{1/2000,2/3000,3/2000,
+ 4/2500,5/4200}
+\tkzDefSetOfPoints[prefix=P]{1/3200,2/4100,
+ 3/3300,4/3300,5/5000}
+\tkzSetUpMark[mark=heart,color=black,
+ fill=red!30,size=4pt]
+\tkzJoinSetOfPoints[thick,color=blue,double]
+\tkzDrawSetOfPoints
+\tkzJoinSetOfPoints[prefix=P,thick,color=orange]
+\tkzDrawSetOfPoints[prefix=P,mark=square*,
+ mark size=4pt,
+ mark options={color=blue,fill=blue!40}]
+\tkzText[draw,color = red,
+ fill = orange!20](3,5800)%
+ {Recette en fonction du mois}
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-4-0.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-4-0.tex
new file mode 100644
index 0000000000..0e4f49f1cc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-4-0.tex
@@ -0,0 +1,5 @@
+ \begin{tikzpicture}
+ \tkzInit[xmax=3,ymax=1]
+ \tkzAxeXY
+ \tkzDrawMark[mark=ball](1,.5)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-5-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-5-1.tex
new file mode 100644
index 0000000000..4cc9233acf
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-17-5-1.tex
@@ -0,0 +1,13 @@
+ \begin{tikzpicture}
+ \tkzInit[xmax=6,ymin=1000,
+ ymax=5000,ystep=1000]
+ \tkzAxeXY
+ \tkzDefSetOfPoints[prefix=P]{%
+ 1/2000,
+ 2/3000,
+ 4/2500,
+ 5/4200}
+ \tkzDrawSegments[color=Maroon!50]%
+(P1,P2 P2,P3 P3,P4)
+ \tkzDrawMarks[mark=ball](P1,P2,P3,P4)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-1.tex
new file mode 100644
index 0000000000..b5bf9c0a67
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-1.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}
+ \tkzInit[xmax = 6, ymin = 1000,%
+ ymax = 4000,ystep = 1000]
+ \tkzAxeXY
+ \tkzText[draw,
+ line width = 1pt,%
+ color = red,%
+ fill = orange!20](3,4000)%
+ {Recette en fonction du mois}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-2.tex
new file mode 100644
index 0000000000..035e8b7cff
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-2.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}
+ \tkzInit[xmax = 6, ymin = 1000,%
+ ymax = 4000,ystep = 1000]
+ \tkzGrid \tkzAxeXY
+ \tkzText[draw,opacity=.2,
+ rotate=45,inner sep=.6 cm,
+ line width = 1pt,
+ color = black,
+ fill = purple!20](3,2500)
+ {\Huge DRAFT}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-3.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-3.tex
new file mode 100644
index 0000000000..2e9627af54
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-3.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}
+ \tkzInit[ymax=5,xmax=6]
+ \tkzAxeXY
+ \tkzDefPoint(3,3){A}
+ \tkzText[draw,opacity=.6,
+ inner sep=.6 cm,
+ line width = 1pt,
+ color = black,
+ fill = purple!20](A)
+ {Mon texte}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-4.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-4.tex
new file mode 100644
index 0000000000..dd7c64ab26
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-1-4.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}
+ \tkzInit[ymax=5,xmax=6]
+ \tkzAxeXY
+ \tkzText[draw,opacity=.6,
+ inner sep=.6 cm,
+ line width = 1pt,
+ color = black,
+ fill = purple!20,
+ text width=3cm](3,3)
+ {Mon texte\\ Référence}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-2-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-2-1.tex
new file mode 100644
index 0000000000..a51b858f6f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-18-2-1.tex
@@ -0,0 +1,21 @@
+ \begin{tikzpicture}
+\tkzInit[xmax=12,ymin=1000,ymax=11000,ystep=2000]
+\tkzGrid[color=orange!30]
+\tkzDrawX[below right,label=Mois]
+\tkzDrawY[above left,label=Recette]
+\tkzLabelX
+\tkzLabelY
+\tkzDefSetOfPoints{1/2000,2/3000,3/2000,4/2500,5/4200,6/4800,7/4600,
+ 8/5200,9/6200,10/7000,11/7400,12/10000}
+\tkzDefSetOfPoints[prefix=P]{1/3200,2/4100,3/3300,4/3300,5/5000,6/5500,7/5200,8/4000,
+ 9/3000,10/6000,11/8400,12/9000}
+\tkzSetUpMark[mark=heart,color=black,fill=red!30,size=4pt]
+\tkzJoinSetOfPoints[thick,color=Maroon,double]
+\tkzDrawSetOfPoints
+\tkzJoinSetOfPoints[prefix=P,thick,color=orange,double]
+\tkzDrawSetOfPoints[prefix=P,mark=square*,mark size=4pt,
+ mark options={color=blue,fill=blue!40}]
+\tkzLegend[draw,rounded corners,fill=fondpaille,text=Maroon,
+ line width=2pt](5,10000){heart/1ex/red!30/Recette produit A,%
+ square*/0.75ex/blue!40/Recette produit B}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-1-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-1-1.tex
new file mode 100644
index 0000000000..baee4179a9
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-1-1.tex
@@ -0,0 +1,6 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=8,ymax=6]
+ \tkzGrid
+ \tkzAxeXY
+ \draw[blue](-1,0)--(6,7);
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-1-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-1-2.tex
new file mode 100644
index 0000000000..ea7015f9cc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-1-2.tex
@@ -0,0 +1,6 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=10,xstep=2,ymax=800,ystep=400]
+ \tkzGrid
+ \tkzAxeXY
+
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-0.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-0.tex
new file mode 100644
index 0000000000..25063c640b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-0.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=5,xstep=1,ymax=2,ystep=.5]
+ \tkzGrid
+ \tkzAxeXY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-1.tex
new file mode 100644
index 0000000000..be997b8ec2
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-1.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=20,
+ xmax=50,
+ xstep=10,
+ ymin=5000,
+ ymax=5150,
+ ystep=50]
+ \tkzAxeXY
+ \tkzDefPoint(30,5100){A}
+ \tkzDrawPoint(A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-2.tex
new file mode 100644
index 0000000000..7e58acc5f5
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-2.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=0.00, xmax=0.05,
+ ymin=1.2200,ymax=1.2215,
+ xstep=0.01, ystep=0.0005]
+ \tkzAxeXY
+ \tkzDefPoint(.04,1.22025){I}
+ \tkzDrawPoint(I)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-3.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-3.tex
new file mode 100644
index 0000000000..2270c44d0a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-6-2-3.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}
+ \tkzInit[xmin = -40,
+ xmax = 60,
+ ymin = -40,
+ ymax = 60,
+ xstep = 20,
+ ystep = 20]
+ \tkzAxeXY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-1.tex
new file mode 100644
index 0000000000..6775c8ebb7
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-1.tex
@@ -0,0 +1,4 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=5]
+ \tkzDrawX[label={},noticks]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-2.tex
new file mode 100644
index 0000000000..cadb2d3273
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-2.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=5]
+ \tkzDrawX[label = quantité,
+ above left = 8pt]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-3.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-3.tex
new file mode 100644
index 0000000000..838efdfffe
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-3.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=5]
+ \tkzDrawX[text=blue,color=red,
+ right=12pt]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-4.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-4.tex
new file mode 100644
index 0000000000..02f19c31f7
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-4.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+\tkzInit[xmax=0.4,xstep=0.1]
+\tkzDrawX[text=blue,color=red,
+ right=12pt,right space=1]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-5.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-5.tex
new file mode 100644
index 0000000000..a4bb316888
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-5.tex
@@ -0,0 +1,4 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=0,xmax=4,ymin=-1,ymax=1]
+ \tkzDrawX[trig=1]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-6.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-6.tex
new file mode 100644
index 0000000000..718bfec395
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-1-6.tex
@@ -0,0 +1,4 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=0,xmax=4,ymin=-1,ymax=1]
+ \tkzDrawX[trig=2]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-10-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-10-1.tex
new file mode 100644
index 0000000000..6502cc53fd
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-10-1.tex
@@ -0,0 +1,6 @@
+ \begin{tikzpicture}[scale=1]
+ \tkzInit[ymax=2,xmax=4]
+ \tkzSetUpAxis[line width=1pt,tickwd=1pt,
+ ticka=3pt, tickb=0pt]
+ \tkzAxeXY
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-1.tex
new file mode 100644
index 0000000000..c801c49345
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-1.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+\tkzInit[xmax=.5,xstep=0.1]
+\tkzDrawX[label=$t$,text=blue,color=red]
+\tkzLabelX[text=blue,below = 3pt]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-10.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-10.tex
new file mode 100644
index 0000000000..0fb251c111
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-10.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=2,ymin=2,xmax=4,ymax=4]
+ \tkzLabelX \tkzLabelY
+ \tkzDrawXY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-11.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-11.tex
new file mode 100644
index 0000000000..f1a1d5c2d5
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-11.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=2,ymin=2,xmax=4,ymax=4]
+ \tkzLabelX[orig] \tkzLabelY[orig]
+ \tkzDrawXY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-2.tex
new file mode 100644
index 0000000000..ed8ac64b13
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-2.tex
@@ -0,0 +1,6 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=1000,xmax=4000,xstep=1000]
+ \tkzDrawX
+ \tikzset{xlabel style/.append style={rotate=-30}}
+ \tkzLabelX[below right=3 pt,inner sep = 1pt]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-3.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-3.tex
new file mode 100644
index 0000000000..5d69b33581
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-3.tex
@@ -0,0 +1,6 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=2000,xmax=2004]
+ \tkzDrawX
+ \tikzset{xlabel style/.append style={rotate=-30}}
+ \tkzLabelX[np off,below right=3 pt,inner sep =1pt]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-4.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-4.tex
new file mode 100644
index 0000000000..eb6b46d9f7
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-4.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+\tkzInit[xmax=1.75,xstep=0.33333]
+\tkzDrawX[label=$t$,text=blue,color=red]
+\tkzLabelX[frac=3,text=blue,below = 6pt]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-5.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-5.tex
new file mode 100644
index 0000000000..1c24c2cb3a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-5.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=0,xmax=5,ymin=-1,ymax=1]
+ \tkzDrawX[trig=2]
+ \tkzLabelX[trig=2,text=blue,below = 8pt]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-6.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-6.tex
new file mode 100644
index 0000000000..134dccc7a7
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-6.tex
@@ -0,0 +1,6 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=0,xmax=5,ymin=-1,ymax=1]
+ \tkzDrawX[trig=2]
+ \tkzLabelX[trig=2,text=blue,
+ below = 8pt,node font=\scriptsize]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-7.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-7.tex
new file mode 100644
index 0000000000..f7d9ebe0a8
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-7.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzInit[xmin = -2,xmax = 3,
+ ymin = -2,ymax = 2]
+ \tkzDrawX[color = red,
+ label = $\displaystyle\frac{1}{t}$,
+ below = 6pt]
+ \tkzLabelX[text=blue]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-8.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-8.tex
new file mode 100644
index 0000000000..ce7e698216
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-8.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+\tkzInit[xmin = -1,xmax = 4,
+ ymin = -1,ymax = 1]
+\tkzDrawXY \tkzLabelX \tkzLabelY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-9.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-9.tex
new file mode 100644
index 0000000000..a578543157
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-2-9.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}
+ \tkzInit[xmin = -1,xmax = 4,
+ ymin = -1,ymax = 1]
+ \tkzLabelX[orig=false]
+ \tkzLabelY[orig=false]
+ \tkzDrawXY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-3-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-3-1.tex
new file mode 100644
index 0000000000..a36bb1baf7
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-3-1.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=0.5,xstep=0.1,ymax=1]
+ \tkzGrid
+ \tkzAxeX[text=blue]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-3-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-3-2.tex
new file mode 100644
index 0000000000..cdc65a97e4
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-3-2.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=4,ymax=3.5]
+ \let\tkzmathstyle\displaystyle
+ \tkzLabelX[orig = false, frac = 4,below = 10pt]
+ \tkzDrawX[label = $t$]
+ \tkzAxeY[trig=2]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-3-3.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-3-3.tex
new file mode 100644
index 0000000000..a9aecd51e6
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-3-3.tex
@@ -0,0 +1,6 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=9,xstep=3,ymax=3.5]
+ \tkzLabelX[below=10pt,orig=false,frac=3]
+ \tkzDrawX[label = $t$]
+ \tkzAxeY[trig=2]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-7-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-7-1.tex
new file mode 100644
index 0000000000..f82f71d985
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-7-1.tex
@@ -0,0 +1,4 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=-1,xmax=4,ymin=-1,ymax=3]
+ \tkzAxeXY[label={},text=blue]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-7-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-7-2.tex
new file mode 100644
index 0000000000..12fd934bf2
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-7-2.tex
@@ -0,0 +1,4 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=-1,xmax=4,ymin=-1,ymax=2]
+ \tkzAxeXY[label={},text=blue,trig=2]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-7-3.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-7-3.tex
new file mode 100644
index 0000000000..1958d523b9
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-7-3.tex
@@ -0,0 +1,4 @@
+\begin{tikzpicture}
+\tkzInit[xmin=-2,xmax=2,ymin=-2,ymax=2]
+\tkzAxeXY[label={},swap]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-8-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-8-1.tex
new file mode 100644
index 0000000000..ff87ca281b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-8-1.tex
@@ -0,0 +1,4 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=-1,xmax=4,ymin=-1,ymax=1]
+ \tkzDrawXY[label={},color=red]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-8-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-8-2.tex
new file mode 100644
index 0000000000..56d8cc12cb
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-8-2.tex
@@ -0,0 +1,4 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=-1,xmax=4,ymin=-1,ymax=2]
+ \tkzDrawXY[label={},color=red,trig=4]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-9-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-9-1.tex
new file mode 100644
index 0000000000..a7c0e02916
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-7-9-1.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=-1,xmax=4,ymin=-1,ymax=1]
+ \tkzDrawXY[label={},color=red]
+ \tkzLabelXY[text=blue]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-1.tex
new file mode 100644
index 0000000000..cd881a455b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-1.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=4, ymax=2]
+ \tkzGrid[sub]
+ \tkzAxeXY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-10.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-10.tex
new file mode 100644
index 0000000000..ae10a76778
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-10.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=9,xstep=3,ymax=4]
+ \tkzGrid[xstep=1,ystep=pi/2,sub,
+ subxstep=1,subystep=pi/4]
+ \tkzLabelX[label=$t$,orig=false,frac=3,
+ below=6pt,font=\scriptsize]
+ \tkzLabelY[trig=2,font=\scriptsize]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-11.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-11.tex
new file mode 100644
index 0000000000..20ef6c25ea
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-11.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}[scale=.5]
+ \tikzset{xaxe style/.style ={-}}
+ \tkzInit[xmax=15,ymax=15]
+ \tkzClip
+ \tkzGrid[sub,color=orange]
+ \tkzLabelX[label= ] \tkzLabelY[label= ]
+ \tkzDrawXY
+ \node[opacity=.5] at (8,6){%
+ \includegraphics[scale=.5]{tiger}};
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-2.tex
new file mode 100644
index 0000000000..fef08eda5c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-2.tex
@@ -0,0 +1,9 @@
+\def\tkzCoeffSubColor{20}
+\def\tkzCoeffSubLw{0.2}
+\begin{tikzpicture}
+ \tkzInit[xmax=4, ymax=2]
+ % on peut modifier le pas pour la seconde grille
+ \tkzGrid[sub,color=bistre,
+ subxstep=.5,subystep=.5]
+ \tkzAxeXY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-3.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-3.tex
new file mode 100644
index 0000000000..2640a9e2eb
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-3.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=5,ymax=2]
+ \tkzGrid[color=orange]
+ \tkzAxeXY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-4.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-4.tex
new file mode 100644
index 0000000000..1cbbce4c31
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-4.tex
@@ -0,0 +1,6 @@
+ \begin{tikzpicture}
+ \tkzInit[xmax=5,ymax=2]
+ \tkzGrid[sub,color=orange]
+ \tkzGrid[color=orange]
+ \tkzAxeXY
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-5.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-5.tex
new file mode 100644
index 0000000000..6493d712cb
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-5.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=5,ymax=2]
+ \tkzGrid[color = orange,
+ sub,
+ subxstep = 0.1,
+ subystep = 0.1]
+ \tkzAxeXY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-6.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-6.tex
new file mode 100644
index 0000000000..96f7cd217a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-6.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}
+\tkzInit[xmax=.5,xstep=.1,
+ ymax=.2,ystep=.1]
+\tkzGrid[sub,
+ subxstep = 0.05,
+ subystep = 0.05,
+ color=bistre]
+\tkzAxeXY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-7.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-7.tex
new file mode 100644
index 0000000000..1588569118
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-7.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=100,xstep=20,
+ ymax=3000,ystep=1000]
+ \tkzGrid[sub,subxstep=10,
+ subystep=500,
+ color=bistre]
+ \tkzAxeXY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-8.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-8.tex
new file mode 100644
index 0000000000..33d3007ef5
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-8.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=100,xstep=20,
+ ymax=3000,ystep=1000]
+ \tkzGrid[sub,subxstep=10,
+ subystep=500,
+ color=orange]
+ (-20,-1000)(115,4000)%
+ \tkzAxeXY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-9.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-9.tex
new file mode 100644
index 0000000000..9426c131df
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-8-0-9.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzInit[xmax=6.5,ymax=6.5]
+ \tkzGrid[xstep=pi,ystep=pi/2,sub,
+ subxstep=pi/4,subystep=pi/4]
+ \tkzLabelX[label=$t$,orig=false,trig=4,
+ below=6pt,font=\scriptsize]
+ \tkzLabelY[trig=2,font=\scriptsize]
+ \tkzDrawXY
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-1.tex
new file mode 100644
index 0000000000..e55a31ca55
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-1.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}[trim left=-1cm]
+ \tkzDefPoint(2,3){A}
+ \tkzDefPoint[shift={(2,3)}](31:3){B}
+ \tkzDefPoint[shift={(2,3)}](158:3){C}
+ \tkzDrawSegments[color=red,line width=1pt](A,B A,C)
+ \tkzDrawPoints[color=red](A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-2.tex
new file mode 100644
index 0000000000..3f50d28330
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-2.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}[trim left=-1cm]
+ \tkzDefPoint["-60:$A_n$" ](2,3){A}
+ \tkzDefPoint[shift={(2,3)},%
+ "$B_n$" above left](31:3){B}
+ \tkzDefPoint[shift={(2,3)},%
+ "$C_n$" above right](158:3){C}
+ \tkzDrawSegments[color=red,%
+ line width=1pt](A,B A,C)
+ \tkzDrawPoints[color=red](A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-3.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-3.tex
new file mode 100644
index 0000000000..2a8c154194
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-3.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}[scale=.75,rotate=90]
+ \tkzDefPoint[label=right:$A_n$](2,3){A}
+ \begin{scope}[shift={(A)}]
+ \tkzDefPoint[label= right:$B_n$](31:3){B}
+ \tkzDefPoint[label= right:$C_n$](158:3){C}
+ \end{scope}
+ \tkzDrawSegments[color=red,%
+ line width=1pt](A,B A,C)
+ \tkzDrawPoints[color=red](A,B,C)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-4.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-4.tex
new file mode 100644
index 0000000000..49b5312299
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-4.tex
@@ -0,0 +1,14 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzInit[xmax=6,ymax=6]
+ \tkzGrid
+ \tkzSetUpPoint[shape = circle,color = red,%
+ size = 4,fill = red!30]
+ \tkzDefPoint(-1+1,-1+4){O}
+ \tkzDefPoint({3*ln(exp(1))},{exp(1)}){A}
+ \tkzDefPoint({4*sin(pi/6)},{4*cos(pi/6)}){B}
+ \tkzDefPoint({4*sin(pi/3)},{4*cos(pi/3)}){B'}
+ \tkzDefPoint[shift={(1,3)}](30:3){A'}
+ \tkzDrawPoints(O,A,B)
+ \tkzDrawPoints[color=red,shape=cross out](B',A')
+ \tkzLabelPoints(A,O,B,B',A')
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-5.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-5.tex
new file mode 100644
index 0000000000..22ac90ccb0
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-1-5.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}[scale=1]
+ \begin{scope}[rotate=30]
+ \tkzDefPoint(2,3){A}
+ \begin{scope}[shift=(A)]
+ \tkzDefPoint(90:5){B}
+ \tkzDefPoint(30:5){C}
+ \end{scope}
+ \end{scope}
+\tkzDrawSegments[color=blue](A,B B,C C,A)
+\tkzDrawPoints(A,B,C)
+\tkzLabelPoints[above](B,C)
+\tkzLabelPoints[below](A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-10-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-10-1.tex
new file mode 100644
index 0000000000..433c45c6de
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-10-1.tex
@@ -0,0 +1,9 @@
+ \begin{tikzpicture}
+ \tkzSetUpPoint[shape = cross out,
+ color=blue]
+ \tkzInit[xmax=100,xstep=20,ymax=.5]
+ \tkzDefPoint(20,1){A}
+ \tkzDefPoint(80,0){B}
+ \tkzDrawLine(A,B)
+ \tkzDrawPoints(A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-10-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-10-2.tex
new file mode 100644
index 0000000000..2e8364a34d
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-10-2.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}
+ \tkzInit[ymin=-0.5,ymax=3,xmin=-0.5,xmax=7]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(02.25,04.25){B}
+ \tkzDefPoint(4,0){C}
+ \tkzDefPoint(3,2){D}
+ \tkzDrawSegments(A,B A,C A,D)
+ \tkzSetUpPoint[shape=cross out,size=4,]
+ \tkzDrawPoints(A,B,C,D)
+ \tkzLabelPoints(A,B,C,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-10-3.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-10-3.tex
new file mode 100644
index 0000000000..4b69e98f7d
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-10-3.tex
@@ -0,0 +1,16 @@
+\begin{tikzpicture}
+ \tkzInit[ymin=-0.5,ymax=3,xmin=-0.5,xmax=7]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(02.25,04.25){B}
+ \tkzDefPoint(4,0){C}
+ \tkzDefPoint(3,2){D}
+ \tkzDrawSegments(A,B A,C A,D)
+{\tkzSetUpPoint[shape=cross out,
+ fill= MidnightBlue!50,
+ size=4,color=MidnightBlue]
+ \tkzDrawPoints(A,B)}
+ \tkzSetUpPoint[fill= MidnightBlue!50,size=4,
+ color=MidnightBlue]
+ \tkzDrawPoints(C,D)
+ \tkzLabelPoints(A,B,C,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-11-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-11-2.tex
new file mode 100644
index 0000000000..9737015487
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-11-2.tex
@@ -0,0 +1,11 @@
+ \begin{tikzpicture}[scale=1.5]
+ \tkzInit[xmax=3,ymax=2]
+ \tkzAxeXY
+ \tkzDefPoint(2,1){a}
+ \tkzPointShowCoord(a)
+ \tkzDrawPoint(a)
+ \tkzLabelPoint(a){$A_1$}
+ \tkzPointShowCoord({1,2})
+ \tkzDrawPoint({1,2})
+ \tkzLabelPoint({1,2}){$A_2$}
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-11-3.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-11-3.tex
new file mode 100644
index 0000000000..5e1d6b6079
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-11-3.tex
@@ -0,0 +1,8 @@
+ \begin{tikzpicture}[xscale=3,yscale=2]
+ \tkzInit[xmax=15,ymax=15,
+ xstep=10,ystep=10]
+ \tkzAxeXY
+ \tkzDefPoint(10,10){a} \tkzDrawPoint(a)
+ \tkzPointShowCoord(a)
+ \tkzLabelPoint(a){$A_1$}
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-12-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-12-1.tex
new file mode 100644
index 0000000000..a9a9e5ca5d
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-12-1.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzInit[ymax=4,xmax=5]
+ \tkzAxeXY
+ \tkzDefSetOfPoints[prefix=P]%
+ {1/2,4/3,2/2.5}
+ \tkzDrawPoints(P1,P2,P3)
+ \tkzLabelPoints(P1,P2,P3)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-2-0.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-2-0.tex
new file mode 100644
index 0000000000..7efb14f1e3
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-2-0.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoints{% x y name
+ 0 /0 /A,
+ 2 /0 /B,
+ 2 /2 /C,
+ 0 /2 /D}
+ \tkzDrawSegments(D,A A,B B,C C,D)
+ % or with tkz-euclide
+ % \tkzDrawPolygon(A,...,D)
+ \tkzDrawPoints(A,B,C,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-3-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-3-1.tex
new file mode 100644
index 0000000000..0b77749050
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-3-1.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}[rotate=-30]
+ \tkzDefPoint(2,3){A}
+ \tkzDefShiftPoint[A](0:4){B}
+ \tkzDefShiftPoint[A](30:4){C}
+ \tkzDrawSegments(A,B B,C C,A)
+ \tkzMarkSegments[mark=|,color=red](A,B A,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints[above](A,C)
+ \tkzLabelPoints(B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-4-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-4-1.tex
new file mode 100644
index 0000000000..70b2f9fc35
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-4-1.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoint(2,3){A}
+ \tkzDefShiftPointCoord[2,3](30:4){B}
+ \tkzDefShiftPointCoord[2,3](-30:4){C}
+ \tkzDrawSegments(A,B B,C C,A)
+ % or \tkzDrawPolygon
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(B,C)
+ \tkzLabelPoint[left](A){$A$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-4-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-4-2.tex
new file mode 100644
index 0000000000..63f7a3258f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-4-2.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[rotate=15]
+ \tkzDefPoint(2,3){A}
+ \tkzDefShiftPointCoord[2,3](15:5){B}
+ \tkzDefShiftPointCoord[2,3](-15:5){C}
+ \tkzDrawSegments(A,B B,C C,A)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(B,C)
+ \tkzLabelPoint[left](A){$A$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-5-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-5-1.tex
new file mode 100644
index 0000000000..2fcc778e07
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-5-1.tex
@@ -0,0 +1,4 @@
+ \begin{tikzpicture}
+ \tkzDefPoint(1,3){A}
+ \tkzDrawPoint(A)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-5-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-5-2.tex
new file mode 100644
index 0000000000..bd630be496
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-5-2.tex
@@ -0,0 +1,14 @@
+ \begin{tikzpicture}
+ \tikzset{point style/.style={%
+ draw = blue,
+ inner sep = 0pt,
+ shape = circle,
+ minimum size = 6pt,
+ fill = red!20}}
+ \tkzDefPoint(1,3){A}
+ \tkzDefPoint(4,1){B}
+ \tkzDefPoint(0,0){O}
+ \tkzDrawPoint(A)
+ \tkzDrawPoint(B)
+ \tkzDrawPoint(O)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-5-3.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-5-3.tex
new file mode 100644
index 0000000000..3dab78ef89
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-5-3.tex
@@ -0,0 +1,9 @@
+ \begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(1,3){A}
+ \tkzDefPoint(4,1){B}
+ \tkzDefPoint(0,0){O}
+ \tkzDrawPoint[shape=cross out,size=12,color=red](A)
+ \tkzDrawPoint[shape=cross,size=12,color=blue](B)
+ \tkzDrawPoint[size=12,color=green](O)
+ \tkzDrawPoint[size=12,color=blue,fill=yellow]({2,2})
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-6-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-6-1.tex
new file mode 100644
index 0000000000..51f88b11ab
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-6-1.tex
@@ -0,0 +1,6 @@
+ \begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(1,3){A}
+ \tkzDefPoint(4,1){B}
+ \tkzDefPoint(0,0){O}
+ \tkzDrawPoints[size=8,color=red](A,B,O)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-6-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-6-2.tex
new file mode 100644
index 0000000000..9f1d52f4ce
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-6-2.tex
@@ -0,0 +1,14 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(2,3){A} \tkzDefPoint(5,-1){B}
+ \tkzDefPoint[label=below:$\mathcal{C}$,
+ shift={(2,3)}](-30:5.5){E}
+ \begin{scope}[shift=(A)]
+ \tkzDefPoint(30:5){C}
+ \end{scope}
+ \tkzCalcLength[cm](A,B)\tkzGetLength{rAB}
+ \tkzDrawCircle[R](A,\rAB cm)
+ \tkzDrawSegment(A,B)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(B,C)
+ \tkzLabelPoints[above](A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-7-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-7-1.tex
new file mode 100644
index 0000000000..e134b8f952
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-7-1.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(4,0){B}
+ \tkzDefPoint(0,3){C}
+ \tkzDrawSegments(A,B B,C C,A)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoint[left,red](A){$A$}
+ \tkzLabelPoint[right,blue](B){$B$}
+ \tkzLabelPoint[above,purple](C){$C$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-7-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-7-2.tex
new file mode 100644
index 0000000000..bba4cbf443
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-7-2.tex
@@ -0,0 +1,7 @@
+ \begin{tikzpicture}
+ \tkzInit[xmax=1,xstep=0.15,ymax=.5]
+ \tkzAxeX \tkzDrawY[noticks]
+ \tkzDefPoint(0.22,0.25){A}
+ \tkzDrawPoint(A)
+ \tkzLabelPoint[above](A){$A_1$}
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-8-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-8-1.tex
new file mode 100644
index 0000000000..c60b9d2bb0
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-8-1.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}
+ \tkzDefPoint(2,3){A}
+ \tkzDefShiftPoint[A](30:2){B}
+ \tkzDefShiftPoint[A](30:5){C}
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-9-1.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-9-1.tex
new file mode 100644
index 0000000000..4cbf3600cb
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-9-1.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}[scale=1.25]
+ \tkzDefPoint(2,1){O}
+ \tkzDefRandPointOn[circle=center O radius 1.5cm]{A}
+ \tkzDrawCircle(O,A)
+ \tkzDefPointBy[rotation=center O angle 100](A)
+ \tkzGetPoint{C}
+ \tkzDefPointBy[rotation=center O angle 78](A)
+ \tkzGetPoint{B}
+ \tkzDrawPoints(O,A,B,C)
+ \tkzDrawSegments(C,B B,A A,O O,C)
+ \tkzDefCentroid(A,B,C,O)
+ \tkzDrawPoint(tkzPointResult)
+ \tkzAutoLabelPoints[center=tkzPointResult,
+ dist=.3,red](O,A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-9-2.tex b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-9-2.tex
new file mode 100644
index 0000000000..2334354184
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/examples/tkzbase-9-9-2.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}[scale=1.25]
+ \tkzDefPoint(2,1){O}
+ \tkzDefRandPointOn[circle=center O radius 1.5cm]{A}
+ \tkzDrawCircle(O,A)
+ \tkzDefPointBy[rotation=center O angle 100](A)
+ \tkzGetPoint{C}
+ \tkzDefPointBy[rotation=center O angle 78](A)
+ \tkzGetPoint{B}
+ \tkzDrawPoints(O,A,B,C)
+ \tkzDrawSegments(C,B B,A A,O O,C)
+ \tkzAutoLabelPoints[center=O,red](A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-base/examples/tkzbasepreamble.ltx b/macros/latex/contrib/tkz/tkz-base/examples/tkzbasepreamble.ltx
deleted file mode 100644
index b2465e4499..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/examples/tkzbasepreamble.ltx
+++ /dev/null
@@ -1,18 +0,0 @@
-%
-% tkzfctpreamble (juin 2011)
-%
-% Coding (utf8) Creator (TeX) Producer (pdfeTeX)
-% Copyright (C) 2010 Alain Matthes
-%
-\documentclass{scrartcl}
-\usepackage[usenames,dvipsnames,svgnames]{xcolor}
-\usepackage{amsmath,tkz-tab,tkz-euclide,tkz-fct}
-\usetkzobj{all}
-
-\definecolor{bistre}{rgb}{.75,.50,.30}
-\definecolor{Maroon}{rgb}{0.5,0.0,0.0}
-\definecolor{fondpaille}{cmyk}{0,0,0.1,0}
-\pagecolor{fondpaille}
-\color{Maroon}
-\tkzSetUpColors[background=fondpaille,text=Maroon]
-
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-base.cfg b/macros/latex/contrib/tkz/tkz-base/latex/tkz-base.cfg
new file mode 100644
index 0000000000..743c14da90
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-base.cfg
@@ -0,0 +1,169 @@
+% tkz-base.cfg
+% Copyright 2011 by Alain Matthes
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+% If you modify this original file, YOUR CHANGES WILL BE LOST when it is
+% updated. Instead, put your changes in the entire copy of tkz-base.cfg
+% and save the file in a directory part of your TEXINPUTS environment
+% variable.
+
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-base.cfg}
+%<------ colors ---------------------------------------–>
+\def\tkz@backgroundcolor{white}
+\def\tkz@textcolor{black}
+%<---------------------------------------------------------
+\def\tkz@fillcolor{\tkz@backgroundcolor}
+\def\tkz@mainlinecolor{\tkz@textcolor}
+\def\tkz@otherlinecolor{\tkz@mainlinecolor!50}
+%<------------------------- Cartesian system -----------------------------–>
+% Default unity cm
+% Geometry Euclidean with unity for x and y = 1cm ---> step = 1
+% 0 ≤ x ≤ 10
+% 0 ≤ y ≤ 10
+\def\tkz@init@xorigine{0}
+\def\tkz@init@yorigine{0}
+\def\tkz@init@xstep{1}
+\def\tkz@init@ystep{1}
+\def\tkz@init@xmin{0}
+\def\tkz@init@ymin{0}
+\def\tkz@init@xmax{10}
+\def\tkz@init@ymax{10}
+\def\tkz@init@xdec{1}
+\def\tkz@init@ydec{1}
+%<-------------------------- points -----------------------------------–>
+\def\tkz@euc@pointshape{circle}
+\def\tkz@euc@pointcolor{\tkz@mainlinecolor}
+\def\tkz@euc@labelcolor{\tkz@mainlinecolor}
+\def\tkz@euc@pointsize{3 pt}
+\def\tkz@euc@pointpos{below right}
+\def\tkz@euc@segmentcolor{\tkz@mainlinecolor}
+\def\tkz@euc@circlecolor{\tkz@mainlinecolor}
+%<-------------------------- line ---------------------------------------–>
+\def\tkz@euc@linecolor{\tkz@mainlinecolor}
+\def\tkz@euc@linewidth{0.6pt}
+\def\tkz@euc@linestyle{solid}
+\def\tkz@euc@lineleft{.2}
+\def\tkz@euc@lineright{.2}
+%<------ axes cartesian system ---------------------------------------–>
+\def\tkz@init@color{\tkz@textcolor}
+\def\tkz@init@lw{0.4 pt}
+\def\tkz@init@tickwd{0.8 pt}
+\def\tkz@init@ticka{2 pt}
+\def\tkz@init@tickb{2 pt}
+\def\tkz@init@xlabel{$x$}
+\def\tkz@init@ylabel{$y$}
+\def\tkz@init@tickb{2 pt}
+\def\tkz@init@rightspace{.5}
+\def\tkz@init@leftspace{0}
+\def\tkz@init@upspace{.5}
+\def\tkz@init@downspace{0}
+\global\let\tkzmathstyle\displaystyle
+\def\tkz@legend@line@len{1cm}
+%<-------------------------- rep ---------------------------------------–>
+\def\tkz@sur@color{\tkz@mainlinecolor}
+\def\tkz@sur@colorlabel{\tkz@mainlinecolor}
+\def\tkz@sur@lw{0.8 pt}
+\def\tkz@sur@posxlabel{below=2pt}
+\def\tkz@sur@posylabel{left=2pt}
+%<-------------------------- grid ---------------------------------------–>
+\def\tkz@grid@color{gray}
+\def\tkz@grid@lw{0.4 pt}
+\def\tkzCoeffSubColor{50}
+\def\tkzCoeffSubLw{0.8}
+\def\tkz@grid@xstep{0.2}
+\def\tkz@grid@ystep{0.2}
+\def\tkz@init@gradsize{\textstyle}
+\def\tkzRatioLineGrid{0.75}
+\def\tkz@gd@sublw{0.4 pt}% size line sub grid
+%<------------------------- compass -----------------------------------–>
+\def\tkz@euc@compasscolor{\tkz@otherlinecolor}
+\def\tkz@euc@compasswidth{0.4pt}
+\def\tkz@euc@compassstyle{solid}
+%<---------------------------- mark -----------------------------------–>
+\def\tkz@mk@color{\tkz@mainlinecolor}
+\def\tkz@mk@mark{*}
+\def\tkz@mk@size{3pt}
+\def\tkz@mk@fill{\tkz@otherlinecolor}
+%<--------------------------------------------------------------------------–>
+%<------------------------------ styles ---------------------------------–>
+\tikzset{xlabel style/.style = {below = 3 pt,
+ inner sep = 1pt,
+ outer sep = 0pt}
+ }
+\tikzset{ylabel style/.style = {left = 3 pt,
+ inner sep = 1pt,
+ outer sep = 0pt}}
+\tikzset{xaxe style/.style = {> = latex, ->}
+}
+\tikzset{yaxe style/.style = {> = latex, ->}
+}
+
+\tikzset{point style/.style = {draw = \tkz@euc@pointcolor,
+ inner sep = 0pt,
+ shape = \tkz@euc@pointshape,
+ minimum size = \tkz@euc@pointsize,
+ fill = \tkz@euc@pointcolor
+ }
+ }
+% label for the point
+\tikzset{label style/.style={ \tkz@euc@pointpos,
+ \tkz@euc@labelcolor,
+ font = \normalsize}
+ }
+
+\tikzset{line style/.style = {line width = \tkz@euc@linewidth,
+ color = \tkz@euc@linecolor,
+ style = \tkz@euc@linestyle,
+ add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}%
+ }
+ }
+\tikzset{label seg style/.style = {color = \tkz@mainlinecolor,
+ auto
+ }
+ }
+
+\tikzset{rep style/.style = { ->,
+ >=latex}
+ }
+\tikzset{compass style/.style = {color = \tkz@euc@compasscolor,
+ line width = \tkz@euc@compasswidth,
+ style = \tkz@euc@compassstyle}
+ }
+\tikzset{mark style/.style = {mark = \tkz@mk@mark,
+ mark size = \tkz@mk@size,
+ mark options = {color= \tkz@mk@color,
+ fill = \tkz@mk@fill
+ }
+ }
+}
+%<---------------------- show coord -----------------------------------–>
+\tikzset{arrow coord style/.style = {dashed,
+ \tkz@euc@linecolor,
+ > = latex',
+ ->}
+ }
+\tikzset{xcoord style/.style = {\tkz@euc@labelcolor,
+ font = \normalsize,
+ text height = 1ex,
+ inner sep = 0pt,
+ outer sep = 0pt,
+ fill = \tkz@fillcolor,
+ below = 3pt}
+ }
+\tikzset{ycoord style/.style = {\tkz@euc@labelcolor,
+ font = \normalsize,
+ text height = 1ex,
+ inner sep = 0pt,
+ outer sep = 0pt,
+ fill = \tkz@fillcolor,
+ left = 3pt}
+ }
+%<--------------------------- vector --------------------------------------–>
+\tikzset{vector style/.style={>=latex,->}
+}
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-base.sty b/macros/latex/contrib/tkz/tkz-base/latex/tkz-base.sty
new file mode 100644
index 0000000000..8c39f0dcd7
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-base.sty
@@ -0,0 +1,119 @@
+% tkz-base.sty % this file
+% Copyright 2011 by Alain Matthes
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+% This work consists of the main source file interfaces.dtx
+% and the derived files
+% tkz-base.sty % this file
+%<--------------------------------------------------------------------------–>
+% Objet : Outils pour la création de graphiques géométriques
+%<--------------------------------------------------------------------------–>
+\typeout{2020/01/23 3.01c tkz-base.sty}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tkz-base}[2020/01/23 3.01c tkz-base]
+\ifx\e@alloc\@undefined
+ \RequirePackage{etex}
+\fi
+\RequirePackage{tikz}
+\usetikzlibrary{%
+ angles,
+ arrows,
+ arrows.meta,
+ babel,
+ calc,
+ decorations,
+ decorations.markings,
+ decorations.pathreplacing,
+ intersections,
+ patterns,
+ plotmarks,
+ positioning,
+ quotes,
+ shapes.misc,
+ through
+ }
+% Pour les les labels sur les axes
+\@ifpackageloaded{numprint}{}
+{\RequirePackage[autolanguage]{numprint}} %
+\RequirePackage{xfp,fp}
+%\FPmessagesfalse % pas de messages de la part de fp !
+%---------------------
+\newdimen\tkzRadius
+\newdimen\tkzLength
+\newdimen\tkz@radi
+%--------------------- tkz registres
+\newdimen\tkz@ax
+\newdimen\tkz@ay
+\newdimen\tkz@bx
+\newdimen\tkz@by
+\newdimen\tkz@cx
+\newdimen\tkz@cy
+\newdimen\tkz@dx
+\newdimen\tkz@dy
+% 2017
+\newdimen\tkz@tax
+\newdimen\tkz@tay
+\newdimen\tkz@tbx
+\newdimen\tkz@tby
+\newdimen\tkz@tcx
+\newdimen\tkz@tcy
+\newdimen\tkz@tdx
+\newdimen\tkz@tdy
+%--------------------- points
+\newif\iftkz@polar\tkz@polarfalse
+\newif\iftkz@pt@polar
+\newif\iftkz@pt@show
+\newif\iftkz@pt@noname
+\newif\iftkz@coord@noxdraw
+\newif\iftkz@coord@noydraw
+\newif\iftkz@vec@normed
+%--------------------- lines
+\newif\iftkz@line@normed
+%--------------------- tkz axis
+\newif\iftkz@X@noticks
+\newif\iftkz@Y@noticks
+\newif\iftkz@X@nograd
+\newif\iftkz@Y@nograd
+\newif\iftkz@X@orig
+\newif\iftkz@Y@orig
+\newif\iftkz@X@unit
+\newif\iftkz@Y@unit
+\newif\iftkz@np
+\newif\iftkz@swap
+\newif\iftkz@init@NO
+\newif\iftkz@Rep@orig%--------------------- Rep
+\newif\iftkzLengthIncm%--------------------- Math
+\newif\iftkz@sop@show%--------------------- marks
+\newif\iftkz@equi@show
+\newif\iftkz@gd@sub% sub grid ?%--------------------- about grid
+\newif\iftkz@node\tkz@nodefalse
+\newif\iftkz@legend@line%--------------------- legend
+\newif\iftkz@TestSubString
+\newif\ifnormtkzcode@execute% german ? right angle
+\newif\iftkz@sawp@sc%---------------------- semi circle
+\newif\ifpgf@unknown % math arith
+\newif\ifpgf@isaprime
+\newcount\tkz@cntmk
+\newif\iftkz@RappReturn % protractor
+\newif\iftkz@RappFull
+%--------------------- Init
+\def\tkz@xgrad{1}
+\def\tkz@ygrad{1}
+\def\tkz@xa{0}
+\def\tkz@xb{10}
+\def\tkz@ya{0}
+\def\tkz@yb{10}
+%----------------------
+\def\tkz@mathresult{}
+\InputIfFileExists{tkz-base.cfg}{%
+\typeout{Local configuration file tkz-base.cfg found and used}}{%
+\typeout{tkz-base.cfg not found} }
+\input{tkz-tools-modules}
+\input{tkz-lib-marks}
+\usetkztool{base,utilities,math,text,BB,arith,print,misc}
+\usetkzobj{axes,grids,marks,points,rep}
+\endinput
+
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-lib-symbols.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-lib-marks.tex
index bb8e29f8fa..0579d1ad25 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-lib-symbols.tex
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-lib-marks.tex
@@ -1,15 +1,14 @@
+% tkz-lib-marks.tex
% Copyright 2011 by Alain Matthes
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 c}
-\def\filedate{2011/06/01}
-
-
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-lib-symbols.tex}
+\makeatletter
%<--------------------------------------------------------------------------–>
% Création des symboles
%<--------------------------------------------------------------------------–>
@@ -105,4 +104,5 @@
{\pgfpoint{-\pgfplotmarksize}{0pt}}
\pgfusepathqstroke
}
+\makeatother
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-axes.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-axes.tex
new file mode 100644
index 0000000000..ce1ce98fdc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-axes.tex
@@ -0,0 +1,462 @@
+% tkz-obj-axes.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+% utf8 encoding
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-axes.tex}
+ \newif\ifinteger
+ \makeatletter
+\def\removedot#1.{#1}
+\newcommand\tkzgetinteger[1]{\expandafter\tkz@getinteger#1.\@nil}
+\def\tkz@getinteger#1.#2\@nil{%
+ \ifx\empty#2\empty
+ \integertrue
+ \else
+ \ifnum\removedot#2=0
+ \integertrue
+ \else
+ \integerfalse
+ \fi
+ \fi
+}
+%<--------------------------------------------------------------------------–>
+% some tools
+%<--------------------------------------------------------------------------–>
+\def\tkz@showgrad#1{%
+\tkzgetinteger{#1}
+\ifinteger\edef\tkz@result{\fpeval{trunc(#1,0)}}\else\edef\tkz@result{#1}\fi}%
+
+\def\tkz@Xresult{%
+\tkz@showgrad{\tkz@xgrad}%
+ $\numprint{\tkz@result}$%
+}%
+%<--------------------------------------------------------------------------–>
+\def\tkz@Yresult{%
+\tkz@showgrad{\tkz@ygrad}%
+$\numprint{\tkz@result}$
+}%
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkz@Xshowgradresult#1{%
+\iftkz@X@orig%
+ \tkz@Xresult%
+\else% orig
+ \iftkz@init@NO%
+ \unless\ifx#1\tkz@posmin%
+ \tkz@Xresult\fi
+ \else% NO
+ \unless\ifx#1\x@tkzero%
+ \tkz@Xresult%
+ \fi%end of x@tkzero
+ \fi%end of NO
+\fi%end of orig
+}%
+%<--------------------------------------------------------------------------–>
+\def\tkz@Yshowgradresult#1{%
+\iftkz@Y@orig%
+ \tkz@Yresult%
+\else % orig
+\iftkz@init@NO%
+ \unless\ifx#1\tkz@posmin%
+ \tkz@Yresult\fi
+ \else% NO
+ \unless\ifx#1\y@tkzero%
+ \tkz@Yresult%
+ \fi%end of x@tkzero
+ \fi%end of NO
+\fi%end of orig
+}%
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkz@Xshowgrad#1{%
+\iftkz@X@orig%
+ \tkzprintfrac%
+\else% orig
+ \iftkz@init@NO%
+ \unless\ifx#1\tkz@posmin%
+ \tkzprintfrac\fi%
+ \else% NO
+ \unless\ifx#1\x@tkzero%
+ \tkzprintfrac%
+ \fi%end of x@tkzero
+ \fi%end of NO
+\fi%end of orig
+}%
+%<--------------------------------------------------------------------------–>
+\def\tkz@Yshowgrad#1{%
+\iftkz@Y@orig%
+\tkzprintfrac%
+\else% orig
+ \iftkz@init@NO%
+ \unless\ifx\tkz@pos\tkz@posmin%
+ \tkzprintfrac\fi%
+ \else % NO
+ \unless\ifx\tkz@pos\y@tkzero%
+ \tkzprintfrac%
+ \fi%end of x@tkzero
+ \fi%end of NO
+\fi%end of orig
+}%
+
+%<--------------------------------------------------------------------------–>
+% Setup axe
+%<--------------------------------------------------------------------------–>
+\pgfkeys{tkzaxis/.cd,
+ line width/.code = \xdef\tkz@sua@lw{#1},
+ color/.code = \xdef\tkz@sua@color{#1},
+ tickwd/.code = \xdef\tkz@sua@tickwd{#1},
+ ticka/.code = \xdef\tkz@sua@ticka{#1},
+ tickb/.code = \xdef\tkz@sua@tickb{#1},
+ line width = \tkz@init@lw,
+ color = \tkz@init@color,
+ tickwd = \tkz@init@tickwd,
+ ticka = \tkz@init@ticka,
+ tickb = \tkz@init@tickb
+}
+
+\def\tkzSetUpAxis{\pgfutil@ifnextchar[{\tkz@SetUpAxis}{\tkz@SetUpAxis[]}}
+\def\tkz@SetUpAxis[#1]{%
+\begingroup
+\pgfqkeys{/tkzaxis}{#1}
+\global\let\tkz@init@lw\tkz@sua@lw
+\global\let\tkz@init@gradsize\tkz@sua@gradsize
+\global\let\tkz@init@color\tkz@sua@color
+\global\let\tkz@init@tickwd\tkz@sua@tickwd
+\global\let\tkz@init@ticka\tkz@sua@ticka
+\global\let\tkz@init@tickb\tkz@sua@tickb
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% tkzDrawX todo améliorer les unités
+% sans doute à revoir loop from 0 to i then calcul dans la boucle de la position
+% et de l'affichage
+%<--------------------------------------------------------------------------–>
+\pgfkeys{%
+ /tkzdrawX/.cd,
+ color/.store in = \tkz@X@color,
+ label/.store in = \tkz@X@label,
+ right space/.store in = \tkz@axe@rxspace,
+ left space/.store in = \tkz@axe@lxspace,
+ trig/.store in = \tkz@X@trig,
+ step/.code = {\edef\tkz@posnext{\fpeval{#1}}},
+ color = \tkz@init@color,
+ label = \tkz@init@xlabel,
+ trig = 0,
+ step = \tkz@init@xstep,
+ right space = \tkz@init@rightspace, %???
+ left space = \tkz@init@leftspace,
+ noticks/.is if = tkz@X@noticks,
+ noticks/.default = true,
+ noticks = false,
+ tickwd/.store in = \tkz@X@tickwd,
+ tickup/.store in = \tkz@X@tickup,
+ tickdn/.store in = \tkz@X@tickdn,
+ tickwd = \tkz@init@tickwd,
+ tickup = \tkz@init@ticka,
+ tickdn = \tkz@init@tickb,
+ /tkzdrawX/.search also={/tikz},
+ }
+
+\def\tkzDrawX{\pgfutil@ifnextchar[{\tkz@DrawX}{\tkz@DrawX[]}}
+\def\tkz@DrawX[#1]{
+\begingroup%
+\pgfqkeys{/tkzdrawX}{#1}
+\edef\tkz@posmax{\fpeval{trunc(\tkz@xb,\tkz@init@xdec)}}
+\edef\tkz@posmin{\fpeval{trunc(\tkz@xa,\tkz@init@xdec)}}
+\edef\tkz@xbsup{\fpeval{\tkz@xb+\tkz@axe@rxspace}}
+\edef\tkz@xainf{\fpeval{\tkz@xa-\tkz@axe@lxspace}}
+\path (\tkz@xainf,0)--(\tkz@xbsup,0) node(tkz@xline){};
+\draw[xaxe style,
+ color = \tkz@X@color,
+ /tkzdrawX/.cd, #1] (\tkz@xainf,0)--(\tkz@xbsup,0)
+ node[ xlabel style,
+ /tkzdrawX/.cd,
+ #1]{\tkz@X@label};
+ \iftkz@X@noticks
+ \else
+ \ifnum\tkz@X@trig=0
+ \edef\tkz@posmax{\fpeval{trunc(\tkz@posmax,\tkz@init@xdec)}}
+ \edef\tkz@posnext{\fpeval{\tkz@posnext/\tkz@init@xstep+\tkz@posmin}}
+ \foreach \pos in {\tkz@posmin,...,\tkz@posmax}{%
+ \edef\tkz@pos{\fpeval{\pos*1}}% ???
+ \draw[ color = \tkz@X@color, line width = \tkz@X@tickwd,
+ shift = {(\tkz@pos,0)}]%
+ (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn);
+ }
+ \else
+ \edef\tkz@posmin{\fpeval{round(((\tkz@posmin+.5)/pi)*\tkz@X@trig,0)}}
+ \edef\tkz@posmax{\fpeval{round(((\tkz@posmax)/pi)*\tkz@X@trig,0)}}
+ \foreach \tkz@pos in {\tkz@posmin,...,\tkz@posmax}{%
+ \edef\tkz@pospi{\fpeval{(\tkz@pos*pi)/\tkz@X@trig}}
+ \draw[color = \tkz@X@color,
+ line width = \tkz@X@tickwd,%
+ shift = {(\tkz@pospi,0)}]%
+ (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn);
+ }% end foreach
+ \fi
+ \fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% tkzDrawY todo améliorer les unités
+%<--------------------------------------------------------------------------–>
+\pgfkeys{%
+ /tkzdrawY/.cd,
+ color/.store in = \tkz@Y@color,
+ label/.store in = \tkz@Y@label,
+ up space/.store in = \tkz@axe@uyspace,
+ down space/.store in = \tkz@axe@dyspace,
+ trig/.store in = \tkz@Y@trig,
+ step/.code = {\edef\tkz@posnext{\fpeval{#1}}},
+ color = \tkz@init@color,
+ label = \tkz@init@ylabel,
+ trig = 0,
+ step = \tkz@init@ystep,
+ up space = \tkz@init@upspace,
+ down space = \tkz@init@downspace,
+ noticks/.is if = tkz@Y@noticks,
+ noticks/.default = true,
+ noticks = false,
+ tickwd/.store in = \tkz@Y@tickwd,
+ ticklt/.store in = \tkz@Y@ticklt,
+ tickrt/.store in = \tkz@Y@tickrt,
+ tickwd = \tkz@init@tickwd,
+ ticklt = \tkz@init@tickb,
+ tickrt = \tkz@init@ticka,
+ /tkzdrawY/.search also={/tikz},
+ }
+
+\def\tkzDrawY{\pgfutil@ifnextchar[{\tkz@DrawY}{\tkz@DrawY[]}}
+\def\tkz@DrawY[#1]{%
+\begingroup
+\pgfkeys{/tkzdrawY/.cd,step = \tkz@init@ystep}
+\pgfqkeys{/tkzdrawY}{#1}
+\edef\tkz@posmax{\fpeval{trunc(\tkz@yb,\tkz@init@ydec)}}
+\edef\tkz@posmin{\fpeval{trunc(\tkz@ya,\tkz@init@ydec)}}
+\edef\tkz@ybsup{\fpeval{\tkz@yb+\tkz@axe@uyspace}}
+\edef\tkz@yainf{\fpeval{\tkz@ya-\tkz@axe@dyspace}}
+\path (0,\tkz@yainf)--(0,\tkz@ybsup) node(tkz@yline){};
+\draw[color = \tkz@Y@color,
+ yaxe style,/tkzdrawY/.cd,#1] (0,\tkz@yainf)--(0,\tkz@ybsup)
+ node[ylabel style,/tkzdrawY/.cd,#1]{\tkz@Y@label};
+ \iftkz@Y@noticks
+ \else
+ \ifnum\tkz@Y@trig=0
+ \edef\tkz@posmax{\fpeval{trunc(\tkz@posmax,\tkz@init@ydec)}}
+ \edef\tkz@posnext{\fpeval{\tkz@posnext/\tkz@init@ystep+\tkz@posmin}}
+ \foreach \tkz@pos in {\tkz@posmin,\tkz@posnext,...,\tkz@posmax}{%
+ \draw[color = \tkz@Y@color,
+ line width = \tkz@Y@tickwd,
+ shift = {(0,\tkz@pos)}]%
+ (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt);}
+ \else
+ \edef\tkz@posmin{\fpeval{round(((\tkz@posmin+.5)/pi)*\tkz@Y@trig,0)}}
+ \edef\tkz@posmax{\fpeval{round(((\tkz@posmax)/pi)*\tkz@Y@trig,0)}}
+ \foreach \tkz@pos in {\tkz@posmin,...,\tkz@posmax}{%
+ \edef\tkz@pospi{\fpeval{(\tkz@pos*pi)/\tkz@Y@trig}}
+ \draw[color = \tkz@Y@color,
+ line width = \tkz@Y@tickwd,%
+ shift = {(0,\tkz@pospi)}]%
+ (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt);
+ }% end foreach
+ \fi
+ \fi
+\endgroup}
+%<--------------------------------------------------------------------------->
+% tkzLabelX
+%<--------------------------------------------------------------------------->
+\pgfkeys{/tkzlabelX/.cd,
+ frac/.store in = \tkz@X@frac,
+ trig/.store in = \tkz@X@trig,
+ step/.store in = \tkz@posnext,
+ tickwd/.store in = \tkz@X@tickwd,
+ tickup/.store in = \tkz@X@tickup,
+ tickdn/.store in = \tkz@X@tickdn,
+ np off/.is if = tkz@np,
+ np off/.default = true,
+ np off = false,
+ orig/.is if = tkz@X@orig,
+ orig/.default = false,
+ orig = true,
+ frac = 0,
+ trig = 0,
+ step = \tkz@init@xstep,
+ tickwd = \tkz@init@tickwd,
+ tickup = \tkz@init@ticka,
+ tickdn = \tkz@init@tickb,
+ /tkzlabelX/.search also={/tikz},
+ }
+\def\tkzLabelX{\pgfutil@ifnextchar[{\tkz@LabelX}{\tkz@LabelX[]}}
+\def\tkz@LabelX[#1]{%
+\begingroup
+\pgfkeys{/tkzlabelX/.cd,step = \tkz@init@xstep}
+\pgfqkeys{/tkzlabelX}{#1}
+\iftkz@np\let\numprint@saved\numprint %
+\let\numprint\relax\fi %
+
+\edef\tkz@posmin{\fpeval{trunc(\tkz@xa,\tkz@init@xdec)}}
+\edef\tkz@posmax{\fpeval{trunc(\tkz@xb,\tkz@init@xdec)}}
+\edef\x@tkzero{\fpeval{trunc(0.0000000,\tkz@init@xdec)}}
+
+\ifnum\tkz@X@frac=0 %
+ \ifnum\tkz@X@trig=0 % affichage normal
+ \edef\tkz@posnext{\fpeval{\tkz@posnext/\tkz@init@xstep+\tkz@posmin}}
+ \foreach \tkz@pos in {\tkz@posmin,\tkz@posnext,...,\tkz@posmax}{%
+ \edef\tkz@pos{\fpeval{trunc(\tkz@pos,\tkz@init@xdec)}}
+ \edef\tkz@xgrad{\fpeval{\tkz@pos*\tkz@init@xstep+\tkz@init@xorigine}}
+ \edef\tkz@xgrad{\fpeval{trunc(\tkz@xgrad,\tkz@init@xdec)}}
+ \path[shift = {(\tkz@pos,0)}] (0pt,\tkz@X@tickup) -- (0pt,-\tkz@X@tickdn)%
+ node[ xlabel style,%
+ fill = \tkz@fillcolor,
+ /tkzlabelX/.cd,#1]{\tkz@Xshowgradresult{\tkz@pos}};
+}%
+ \else% trig > 0
+ \edef\tkz@posmin{\fpeval{round(((\tkz@posmin+.5)/pi)*\tkz@X@trig,0)}}
+ \edef\tkz@posmax{\fpeval{(\tkz@posmax/pi)*\tkz@X@trig}}
+ \foreach \tkz@pos in {\tkz@posmin,...,\tkz@posmax}{%
+ \tkzPrintFracWithPi{\tkz@pos}{\tkz@X@trig}
+ \edef\tkz@pospi{\fpeval{(\tkz@pos*pi)/\tkz@X@trig}}
+ \path[shift = {(\tkz@pospi,0)}]%
+ (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn)%
+ node[xlabel style,
+ text height = 8pt,
+ fill = \tkz@fillcolor,
+ /tkzlabelX/.cd,#1]{\tkz@Xshowgrad{\tkz@pos}};%
+ }% end foreach
+ \fi
+\else% frac > 0
+ \edef\tkz@posmin{\fpeval{round(\tkz@posmin,0)}}
+ \foreach \tkz@pos in {\tkz@posmin,...,\tkz@posmax}{%
+ \tkzPrintFrac{\tkz@pos}{\tkz@X@frac}%
+ \path[shift = {(\tkz@pos,0)}]%
+ (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn)%
+ node[xlabel style,text height = 8pt,fill = \tkz@fillcolor,
+ /tkzlabelX/.cd,#1]{\tkz@Xshowgrad{\tkz@pos}}%
+ ;%
+ }% end foreach
+\fi
+ \iftkz@np\let\numprint\numprint@saved \fi%
+\endgroup
+}
+%<--------------------------------------------------------------------------->
+% tkzLabelY
+%<--------------------------------------------------------------------------->
+\pgfkeys{/tkzlabelY/.cd,
+ frac/.store in = \tkz@Y@frac,
+ trig/.store in = \tkz@Y@trig,
+ step/.store in = \tkz@posnext,
+ tickwd/.store in = \tkz@Y@tickwd,
+ ticklt/.store in = \tkz@Y@ticklt,
+ tickrt/.store in = \tkz@Y@tickrt,
+ np off/.is if = tkz@np,
+ np off/.default = true,
+ np off = false,
+ orig/.is if = tkz@Y@orig,
+ orig/.default = false,
+ orig = true,
+ frac = 0,
+ trig = 0,
+ step = \tkz@init@ystep,
+ tickwd = \tkz@init@tickwd,
+ ticklt = \tkz@init@tickb,
+ tickrt = \tkz@init@ticka,
+ /tkzlabelY/.search also={/tikz}
+ }
+ \def\tkzLabelY{\pgfutil@ifnextchar[{\tkz@LabelY}{\tkz@LabelY[]}}
+\def\tkz@LabelY[#1]{%
+\begingroup
+\pgfkeys{/tkzlabelY/.cd,step = \tkz@init@ystep}
+\pgfqkeys{/tkzlabelY}{#1}
+\iftkz@np\let\numprint@saved\numprint %
+\let\numprint\relax\fi %
+\edef\tkz@posmin{\fpeval{trunc(\tkz@ya,\tkz@init@ydec)}}
+\edef\tkz@posmax{\fpeval{trunc(\tkz@yb,\tkz@init@ydec)}}
+\edef\y@tkzero{\fpeval{trunc(0.0000000,\tkz@init@ydec)}}
+
+\ifnum\tkz@Y@frac=0
+ \ifnum\tkz@Y@trig=0 % affichage normal
+ \edef\tkz@posnext{\fpeval{\tkz@posnext/\tkz@init@ystep+\tkz@posmin}}
+ \foreach \tkz@pos in {\tkz@posmin,\tkz@posnext,...,\tkz@posmax}{%
+ \edef\tkz@pos{\fpeval{trunc(\tkz@pos,\tkz@init@ydec)}}
+ \edef\tkz@ygrad{\fpeval{\tkz@pos*\tkz@init@ystep+\tkz@init@yorigine}}
+ \edef\tkz@ygrad{\fpeval{trunc(\tkz@ygrad,\tkz@init@ydec)}}
+ \path[shift = {(0,\tkz@pos)}]%
+ (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt)%
+ node[ylabel style,
+ fill = \tkz@fillcolor,
+ /tkzlabelY/.cd,#1]{\tkz@Yshowgradresult{\tkz@pos}};
+}
+ \else% trig > 0
+ \edef\tkz@posmin{\fpeval{round(((\tkz@posmin+.5)/pi)*\tkz@Y@trig,0)}}
+ \edef\tkz@posmax{\fpeval{(\tkz@posmax/pi)*\tkz@Y@trig}}
+ \foreach \tkz@pos in {\tkz@posmin,...,\tkz@posmax}{%
+ \tkzPrintFracWithPi{\tkz@pos}{\tkz@Y@trig}
+ \edef\tkz@pospi{\fpeval{(\tkz@pos*pi)/\tkz@Y@trig}}
+ \path[shift = {(0,\tkz@pospi)}]%
+ (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt)%
+ node[ylabel style,text height = 8pt,fill = \tkz@fillcolor,
+ /tkzlabelY/.cd,#1]{\tkz@Yshowgrad{\tkz@pos}};%
+ }% end foreach
+ \fi
+\else% frac > 0
+\edef\tkz@posmin{\fpeval{round(\tkz@posmin,0)}}
+ \foreach \tkz@pos in {\tkz@posmin,...,\tkz@posmax}{%
+ \tkzPrintFrac{\tkz@pos}{\tkz@Y@frac}%
+ \path[shift = {(0,\tkz@pos)}]%
+ (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt)%
+ node[ylabel style,
+ text height = 8pt,
+ fill = \tkz@fillcolor,
+ /tkzlabelY/.cd,#1]{\tkz@Yshowgrad{\tkz@pos}}%
+ ;%
+ }% end foreach
+\fi
+ \iftkz@np\let\numprint\numprint@saved \fi%
+\endgroup
+}
+%<-------------------------------------------------------------------------->
+%<--------------------------------------------------------------------------–>
+% tkzAxeX Draw + Label
+%<--------------------------------------------------------------------------–>
+\def\tkzAxeX{\pgfutil@ifnextchar[{\tkz@AxeX}{\tkz@AxeX[]}}
+\def\tkz@AxeX[#1]{%
+\begingroup
+ \tkzLabelX[#1]
+ \tkzDrawX[#1]
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzAxeY{\pgfutil@ifnextchar[{\tkz@AxeY}{\tkz@AxeY[]}}
+\def\tkz@AxeY[#1]{%
+\begingroup
+ \tkzDrawY[#1]
+ \tkzLabelY[#1]
+\endgroup}
+%<-------------------------------------------------------------------------->
+\pgfkeys{/tkzAxeXY/.cd,
+ swap/.is if = tkz@swap,
+ swap/.default = true,
+ swap = false,
+ /tkzAxeXY/.search also={/tikz},
+ /tkzAxeXY/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
+ \pgfkeysalso{\searchname/.try=#1}}
+ }
+
+\def\tkzAxeXY{\pgfutil@ifnextchar[{\tkzAxe@XY}{\tkzAxe@XY[]}}
+\def\tkzAxe@XY[#1]{%
+\pgfqkeys{/tkzAxeXY}{#1}
+\iftkz@swap
+\tkzLabelX[#1]\tkzLabelY[#1]\tkzDrawX[#1]\tkzDrawY[#1]
+\else
+\tkzDrawX[#1]\tkzDrawY[#1]\tkzLabelX[#1]\tkzLabelY[#1]
+\fi}
+\def\tkzDrawXY{\pgfutil@ifnextchar[{\tkzDraw@XY}{\tkzDraw@XY[]}}
+\def\tkzDraw@XY[#1]{\tkzDrawX[#1]\tkzDrawY[#1]}
+\def\tkzLabelXY{\pgfutil@ifnextchar[{\tkzLabel@XY}{\tkzLabel@XY[]}}
+\def\tkzLabel@XY[#1]{\tkzLabelX[#1]\tkzLabelY[#1]}
+ %<--------------------------------------------------------------------------–>
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-grids.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-grids.tex
new file mode 100644
index 0000000000..f2bd6a5ffc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-grids.tex
@@ -0,0 +1,78 @@
+% tkz-obj-grids.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+% utf8 encoding
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-grids.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% Setup Grid
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/@tkzsugrid/.cd,
+ line width/.store in = \tkz@sug@lw,
+ color/.store in = \tkz@sug@color,
+ line width = \tkz@grid@lw,
+ color = \tkz@grid@color
+ }
+
+\def\tkzSetUpGrid{\pgfutil@ifnextchar[{\tkz@SetUpGrid}{\tkz@SetUpGrid[]}}
+\def\tkz@SetUpGrid[#1]{%
+\begingroup
+\pgfqkeys{/@tkzsugrid}{#1}
+\global\let\tkz@grid@lw\tkz@sug@lw
+\global\let\tkz@grid@color\tkz@sug@color
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% tkzGrid
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/@tkzGrid/.cd,
+ color/.code = {\def\tkz@gd@color{#1}%
+ \edef\tkz@gd@subcolor{%
+ \tkz@gd@color!\tkzCoeffSubColor}},
+ subxstep/.store in = {\tkz@gd@subxstep},
+ subystep/.store in = {\tkz@gd@subystep},
+ ratio/.store in = {\tkz@gd@ratio},
+ line width/.code = {\edef\tkz@gd@lw{#1}
+ \edef\tkz@gd@sublw{\tkz@gd@ratio\tkz@gd@lw}},
+ sub/.is if = tkz@gd@sub,
+ sub/.default = true ,
+ sub = false,
+ color = \tkz@grid@color,
+ ratio = 0.75,
+ subxstep = \tkz@grid@xstep,
+ subystep = \tkz@grid@ystep,
+ line width = \tkz@grid@lw,
+ /@tkzGrid/.search also = {/tikz},
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzGrid{\pgfutil@ifnextchar[{\tkz@Grid}{\tkz@Grid[]}}
+\def\tkz@Grid[#1]{\@ifnextchar({\tkz@@Grid[#1]}%
+ {\tkz@@Grid[#1](\tkz@tmp@xa,\tkz@tmp@ya)(\tkz@tmp@xb,\tkz@tmp@yb)}}
+\def\tkz@@Grid[#1](#2,#3)(#4,#5){%
+ \pgfqkeys{/@tkzGrid}{#1}
+ \begingroup
+ \edef\tkz@gxa{\fpeval{(#2-\tkz@init@xorigine)/\tkz@init@xstep}}
+ \edef\tkz@gxb{\fpeval{(#4-\tkz@init@xorigine)/\tkz@init@xstep}}
+ \edef\tkz@gya{\fpeval{(#3-\tkz@init@yorigine)/\tkz@init@ystep}}
+ \edef\tkz@gyb{\fpeval{(#5-\tkz@init@yorigine)/\tkz@init@ystep}}
+ \iftkz@gd@sub%
+ \edef\@subxstep{\fpeval{\tkz@gd@subxstep/\tkz@init@xstep}}%
+ \edef\@subystep{\fpeval{\tkz@gd@subystep/\tkz@init@ystep}}%
+ \draw [xstep = \@subxstep cm,%
+ ystep = \@subystep cm,%
+ color = \tkz@gd@subcolor,%
+ line width = \tkzRatioLineGrid]%
+ (\tkz@gxa,\tkz@gya) grid (\tkz@gxb,\tkz@gyb);%
+ \fi
+ \draw [color = \tkz@gd@color,%
+ line width = \tkz@gd@lw]%
+ (\tkz@gxa,\tkz@gya) grid (\tkz@gxb,\tkz@gyb);%
+ \endgroup
+}%
+ %<--------------------------------------------------------------------------–>
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-obj-marks.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-marks.tex
index d4efff422a..3eec108b22 100644
--- a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-obj-marks.tex
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-marks.tex
@@ -1,27 +1,24 @@
+%tkz-obj-marks.tex
% Copyright 2011 by Alain Matthes
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 d}
-\def\filedate{2018/09/19}
-
-
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-marks.tex}
+\makeatletter
%<-------------------------------------------------------------------------–>
% Setup Marks
%<-------------------------------------------------------------------------–>
%<--------------------------------------------------------------------------–>
% DefSetOfPoints
%<--------------------------------------------------------------------------–>
-\newif\iftkz@sop@show
-\newcount\tkz@cntmk
-\pgfkeys{
- /tkzSoPt/.cd,
- prefix/.code = {\global\edef\tkz@pref{#1}},
- /tkzSoPt/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
+\pgfkeys{/tkzSoPt/.cd,
+ prefix/.store in = \tkz@pref,
+ prefix = tkzPt,
+ /tkzSoPt/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
\pgfkeysalso{\searchname/.try=#1,
/tikz/\searchname/.retry=#1}}
}
@@ -29,9 +26,6 @@
\tkz@SetOfPoints[]}}
\def\tkz@SetOfPoints[#1]#2{%
\begingroup
-\pgfkeys{%
-/tkzSoPt/.cd,
-prefix=tkzPt}
\pgfqkeys{/tkzSoPt}{#1}
\tkz@cntmk1 %
\edef\tkz@@cnt{\the\tkz@cntmk}
@@ -39,53 +33,45 @@ prefix=tkzPt}
\tkz@cntmk=\tkz@@cnt %
\tkzDefPoint(\x,\y){\tkz@pref\the\tkz@cntmk}
\advance\tkz@cntmk by1 %
- \global\edef\tkz@@cnt{\the\tkz@cntmk}
+ \xdef\tkz@@cnt{\the\tkz@cntmk}
}%
-\endgroup}%
+\endgroup
+}%
%<-------------------------------------------------------------------------–>
-\pgfkeys{
- /tkzjoinmk/.cd,
- prefix/.code = {\global\edef\tkz@pref{#1}},
- /tkzjoinmk/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}
+\pgfkeys{/tkzjoinmk/.cd,
+ prefix/.store in = \tkz@pref,
+ prefix=tkzPt,
+ /tkzjoinmk/.search also={/tikz}
}
\def\tkzJoinSetOfPoints{\pgfutil@ifnextchar[{\tkz@JoinSetOfPoints}{%
\tkz@JoinSetOfPoints[]}}
\def\tkz@JoinSetOfPoints[#1]{%
\begingroup
-\pgfkeys{%
-/tkzjoinmk/.cd,
-prefix=tkzPt}
-\pgfqkeys{/tkzjoinmk}{#1}
-\pgfmathsetcount{\tkz@cntmk}{\tkz@@cnt-2}
-\edef\tkz@@cnt{\the\tkz@cntmk}
-\foreach \nb in {1,...,\tkz@@cnt}{%
-\tkz@cntmk=\nb
-\advance\tkz@cntmk by1
-\draw[line cap=round,/tkzjoinmk/.cd,#1] (\tkz@pref\nb)--(\tkz@pref\the\tkz@cntmk);}
+ \pgfqkeys{/tkzjoinmk}{#1}
+ \pgfmathsetcount{\tkz@cntmk}{\tkz@@cnt-2}
+ \edef\tkz@@cnt{\the\tkz@cntmk}
+ \foreach \nb in {1,...,\tkz@@cnt}{%
+ \tkz@cntmk=\nb
+ \advance\tkz@cntmk by1
+ \draw[line cap=round,/tkzjoinmk/.cd,#1]
+ (\tkz@pref\nb) -- (\tkz@pref\the\tkz@cntmk);}
\endgroup}
%<-------------------------------------------------------------------------–>
% ShowSetOfMark
%<-------------------------------------------------------------------------–>
-\pgfkeys{
-/tkzdrawmk/.cd,
-prefix/.code = {\global\edef\tkz@pref{#1}},
-/tkzdrawmk/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}
+\pgfkeys{/tkzdrawmk/.cd,
+ prefix/.store in = \tkz@pref,
+ prefix=tkzPt,
+ /tkzdrawmk/.search also = {/tikz}
}
\def\tkzDrawSetOfPoints{\pgfutil@ifnextchar[{\tkz@DrawSetOfPoints}{
\tkz@DrawSetOfPoints[]}}
\def\tkz@DrawSetOfPoints[#1]{%
\begingroup
-\pgfkeys{/tkzdrawmk/.cd, prefix=tkzPt}
\pgfqkeys{/tkzdrawmk}{#1}
\pgfmathsetcount{\tkz@cntmk}{\tkz@@cnt-1}
-\foreach \nb in {1,...,\tkz@cntmk}{%
-\tkzDrawMark[#1](\tkz@pref\nb)}
+\foreach \nb in {1,...,\tkz@cntmk}{\tkzDrawMark[#1](\tkz@pref\nb)}
\endgroup}
-
%<-------------------------------------------------------------------------–>
% tkzmark
%<-------------------------------------------------------------------------–>
@@ -93,43 +79,39 @@ prefix/.code = {\global\edef\tkz@pref{#1}},
\def\tkz@DrawMark[#1](#2){%
\draw plot[mark style,#1] coordinates {(#2)};
}
-%<-------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
+%<---------------------------------------------------------–>
+%<---------------------------------------------------------–>
\def\tkzDrawMarks{\pgfutil@ifnextchar[{\tkz@DrawMarks}{\tkz@DrawMarks[]}}
\def\tkz@DrawMarks[#1](#2){%
-\foreach \point in {#2}{%
-\draw plot[mark style,#1] coordinates {(\point)}; % StyleMark,
+ \foreach \point in {#2}{%
+ \draw plot[mark style,#1] coordinates {(\point)};% StyleMark,
}}
-
-%<--------------------------------------------------------------------------–>
+%<------------------------------------------------------------–>
% Init pour mark
-%<--------------------------------------------------------------------------–>
-\pgfkeys{%
-setupmk/.cd,
-size/.code = {\global\edef\tkz@sum@mk@size{#1}},
-color/.code = {\global\edef\tkz@sum@mk@color{#1}},
-fill/.code = {\global\edef\tkz@sum@mk@fill{#1}},
-mark/.code = {\global\edef\tkz@sum@mk@mark{#1}}
+%<------------------------------------------------------------–>
+\pgfkeys{/setupmk/.cd,
+ size/.store in = \tkz@sum@mk@size,
+ color/.store in = \tkz@sum@mk@color,
+ fill/.store in = \tkz@sum@mk@fill,
+ mark/.store in = \tkz@sum@mk@mark,
+ mark = \tkz@mk@mark,
+ color = \tkz@mk@color,
+ fill = \tkz@mk@color!50,
+ size = \tkz@mk@size
}
-
\def\tkzSetUpMark{\pgfutil@ifnextchar[{\tkzActivOff\tkz@SetUpMark}{%
\tkzActivOff\tkz@SetUpMark[]}}
\def\tkz@SetUpMark[#1]{%
- \pgfkeys{%
-/setupmk/.cd,
-mark = \tkz@mk@mark,
-color = \tkz@mk@color,
-fill = \tkz@mk@color!50,
-size = \tkz@mk@size}
\pgfqkeys{/setupmk}{#1}
-\tikzset{mark style/.style={inner sep = 0pt,
- mark = \tkz@sum@mk@mark,
- mark size = \tkz@sum@mk@size,
- mark options = {color = \tkz@sum@mk@color,
- fill = \tkz@sum@mk@fill}}}
+\tikzset{mark style/.style={%
+ inner sep = 0pt,
+ mark = \tkz@sum@mk@mark,
+ mark size = \tkz@sum@mk@size,
+ mark options = {color = \tkz@sum@mk@color,
+ fill = \tkz@sum@mk@fill}}}
}%
-
-%<--------------------------------------------------------------------------–>
+\makeatother
+%<--------------------------------------- ------------------–>
\endinput
\ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-points.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-points.tex
new file mode 100644
index 0000000000..39f2c391cc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-points.tex
@@ -0,0 +1,327 @@
+% tkz-obj-points.tex
+% Copyright 2011 by Alain Matthes
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-points.tex}
+%<--------------------------------------------------------------------------–>
+% init def point
+%<--------------------------------------------------------------------------–>
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% define a new shape for the points
+\pgfdeclareshape{cross}
+{%
+ \inheritsavedanchors[from=rectangle] % this is nearly a rectangle
+ \inheritanchorborder[from=rectangle]
+ \inheritanchor[from=rectangle]{north}
+ \inheritanchor[from=rectangle]{north west}
+ \inheritanchor[from=rectangle]{north east}
+ \inheritanchor[from=rectangle]{center}
+ \inheritanchor[from=rectangle]{west}
+ \inheritanchor[from=rectangle]{east}
+ \inheritanchor[from=rectangle]{mid}
+ \inheritanchor[from=rectangle]{mid west}
+ \inheritanchor[from=rectangle]{mid east}
+ \inheritanchor[from=rectangle]{base}
+ \inheritanchor[from=rectangle]{base west}
+ \inheritanchor[from=rectangle]{base east}
+ \inheritanchor[from=rectangle]{south}
+ \inheritanchor[from=rectangle]{south west}
+ \inheritanchor[from=rectangle]{south east}
+ \foregroundpath{
+% store lower right in xa/ya and upper right in xb/yb
+ \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
+ \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
+ \pgfpathmoveto{\pgfqpoint{0 pt}{\pgf@ya}}
+ \pgfpathlineto{\pgfqpoint{0 pt}{\pgf@yb}}
+ \pgfpathmoveto{\pgfqpoint{\pgf@xa}{0 pt}}
+ \pgfpathlineto{\pgfqpoint{\pgf@xb}{0 pt}}
+ }
+}
+%<--------------------------------------------------------------------------–>
+% tkzDefPoint
+%<--------------------------------------------------------------------------–>
+
+%<--------------------------------------------------------------------------–>
+% macros complémentaires pour def point
+%<--------------------------------------------------------------------------–>
+\def\tkz@parsecoordinate#1{%
+\tkz@getseparator#1,\@nil
+\iftkz@polar
+ \tkz@getfrompolar#1\@nil
+\else
+ \tkz@getfromcart#1\@nil
+\fi
+}
+\def\tkz@getseparator#1,#2\@nil{%
+\ifx\tkzempty#2\tkzempty%
+ \tkz@polartrue
+\else
+ \tkz@polarfalse
+\fi
+}
+\def\tkz@getfrompolar#1:#2\@nil{%
+\edef\tkz@a{\fpeval{#1}}
+\edef\tkz@r{\fpeval{#2}}
+\xdef\tkz@polarrad{\tkz@r}
+\xdef\tkz@polarangle{\tkz@a}
+}
+\def\tkz@getfromcart#1,#2\@nil{%
+\edef\tkz@x{\fpeval{#1}}
+\edef\tkz@y{\fpeval{#2}}
+\xdef\tkz@absc{\tkz@x}
+\xdef\tkz@ord{\tkz@y}
+}
+%<--------------------------------------------------------------------------–>
+% options pour point definition
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/@tkzpt/.cd,
+ polar/.is if = tkz@pt@polar,
+ polar/.default = true,
+ polar = false
+}
+%<--------------------------------------------------------------------------–>
+% tkz@ptStar
+%<--------------------------------------------------------------------------–>
+\def\tkz@ptStar[#1](#2,#3)#{%
+\pgfkeys{/@tkzpt/.cd, polar = false}
+\pgfqkeys{/@tkzpt}{#1}
+\iftkz@pt@polar%
+ \edef\tkz@x{\fpeval{#3*cosd(#2)}}
+ \edef\tkz@y{\fpeval{#3*sind(#2)}}
+\else
+ \edef\tkz@x{\fpeval{#2}}
+ \edef\tkz@y{\fpeval{#3}}
+\fi
+\edef\tkzpt@xa{\fpeval{(\tkz@x-\tkz@init@xorigine)/\tkz@init@xstep}}
+\edef\tkzpt@ya{\fpeval{(\tkz@y-\tkz@init@yorigine)/\tkz@init@ystep}}
+\tkz@node
+}
+%<--------------------------------------------------------------------------–>
+% la macro defpoint les coordonnées cartésiennes ou polaires sont traitées
+% afin de pouvoir être adaptées avec les unités choisies
+%<--------------------------------------------------------------------------–>
+\def\tkzDefPoint{\pgfutil@ifnextchar[{\tkzActivOff\tkz@DefPoint}{%
+ \tkzActivOff\tkz@DefPoint[]}}
+
+\def\tkz@DefPoint[#1](#2)#{%
+\tkz@parsecoordinate{#2}
+\iftkz@polar
+ \tkz@ptStar[polar](\tkz@polarangle,\tkz@polarrad){tkz@coord@temp}
+\else
+ \tkz@ptStar[](#2){tkz@coord@temp}
+\fi
+\tkz@DefPointEnd[#1]
+}%
+\def\tkz@DefPointEnd[#1]#2{\coordinate[#1] (#2) at (tkz@coord@temp);}
+%<--------------------------------------------------------------------------–>
+% tkzDefPoints
+%<--------------------------------------------------------------------------–>
+\def\tkzDefPoints{\pgfutil@ifnextchar[{\tkz@DefPoints}{\tkz@DefPoints[]}}
+\def\tkz@DefPoints[#1]#2{%
+ \begingroup
+ \def\tkz@parenthesis@for@err{(}%
+ \def\tkz@maybe@parenthesis{#2}%
+ \ifx\tkz@maybe@parenthesis\tkz@parenthesis@for@err
+ \PackageError{tkz-base}{Syntax error use {} instead of ()}{You need to use {} instead of ()}%
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\tkz@absorb@bad@arg}%
+ {\foreach \ptx/\pty/\name in {#2}{\tkzDefPoint[#1](\ptx,\pty){\name}}%
+ \endgroup}%
+}
+\def\tkz@absorb@bad@arg#1){\endgroup}
+%<--------------------------------------------------------------------------–>
+\def\tkz@node#1{\path[coordinate](\tkzpt@xa,\tkzpt@ya) coordinate(#1);}
+% \def\tkz@drawnode#1{\path[coordinate](\tkzpt@xa,\tkzpt@ya) coordinate(#1);
+% \tkz@DrawPt{#1}
+% }
+%<--------------------------------------------------------------------------–>
+% tkzSetUpPoint définit la forme d'un point
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/@setuppt/.cd,
+ size/.store in = \tkz@pt@size,
+ color/.store in = \tkz@pt@color,
+ fill/.store in = \tkz@pt@fill,
+ shape/.store in = \tkz@pt@shape,
+ size = \tkz@euc@pointsize,
+ color = \tkz@euc@pointcolor,
+ fill = \tkz@euc@pointcolor,
+ shape = \tkz@euc@pointshape,
+ /@setuppt/.search also = {/tikz},
+ }
+\def\tkzSetUpPoint{\pgfutil@ifnextchar[{\tkzActivOff\tkz@SetUpPoint}{%
+ \tkzActivOff\tkz@SetUpPoint[]}}
+\def\tkz@SetUpPoint[#1]{%
+\pgfqkeys{/@setuppt}{#1}
+% redefine point style with new values
+\tikzset{point style/.style={draw = \tkz@pt@color,
+ inner sep = 0pt,
+ shape = \tkz@pt@shape,
+ minimum size = \tkz@pt@size,
+ fill = \tkz@pt@fill
+ }
+ }
+ }% end setup
+%<--------------------------------------------------------------------------–>
+% Draw Point
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/@drawpoint/.cd,
+ size/.code = {\tikzset{point style/.append style={minimum size = #1}}},
+ size = \tkz@euc@pointsize,
+ /@drawpoint/.search also = {/tikz},
+}
+%<--------------------------------------------------------------------------
+\def\tkzDrawPoint{\pgfutil@ifnextchar[{\tkz@DrawPoint}{\tkz@DrawPoint[]}}
+\def\tkz@DrawPoint[#1](#2){%
+\begingroup
+ \pgfqkeys{/@drawpoint}{#1}
+ \node[point style,/@drawpoint/.cd,#1] at (#2) {};%2016
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawPoints{\pgfutil@ifnextchar[{\tkz@drawpts}{\tkz@drawpts[]}}
+%<--------------------------------------------------------------------------–>
+\def\tkz@drawpts[#1](#2){%
+\begingroup
+ \pgfqkeys{/@drawpoint}{#1}
+ \foreach \point in {#2}{\node[point style,/@drawpoint/.cd,#1] at (\point) {};} %2016
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+\def\tkzRenamePoint(#1)#2{\coordinate (#2) at (#1);}
+\def\tkz@RenamePointEnd[#1]#2{\coordinate[#1] (#2) at (\tkz@ax,\tkz@ay);}
+\def\tkzGetPoint#1{\coordinate (#1) at (tkzPointResult);}
+\def\tkzGetPoints#1#2{\coordinate (#1) at (tkzFirstPointResult);
+ \coordinate (#2) at (tkzSecondPointResult);}
+\def\tkzGetFirstPoint#1{\coordinate (#1) at (tkzFirstPointResult);}
+\def\tkzGetSecondPoint#1{\coordinate (#1) at (tkzSecondPointResult);}
+\def\tkzDefShiftPointCoord[#1](#2)#3{%
+ \begin{scope}[shift={(#1)}]
+ \coordinate (#3) at (#2);
+ \end{scope}
+ }%
+%<--------------------------------------------------------------------------–>
+% tkzDefShiftPoint
+%<--------------------------------------------------------------------------–>
+\def\tkzDefShiftPoint[#1](#2)#3{%
+ \tkz@@extractxy{#1}
+ \tkz@ax\pgf@x %
+ \tkz@ay\pgf@y %
+\begin{scope}[shift={(\tkz@ax,\tkz@ay)}]
+ \coordinate (#3) at (#2);
+\end{scope}
+}
+%<-------------------------------------------------------------------------–>
+% tkzLabelPoint Affichage des LABELS pour un point
+%<-------------------------------------------------------------------------–>
+\tikzset{label style/.style={\tkz@euc@pointpos,\tkz@euc@labelcolor,
+ font=\normalsize}}
+\def\tkzLabelPoint{\pgfutil@ifnextchar[{\tkz@LabelPoint}{\tkz@LabelPoint[]}}
+\def\tkz@LabelPoint[#1](#2)#3{%
+ \node[label style,#1] at (#2) {#3};}%
+%<--------------------------------------------------------------------------–>
+
+\def\tkzLabelPoints{\pgfutil@ifnextchar[{\tkz@LabelPoints}{%
+ \tkz@LabelPoints[]}}%
+\def\tkz@LabelPoints[#1](#2){%
+ \foreach \point in {#2}{
+ \node[label style,#1] at (\point) {$\point$};}
+}%
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+
+\pgfkeys{/@tkzautolab/.cd,
+ center/.store in = \tkz@center,
+ dist/.store in = \tkz@dist,
+ dist = 0.15,
+ /@tkzautolab/.search also = {/tikz},
+}
+\def\tkzAutoLabelPoints{\pgfutil@ifnextchar[{\tkz@AutoLabelPoints}{%
+ \tkz@AutoLabelPoints[]}}%
+\def\tkz@AutoLabelPoints[#1](#2){%
+\begingroup
+\pgfqkeys{/@tkzautolab}{#1}
+ \foreach \point in {#2}{
+ \path (\tkz@center) -- ($ (\point) + \tkz@dist*($(\point)-(\tkz@center)$) $) node[/@tkzautolab/.cd,#1]{$\point$};}
+\endgroup
+}%
+%<--------------------------------------------------------------------------–>
+% PointShowCoord
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/@tkzprcoord/.cd,
+ xlabel/.store in = \tkz@xlabel,
+ ylabel/.store in = \tkz@ylabel,
+ xstyle/.code = {\tikzset{xcoord style/.append style={#1}}},
+ ystyle/.code = {\tikzset{ycoord style/.append style={#1}}},
+ noxdraw/.is if = tkz@coord@noxdraw,
+ noxdraw/.default = true,
+ noydraw/.is if = tkz@coord@noydraw,
+ noydraw/.default = true,
+ xlabel = {},
+ ylabel = {},
+ xstyle = {},
+ ystyle = {},
+ noxdraw = false,
+ noydraw = false,
+ /@tkzprcoord/.search also = {/tikz},
+}
+\def\tkzPointShowCoord{\pgfutil@ifnextchar[{\tkz@PointShowCoord}{\tkz@PointShowCoord[]}}
+\def\tkz@PointShowCoord[#1](#2){%
+\begingroup
+\pgfqkeys{/@tkzprcoord}{#1}
+% 2019 for showcoord
+ \iftkznodedefined{tkz@xline}{}{%
+ \path (0,0) --(1,0) node(tkz@xline){};
+ \path (0,0) --(0,1) node(tkz@yline){};
+ }
+\iftkz@coord@noxdraw\else\draw[arrow coord style,/@tkzprcoord/.cd,#1] (#2)--(#2 |- tkz@xline);\fi
+\iftkz@coord@noydraw\else\draw[arrow coord style,/@tkzprcoord/.cd,#1] (#2)--(#2 -| tkz@yline);\fi
+\ifx\tkzutil@empty\tkz@xlabel
+\else
+\path (#2)--(#2 |- tkz@xline)
+ node[xcoord style] {\tkz@xlabel};
+\fi
+\ifx\tkzutil@empty\tkz@ylabel
+\else
+ \path (#2)--(#2 -| tkz@yline)
+ node[ycoord style] {\tkz@ylabel};
+\fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Coordonnées d'un point
+% result in #2x et #2y #1 est le point et on récupère ses coordonnées
+% usage soit A un point \tkzGetPointCoord(A){V} alors \Vx = xA et \Vy = yA
+% en cm
+% tkzGetPointCoord avec [#1] cm ou bien pt ?? todo
+%<--------------------------------------------------------------------------–>
+\def\tkzGetPointCoord(#1)#2{%
+\begingroup
+ \pgfextractx{\pgf@x}{\pgfpointanchor{#1}{center}}
+ \pgfmathparse{\pgf@sys@tonumber{\pgf@x}/28.45274}
+ \global\let\tkzresultx\pgfmathresult
+ \global\expandafter\edef\csname #2x\endcsname{\tkzresultx}%
+ \pgfextracty{\pgf@y}{\pgfpointanchor{#1}{center}}
+ \pgfmathparse{\pgf@sys@tonumber{\pgf@y}/28.45274}
+ \global\let\tkzresulty\pgfmathresult
+ \global\expandafter\edef\csname #2y\endcsname{\tkzresulty}
+\endgroup
+}
+\def\tkz@@extractxy#1{%
+\pgfextractx{\pgf@x}{\pgfpointanchor{#1}{center}}
+\pgfextracty{\pgf@y}{\pgfpointanchor{#1}{center}}
+}
+\let\tkzGetPointxy\tkzGetPointCoord
+%<--------------------------------------------------------------------------–>
+\makeatother
+\endinput
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-rep.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-rep.tex
new file mode 100644
index 0000000000..d66e9fc895
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-rep.tex
@@ -0,0 +1,62 @@
+% tkz-obj-rep.tex
+% Copyright 2011 by Alain Matthes
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-rep.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% repère
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/@tkzRep/.cd,
+ line width/.store in = \tkz@Rep@lw,
+ xlabel/.store in = \tkz@Rep@xlabel,
+ ylabel/.store in = \tkz@Rep@ylabel,
+ posxlabel/.store in = \tkz@Rep@posxlabel,
+ posylabel/.store in = \tkz@Rep@posylabel,
+ xnorm/.store in = \tkz@Rep@xnorm,
+ ynorm/.store in = \tkz@Rep@ynorm,
+ color/.store in = \tkz@Rep@color,
+ colorlabel/.store in = \tkz@Rep@colorlabel,
+ line width = \tkz@sur@lw,
+ xlabel = $\vec{\imath}$,
+ ylabel = $\vec{\jmath}$,
+ posxlabel = \tkz@sur@posxlabel,
+ posylabel = \tkz@sur@posylabel,
+ xnorm = 1,
+ ynorm = 1,
+ color = \tkz@sur@color,% remove ?
+ colorlabel = \tkz@sur@colorlabel,
+ /@tkzRep/.search also={/tikz},
+ }
+%<--------------------------------------------------------------------------–>
+\def\tkzRep{\pgfutil@ifnextchar[{\tkz@Rep}{%
+ \tkz@Rep[]}}
+\def\tkz@Rep[#1]{%
+\pgfqkeys{/@tkzRep}{#1}
+\begingroup
+ \protected@edef\tkz@temp{%
+ \noexpand\draw [ line width=\tkz@Rep@lw,
+ color=\tkz@Rep@color,
+ rep style]%
+ (0,0) to node[\tkz@Rep@posylabel,
+ color = \tkz@Rep@colorlabel,
+ node contents={\tkz@Rep@ylabel}]}\tkz@temp%
+ {}(0,\tkz@Rep@ynorm);
+ \protected@edef\tkz@temp{%
+ \noexpand \draw [ line width=\tkz@Rep@lw,
+ color=\tkz@Rep@color,
+ rep style]%
+ (0,0) to node[ \tkz@Rep@posxlabel,
+ color = \tkz@Rep@colorlabel,
+ node contents={\tkz@Rep@xlabel}]}\tkz@temp%
+ {}(\tkz@Rep@xnorm,0);
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-BB.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-BB.tex
new file mode 100644
index 0000000000..81b1bd4ed5
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-BB.tex
@@ -0,0 +1,63 @@
+% tkz-tools-BB.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-BB.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/@tkzClip/.cd,
+space/.store in = {\tkz@CLI@space},
+space = {}}
+
+\def\tkzClip{\pgfutil@ifnextchar[{\tkz@Clip}{\tkz@Clip[]}}
+\def\tkz@Clip[#1]{%
+
+\pgfqkeys{/@tkzClip}{#1}
+\ifx\tkzutil@empty\tkz@CLI@space
+ \clip (\tkz@xa,\tkz@ya) rectangle (\tkz@xb,\tkz@yb);
+ \else
+ \edef\tkz@xxa{\fpeval{\tkz@xa-\tkz@CLI@space}}
+ \edef\tkz@yya{\fpeval{\tkz@ya-\tkz@CLI@space}}
+ \edef\tkz@xxb{\fpeval{\tkz@xb+\tkz@CLI@space}} % correction bug 2020
+ \edef\tkz@yyb{\fpeval{\tkz@yb+\tkz@CLI@space}}
+ \clip (\tkz@xxa,\tkz@yya) rectangle (\tkz@xxb,\tkz@yyb);
+\fi
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzSetBB(#1)(#2){%
+ \pgfresetboundingbox
+ \path coordinate (tkz@SW) at (#1)
+ coordinate (tkz@NE) at (#2);
+ \path[use as bounding box](#1) rectangle (#2);
+ }
+%<--------------------------------------------------------------------------–>
+\def\tkzSaveBB{%
+\path coordinate (tkz@SW) at (current bounding box.north east)
+ coordinate (tkz@NE) at (current bounding box.south west);
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzRestoreBB{%
+ \pgfresetboundingbox
+ \path[use as bounding box] (tkz@SW) rectangle (tkz@NE) ;
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzShowBB{\pgfutil@ifnextchar[{\tkz@ShowBB}{\tkz@ShowBB[]}}
+\def\tkz@ShowBB[#1]{%
+ \draw[#1] (current bounding box.south west) rectangle
+ (current bounding box.north east);
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzClipBB{%
+\clip (current bounding box.south west) rectangle
+ (current bounding box.north east);
+}
+%<--------------------------------------------------------------------------–>
+\tikzset{tkzreverseclip/.style={insert path={%
+ (\tkz@xa,\tkz@ya) rectangle (\tkz@xb,\tkz@yb)}}}
+%todo add options
+%<--------------------------------------------------------------------------–>
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-arith.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-arith.tex
index 01e858d052..296c53fe34 100644
--- a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-arith.tex
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-arith.tex
@@ -1,27 +1,25 @@
+% tkz-tools-arith.tex
% Copyright 2011 by Alain Matthes
-%
% This file may be distributed and/or modified
-%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
-
-
-\def\fileversion{1.161 d}
-\def\filedate{2018/09/19}
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-tools-arith.tex}
% 1.161 test if "isfactor" is already defined
-
+% now with pgf 3.0 gcd isprime isodd iseven are defined
%<--------------------------------------------------------------------------–>
% Objet : tools for arithmetic
%<--------------------------------------------------------------------------–>
% [About integers numbers]
%<--------------------------------------------------------------------------–>
-\ProvidesFile{tkz-tool-arith.tex}[tkz-tool-arith 1.161 d]
-\edef\tkzAtCode{\the\catcode`\@}
-\catcode`\@=11\relax
+\ProvidesFile{tkz-tool-arith.tex}[tkz-tool-arith 3.00 c]
+% \edef\tkzAtCode{\the\catcode`\@}
+% \catcode`\@=11\relax
+\makeatletter
%<--------------------------------------------------------------------------–>
% arithmetic tools
%<--------------------------------------------------------------------------–>
-
\tkzutil@ifundefined{pgfmath@function@gcd}{%
\pgfmathdeclarefunction{gcd}{2}{%
\begingroup%
@@ -51,10 +49,7 @@
}
}{}
%<--------------------------------------------------------------------------->
-
\tkzutil@ifundefined{pgfmath@function@isprime}{%
-\newif\ifpgf@unknown
-\newif\ifpgf@isaprime
\pgfmathdeclarefunction{isprime}{1}{%
\begingroup%
\pgf@unknowntrue
@@ -180,7 +175,6 @@
\tkz@find@next
}%
%<--------------------------------------------------------------------------->
-%<--------------------------------------------------------------------------->
\def\tkzReducFrac#1#2{%
\begingroup
\ifnum#1<0\relax%
@@ -201,14 +195,12 @@
\divide\c@pgfmath@counta by\c@pgfmath@countc%
\divide\c@pgfmath@countb by\c@pgfmath@countc%
\fi
-\global\edef\tkzMathFirstResult{\the\c@pgfmath@counta}
-\global\edef\tkzMathSecondResult{\the\c@pgfmath@countb}
+\xdef\tkzMathFirstResult{\the\c@pgfmath@counta}
+\xdef\tkzMathSecondResult{\the\c@pgfmath@countb}
\endgroup}
%<--------------------------------------------------------------------------->
-%<--------------------------------------------------------------------------->
-%<--------------------------------------------------------------------------->
-
-\catcode`\@=\tkzAtCode\relax
+%\catcode`\@=\tkzAtCode\relax
+\makeatother
\endinput
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-base.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-base.tex
new file mode 100644
index 0000000000..926ed2347e
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-base.tex
@@ -0,0 +1,83 @@
+% tkz-tools-base.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+% utf8 encoding
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-tools-base.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+\global\let\tkz@tmp@xa\tkz@init@xmin% modif 2016
+\global\let\tkz@tmp@xb\tkz@init@xmax% modif 2016
+\global\let\tkz@tmp@ya\tkz@init@ymin% modif 2016
+\global\let\tkz@tmp@yb\tkz@init@ymax% modif 2016
+%<--------------------------------------------------------------------------–>
+\pgfkeys{
+ /@tkzInit/.cd,
+ xmin/.store in = \tkz@init@xmin,
+ xmax/.store in = \tkz@init@xmax,
+ xstep/.store in = \tkz@init@xstep,
+ ymin/.store in = \tkz@init@ymin,
+ ymax/.store in = \tkz@init@ymax,
+ ystep/.store in = \tkz@init@ystep,
+ NO/.is if = tkz@init@NO,
+ NO/.default = true,
+ xmin = 0,
+ xmax = 10,
+ xstep = 1,
+ ymin = 0,
+ ymax = 10,
+ ystep = 1,
+ NO = false
+ }
+
+\def\tkzInit{\pgfutil@ifnextchar[{\tkz@Init}{\tkz@Init[]}}
+\def\tkz@Init[#1]{%
+ \pgfqkeys{/@tkzInit}{#1}
+ \ifx\tkzfctloaded\undefined
+ \else
+ \tkz@tkzf@fct=0 % only if tkz-fct loaded
+ \fi
+ \xdef\tkz@init@xorigine{0}
+ \xdef\tkz@init@yorigine{0}
+ \edef\@xsgmin{\fpeval{sign(\tkz@init@xmin)}}
+ \edef\@xsgmax{\fpeval{sign(\tkz@init@xmax)}}
+ \edef\@ysgmin{\fpeval{sign(\tkz@init@ymin)}}
+ \edef\@ysgmax{\fpeval{sign(\tkz@init@ymax)}}
+ \let\tkz@tmp@xa\tkz@init@xmin %modif 2016
+ \let\tkz@tmp@xb\tkz@init@xmax %modif 2016
+ \let\tkz@tmp@ya\tkz@init@ymin %modif 2016
+ \let\tkz@tmp@yb\tkz@init@ymax %modif 2016
+ \tkz@init@NOfalse
+ \ifx\@xsgmin\@xsgmax \tkz@init@NOtrue \fi
+ \ifx\@ysgmin\@ysgmax \tkz@init@NOtrue \fi
+ \iftkz@init@NO%
+ \ifx\@xsgmin\@xsgmax
+ \edef\tkz@init@xmax{\fpeval{\tkz@init@xmax-\tkz@init@xmin}}
+ \edef\tkz@init@xorigine{\tkz@init@xmin}
+ \edef\tkz@init@xmin{0}
+ \fi
+ \ifx\@ysgmin\@ysgmax
+ \edef\tkz@init@ymax{\fpeval{\tkz@init@ymax-\tkz@init@ymin}}
+ \edef\tkz@init@yorigine{\tkz@init@ymin}
+ \edef\tkz@init@ymin{0}
+ \fi
+ \fi
+ \edef\tkz@xa{\fpeval{\tkz@init@xmin/\tkz@init@xstep}}
+ \edef\tkz@xb{\fpeval{\tkz@init@xmax/\tkz@init@xstep}}
+ \edef\tkz@ya{\fpeval{\tkz@init@ymin/\tkz@init@ystep}}
+ \edef\tkz@yb{\fpeval{\tkz@init@ymax/\tkz@init@ystep}}
+ \tkz@getdecimal{\tkz@init@xstep} % amélioration nb dec et integer
+ \xdef\tkz@init@xdec{\number\c@pgfmath@countb}
+ \tkz@getdecimal{\tkz@init@ystep}
+ \xdef\tkz@init@ydec{\number\c@pgfmath@countb}
+}%
+\def\tkzAddName{\pgfutil@ifnextchar[{\tkz@AddName}{\tkz@AddName[]}}
+\def\tkz@AddName[#1]#2{%
+\node[above left,#1] at (\pgf@path@lastx,\pgf@path@lasty){#2};
+}%
+%<--------------------------------------------------------------------------–>
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-math.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-math.tex
new file mode 100644
index 0000000000..c6579e0902
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-math.tex
@@ -0,0 +1,117 @@
+% tkz-tools-math.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-tools-math.tex}
+\makeatletter
+%<-------------------------------------------------------------------------->
+% \tkzpointnormalised normalise un point A-->A' tq ||v(OA')=1||
+% équivalent de \pgfpointnormalised avec fp
+% example
+% \tkzpointnormalised{%
+% \pgfpointdiff{\pgfpointanchor{A}{center}}
+% {\pgfpointanchor{B}{center}}}
+
+% or
+% \pgf@x=1 cm
+% \pgf@y=12 cm
+% \tkzpointnormalised{}
+%<--------------------------------------------------------------------------
+\def\tkzpointnormalised#1{%
+\pgf@process{#1}%
+\edef\tkz@den{\fpeval{sqrt((\pgf@x)^2+(\pgf@y)^2)}}
+\edef\tkz@coordx{\fpeval{\pgf@x/\tkz@den}}
+\edef\tkz@coordx{\fpeval{round(\tkz@coordx,5)}}
+\edef\tkz@coordy{\fpeval{\pgf@y/\tkz@den}}
+\edef\tkz@coordy{\fpeval{round(\tkz@coordy,5)}}
+\pgf@x = \tkz@coordx pt
+\pgf@y = \tkz@coordy pt
+}
+%<-------------------------------------------------------------------------->
+% restaure and save length
+\def\tkz@save@length{%
+\global\let\tkz@temp@length\tkzLengthResult}%
+\def\tkz@restore@length{%
+ \global\let\tkzLengthResult\tkz@temp@length }%
+%<-------------------------------------------------------------------------->
+% \tkzCalcLength Distance entre deux points en pt ou en cm avec xfp
+% \veclen mais avec fp
+% option cm le résultat est en cm sinon en pt
+%<-------------------------------------------------------------------------->
+\pgfkeys{@CalcLength/.cd,
+ cm/.is if = tkzLengthIncm,
+ cm/.default = true}
+
+\def\tkzCalcLength{\pgfutil@ifnextchar[{\tkz@CalcLength}{\tkz@CalcLength[]}}
+\def\tkz@CalcLength[#1](#2,#3){%
+\pgfkeys{@CalcLength/.cd, cm = false}
+\pgfqkeys{/@CalcLength}{#1}%
+\begingroup
+\tkz@@CalcLength(#2,#3){tkzLengthResult}
+\iftkzLengthIncm
+ \pgfmathparse{\tkz@xfpMathLen pt/1cm}
+ \edef\tkz@xfpMathLen{\fpeval{round(\pgfmathresult,5)}}
+ \global\let\tkzLengthResult\tkz@xfpMathLen
+\fi
+\endgroup
+}%
+\def\tkz@@CalcLength(#1,#2)#3{%
+\pgfpointdiff{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{#2}{center}}%
+\edef\tkz@xfpMathLen{\fpeval{sqrt((\pgf@x)^2+(\pgf@y)^2)}}
+\edef\tkz@xfpMathLen{\fpeval{round(\tkz@xfpMathLen,5)}}
+\global\expandafter\edef\csname #3\endcsname{\tkz@xfpMathLen}
+}
+%<-------------------------------------------------------------------------->
+\def\tkzGetLength#1{%
+\global\expandafter\edef\csname #1\endcsname{\tkzLengthResult}}
+%<-------------------------------------------------------------------------->
+% \tkzpttocm passage de pt   cm div par 28.45274
+%<-------------------------------------------------------------------------->
+\def\tkzpttocm(#1)#2{%
+\begingroup
+ \pgfmathparse{#1/1cm}
+ \edef\tkz@mathresult{\fpeval{round(\pgfmathresult,5)}}
+ \global\let\tkz@mathresult\tkz@mathresult
+ \global\expandafter\edef\csname #2\endcsname{\tkz@mathresult}%
+\endgroup
+}%
+%<-------------------------------------------------------------------------->
+% \tkzcmtopt passage de cm   pt mul par 28.45274
+%<--------------------------------------------------------------------------
+\def\tkzcmtopt(#1)#2{%
+\begingroup
+ \pgfmathparse{#1/1pt}
+ \edef\tkz@mathresult{\fpeval{round(\pgfmathresult,5)}}
+ \global\let\tkz@mathresult\tkz@mathresult
+ \global\expandafter\edef\csname #2\endcsname{\tkz@mathresult}%
+\endgroup
+}%
+%<-------------------------------------------------------------------------->
+% Slope
+%<-------------------------------------------------------------------------->
+\def\tkzFindSlope{\tkz@FindSlope}
+\def\tkz@FindSlope(#1,#2)#3{%
+\begingroup
+ \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{#2}{center}}}
+ \edef\tkz@Slope{\fpeval{\pgfmath@tonumber{\pgf@y}/\pgfmath@tonumber{\pgf@x}}}
+ \edef\tkz@Slope{\fpeval{round(\tkz@Slope,5)}}
+ \global\expandafter\edef\csname #3\endcsname{\tkz@Slope}%
+\endgroup
+}
+% Schrodinger's cat idea 03/01/20
+\tikzset{xfp/.code={%
+\pgfmathdeclarefunction*{veclen}{2}{%
+\begingroup%
+ \pgfmath@x##1pt\relax%
+ \pgfmath@y##2pt\relax%
+ \edef\tkz@xfpMathLen{\fpeval{sqrt((\pgf@x)^2+(\pgf@y)^2)}}
+ \pgfmath@returnone\tkz@xfpMathLen pt%
+\endgroup%
+}}}
+ \makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-misc.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-misc.tex
new file mode 100644
index 0000000000..e47c7d8a5c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-misc.tex
@@ -0,0 +1,82 @@
+% tkz-tools-misc.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-tools-misc.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% hline pb avec line
+%<--------------------------------------------------------------------------–>
+\def\tkzHLine{\pgfutil@ifnextchar[{\tkz@HLine}{\tkz@HLine[]}}
+\def\tkz@HLine[#1]#2{%
+\begingroup
+ \edef\tkz@ptya{\fpeval{(#2-\tkz@init@yorigine)/\tkz@init@ystep}}
+ \draw[#1] (\tkz@xa,\tkz@ptya)--(\tkz@xb,\tkz@ptya);%
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% hlines pb avec line
+%<--------------------------------------------------------------------------–>
+\def\tkzHLines{\pgfutil@ifnextchar[{\tkz@HLines}{\tkz@HLines[]}}
+\def\tkz@HLines[#1]#2{%
+ \begingroup
+ \foreach \tkz@vy in {#2}{%
+ \edef\my@tkz@vy{\fpeval{(\tkz@vy)}}
+ \tkz@HLine[#1]{\my@tkz@vy}}
+\endgroup
+}
+%<--------------------------------------------------------------------------->
+% vline
+%<--------------------------------------------------------------------------->
+\def\tkzVLine{\pgfutil@ifnextchar[{\tkz@VLine}{\tkz@VLine[]}}
+\def\tkz@VLine[#1]#2{%
+\begingroup
+ \edef\tkz@ptxa{\fpeval{(#2-\tkz@init@xorigine)/\tkz@init@xstep}}
+ \draw[#1](\tkz@ptxa,\tkz@ya)--(\tkz@ptxa,\tkz@yb);
+\endgroup
+}
+%<--------------------------------------------------------------------------->
+% vlines
+%<--------------------------------------------------------------------------->
+\def\tkzVLines{\pgfutil@ifnextchar[{\tkz@VLines}{\tkz@VLines[]}}
+\def\tkz@VLines[#1]#2{%
+\begingroup
+ \foreach \tkz@vx in {#2}{%
+ \edef\my@tkz@vx{\fpeval{(\tkz@vx)}}
+ \tkz@VLine[#1]{\my@tkz@vx}}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzHTick{\pgfutil@ifnextchar[{\tkz@HTick}{\tkz@HTick[]}}
+\def\tkz@HTick[#1]#2{%
+ \begingroup
+ \edef\tkz@ptxa{\fpeval{(round(#2,5)-\tkz@init@xorigine)/\tkz@init@xstep}}
+ \draw plot[mark style,#1] coordinates {(\tkz@ptxa,0)};
+\endgroup
+}
+\def\tkzHTicks{\pgfutil@ifnextchar[{\tkz@HTicks}{\tkz@HTicks[]}}
+\def\tkz@HTicks[#1]#2{%
+ \begingroup
+ \foreach \tkz@hy in {#2} {\tkz@HTick[#1]{\tkz@hy}}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzVTick{\pgfutil@ifnextchar[{\tkz@VTick}{\tkz@VTick[]}}
+\def\tkz@VTick[#1]#2{%
+ \begingroup
+ \edef\tkz@ptya{\fpeval{(round(#2,5)-\tkz@init@yorigine)/\tkz@init@ystep}}
+ \draw plot[mark style,#1] coordinates {(0,\tkz@ptya)};
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzVTicks{\pgfutil@ifnextchar[{\tkz@VTicks}{\tkz@VTicks[]}}
+\def\tkz@VTicks[#1]#2{%
+\begingroup
+ \foreach \tkz@hy in {#2} {\tkz@VTick[#1]{\tkz@hy}}
+\endgroup
+}
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-modules.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-modules.tex
new file mode 100644
index 0000000000..e0e69f639f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-modules.tex
@@ -0,0 +1,60 @@
+% tkz-tools-modules
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-tools-utilities.tex}
+\makeatletter
+%<------------- % chargement des modules ---------------------------------->
+\def\tkz@obj@all{angles,arcs,compass,defcircles,deflines,defpoints,defpointsby,defpointsrnd,defpointswith,polygons,protractor,sectors,show,triangles}%
+\def\tkz@obj@txt{all}
+\def\usetkzobj{\pgfutil@ifnextchar[{\use@usetkzobj}{\use@@usetkzobj}}%}
+\def\use@usetkzobj[#1]{\use@@usetkzobj{#1}}
+\def\use@@usetkzobj#1{%
+ \def\tkz@list{#1}
+ \ifx\tkz@obj@txt\tkz@list \edef\tkz@list{\tkz@obj@all}%
+ \else
+ \edef\tkz@list{#1}%
+ \fi
+ \pgfutil@for\tkz@temp:=\tkz@list\do{%
+ \expandafter\ifx\csname tkz@library@\tkz@temp @loaded\endcsname\relax%
+ \expandafter\global\expandafter\let\csname tkz@library@\tkz@temp @loaded\endcsname=\pgfutil@empty%
+ \expandafter\edef\csname tkz@obj@#1@atcode\endcsname{\the\catcode`\@}
+ \expandafter\edef\csname tkz@obj@#1@barcode\endcsname{\the\catcode`\|}
+ \catcode`\@=11
+ \catcode`\|=12
+ \input tkz-obj-\tkz@temp.tex
+ \catcode`\@=\csname tkz@obj@#1@atcode\endcsname
+ \catcode`\|=\csname tkz@obj@#1@barcode\endcsname
+ \fi%
+ }%
+}%
+%<---------------------------------------------------------–>
+\def\tkz@tool@all{math-xfp}
+\def\tkz@tool@txt{all}
+
+\def\usetkztool{\pgfutil@ifnextchar[{\use@usetkztool}{\use@@usetkztool}}%}
+\def\use@usetkztool[#1]{\use@@usetkztool{#1}}
+\def\use@@usetkztool#1{%
+ \def\tkz@list{#1}
+ \ifx\tkz@tool@txt\tkz@list \edef\tkz@list{\tkz@tool@all}%
+ \else
+ \edef\tkz@list{#1}%
+ \fi
+ \pgfutil@for\tkz@temp:=\tkz@list\do{%
+ \expandafter\ifx\csname tkz@library@\tkz@temp @loaded\endcsname\relax%
+ \expandafter\global\expandafter\let\csname tkz@library@\tkz@temp @loaded\endcsname=\pgfutil@empty%
+ \expandafter\edef\csname tkz@tool@#1@atcode\endcsname{\the\catcode`\@}
+ \expandafter\edef\csname tkz@tool@#1@barcode\endcsname{\the\catcode`\|}
+ \catcode`\@=11
+ \catcode`\|=12
+ \input tkz-tools-\tkz@temp.tex
+ \catcode`\@=\csname tkz@tool@#1@atcode\endcsname
+ \catcode`\|=\csname tkz@tool@#1@barcode\endcsname
+ \fi%
+ }%
+}%
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-print.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-print.tex
new file mode 100644
index 0000000000..72aa8e8f7c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-print.tex
@@ -0,0 +1,79 @@
+% tkz-tool-print.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-tools-print.tex}
+\makeatletter
+%<------------- tkzPrintFrac ---------------------------------->
+\def\tkzPrintFrac#1#2{%
+\begingroup
+\tkzReducFrac{#1}{#2}
+\xdef\tkzprintfrac{$ \frac{\tkzMathFirstResult}{\tkzMathSecondResult}$}%
+ \ifnum\tkzMathFirstResult=0%
+ \xdef\tkzprintfrac{$0$}%
+ \else
+ \ifnum\tkzMathSecondResult=1 %
+ \ifnum\tkzMathFirstResult=1 %
+ \xdef\tkzprintfrac{$1$}%
+ \else
+ \ifnum\tkzMathFirstResult=-1%
+ \xdef\tkzprintfrac{$-1$}%
+ \else
+ \xdef\tkzprintfrac{$\tkzMathFirstResult$}%
+ \fi\fi
+ \else
+ \ifnum\tkzMathFirstResult=1 %
+ \xdef\tkzprintfrac{$\tkzmathstyle\frac{1}{\tkzMathSecondResult}$}%
+ \else
+ \ifnum\tkzMathFirstResult=-1 %
+ \xdef\tkzprintfrac{$\tkzmathstyle\frac{-1}{\tkzMathSecondResult}$}%
+ \else
+ \xdef\tkzprintfrac{$\tkzmathstyle\frac{\tkzMathFirstResult}{%
+ \tkzMathSecondResult}$}%
+ \fi\fi\fi\fi
+\endgroup}
+%<------------- tkzPrintFracWithPi ---------------------------------->
+\def\tkzPrintFracWithPi#1#2{%
+\begingroup
+\tkzReducFrac{#1}{#2}
+\xdef\tkzprintfrac{%
+ $\tkzmathstyle\frac{\tkzMathFirstResult\pi}{\tkzMathSecondResult}$}%
+\ifnum\tkzMathFirstResult=0%
+ \xdef\tkzprintfrac{$0$}%
+\else
+ \ifnum\tkzMathSecondResult=1 %
+ \ifnum\tkzMathFirstResult=1 %
+ \xdef\tkzprintfrac{$\pi$}%
+ \else
+ \ifnum\tkzMathFirstResult=-1%
+ \xdef\tkzprintfrac{$-\pi$}%
+ \else
+ \xdef\tkzprintfrac{$\tkzMathFirstResult\pi$}%
+ \fi
+ \fi
+ \else
+ \ifnum\tkzMathFirstResult=1 %
+ \xdef\tkzprintfrac{%
+ $\tkzmathstyle\frac{\pi}{\tkzMathSecondResult}$
+ }%
+ \else
+ \ifnum\tkzMathFirstResult=-1 %
+ \xdef\tkzprintfrac{$\tkzmathstyle\frac{-\pi}{%
+ \tkzMathSecondResult}$}%
+ \else
+ \xdef\tkzprintfrac{$\tkzmathstyle\frac{%
+ \tkzMathFirstResult\pi}{%
+ \tkzMathSecondResult}$
+ }%
+ \fi
+ \fi
+ \fi
+\fi
+\endgroup
+}%
+
+\makeatother
+\endinput
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-text.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-text.tex
new file mode 100644
index 0000000000..c676da2402
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-text.tex
@@ -0,0 +1,82 @@
+% tkz-tools-text.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-tools-text.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% tkzText
+%<--------------------------------------------------------------------------–>
+\def\tkz@parsenode#1{%
+\tkz@getvirg#1,\@nil
+\iftkz@node
+\else
+ \tkz@getfromcart#1\@nil
+\fi
+}
+\def\tkz@getvirg#1,#2\@nil{%
+\ifx\tkzempty#2\tkzempty%
+ \tkz@nodetrue
+\else
+ \tkz@nodefalse
+\fi
+}
+\def\tkzText{\pgfutil@ifnextchar[{\tkz@Text}{\tkz@Text[]}}
+\def\tkz@Text[#1](#2)#3{%
+ \begingroup
+ \tkz@parsenode{#2}
+ \iftkz@node
+ \node[#1] at (#2){#3};
+ \else
+ \edef\tkzpt@xa{\fpeval{(\tkz@absc-\tkz@init@xorigine)/\tkz@init@xstep}}
+ \edef\tkzpt@ya{\fpeval{(\tkz@ord-\tkz@init@yorigine)/\tkz@init@ystep}}
+ \node[#1] at (\tkzpt@xa,\tkzpt@ya){#3};%
+ \fi
+\endgroup
+}%
+% %<--------------------------------------------------------------------------–>
+% % légende
+% %<--------------------------------------------------------------------------–>
+\pgfkeys{/tkzlegend/.cd,
+ line/.is if = tkz@legend@line,
+ line/.default = true,
+ line = false,
+ /tkzlegend/.search also = {/tikz},
+}
+\def\tkzLegend{\pgfutil@ifnextchar[{\tkz@Legend}{\tkz@Legend[]}}
+\def\tkz@Legend[#1](#2,#3)#4{%
+\pgfqkeys{/tkzlegend}{#1}
+\begingroup
+ \c@pgfmath@counta=0 %
+ \edef\tkzpt@xa{\fpeval{(#2-\tkz@init@xorigine)/\tkz@init@xstep}}
+ \edef\tkzpt@ya{\fpeval{(#3-\tkz@init@yorigine)/\tkz@init@ystep}}
+ \node[/tkzlegend/.cd,#1] at (\tkzpt@xa,\tkzpt@ya) {%
+\begin{tikzpicture}
+ \foreach \motif/\size/\col/\mtext in {#4}{%
+ \iftkz@legend@line
+ \draw[color = \col,
+ line width = \size,
+ style = \motif,
+ text = \tkz@mainlinecolor]%
+ (0cm ,\the\c@pgfmath@counta ex)--%
+ (\tkz@legend@line@len,\the\c@pgfmath@counta ex)
+ \else
+ \draw plot[mark size = \size,%
+ mark = \motif,%
+ mark options = {color=\col}]%
+ coordinates{(0 ex,\the\c@pgfmath@counta ex)}%
+ \fi
+ node[right=1ex] {\mtext};
+ \global\advance\c@pgfmath@counta by 3 %
+ }%
+
+\end{tikzpicture}%
+};%
+\endgroup
+}
+
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-utilities.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-utilities.tex
new file mode 100644
index 0000000000..cba0a88f80
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-utilities.tex
@@ -0,0 +1,182 @@
+% tkz-tools-utilities
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-tools-utilities.tex}
+\makeatletter
+% for testing results
+\def\extractxy#1{%
+\pgfextractx{\pgf@x}{\pgfpointanchor{#1}{center}}
+\pgfextracty{\pgf@y}{\pgfpointanchor{#1}{center}}
+\typeout{#1 \the\pgf@x,\the\pgf@y}
+}
+
+%<-------------- some tools ------------------------------------------------->
+\def\tkzutil@empty{}
+\def\tkzutil@firstofone#1{#1}
+\def\tkzutil@firstoftwo#1#2{#1}
+\def\tkzutil@secondoftwo#1#2{#2}
+%<--------------------------------------------------------------------------–>
+\long\def\tkzutil@ifundefined#1{%
+ \expandafter\ifx\csname#1\endcsname\relax
+ \expandafter\tkzutil@firstoftwo
+ \else
+ \expandafter\tkzutil@secondoftwo
+ \fi}
+%<--------------------------------------------------------------------------–>
+\long\def\iftkznodedefined#1#2#3{%
+ \tkzutil@ifundefined{pgf@sh@ns@#1}{#3}{#2}%
+}
+%<--------------------------------------------------------------------------–>
+\gdef\tkzActivOff{%
+ \edef\tkzTwoPtCode{\the\catcode`\:}
+ \edef\tkzPtExCode{\the\catcode`\!}
+ \edef\tkzPtVirCode{\the\catcode`\;}
+ \catcode`\:=12 \catcode`\!=12 \catcode`\;=12
+ }%
+\gdef\tkzActivOn{%
+ \catcode`\:=\tkzTwoPtCode\relax
+ \catcode`\!=\tkzPtExCode\relax
+ \catcode`\;=\tkzPtVirCode\relax
+}%
+%<------ Initialisation of the colors with tkzSetUpColors ----------------->
+% Première macro SetUpColors %%%%%%%%%%%%%%%%%%%%%
+%Possible
+\pgfkeys{/setupcolor/.is family}
+\def\setupcolorkeys#1{%
+ \pgfkeys{/setupcolor,#1}}
+\setupcolorkeys{
+ background/.estore in = \setupcolor@background,
+ text/.estore in = \setupcolor@text,
+ @initial/.style = {background=white,text=black},
+ @apply/.code = {\pagecolor{\setupcolor@background}%
+ \color{\setupcolor@text}%
+ },
+}
+\def\tkzSetUpColors{\pgfutil@ifnextchar[{\tkz@SetUpColors}{\tkz@SetUpColors[]}}
+\def\tkz@SetUpColors[#1]{\setupcolorkeys{@initial,#1,@apply}}
+
+%<------ Initialisation of all colors ----------------->
+\pgfkeys{/tkzsupallcol/.cd,
+ background/.store in = \tkz@suac@bkc,
+ text/.store in = \tkz@suac@txt,
+ background = \tkz@backgroundcolor,% see tkz-base.cfg
+ text = \tkz@textcolor% idem
+ }
+\def\tkzSetUpAllColors{\pgfutil@ifnextchar[{\tkz@SetUpAllColors}{%
+ \tkz@SetUpAllColors[]}}
+\def\tkz@SetUpAllColors[#1]{%
+ \pgfqkeys{/tkzsupallcol}{#1} % now we redine the based colors
+ \def\tkz@fillcolor{\tkz@suac@bkc}
+ \def\tkz@mainlinecolor{\tkz@suac@txt}
+ \def\tkz@textcolor{\tkz@suac@txt}
+ \def\tkz@otherlinecolor{\tkz@suac@txt!50}
+ \def\tkz@sua@color{\tkz@suac@txt}
+ \tkzSetUpAxis[color=\tkz@suac@txt]
+ \tkzSetUpGrid[color=\tkz@suac@txt]
+ \pagecolor{\tkz@suac@bkc}
+ \color{\tkz@suac@txt}
+}
+%<--------------------------------------------------------------------------–>
+% Pour savoir le nombre de décimales d'un nombre
+% le nombre dans #1 et le résultat dans \c@pgfmath@countb
+%<--------------------------------------------------------------------------–>
+\newcommand\tkz@getdecimal[1]{\expandafter\@getdecimal#1.\@nil}
+\def\@getdecimal#1.#2\@nil{%
+ \ifx\empty#2\empty
+ % Si #2 est vide, c'est qu'il n'y avait pas de point
+ % dans la chaîne initiale
+ \c@pgfmath@countb0 %
+ \gdef\tkz@decpart{}%
+ \else
+ % sinon c'est la chaîne qui suit le point décimal...
+ \CountToken{#2}%
+ % ... y compris le point en trop ajouté par \tkz@getdecimal :-)
+ \advance\c@pgfmath@countb by-1 %
+ \@@getdecimal#2\@nil
+ \fi
+}
+\def\@@getdecimal#1.\@nil{\gdef\tkz@decpart{#1}}
+%<---------------------------------------------------------–>
+% code from JCC modifi
+\newcommand\CountToken[1]{%
+ \c@pgfmath@countb0 %
+ \expandafter\C@untToken#1\@nil
+%modifi ajout du expandafter
+}
+\newcommand\C@untToken{%
+ \afterassignment\C@untT@ken\let\CurrT@ken=
+}
+\newcommand\C@untT@ken{%
+ \ifx\CurrT@ken\@nil \else
+ \advance\c@pgfmath@countb by1 %
+ \expandafter\C@untToken
+ \fi
+}
+% end code from JCC
+%<---------------------------------------------------------–>
+% Tools
+%<---------------------------------------------------------–>
+%<–––––––– code from TeX in Practice ––––––––>
+\def\SubStringConditional #1#2{%
+ TT\fi
+ \edef\@MainString{#1}%
+ \edef\@SubStringConditionalTemp{{#1}{#2}}%
+ \expandafter\@SubStringConditional\@SubStringConditionalTemp
+}
+\def\@SubStringConditional #1#2{%
+ \def\@TestSubS ##1#2##2\\{%
+ \def\@TestTemp{##1}%
+ }%
+ \@TestSubS #1#2\\
+ \ifx\@MainString\@TestTemp
+ \tkz@TestSubStringfalse
+ \else
+ \tkz@TestSubStringtrue
+ \fi
+ \iftkz@TestSubString
+}
+\def\RecursionMacroEnd #1#2#3{%
+ #1\relax
+ \def\@RecursionMacroEndNext{#2}%
+ \else
+ \def\@RecursionMacroEndNext{#3}%
+ \fi
+ \@RecursionMacroEndNext
+}
+\def\ReplaceSubStrings #1#2#3#4{%
+ \def\@ReplaceResult{#1}%
+ \edef\@ReplaceMain{#2}%
+ \edef\@ReplaceSub{#3}%
+ \edef\@ReplaceSubRep{#4}%
+ \@ReplaceSubStrings
+}
+\def\@ReplaceSubStrings{%
+ \RecursionMacroEnd
+ {\if\SubStringConditional{\@ReplaceMain}{\@ReplaceSub}}%
+ {\@ReplaceSubStringsDo}{\expandafter\edef\@ReplaceResult{\@ReplaceMain}}%
+}
+\def\@ReplaceSubStringsDoX{%
+ \def\@ReplaceSubStringsDoA ##1%
+}%
+\def\@ReplaceSubStringsDo{%
+ \expandafter\@ReplaceSubStringsDoX \@ReplaceSub
+ ##2\@EndReplaceSubStrings{%
+ \edef\@ReplaceMain{##1\@ReplaceSubRep ##2}%
+ }%
+ \expandafter\@ReplaceSubStringsDoA\@ReplaceMain
+ \@EndReplaceSubStrings
+ \@ReplaceSubStrings
+}
+%<---------------------------------------------------------–>
+\def\DisabledNumprint{%
+ \let\tkz@numprint\numprint
+ \let\numprint\relax
+ }
+\def\EnabledNumprint{\let\numprint\tkz@numprint}
+%<---------------------------------------------------------–>
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-base.cfg b/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-base.cfg
deleted file mode 100644
index 93df5aab27..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-base.cfg
+++ /dev/null
@@ -1,131 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-% original tkz-base.cfg
-%
-% If you modify this original file, YOUR CHANGES WILL BE LOST when it is
-% updated. Instead, put your changes in the entire copy of tkz-base.cfg
-% and save the file in a directory part of your TEXINPUTS environment
-% variable.
-
-\def\fileversion{1.16 d}
-\def\filedate{2018/09/19}
-\makeatletter
-%<--------- axes cartesian system ---------------------------------------–>
-\global\edef\tkz@init@color{\tkz@textcolor}
-\global\def\tkz@init@lw{0.4 pt}
-\global\def\tkz@init@tickwd{0.8 pt}
-\global\def\tkz@init@ticka{2 pt}
-\global\def\tkz@init@tickb{2 pt}
-\global\def\tkz@init@xlabel{$x$}
-\global\def\tkz@init@ylabel{$y$}
-\global\def\tkz@init@tickb{2 pt}
-\global\def\tkz@init@rightspace{.5}
-\global\def\tkz@init@leftspace{0}
-\global\def\tkz@init@upspace{.5}
-\global\def\tkz@init@downspace{0}
-\global\let\tkzmathstyle\displaystyle
-\global\def\tkz@legend@line@len{1cm}
-%<------------------------------ styles ---------------------------------–>
-\tikzset{xlabel style/.style={below=3 pt,
- inner sep = 1pt,
- outer sep = 0pt}}
-\tikzset{xaxe style/.style ={>=latex,->}}
-\tikzset{ylabel style/.style={left = 3 pt,
- inner sep = 1pt,
- outer sep = 0pt}}
-\tikzset{yaxe style/.style ={>=latex,->}}
-%<-------------------------- rep ---------------------------------------–>
-\global\edef\tkz@sur@color{\tkz@mainlinecolor}
-\global\edef\tkz@sur@colorlabel{\tkz@mainlinecolor}
-\global\def\tkz@sur@lw{0.8 pt}
-\global\def\tkz@sur@posxlabel{below=2pt}
-\global\def\tkz@sur@posylabel{left=2pt}
-\tikzset{rep style/.style={->,>=latex}}
-%<-------------------------- grid ---------------------------------------–>
-\global\edef\tkz@grid@color{gray}
-\global\def\tkz@grid@lw{0.4 pt}
-\global\def\tkzCoeffSubColor{50}
-\global\def\tkzCoeffSubLw{0.8}
-\global\def\tkz@grid@xstep{0.2}
-\global\def\tkz@grid@ystep{0.2}
-%<-------------------------- line ---------------------------------------–>
-\global\edef\tkz@euc@linecolor{\tkz@mainlinecolor}
-\global\def\tkz@euc@linewidth{0.6pt}
-\global\def\tkz@euc@linestyle{solid}
-\global\def\tkz@euc@lineleft{.2}
-\global\def\tkz@euc@lineright{.2}
-\tikzset{line style/.style={%
- line width = \tkz@euc@linewidth,
- color = \tkz@euc@linecolor,
- style = \tkz@euc@linestyle,
- add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}}
- }
-%<-------------------------- points -----------------------------------–>
-\global\edef\tkz@euc@pointshape{circle}
-\global\edef\tkz@euc@pointcolor{\tkz@mainlinecolor}
-\global\edef\tkz@euc@labelcolor{\tkz@mainlinecolor}
-\global\def\tkz@euc@pointsize{6}
-\global\def\tkz@euc@pointpos{below right}
-\global\edef\tkz@euc@segmentcolor{\tkz@mainlinecolor}
-\global\edef\tkz@euc@circlecolor{\tkz@mainlinecolor}
-\tikzset{point style/.style={draw = \tkz@euc@pointcolor,
- inner sep = 0pt,
- shape = \tkz@euc@pointshape,
- minimum size = \tkz@euc@pointsize*\pgflinewidth,
- fill = \tkz@euc@pointcolor!50}}
-%<------------------------- compass -----------------------------------–>
-\global\edef\tkz@euc@compasscolor{\tkz@otherlinecolor}
-\global\def\tkz@euc@compasswidth{0.4pt}
-\global\def\tkz@euc@compassstyle{solid}
-\tikzset{compass style/.style={color = \tkz@euc@compasscolor,
- line width = \tkz@euc@compasswidth,
- style = \tkz@euc@compassstyle}}
-%<---------------------------- mark -----------------------------------–>
-\global\edef\tkz@mk@color{\tkz@mainlinecolor}
-\global\edef\tkz@mk@mark{*}
-\global\edef\tkz@mk@size{3pt}
-\global\edef\tkz@mk@fill{\tkz@otherlinecolor}
-\tikzset{mark style/.style={mark=\tkz@mk@mark,mark size=\tkz@mk@size,mark options={color=\tkz@mk@color,fill=\tkz@mk@fill}}}
-%<---------------------- show coord -----------------------------------–>
-\tikzset{arrow coord style/.style={dashed,
- \tkz@euc@linecolor,
- >=latex',
- ->}}
-\tikzset{xcoord style/.style={\tkz@euc@labelcolor,
- font=\normalsize,text height=1ex,
- inner sep = 0pt,
- outer sep = 0pt,
- fill=\tkz@fillcolor,
- below=3pt}}
-\tikzset{ycoord style/.style={\tkz@euc@labelcolor,
- font=\normalsize,text height=1ex,
- inner sep = 0pt,
- outer sep = 0pt,
- fill=\tkz@fillcolor,
- left=3pt}}
-%<--------------------------- vector --------------------------------------–>
-\tikzset{vector style/.style={>=latex,->}}
-
-%<------------------------- Cartesian system -----------------------------–>
-% Default
-% Geometry Euclidean with unity for x and y = 1cm ---> step=1
-% 0 ≤ x ≤ 10
-% 0 ≤ y ≤ 10
-\xdef\tkz@init@xorigine{0}
-\xdef\tkz@init@yorigine{0}
-\xdef\tkz@init@xstep{1}
-\xdef\tkz@init@ystep{1}
-\xdef\tkz@init@xmin{0}
-\xdef\tkz@init@ymin{0}
-\xdef\tkz@init@xmax{10}
-\xdef\tkz@init@ymax{10}
-\xdef\tkz@init@xdec{1}
-\xdef\tkz@init@ydec{1}
-%<--------------------------------------------------------------------------–>
-\makeatother
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-base.sty b/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-base.sty
deleted file mode 100644
index 217b9a127b..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-base.sty
+++ /dev/null
@@ -1,197 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-% This work consists of the main source file interfaces.dtx
-% and the derived files
-
-% tkz-base.sty % this file
-% tkz-base.cfg
-% tkz-obj-marks.tex
-% tkz-obj-points.tex
-% tkz-obj-segments.tex
-% tkz-tools-arith.tex
-% tkz-tools-base.tex
-% tkz-tools-math.tex
-% tkz-tools-misc.tex
-% tkz-tools-obsolete.tex
-% tkz-tools-utilities.tex
-%<--------------------------------------------------------------------------–>
-% Objet : Outils pour la création de graphiques géométriques
-%<--------------------------------------------------------------------------–>
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tkz-base}[2018/09/19 1.16 d tkz-base]
-\ifx\e@alloc\@undefined
- \RequirePackage{etex}
-\fi
-\RequirePackage{tikz}
-\usetikzlibrary{calc,%
- arrows,%
- plotmarks,%
- positioning,%
- shapes.misc,%
- decorations,%
- decorations.markings,%
- decorations.pathreplacing,
- patterns}
-% Pour les les labels sur les axes
-\@ifpackageloaded{numprint}{}
-{\RequirePackage[autolanguage]{numprint}} %
-\RequirePackage{fp}
-% pas de messages de la part de fp !
-\FPmessagesfalse%
-\newdimen\tkzRadius
-\newdimen\tkzLength
-\newdimen\tkz@radi
-\newdimen\tkz@ax
-\newdimen\tkz@ay
-\newdimen\tkz@bx
-\newdimen\tkz@by
-\newdimen\tkz@cx
-\newdimen\tkz@cy
-\newdimen\tkz@dx
-\newdimen\tkz@dy
-\newif\iftkz@Y@noticks
-\newif\iftkz@Y@nograd
-\newif\iftkz@Y@orig
-\newif\iftkz@Y@unit
-\newif\iftkz@X@noticks
-\newif\iftkz@X@nograd
-\newif\iftkz@X@orig
-\newif\iftkz@X@unit
-\global\def\tkz@mathresult{}
-%<--------------------------- colors --------------------------------------->
-\def\tkz@backgroundcolor{white}
-\def\tkz@textcolor{black}
-\global\edef\tkz@fillcolor{\tkz@backgroundcolor}
-\global\edef\tkz@mainlinecolor{\tkz@textcolor}
-\global\edef\tkz@otherlinecolor{\tkz@mainlinecolor!50}
-\tikzset{%
- add/.style args={#1 and #2}{
- to path={%
- ($(\tikztostart)!-#1!(\tikztotarget)$)--($(\tikztotarget)!-#2!(\tikztostart)$)%
- \tikztonodes}}
-}
-%<--------- axes cartesian system ---------------------------------------–>
-\global\edef\tkz@init@color{\tkz@textcolor}
-\global\def\tkz@init@lw{0.4 pt}
-\global\edef\tkz@init@gradsize{\textstyle}
-\global\def\tkz@init@xlabel{$x$}
-\global\def\tkz@init@ylabel{$y$}
-\global\def\tkz@init@tickwd{0.8 pt}
-\global\def\tkz@init@ticka{2 pt}
-\global\def\tkz@init@tickb{2 pt}
-\global\def\tkz@init@rightspace{.5}
-\global\def\tkz@init@leftspace{0}
-\global\def\tkz@init@upspace{.5}
-\global\let\tkzmathstyle\displaystyle
-\global\def\tkz@init@downspace{0}
-%<------------------------------ styles ---------------------------------–>
-\tikzset{xlabel style/.style={below=3 pt,
- inner sep = 1pt,
- outer sep = 0pt}}
-\tikzset{xaxe style/.style ={>=latex,->}}
-\tikzset{ylabel style/.style={left = 3 pt,
- inner sep = 1pt,
- outer sep = 0pt}}
-\tikzset{yaxe style/.style ={>=latex,->}}
-%<-------------------------- rep ---------------------------------------–>
-\global\edef\tkz@sur@color{\tkz@mainlinecolor}
-\global\edef\tkz@sur@colorlabel{\tkz@mainlinecolor}
-\global\def\tkz@sur@lw{0.8 pt}
-\global\def\tkz@sur@posxlabel{below=2pt}
-\global\def\tkz@sur@posylabel{left=2pt}
-\tikzset{rep style/.style={->,>=latex}}
-%<-------------------------- grid ---------------------------------------–>
-\global\edef\tkz@grid@color{gray}
-\global\def\tkz@grid@lw{0.4 pt}
-\global\def\tkzCoeffSubColor{50}
-\global\def\tkzCoeffSubLw{0.8}
-\global\def\tkz@grid@xstep{0.2}
-\global\def\tkz@grid@ystep{0.2}
-%<-------------------------- line ---------------------------------------–>
-\global\edef\tkz@euc@linecolor{\tkz@mainlinecolor}
-\global\def\tkz@euc@linewidth{0.6pt}
-\global\def\tkz@euc@linestyle{solid}
-\global\def\tkz@euc@lineleft{.2}
-\global\def\tkz@euc@lineright{.2}
-\global\def\tkz@legend@line@len{1cm}
-\tikzset{line style/.style={%
- line width = \tkz@euc@linewidth,
- color = \tkz@euc@linecolor,
- style = \tkz@euc@linestyle,
- add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}}
- }
-%<-------------------------- points -----------------------------------–>
-\global\edef\tkz@euc@pointshape{circle}
-\global\edef\tkz@euc@pointcolor{\tkz@mainlinecolor}
-\global\edef\tkz@euc@labelcolor{\tkz@mainlinecolor}
-\global\def\tkz@euc@pointsize{6}
-\global\def\tkz@euc@pointpos{below right}
-\global\edef\tkz@euc@segmentcolor{\tkz@mainlinecolor}
-\global\edef\tkz@euc@circlecolor{\tkz@mainlinecolor}
-\tikzset{point style/.style={draw = \tkz@euc@pointcolor,
- inner sep = 0pt,
- shape = \tkz@euc@pointshape,
- minimum size = \tkz@euc@pointsize*\pgflinewidth,
- fill = \tkz@euc@pointcolor!50}}
-%<------------------------- compass -----------------------------------–>
-\global\edef\tkz@euc@compasscolor{\tkz@otherlinecolor}
-\global\def\tkz@euc@compasswidth{0.4pt}
-\global\def\tkz@euc@compassstyle{solid}
-\tikzset{compass style/.style={color = \tkz@euc@compasscolor,
- line width = \tkz@euc@compasswidth,
- style = \tkz@euc@compassstyle}}
-%<---------------------------- mark -----------------------------------–>
-\global\edef\tkz@mk@color{\tkz@mainlinecolor}
-\global\edef\tkz@mk@mark{*}
-\global\edef\tkz@mk@size{3pt}
-\global\edef\tkz@mk@fill{\tkz@otherlinecolor}
-\tikzset{mark style/.style={mark=\tkz@mk@mark,mark size=\tkz@mk@size,mark options={color=\tkz@mk@color,fill=\tkz@mk@fill}}}
-%<---------------------- show coord -----------------------------------–>
-\tikzset{arrow coord style/.style={dashed,
- \tkz@euc@linecolor,
- >=latex',
- ->}}
-\tikzset{xcoord style/.style={\tkz@euc@labelcolor,
- font=\normalsize,text height=1ex,
- inner sep = 0pt,
- outer sep = 0pt,
- fill=\tkz@fillcolor,
- below=3pt}}
-\tikzset{ycoord style/.style={\tkz@euc@labelcolor,
- font=\normalsize,text height=1ex,
- inner sep = 0pt,
- outer sep = 0pt,
- fill=\tkz@fillcolor,
- left=3pt}}
-%<--------------------------- vector --------------------------------------–>
-\tikzset{vector style/.style={>=latex,->}}
-%<------------------------- Cartesian system -----------------------------–>
-% Default
-% Geometry Euclidean with unity for x and y = 1cm ---> step=1
-% 0 ≤ x ≤ 10
-% 0 ≤ y ≤ 10
-\xdef\tkz@init@xorigine{0}
-\xdef\tkz@init@yorigine{0}
-\xdef\tkz@init@xstep{1}
-\xdef\tkz@init@ystep{1}
-\xdef\tkz@init@xmin{0}
-\xdef\tkz@init@ymin{0}
-\xdef\tkz@init@xmax{10}
-\xdef\tkz@init@ymax{10}
-\xdef\tkz@init@xdec{1}
-\xdef\tkz@init@ydec{1}
-
-\input{tkz-tools-utilities}% obligatoire
-\input{tkz-tools-arith}% used only for axis
-\input{tkz-tools-base}
-\input{tkz-tools-misc}
-\input{tkz-tools-math}
-\input{tkz-obj-points}
-\input{tkz-obj-segments}
-\input{tkz-obj-marks}
-\endinput
-
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-obj-points.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-obj-points.tex
deleted file mode 100644
index 88c99c3a17..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-obj-points.tex
+++ /dev/null
@@ -1,519 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 d}
-\def\filedate{2018/09/19}
-
-
-%<--------------------------------------------------------------------------–>
-% init def point
-%<--------------------------------------------------------------------------–>
-\newif\iftkz@polar\tkz@polarfalse
-\newif\iftkz@pt@polar
-\newif\iftkz@pt@show
-\newif\iftkz@pt@noname
-
-
-%<--------------------------------------------------------------------------–>
-\pgfdeclareshape{cross}
-{%
- \inheritsavedanchors[from=rectangle] % this is nearly a rectangle
- \inheritanchorborder[from=rectangle]
- \inheritanchor[from=rectangle]{north}
- \inheritanchor[from=rectangle]{north west}
- \inheritanchor[from=rectangle]{north east}
- \inheritanchor[from=rectangle]{center}
- \inheritanchor[from=rectangle]{west}
- \inheritanchor[from=rectangle]{east}
- \inheritanchor[from=rectangle]{mid}
- \inheritanchor[from=rectangle]{mid west}
- \inheritanchor[from=rectangle]{mid east}
- \inheritanchor[from=rectangle]{base}
- \inheritanchor[from=rectangle]{base west}
- \inheritanchor[from=rectangle]{base east}
- \inheritanchor[from=rectangle]{south}
- \inheritanchor[from=rectangle]{south west}
- \inheritanchor[from=rectangle]{south east}
- \foregroundpath{
-% store lower right in xa/ya and upper right in xb/yb
- \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
- \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
- \pgfpathmoveto{\pgfqpoint{0 pt}{\pgf@ya}}
- \pgfpathlineto{\pgfqpoint{0 pt}{\pgf@yb}}
- \pgfpathmoveto{\pgfqpoint{\pgf@xa}{0 pt}}
- \pgfpathlineto{\pgfqpoint{\pgf@xb}{0 pt}}
- }
-}
-%<--------------------------------------------------------------------------–>
-% tkzDefPoint
-%<--------------------------------------------------------------------------–>
-
-%<--------------------------------------------------------------------------–>
-% macros complémentaires pour def point
-%<--------------------------------------------------------------------------–>
-\def\tkz@parsecoordinate#1{%
-\tkz@getseparator#1,\@nil
-\iftkz@polar
- \tkz@getfrompolar#1\@nil
-\else
- \tkz@getfromcart#1\@nil
-\fi
-}
-\def\tkz@getseparator#1,#2\@nil{%
-\ifx\tkzempty#2\tkzempty%
- \tkz@polartrue
-\else
- \tkz@polarfalse
-\fi
-}
-\def\tkz@getfrompolar#1:#2\@nil{
- \FPeval\tkz@a{(#1)}
- \FPeval\tkz@r{(#2)}
-\global\edef\tkz@polarrad{\tkz@r}
-\global\edef\tkz@polarangle{\tkz@a}
-}
-\def\tkz@getfromcart#1,#2\@nil{
- \FPeval\tkz@x{(#1)}
- \FPeval\tkz@y{(#2)}
-\global\edef\tkz@absc{\tkz@x}
-\global\edef\tkz@ord{\tkz@y}
-}
-%<--------------------------------------------------------------------------–>
-% la macro defpoint les coordonnées cartésiennes ou polaires sont traitées
-% afin de pouvoir adaptées avec les unités choisies
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzDefPoint{\pgfutil@ifnextchar[{\tkzActivOff\tkz@DefPoint}{%
- \tkzActivOff\tkz@DefPoint[]}}
-
-\def\tkz@DefPoint[#1](#2)#{%
-\tkz@parsecoordinate{#2}
-\iftkz@polar
- \tkz@ptStar[polar](\tkz@polarangle,\tkz@polarrad){tkz@coord@temp}
- \else
- \tkz@ptStar[](#2){tkz@coord@temp}
- \fi
-\tkz@DefPointEnd[#1]}%
-\def\tkz@DefPointEnd[#1]#2{%
- \coordinate[#1] (#2) at (tkz@coord@temp);
-}
-%<--------------------------------------------------------------------------–>
-% tkzDefPoints
-%<--------------------------------------------------------------------------–>
-\def\tkzDefPoints{\pgfutil@ifnextchar[{\tkz@DefPoints}{%
- \tkz@DefPoints[]}}
-
-\def\tkz@DefPoints[#1]#2{%
-\begingroup
- \foreach \ptx/\pty/\name in {#2}{\tkzDefPoint[#1](\ptx,\pty){\name}}%
-\endgroup
-} %<--------------------------------------------------------------------------–>
-% Init pour Draw
-%<--------------------------------------------------------------------------–>
-\pgfkeys{%
-setuppt/.cd,
-size/.code = {\global\edef\tkz@pt@size{#1}},
-color/.code = {\global\edef\tkz@pt@color{#1}},
-fill/.code = {\global\edef\tkz@pt@fill{#1}},
-shape/.code = {\global\edef\tkz@pt@shape{#1}}
-}
-%<--------------------------------------------------------------------------–>
-% tkzSetUpPoint définit la forme d'un point
-%<--------------------------------------------------------------------------–>
-\def\tkzSetUpPoint{\pgfutil@ifnextchar[{\tkzActivOff\tkz@SetUpPoint}{%
- \tkzActivOff\tkz@SetUpPoint[]}}
-
-\def\tkz@SetUpPoint[#1]{%
-\pgfkeys{%
-/setuppt/.cd,
-size = \tkz@euc@pointsize,
-color = \tkz@euc@pointcolor,
-fill = \tkz@euc@pointcolor!50,
-shape = \tkz@euc@pointshape}
-\pgfqkeys{/setuppt}{#1}
-\tikzset{point style/.style={draw = \tkz@pt@color,
- inner sep = 0pt,
- shape = \tkz@pt@shape,
- minimum size = \tkz@pt@size*\pgflinewidth,
- fill = \tkz@pt@fill}}}%
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% Draw Point
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-%\tikzset{/drawpoint/size/.style={minimum size=#1*\pgflinewidth}}
-\pgfkeys{/drawpoint/.cd,
- size/.code = {\tikzset{point style/.append style={%
- minimum size = #1*\pgflinewidth}}},
- color/.code = {\tikzset{point style/.append style={%
- draw = #1}}},
- shape/.code = {\tikzset{point style/.append style={%
- shape=#1}}},
- fill/.code = {\tikzset{point style/.append style={%
- fill=#1}}} }
-
-\def\tkzDrawPoint{\pgfutil@ifnextchar[{\tkz@DrawPoint}{\tkz@DrawPoint[]}}
-\def\tkz@DrawPoint[#1](#2){%
-\begingroup
-\pgfkeys{/drawpoint/.cd}
-\pgfqkeys{/drawpoint}{#1}
-\node[point style] at (#2) {};
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawPoints{\pgfutil@ifnextchar[{\tkz@drawpts}{\tkz@drawpts[]}}
-%<--------------------------------------------------------------------------–>
-\def\tkz@drawpts[#1](#2){%
-\begingroup
-\pgfkeys{/drawpoint/.cd}
-\pgfqkeys{/drawpoint}{#1}
-\foreach \point in {#2}{%
- \node[point style] at (\point) {};}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% rename
-%<--------------------------------------------------------------------------–>
-% \def\tkzRenamePoint{\pgfutil@ifnextchar[{\tkzActivOff\tkz@RenamePoint}{%
-% \tkzActivOff\tkz@RenamePoint[]}}
-% \def\tkz@RenamePoint[#1](#2)#{%
-% \coordinate (tkz@coord@temp) at (#2);%
-% \pgfextractx{\pgf@x}{\pgfpointanchor{tkz@coord@temp}{center}}
-% \pgfextracty{\pgf@y}{\pgfpointanchor{tkz@coord@temp}{center}}
-% \tkz@ax\pgf@x %
-% \tkz@ay\pgf@y %
-% \tkz@RenamePointEnd[#1]}%
-%<--------------------------------------------------------------------------–>
-\def\tkzRenamePoint(#1)#2{\coordinate (#2) at (#1);}
-\def\tkz@RenamePointEnd[#1]#2{\coordinate[#1] (#2) at (\tkz@ax,\tkz@ay);}
-\def\tkzGetPoint#1{\coordinate (#1) at (tkzPointResult);}
-\def\tkzGetPoints#1#2{\coordinate (#1) at (tkzFirstPointResult);%
- \coordinate (#2) at (tkzSecondPointResult);}
-\def\tkzGetFirstPoint#1{\coordinate (#1) at (tkzFirstPointResult);}
-\def\tkzGetSecondPoint#1{\coordinate (#1) at (tkzSecondPointResult);}
-\def\tkzDefShiftPointCoord[#1](#2)#3{%
-\begin{scope}[shift={(#1)}]
- \coordinate (#3) at (#2);
-\end{scope}
-}%
-
-\def\tkzDefShiftPoint[#1](#2)#3{%
- \tkz@@extractxy{#1}
- \tkz@ax\pgf@x %
- \tkz@ay\pgf@y %
-\begin{scope}[shift={(\tkz@ax,\tkz@ay)}]
- \coordinate (#3) at (#2);
-\end{scope}
-}
-%<-------------------------------------------------------------------------–>
-% tkzLabelPoint Affichage des LABELS pour un point
-%<-------------------------------------------------------------------------–>
-% \newif\iftkz@mode@show
-% \tikzoption{show}{\tikz@addmode{\tkz@mode@showfalse}}
-\tikzset{label style/.style={\tkz@euc@pointpos,\tkz@euc@labelcolor,font=\normalsize}}
-\def\tkzLabelPoint{\pgfutil@ifnextchar[{\tkz@LabelPoint}{\tkz@LabelPoint[]}}
-\def\tkz@LabelPoint[#1](#2)#3{\node[label style,#1] at (#2) {#3};}%
-
-\def\tkzLabelPoints{\pgfutil@ifnextchar[{\tkz@LabelPoints}{%
- \tkz@LabelPoints[]}}%
-\def\tkz@LabelPoints[#1](#2){%
- \foreach \point in {#2}{
- \node[label style,#1] at (\point) {$\point$};}
-}%
-%<--------------------------------------------------------------------------–>
-% Coord
-%<--------------------------------------------------------------------------–>
-\newif\if@tkz@coord@noxdraw
-\newif\if@tkz@coord@noydraw
-\pgfkeys{
-/tkzprcoord/.cd,
- xlabel/.code = {\global\edef\tkz@xlabel{#1}},%
- ylabel/.code = {\global\edef\tkz@ylabel{#1}},
- xstyle/.code = {\tikzset{xcoord style/.append style={#1}}},
- ystyle/.code = {\tikzset{ycoord style/.append style={#1}}},
- noxdraw/.is if = @tkz@coord@noxdraw,
- noxdraw/.default = true,
- noydraw/.is if = @tkz@coord@noydraw,
- noydraw/.default = true,
- /tkzprcoord/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}
-}
- \def\tkzPointShowCoord{\pgfutil@ifnextchar[{\tkz@PointShowCoord}{%
- \tkz@PointShowCoord[]}}
-\def\tkz@PointShowCoord[#1](#2){%
-\begingroup
-\pgfkeys{%
-tkzprcoord/.cd,
- xlabel = {},
- ylabel = {},
- xstyle = {},
- ystyle = {},
- noxdraw = false,
- noydraw = false
- }
-\pgfqkeys{/tkzprcoord}{#1}
-\if@tkz@coord@noxdraw\else\draw[arrow coord style] (#2)--(#2 |- tkz@xline); \fi
-\if@tkz@coord@noydraw\else \draw[arrow coord style] (#2)--(#2 -| tkz@yline);\fi
-\ifx\tkzutil@empty\tkz@xlabel
-\else
- \protected@edef\tkz@temp{%
- \noexpand\path (#2)--(#2 |- tkz@xline)
- \noexpand node[xcoord style]}\tkz@temp {\tkz@xlabel};
-\fi
-\ifx\tkzutil@empty\tkz@ylabel
-\else
- \protected@edef\tkz@temp{%
- \noexpand\path (#2)--(#2 -| tkz@yline)
- \noexpand node[ycoord style]}\tkz@temp {\tkz@ylabel};
-\fi
-\endgroup
-}
-
-%<-------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% tkzPoint
-%<--------------------------------------------------------------------------–>
-\pgfkeys{
- tkzpt/.cd,
- pos/.code = {\def\tkz@pt@pos{#1}},
- size/.code = {\def\tkz@pt@size{#1}},
- name/.code = {\def\tkz@pt@name{#1}},
- namecolor/.code = {\def\tkz@pt@namecolor{#1}},
- time/.code = {\def\tkz@pt@time{#1}},
- color/.code = {\def\tkz@pt@color{#1}},
- shape/.code = {\def\tkz@pt@shape{#1}},
- polar/.is if = tkz@pt@polar,
- polar/.default = true,
- noname/.is if = tkz@pt@noname,
- noname/.default = true
-}
-
-\def\tkz@node#1{\path[coordinate](\ptxa,\ptya) coordinate(#1);}
-\def\tkz@drawnode#1{\path[coordinate](\ptxa,\ptya) coordinate(#1);
-\tkz@DrawPt{#1}
-}
-
-\def\tkz@draw@point#1{%
- \node[ inner sep = 0pt,
- shape = \tkz@pt@shape,%
- draw = \tkz@pt@color,%
- minimum size = \tkz@pt@size*\pgflinewidth,%
- fill = \tkz@pt@color] at (#1) {};}
-
-\def\tkzPoint{\@ifstar\tkzptStar\tkzptNoStar}
-\def\tkzptNoStar{\pgfutil@ifnextchar[{\tkz@ptNoStar}{\tkz@ptNoStar[]}}
-\def\tkz@ptNoStar[#1](#2,#3)#{%
-\pgfkeys{/tkzpt/.cd,
- noname = false,% pas de nom
- name = {},% le nom est vide
- polar = false,%
- namecolor = \tkz@euc@labelcolor,% couleur du nom
- pos = \tkz@euc@pointpos,% name
- shape = \tkz@euc@pointshape,%
- color = \tkz@euc@pointcolor,% couleur du point
- size = \tkz@euc@pointsize,%
- time = 0.5
-}
-\pgfqkeys{/tkzpt}{#1}
- \iftkz@pt@polar%
- \FPeval\tkz@x{(#2*cos(#3*\FPpi/180))}
- \FPeval\tkz@y{(#2*sin(#3*\FPpi/180))}
- \else
- \FPeval\tkz@x{(#2)}
- \FPeval\tkz@y{(#3)}
- \fi
-
- \FPadd{\ptxa}{\tkz@x}{-\tkz@init@xorigine}
- \FPadd{\ptya}{\tkz@y}{-\tkz@init@yorigine}
- \FPdiv{\ptxa}{\ptxa}{\tkz@init@xstep}
- \FPdiv{\ptya}{\ptya}{\tkz@init@ystep}
- \tkz@drawnode
-}
-% dessin du point (par défaut c'est un node donc il ne peut pas être scalé)
-\def\tkz@DrawPt#1{%
- \iftkz@pt@noname% pas de nom rien
- \else% si name={} alors on prend le nom du node sinon name
- \ifx\tkzutil@empty\tkz@pt@name\def\tkz@pt@name{$#1$}%
- \fi
- \protected@edef\tkz@temp{%
- \noexpand \node[\tkz@pt@pos]}\tkz@temp at (#1)%
- {\textcolor{\tkz@pt@namecolor} {\tkz@pt@name}};%
- \fi
-% on retrace ??? ici ou après le fi
-\tkz@draw@point{#1}
-}
-
-%<--------------------------------------------------------------------------–>
-% Star version tkzPoint*
-%<--------------------------------------------------------------------------–>
-\def\tkzptStar{\pgfutil@ifnextchar[{\tkz@ptStar}{\tkz@ptStar[]}}
-\def\tkz@ptStar[#1](#2,#3)#{%
-\pgfkeys{/tkzpt/.cd,
- polar = false,%
-}
-\pgfqkeys{/tkzpt}{#1}
-\iftkz@pt@polar%
- \FPeval\tkz@x{(#3*cos(#2*\FPpi/180))}
- \FPeval\tkz@y{(#3*sin(#2*\FPpi/180))}
-\else
- \FPeval\tkz@x{(#2)}
- \FPeval\tkz@y{(#3)}
-\fi
-\FPadd{\ptxa}{\tkz@x}{-\tkz@init@xorigine}
-\FPadd{\ptya}{\tkz@y}{-\tkz@init@yorigine}
-\FPdiv{\ptxa}{\ptxa}{\tkz@init@xstep}
-\FPdiv{\ptya}{\ptya}{\tkz@init@ystep}
-\tkz@node
-}
-
-%<--------------------------------------------------------------------------–>
-% Points
-%<--------------------------------------------------------------------------–>
-\def\tkzPoints{\pgfutil@ifnextchar[{\tkz@Points}{\tkz@Points[]}}
-\def\tkz@Points[#1](#2){%
-\begingroup
- \foreach \ptx/\pty/\name in {#2}{%
- \tkzPoint[#1](\ptx,\pty){\name}%
- }
-\endgroup
-}
-
- %<--------------------------------------------------------------------------–>
-% macro d'affichage %
-%<--------------------------------------------------------------------------–>
-\pgfqkeys{/pointwith}
-{ orthogonal/.code =\def\tkz@numv{0},
- orthogonal normed/.code =\def\tkz@numv{1},
- linear/.code =\def\tkz@numv{2},
- linear normed/.code =\def\tkz@numv{3},
- colinear/.code args ={at #1} {\global\def\tkz@numv{4}
- \global\def\tkz@frompoint{#1}},
- K/.code =\def\tkz@Koeff{#1}
- }
-
-\def\tkzDefPointWith{\pgfutil@ifnextchar[{\tkz@DefPointWith}{%
- \tkz@DefPointWith[]}}
-\def\tkz@DefPointWith[#1](#2){%
-\pgfqkeys{/pointwith}{linear,K=1}
-\pgfqkeys{/pointwith}{#1}
-\ifcase\tkz@numv%
- % first case 0
- \tkz@VecKOrth[\tkz@Koeff](#2){tkzPointResult}
- \or% 1
- \tkz@VecKOrthNorm[\tkz@Koeff](#2){tkzPointResult}
- \or% 2
- \tkz@VecK[\tkz@Koeff](#2){tkzPointResult}
- \or% 3
- \tkz@VecKNorm[\tkz@Koeff](#2){tkzPointResult}
- \or% 4
- \tkz@VecKCoLinear[\tkz@Koeff](#2,\tkz@frompoint){tkzPointResult}
- \fi
-}
-
-%<-------------------------------------------------------------------------–>
-% % % Points aléatoires sur un segment, une droite, une demi-droite un cercle
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% les points aléatoires
-%<--------------------------------------------------------------------------–>
-\def\tkz@numrp{0}
-\pgfkeys{/tkzDefRandPoint/.cd,
-rectangle/.code args={#1 and #2}{\global\def\tkz@numrp{0}%
- \global\def\tkz@infl{#1}%
- \global\def\tkz@supr{#2}},
-segment/.code args={#1--#2}{\global\def\tkz@numrp{1}%
- \global\def\tkz@start{#1}%
- \global\def\tkz@end{#2}},
-line/.code args={#1--#2}{\global\def\tkz@numrp{2}%
- \global\def\tkz@start{#1}%
- \global\def\tkz@end{#2}},
-circle/.code args={center #1 radius #2}{\def\tkz@numrp{3}%
- \global\def\tkz@center{#1}
- \global\def\tkz@rad{#2}}
-}
-
-\def\tkzGetRandPointOn{\pgfutil@ifnextchar[{\tkz@DefRandPointOn}{%
- \tkz@DefRandPointOn[]}}
-\def\tkz@DefRandPointOn[#1]#2{%
-\begingroup
-\pgfkeys{/tkzDefRandPoint/.cd}
-\pgfqkeys{/tkzDefRandPoint}{#1}
-\ifcase\tkz@numrp%
- % first case 0
- \tkzRandPointOnRect(\tkz@infl,\tkz@supr){#2}
- \or% 1
- \tkzRandPointOnSegment(\tkz@start,\tkz@end){#2}
- \or% 2
- \tkzRandPointOnLine(\tkz@start,\tkz@end){#2}
- \or% 3
- \tkzRandPointOnCircle(\tkz@center,\tkz@rad){#2}
-\fi
-\endgroup
-}
-
-\def\tkzRandPointOnRect(#1,#2)#3{%
-\tkz@@extractxy{#1}
- \pgf@xa=\pgf@x\relax%
- \pgf@ya=\pgf@y\relax%
-\tkz@@extractxy{#2}
- \pgf@xb=\pgf@x\relax%
- \pgf@yb=\pgf@y\relax%
-\FPadd{\tkz@a}{\pgf@sys@tonumber{\pgf@xb}}{-\pgf@sys@tonumber{\pgf@xa}}
-\FPadd{\tkz@b}{\pgf@sys@tonumber{\pgf@yb}}{-\pgf@sys@tonumber{\pgf@ya}}
- \pgfmathparse{rnd}\global\let\myrndone\pgfmathresult
- \pgfmathparse{rnd}\global\let\myrndtwo\pgfmathresult
-\path[coordinate] ($(#1)+(\myrndone*\tkz@a pt,%
- \myrndtwo*\tkz@b pt)$) coordinate (#3);
- }
-
-\def\tkzRandPointOnSegment(#1,#2)#3{%
- \pgfmathparse{rnd}\global\let\myrnd\pgfmathresult
-\path[coordinate] ($ (#1)!\myrnd!(#2) $) coordinate (#3);}
-
-\def\tkzRandPointOnLine(#1,#2)#3{%
- \pgfmathparse{rand}\global\let\myrnd\pgfmathresult
-\path[coordinate] ($ (#1)!\myrnd!(#2) $) coordinate (#3);}
-
-\def\tkzRandPointOnCircle(#1,#2)#3{%
-\pgfmathrandominteger{\myrnd}{0}{360}
-\tkz@ax#2 %
-\FPeval\tkz@xa{\pgf@sys@tonumber{\tkz@ax}*cos(\myrnd*\FPpi/180)}
-\FPeval\tkz@xb{\pgf@sys@tonumber{\tkz@ax}*sin(\myrnd*\FPpi/180)}
-\path[coordinate]($(#1) + (\tkz@xa pt,\tkz@xb pt) $) coordinate (#3);
-}
-
-%<--------------------------------------------------------------------------–>
-% Coordonnées d'un point
-% result in #2x et #2y #1 est le point et on récupère ses coordonnées
-% usage soit A un point \tkzGetPointCoord(A){V} alors \Vx = xA et \Vy = yA
-% en cm
-% tkzGetPointCoord avec [#1] cm ou bien pt !!! %<--------------------------------------------------------------------------–>
-\def\tkzGetPointCoord(#1)#2{%
-\begingroup
-\pgfextractx{\pgf@x}{\pgfpointanchor{#1}{center}}
-\pgfmathparse{\pgf@sys@tonumber{\pgf@x}/28.45274}
-\global\let\tkzresultx\pgfmathresult
-\global\expandafter\edef\csname #2x\endcsname{\tkzresultx}%
-\pgfextracty{\pgf@y}{\pgfpointanchor{#1}{center}}
-\pgfmathparse{\pgf@sys@tonumber{\pgf@y}/28.45274}
-\global\let\tkzresulty\pgfmathresult
-\global\expandafter\edef\csname #2y\endcsname{\tkzresulty}
-\endgroup
-}
-
-\def\tkz@@extractxy#1{%
-\pgfextractx{\pgf@x}{\pgfpointanchor{#1}{center}}
-\pgfextracty{\pgf@y}{\pgfpointanchor{#1}{center}}
-}
-\let\tkzGetPointxy\tkzGetPointCoord
-%<--------------------------------------------------------------------------–>
-
-\endinput
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-obj-segments.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-obj-segments.tex
deleted file mode 100644
index 4826368640..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-obj-segments.tex
+++ /dev/null
@@ -1,142 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 d}
-\def\filedate{2018/09/19}
-
-%<--------------------------------------------------------------------------–>
-% Setup Segment
-%<--------------------------------------------------------------------------–>
-
-%<--------------------------------------------------------------------------–>
-% draw segment (s)
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawSegment{\pgfutil@ifnextchar[{\tkz@DrawSegment}{%
- \tkz@DrawSegment[]}}
-\def\tkz@DrawSegment[#1](#2,#3){%
-\begingroup
- \draw[line style,add=0 and 0,#1] (#2) to (#3);
-\endgroup
-}%
-
-\def\tkz@multiDrawSeg#1 #2\@nil{%
- \protected@edef\tkz@temp{
- \noexpand \tkzDrawSegment[\tkz@optseg](#1)}\tkz@temp%
- \def\tkz@nextArg{#2}%
- \ifx\tkzutil@empty\tkz@nextArg
- \let\next\@gobble
- \fi
- \next#2\@nil
-}
-\def\tkzDrawSegments{\pgfutil@ifnextchar[{\tkz@DrawSegments}{%
- \tkz@DrawSegments[]}}
-\def\tkz@DrawSegments[#1](#2){%
-\global\edef\tkz@optseg{#1}
-\begingroup
- \let\next\tkz@multiDrawSeg
- \next#2 \@nil %
-\endgroup
-}
-%<-------------------------------------------------------------------------–>
-%<-------------------------------------------------------------------------–>
-\pgfkeys{tkzmarkoptions/.cd,
-pos/.code = {\global\def\tkz@mkpos{#1}},
-color/.code = {\global\def\tkz@mkcolor{#1}},
-mark/.code = {\global\def\tkz@mark{#1}},
-size/.code = {\global\def\tkz@mksize{#1}},
-/tkzmarkoptions/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}
- }
-}
-
-\def\tkzMarkSegment{\pgfutil@ifnextchar[{\tkz@MarkSegment}{%
- \tkz@MarkSegment[]}}
-\def\tkz@MarkSegment[#1](#2,#3){%
-\pgfkeys{tkzmarkoptions/.cd,
- size = 4pt,
- color = \tkz@mk@color,
- pos = .5,
- mark = none}
-\pgfqkeys{/tkzmarkoptions}{#1}
-
-\global\def\tkz@mymark{%
- \pgfsetplotmarksize{\tkz@mksize}
- \pgfuseplotmark{\tkz@mark}
-}
-\begin{scope} [decoration={ markings,mark=at position \tkz@mkpos with \tkz@mymark}]
-\path [\tkz@mkcolor,postaction={decorate}] (#2) -- (#3);
-\end{scope}
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% multiple
-\def\tkz@multiMS#1 #2\@nil{%
- \protected@edef\tkz@temp{
- \noexpand \tkzMarkSegment[\tkz@optsg](#1)}\tkz@temp%
- \def\tkz@nextArg{#2}%
- \ifx\tkzutil@empty\tkz@nextArg
- \let\next\@gobble
- \fi
- \next#2\@nil
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzMarkSegments{\pgfutil@ifnextchar[{\tkz@MarkSegments}{%
- \tkz@MarkSegments[]}}
-\def\tkz@MarkSegments[#1](#2){%
-\global\edef\tkz@optsg{#1}
- \begingroup
- \let\next\tkz@multiMS
- \next#2 \@nil %
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<------------------------- Label on segment -------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzLabelSegment{\pgfutil@ifnextchar[{\tkz@LabelSegment}{%
- \tkz@LabelSegment[]}}
-\def\tkz@LabelSegment[#1](#2,#3)#4{%
-\begingroup
-\path (#2) to node[above,#1]{#4} (#3) ;
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% multiple
-\def\tkz@multiLS#1 #2\@nil{%
- \protected@edef\tkz@temp{
- \noexpand \tkzLabelSegment[\tkz@optls](#1){\tkz@labelseg}}\tkz@temp%
- \def\tkz@nextArg{#2}%
- \ifx\tkzutil@empty\tkz@nextArg
- \let\next\@gobble
- \fi
- \next#2\@nil
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzLabelSegments{\pgfutil@ifnextchar[{\tkz@LabelSegments}{%
- \tkz@LabelSegments[]}}
-\def\tkz@LabelSegments[#1](#2)#3{%
-\global\edef\tkz@optls{#1}
-\global\def\tkz@labelseg{#3}
- \begingroup
- \let\next\tkz@multiLS
- \next#2 \@nil %
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% PolySeg
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawPolySeg{\pgfutil@ifnextchar[{\tkz@DrawPolySeg}{%
- \tkz@DrawPolySeg[]}}
-\def\tkz@DrawPolySeg[#1](#2,#3){%
-\begingroup
-\draw[#1] (#2)
- \foreach \tkz@pt in {#3}{--(\tkz@pt)};%
-\endgroup
-}
-\endinput
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-base.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-base.tex
deleted file mode 100644
index ee7c879bd8..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-base.tex
+++ /dev/null
@@ -1,700 +0,0 @@
-% tkz-tools-base.tex
-% Copyright 2011 by Alain Matthes
-% This file may be distributed and/or modified
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-% utf8 encoding
-
-\def\fileversion{1.16 d}
-\def\filedate{2018/09/19}
-
-%<--------------------------------------------------------------------------–>
-\global\let\@xa\tkz@init@xmin
-\global\let\@xb\tkz@init@xmax
-\global\let\@ya\tkz@init@ymin
-\global\let\@yb\tkz@init@ymax
-%<--------------------------------------------------------------------------–>
-\gdef\xgrad{1}
-\gdef\ygrad{1}
-\gdef\tkz@xa{0}
-\gdef\tkz@xb{10}
-\gdef\tkz@ya{0}
-\gdef\tkz@yb{10}
-\newif\iftkz@init@NO
-\pgfkeys{
- /tkzInit/.cd,
- xmin/.code = {\def\tkz@init@xmin{#1}},
- xmax/.code = {\def\tkz@init@xmax{#1}},
- xstep/.code = {\def\tkz@init@xstep{#1}},
- ymin/.code = {\def\tkz@init@ymin{#1}},
- ymax/.code = {\def\tkz@init@ymax{#1}},
- ystep/.code = {\def\tkz@init@ystep{#1}},
- NO/.is if = tkz@init@NO,
- NO/.default = true }
-
-\def\tkzInit{\pgfutil@ifnextchar[{\tkz@Init}{\tkz@Init[]}}
-\def\tkz@Init[#1]{%
-\pgfkeys{/tkzInit/.cd,
- xmin = 0,
- xmax = 10,
- xstep = 1,
- ymin = 0,
- ymax = 10,
- ystep = 1,
- NO = false
-}
- \pgfqkeys{/tkzInit}{#1}
- \ifx\tkzfctloaded\undefined
- \else
- \tkz@tkzf@fct=0 % only if tkz-fct loaded
- \fi
- \xdef\tkz@init@xorigine{0}
- \xdef\tkz@init@yorigine{0}
- \FPsgn\@xsgmin{\tkz@init@xmin}
- \FPsgn\@xsgmax{\tkz@init@xmax}
- \FPsgn\@ysgmin{\tkz@init@ymin}
- \FPsgn\@ysgmax{\tkz@init@ymax}
- \global\let\@xa\tkz@init@xmin
- \global\let\@xb\tkz@init@xmax
- \global\let\@ya\tkz@init@ymin
- \global\let\@yb\tkz@init@ymax
- \tkz@init@NOfalse
- \ifx\@xsgmin\@xsgmax \tkz@init@NOtrue \fi
- \ifx\@ysgmin\@ysgmax \tkz@init@NOtrue \fi
- \iftkz@init@NO%
- \ifx\@xsgmin\@xsgmax
- \FPadd{\tkz@init@xmax}{\tkz@init@xmax}{-\tkz@init@xmin}%
- \edef\tkz@init@xorigine{\tkz@init@xmin}
- \edef\tkz@init@xmin{0}
- \fi
-
- \ifx\@ysgmin\@ysgmax
- \FPadd{\tkz@init@ymax}{\tkz@init@ymax}{-\tkz@init@ymin}%
- \edef\tkz@init@yorigine{\tkz@init@ymin}
- \edef\tkz@init@ymin{0}
- \fi
- \fi
- \FPdiv{\tkz@xa}{\tkz@init@xmin}{\tkz@init@xstep}
- \FPdiv{\tkz@xb}{\tkz@init@xmax}{\tkz@init@xstep}
- \FPdiv{\tkz@ya}{\tkz@init@ymin}{\tkz@init@ystep}
- \FPdiv{\tkz@yb}{\tkz@init@ymax}{\tkz@init@ystep}
- \tkz@getdecimal{\tkz@init@xstep} % amélioration nb dec et integer
- \global\edef\tkz@init@xdec{\number\c@pgfmath@countb}
- \tkz@getdecimal{\tkz@init@ystep}
- \global\edef\tkz@init@ydec{\number\c@pgfmath@countb}
-}%
-%<--------------------------------------------------------------------------–>
-\pgfkeys{Clip/.cd, space/.code = {\def\tkz@CLI@space{#1}}}
-
-\def\tkzClip{\pgfutil@ifnextchar[{\tkz@Clip}{\tkz@Clip[]}}
-\def\tkz@Clip[#1]{%
-\pgfkeys{Clip/.cd,space = {}}
-\pgfqkeys{/Clip}{#1}
-\ifx\tkzutil@empty\tkz@CLI@space
- \clip (\tkz@xa,\tkz@ya) rectangle (\tkz@xb,\tkz@yb);
- \else
- \FPadd{\tkz@xxa}{\tkz@xa}{-\tkz@CLI@space}
- \FPadd{\tkz@yya}{\tkz@ya}{-\tkz@CLI@space}
- \FPadd{\tkz@xxb}{\tkz@xb}{\tkz@CLI@space}
- \FPadd{\tkz@yyb}{\tkz@yb}{\tkz@CLI@space}
- \clip (\tkz@xxa,\tkz@yya) rectangle (\tkz@xxb,\tkz@yyb);
-\fi
-}
-%todo add options
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkz@showgrad#1{%
-\FPifint{#1}\FPtrunc\tkz@result{#1}{0}\else\FPset\tkz@result{#1}\fi}%
-
-\def\tkz@Xresult{%
-\tkz@showgrad{\xgrad}%
- $\numprint{\tkz@result}$%
-}%
-%<--------------------------------------------------------------------------–>
-\def\tkz@Yresult{%
-\tkz@showgrad{\ygrad}%
-$\numprint{\tkz@result}$
-}%
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkz@Xshowgradresult{%
-\iftkz@X@orig
-\tkz@Xresult%
-\else % orig
- \iftkz@init@NO%
- \unless\ifx\tkz@pos\tkz@posmin
- \tkz@Xresult\fi
- \else % NO
- \unless\ifx\tkz@pos\x@tkzero%
- \tkz@Xresult
- \fi%end of x@tkzero
- \fi%end of NO
-\fi%end of orig
-}%
-%<--------------------------------------------------------------------------–>
-\def\tkz@Yshowgradresult{%
-\iftkz@Y@orig
-\tkz@Yresult%
-\else % orig
- \iftkz@init@NO%
- \unless\ifx\tkz@pos\tkz@posmin
- \tkz@Yresult\fi
- \else % NO
- \unless\ifx\tkz@pos\y@tkzero%
- \tkz@Yresult
- \fi%end of x@tkzero
- \fi%end of NO
-\fi%end of orig
-}%
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkz@Xshowgrad{%
-\iftkz@X@orig
-\tkzprintfrac%
-\else % orig
- \iftkz@init@NO%
- \unless\ifx\tz@pos\tkz@posmin
- \tkzprintfrac\fi
- \else % NO
- \unless\ifx\tz@pos\x@tkzero%
- \tkzprintfrac
- \fi%end of x@tkzero
- \fi%end of NO
-\fi%end of orig
-}%
-%<--------------------------------------------------------------------------–>
-\def\tkz@Yshowgrad{%
-\iftkz@Y@orig
-\tkzprintfrac%
-\else % orig
- \iftkz@init@NO%
- \unless\ifx\tz@pos\tkz@posmin
- \tkzprintfrac\fi
- \else % NO
- \unless\ifx\tz@pos\y@tkzero%
- \tkzprintfrac
- \fi%end of x@tkzero
- \fi%end of NO
-\fi%end of orig
-}%
-
-%<--------------------------------------------------------------------------–>
-% Setup axe
-%<--------------------------------------------------------------------------–>
-\pgfkeys{tkzaxis/.cd,
-line width/.code = {\global\edef\tkz@sua@lw{#1}},
-color/.code = {\global\edef\tkz@sua@color{#1}},
-tickwd/.code = {\global\edef\tkz@sua@tickwd{#1}},
-ticka/.code = {\global\edef\tkz@sua@ticka{#1}},
-tickb/.code = {\global\edef\tkz@sua@tickb{#1}}
-}
-
-\def\tkzSetUpAxis{\pgfutil@ifnextchar[{\tkz@SetUpAxis}{\tkz@SetUpAxis[]}}
-\def\tkz@SetUpAxis[#1]{%
-\begingroup
- \pgfkeys{/tkzaxis/.cd,
- line width = \tkz@init@lw,
- color = \tkz@init@color,
- tickwd = \tkz@init@tickwd,
- ticka = \tkz@init@ticka,
- tickb = \tkz@init@tickb
- }
-\pgfqkeys{/tkzaxis}{#1}
-\global\let\tkz@init@lw\tkz@sua@lw
-\global\let\tkz@init@gradsize\tkz@sua@gradsize
-\global\let\tkz@init@color\tkz@sua@color
-\global\let\tkz@init@tickwd\tkz@sua@tickwd
-\global\let\tkz@init@ticka\tkz@sua@ticka
-\global\let\tkz@init@tickb\tkz@sua@tickb
-\endgroup}
-%<--------------------------------------------------------------------------–>
-% tkzDrawX todo améliorer les unités
-%<--------------------------------------------------------------------------–>
-\pgfkeys{% prob avec space
-tkzdrawX/.cd,
-color/.code = {\global\def\tkz@X@color{#1}},
-label/.code = {\global\def\tkz@X@label{#1}},
-right space/.code = {\global\def\tkz@axe@rxspace{#1}},
-left space/.code = {\global\def\tkz@axe@lxspace{#1}},
-noticks/.is if = tkz@X@noticks,
-noticks/.default = true,
-trig/.code = {\global\def\tkz@X@trig{#1}},
-step/.code = {\FPeval\tkz@posnext{#1}},
-tickwd/.code = {\global\def\tkz@X@tickwd{#1}},
-tickup/.code = {\global\def\tkz@X@tickup{#1}},
-tickdn/.code = {\global\def\tkz@X@tickdn{#1}},
-/tkzdrawX/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}}
-
-\def\tkzDrawX{\pgfutil@ifnextchar[{\tkz@DrawX}{\tkz@DrawX[]}}
-\def\tkz@DrawX[#1]{
-\begingroup%
-\pgfkeys{/tkzdrawX/.cd,
-color = \tkz@init@color,
-label = \tkz@init@xlabel,
-trig = 0,
-step = \tkz@init@xstep,
-right space = \tkz@init@rightspace,
-left space = \tkz@init@leftspace,
-noticks = false,
-tickwd = \tkz@init@tickwd,
-tickup = \tkz@init@ticka,
-tickdn = \tkz@init@tickb}
-\pgfqkeys{/tkzdrawX}{#1}
-\FPtrunc\tkz@posmax{\tkz@xb}{\tkz@init@xdec}
-\FPtrunc\tkz@posmin{\tkz@xa}{\tkz@init@xdec}
-\FPadd\tkz@xbsup{\tkz@xb}{\tkz@axe@rxspace}
-\FPadd\tkz@xainf{\tkz@xa}{-\tkz@axe@lxspace}
-\path (\tkz@xainf,0)--(\tkz@xbsup,0) node(tkz@xline){};
-\draw[xaxe style,
- color = \tkz@X@color,
- /tkzdrawX/.cd, #1] (\tkz@xainf,0)--(\tkz@xbsup,0)
- node[xlabel style, /tkzdrawX/.cd, #1]{\tkz@X@label};
- \iftkz@X@noticks
- \else
- \ifnum\tkz@X@trig=0
- \FPtrunc\tkz@posmax{\tkz@posmax}{\tkz@init@xdec}%
- \FPdiv\tkz@posnext{\tkz@posnext}{\tkz@init@xstep}
- \FPadd\tz@posnext{\tkz@posmin}{\tkz@posnext}
- \foreach \tz@pos in {\tkz@posmin,\tz@posnext,...,\tkz@posmax}{%
- \draw[color = \tkz@X@color,
- line width = \tkz@X@tickwd,
- shift = {(\tz@pos,0)}]%
- (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn);}
- \else
- \FPadd{\tkz@posmin}{\tkz@posmin}{.5}%
- \FPdiv\tkz@posmax{\tkz@posmax}{\FPpi}%
- \FPmul\tkz@posmax{\tkz@posmax}{\tkz@X@trig}%
- \FPdiv\tkz@posmin{\tkz@posmin}{\FPpi}%
- \FPmul\tkz@posmin{\tkz@posmin}{\tkz@X@trig}%
- \FPround\tkz@posmin{\tkz@posmin}{0}%
- \foreach \tz@pos in {\tkz@posmin,...,\tkz@posmax}{%
- \FPmul\tz@pospi{\tz@pos}{\FPpi}
- \FPdiv\tz@pospi{\tz@pospi}{\tkz@X@trig}%
- \draw[color = \tkz@X@color,
- line width = \tkz@X@tickwd,%
- shift = {(\tz@pospi,0)}]%
- (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn);
- }% end foreach
- \fi
- \fi
-\endgroup}
-%<--------------------------------------------------------------------------–>
-\pgfkeys{% prob avec space
-tkzAxeX/.cd,
-color/.code = {\def\tkz@X@color{#1}},
-label/.code = {\global\def\tkz@X@label{#1}},
-frac/.code = {\def\tkzX@frac{#1}},
-trig/.code = {\def\tkzX@trig{#1}},
-/tkzAxeX/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}}
-
-\def\tkzAxeX{\pgfutil@ifnextchar[{\tkz@AxeX}{\tkz@AxeX[]}}
-\def\tkz@AxeX[#1]{%
-\begingroup
-\tkzLabelX[#1] \tkzDrawX[#1]
-\endgroup
-}
-
-
-%<--------------------------------------------------------------------------–>
-% tkzDrawY todo améliorer les unités
-%<--------------------------------------------------------------------------–>
-\pgfkeys{% prob avec space
-tkzdrawY/.cd,
-color/.code = {\def\tkz@Y@color{#1}},
-label/.code = {\def\tkz@Y@label{#1}},
-up space/.code = {\global\def\tkz@axe@uyspace{#1}},
-down space/.code = {\global\def\tkz@axe@dyspace{#1}},
-noticks/.is if = tkz@Y@noticks,
-noticks/.default = true,
-trig/.code = {\global\def\tkz@Y@trig{#1}},
-step/.code = {\FPeval\tkz@posnext{#1}},
-tickwd/.code = {\global\def\tkz@Y@tickwd{#1}},
-ticklt/.code = {\global\def\tkz@Y@ticklt{#1}},
-tickrt/.code = {\global\def\tkz@Y@tickrt{#1}},
-/tkzdrawY/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}}
-
-\def\tkzDrawY{\pgfutil@ifnextchar[{\tkz@DrawY}{\tkz@DrawY[]}}
-\def\tkz@DrawY[#1]{%
-\begingroup
-\pgfkeys{/tkzdrawY/.cd,
-color = \tkz@init@color,
-label = \tkz@init@ylabel,
-trig = 0,
-step = \tkz@init@ystep,
-up space = \tkz@init@upspace,
-down space = \tkz@init@downspace,
-noticks = false,
-tickwd = \tkz@init@tickwd,
-ticklt = \tkz@init@tickb,
-tickrt = \tkz@init@ticka}
-\pgfqkeys{/tkzdrawY}{#1}
-\FPtrunc\tkz@posmax{\tkz@yb}{\tkz@init@ydec}
-\FPtrunc\tkz@posmin{\tkz@ya}{\tkz@init@ydec}
-\FPadd\tkz@ybsup{\tkz@yb}{\tkz@axe@uyspace}
-\FPadd\tkz@yainf{\tkz@ya}{-\tkz@axe@dyspace}
-\path (0,\tkz@yainf)--(0,\tkz@ybsup) node(tkz@yline){};
-\draw[color = \tkz@Y@color,
- yaxe style,/tkzdrawY/.cd,#1] (0,\tkz@yainf)--(0,\tkz@ybsup)
- node[ylabel style,/tkzdrawY/.cd,#1]{\tkz@Y@label};
- \iftkz@Y@noticks
- \else
- \ifnum\tkz@Y@trig=0
- \FPtrunc\tkz@posmax{\tkz@posmax}{\tkz@init@ydec}%
- \FPdiv\tkz@posnext{\tkz@posnext}{\tkz@init@ystep}
- \FPadd\tz@posnext{\tkz@posmin}{\tkz@posnext}
- \foreach \tz@pos in {\tkz@posmin,\tz@posnext,...,\tkz@posmax}{%
- \draw[color = \tkz@Y@color,
- line width = \tkz@Y@tickwd,
- shift = {(0,\tz@pos)}]%
- (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt);}
- \else
- \FPadd{\tkz@posmin}{\tkz@posmin}{.5}%
- \FPdiv\tkz@posmax{\tkz@posmax}{\FPpi}%
- \FPmul\tkz@posmax{\tkz@posmax}{\tkz@Y@trig}%
- \FPdiv\tkz@posmin{\tkz@posmin}{\FPpi}%
- \FPmul\tkz@posmin{\tkz@posmin}{\tkz@Y@trig}%
- \FPround\tkz@posmin{\tkz@posmin}{0}%
- \foreach \tz@pos in {\tkz@posmin,...,\tkz@posmax}{%
- \FPmul\tz@pospi{\tz@pos}{\FPpi}
- \FPdiv\tz@pospi{\tz@pospi}{\tkz@Y@trig}%
- \draw[color = \tkz@Y@color,
- line width = \tkz@Y@tickwd,%
- shift = {(0,\tz@pospi)}]%
- (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt);
- }% end foreach
- \fi
- \fi
-\endgroup}
-%<--------------------------------------------------------------------------->
-\newif\iftkz@np
-\pgfkeys{% prob avec space
-tkzlabelX/.cd,
-frac/.code = {\def\tkz@X@frac{#1}},
-trig/.code = {\def\tkz@X@trig{#1}},
-step/.code = {\def\tkz@posnext{#1}},
-label options/.code = {\def\cmd@X@option{#1}},
-np off/.is if = tkz@np,
-np off/.default = true,
-orig/.is if = tkz@X@orig,
-orig/.default = false,
-tickwd/.code = {\global\def\tkz@X@tickwd{#1}},
-tickup/.code = {\global\def\tkz@X@tickup{#1}},
-tickdn/.code = {\global\def\tkz@X@tickdn{#1}},
-/tkzlabelX/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}}
- \def\tkzLabelX{\pgfutil@ifnextchar[{\tkz@LabelX}{\tkz@LabelX[]}}
-\def\tkz@LabelX[#1]{%
-\begingroup
-\pgfkeys{/tkzlabelX/.cd,
-frac = 0,
-trig = 0,
-step = \tkz@init@xstep,
-np off = false,
-orig = true,
-label options = {},
-tickwd = \tkz@init@tickwd,
-tickup = \tkz@init@ticka,
-tickdn = \tkz@init@tickb}
-\pgfqkeys{/tkzlabelX}{#1}
-\iftkz@np\let\numprint@saved\numprint %
-\let\numprint\relax\fi %
-
-\FPtrunc\tkz@posmin{\tkz@xa}{\tkz@init@xdec}%
-\FPtrunc\tkz@posmax{\tkz@xb}{\tkz@init@xdec}%
-\FPtrunc\x@tkzero{0.0000000}{\tkz@init@xdec}%
-
-\ifnum\tkz@X@frac=0 %
- \ifnum\tkz@X@trig=0 % affichage normal
- \FPdiv\tz@posnext{\tkz@posnext}{\tkz@init@xstep}
- \FPadd\tz@posnext{\tkz@posmin}{\tz@posnext}
- \foreach \tz@pos in {\tkz@posmin,\tz@posnext,...,\tkz@posmax}{%
- \FPtrunc\tkz@pos{\tz@pos}{\tkz@init@xdec}%
- \FPmul{\xgrad}{\tz@pos}{\tkz@init@xstep}%
- \FPadd{\xgrad}{\xgrad}{\tkz@init@xorigine}%
- \FPtrunc\xgrad{\xgrad}{\tkz@init@xdec}%
- \protected@edef\tkz@temp{%
- \noexpand\path[shift = {(\tz@pos,0)}]
- (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn)%
- node[xlabel style,%
- fill = \tkz@fillcolor,
- \cmd@X@option]}\tkz@temp{\tkz@Xshowgradresult};
-}%
- \else% trig > 0
- \FPadd{\tkz@posmin}{\tkz@posmin}{.5}%
- \FPdiv\tkz@posmax{\tkz@posmax}{\FPpi}%
- \FPmul\tkz@posmax{\tkz@posmax}{\tkz@X@trig}%
- \FPdiv\tkz@posmin{\tkz@posmin}{\FPpi}%
- \FPmul\tkz@posmin{\tkz@posmin}{\tkz@X@trig}%
- \FPround\tkz@posmin{\tkz@posmin}{0}%
- \foreach \tz@pos in {\tkz@posmin,...,\tkz@posmax}{%
- \tkzPrintFracWithPi{\tz@pos}{\tkz@X@trig}
- \FPmul\tz@pospi{\tz@pos}{\FPpi}
- \FPdiv\tz@pospi{\tz@pospi}{\tkz@X@trig}%
- \protected@edef\tkz@temp{%
- \noexpand\path[shift = {(\tz@pospi,0)}]%
- (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn)%
- node[xlabel style,
- text height = 8pt,
- fill = \tkz@fillcolor,
- \cmd@X@option]}\tkz@temp{\tkz@Xshowgrad};%
- }% end foreach
- \fi
-\else% frac > 0
-\FPround\tkz@posmin{\tkz@posmin}{0}%
- \foreach \tz@pos in {\tkz@posmin,...,\tkz@posmax}{%
- \tkzPrintFrac{\tz@pos}{\tkz@X@frac}%
- \protected@edef\tkz@temp{%
- \noexpand\path[shift = {(\tz@pos,0)}]%
- (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn)%
- node[xlabel style,
- text height = 8pt,
- fill = \tkz@fillcolor,
- \cmd@X@option]}\tkz@temp{\tkz@Xshowgrad}%
- ;%
- }% end foreach
-\fi
- \iftkz@np\let\numprint\numprint@saved \fi%
-\endgroup
-}
-
-%<--------------------------------------------------------------------------->
-\pgfkeys{% prob avec space
-tkzticksY/.cd,
-frac/.code = {\def\tkz@Y@frac{#1}},
-trig/.code = {\def\tkz@Y@trig{#1}},
-step/.code = {\def\tkz@posnext{#1}},
-label options/.code = {\def\cmd@Y@option{#1}},
-np off/.is if = tkz@np,
-np off/.default = true,
-orig/.is if = tkz@Y@orig,
-orig/.default = false,
-tickwd/.code = {\global\def\tkz@Y@tickwd{#1}},
-ticklt/.code = {\global\def\tkz@Y@ticklt{#1}},
-tickrt/.code = {\global\def\tkz@Y@tickrt{#1}},
-/tkzticksY/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}}
- \def\tkzLabelY{\pgfutil@ifnextchar[{\tkz@LabelY}{\tkz@LabelY[]}}
-\def\tkz@LabelY[#1]{%
-\begingroup
-\pgfkeys{/tkzticksY/.cd,
-frac = 0,
-trig = 0,
-step = \tkz@init@ystep,
-np off = false,
-orig = true,
-label options = {},
-tickwd = \tkz@init@tickwd,
-ticklt = \tkz@init@tickb,
-tickrt = \tkz@init@ticka}
-\pgfqkeys{/tkzticksY}{#1}
-\iftkz@np\let\numprint@saved\numprint %
-\let\numprint\relax\fi %
-
-\FPtrunc\tkz@posmin{\tkz@ya}{\tkz@init@ydec}%
-\FPtrunc\tkz@posmax{\tkz@yb}{\tkz@init@ydec}%
-\FPtrunc\y@tkzero{0.0000000}{\tkz@init@ydec}%
-
-\ifnum\tkz@Y@frac=0
- \ifnum\tkz@Y@trig=0 % affichage normal
- \FPdiv\tz@posnext{\tkz@posnext}{\tkz@init@ystep}
- \FPadd\tz@posnext{\tkz@posmin}{\tz@posnext}
- \foreach \tz@pos in {\tkz@posmin,\tz@posnext,...,\tkz@posmax}{%
- \FPtrunc\tkz@pos{\tz@pos}{\tkz@init@ydec}%
- \FPmul{\ygrad}{\tz@pos}{\tkz@init@ystep}%
- \FPadd{\ygrad}{\ygrad}{\tkz@init@yorigine}%
- \FPtrunc\ygrad{\ygrad}{\tkz@init@ydec}%
- \protected@edef\tkz@temp{%
- \noexpand\path[shift = {(0,\tz@pos)}]%
- (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt)%
- node[ylabel style,
- fill = \tkz@fillcolor,
- \cmd@Y@option]}\tkz@temp{\tkz@Yshowgradresult};
-}
- \else% trig > 0
- \FPadd{\tkz@posmin}{\tkz@posmin}{.5}%
- \FPdiv\tkz@posmax{\tkz@posmax}{\FPpi}%
- \FPmul\tkz@posmax{\tkz@posmax}{\tkz@Y@trig}%
- \FPdiv\tkz@posmin{\tkz@posmin}{\FPpi}%
- \FPmul\tkz@posmin{\tkz@posmin}{\tkz@Y@trig}%
- \FPround\tkz@posmin{\tkz@posmin}{0}%
- \foreach \tz@pos in {\tkz@posmin,...,\tkz@posmax}{%
- \tkzPrintFracWithPi{\tz@pos}{\tkz@Y@trig}
- \FPmul\tz@pospi{\tz@pos}{\FPpi}
- \FPdiv\tz@pospi{\tz@pospi}{\tkz@Y@trig}%
- \protected@edef\tkz@temp{%
- \noexpand\path[shift = {(0,\tz@pospi)}]%
- (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt)%
- node[ylabel style,
- text height = 8pt,
- fill = \tkz@fillcolor,
- \cmd@Y@option]}\tkz@temp{\tkz@Yshowgrad};%
- }% end foreach
- \fi
-\else% frac > 0
-\FPround\tkz@posmin{\tkz@posmin}{0}%
- \foreach \tz@pos in {\tkz@posmin,...,\tkz@posmax}{%
- \tkzPrintFrac{\tz@pos}{\tkz@Y@frac}%
- \protected@edef\tkz@temp{%
- \noexpand\path[shift = {(0,\tz@pos)}]%
- (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt)%
- node[ylabel style,
- text height = 8pt,
- fill = \tkz@fillcolor,
- \cmd@Y@option]}\tkz@temp{\tkz@Yshowgrad}%
- ;%
- }% end foreach
-\fi
- \iftkz@np\let\numprint\numprint@saved \fi%
-\endgroup}
-%<--------------------------------------------------------------------------–>
-\def\tkzAxeY{\pgfutil@ifnextchar[{\tkz@AxeY}{\tkz@AxeY[]}}
-\def\tkz@AxeY[#1]{%
-\begingroup
- \tkzDrawY[#1] \tkzLabelY[#1]
-\endgroup}
-%<-------------------------------------------------------------------------->
-\newif\if@tkz@swap
-\pgfkeys{% prob avec space
- tkzAxeXY/.cd,
- swap/.is if = @tkz@swap,
- swap/.default = true,
- /tkzAxeXY/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}}
-
-\def\tkzAxeXY{\pgfutil@ifnextchar[{\tkzAxe@XY}{\tkzAxe@XY[]}}
-\def\tkzAxe@XY[#1]{%
-\pgfkeys{
- /tkzAxeXY/.cd,
- swap = false}
-\pgfqkeys{/tkzAxeXY}{#1}
-\if@tkz@swap
-\tkzLabelX[#1]\tkzLabelY[#1]\tkzDrawX[#1]\tkzDrawY[#1]
-\else
-\tkzDrawX[#1]\tkzDrawY[#1]\tkzLabelX[#1]\tkzLabelY[#1]
-\fi}
-\def\tkzDrawXY{\pgfutil@ifnextchar[{\tkzDraw@XY}{\tkzDraw@XY[]}}
-\def\tkzDraw@XY[#1]{\tkzDrawX[#1]\tkzDrawY[#1]}
-\def\tkzLabelXY{\pgfutil@ifnextchar[{\tkzLabel@XY}{\tkzLabel@XY[]}}
-\def\tkzLabel@XY[#1]{\tkzLabelX[#1]\tkzLabelY[#1]}
-%<--------------------------------------------------------------------------–>
-% grid
-%<--------------------------------------------------------------------------–>
-\newif\if@tkz@gd@sub
-\def\tkzRatioLineGrid{0.75}
-\def\tkz@gd@sublw{0.4 pt}
-
-
-\pgfkeys{
- /tkzGrid/.cd,
- color/.code = {\def\tkz@gd@color{#1}%
- \edef\tkz@gd@subcolor{%
- \tkz@gd@color!\tkzCoeffSubColor}},
- subxstep/.code = {\def\tkz@gd@subxstep{#1}},
- subystep/.code = {\def\tkz@gd@subystep{#1}},
- ratio/.code = {\def\tkz@gd@ratio{#1}},
- line width/.code = {\edef\tkz@gd@lw{#1}
- \edef\tkz@gd@sublw{\tkz@gd@ratio\tkz@gd@lw}},
- sub/.is if = @tkz@gd@sub,
- sub/.default = true ,
- /tkzGrid/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}}
-
-\def\tkzGrid{\pgfutil@ifnextchar[{\tkz@Grid}{\tkz@Grid[]}}
-\def\tkz@Grid[#1]{\@ifnextchar({\tkz@@Grid[#1]}%
- {\tkz@@Grid[#1](\@xa,\@ya)(\@xb,\@yb)}}
-\def\tkz@@Grid[#1](#2,#3)(#4,#5){%
-\pgfkeys{
- /tkzGrid/.cd,
- sub = false,
- color = \tkz@grid@color,
- ratio = 0.75,
- subxstep = \tkz@grid@xstep,
- subystep = \tkz@grid@ystep,
- line width = \tkz@grid@lw}
- \pgfqkeys{/tkzGrid}{#1}
- \begingroup
- \FPadd{\tkz@gxa}{#2}{-\tkz@init@xorigine}
- \FPadd{\tkz@gxb}{#4}{-\tkz@init@xorigine}
- \FPadd{\tkz@gya}{#3}{-\tkz@init@yorigine}
- \FPadd{\tkz@gyb}{#5}{-\tkz@init@yorigine}
- \FPdiv{\tkz@gxa}{\tkz@gxa}{\tkz@init@xstep}
- \FPdiv{\tkz@gya}{\tkz@gya}{\tkz@init@ystep}
- \FPdiv{\tkz@gxb}{\tkz@gxb}{\tkz@init@xstep}
- \FPdiv{\tkz@gyb}{\tkz@gyb}{\tkz@init@ystep}
- \if@tkz@gd@sub%
- \FPeval\@subxstep{\tkz@gd@subxstep/\tkz@init@xstep}%
- \FPeval\@subystep{\tkz@gd@subystep/\tkz@init@ystep}%
- \draw [xstep = \@subxstep cm,%
- ystep = \@subystep cm,%
- color = \tkz@gd@subcolor,%
- line width = \tkzRatioLineGrid]%
- (\tkz@gxa,\tkz@gya) grid (\tkz@gxb,\tkz@gyb);%
- \fi
- \draw [color = \tkz@gd@color,%
- line width = \tkz@gd@lw]%
- (\tkz@gxa,\tkz@gya) grid (\tkz@gxb,\tkz@gyb);%
- \endgroup
-}%
-%<--------------------------------------------------------------------------–>
-% repère
-%<--------------------------------------------------------------------------–>
-
-\newif\iftkz@Rep@orig
-\pgfkeys{
- /tkzRep/.cd,
- line width/.code = {\def\tkz@Rep@lw{#1}},
- xlabel/.code = {\def\tkz@Rep@xlabel{#1}},
- ylabel/.code = {\def\tkz@Rep@ylabel{#1}},
- posxlabel/.code = {\def\tkz@Rep@posxlabel{#1}},
- posylabel/.code = {\def\tkz@Rep@posylabel{#1}},
- xnorm/.code = {\def\tkz@Rep@xnorm{#1}},
- ynorm/.code = {\def\tkz@Rep@ynorm{#1}},
- color/.code = {\def\tkz@Rep@color{#1}},
- colorlabel/.code = {\def\tkz@Rep@colorlabel{#1}}}
- % /tkzRep/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- % \pgfkeysalso{\searchname/.try=#1,
- % /tikz/\searchname/.retry=#1}}}
-%<--------------------------------------------------------------------------–>
-\def\tkzRep{\pgfutil@ifnextchar[{\tkz@Rep}{%
- \tkz@Rep[]}}
-\def\tkz@Rep[#1]{%
-\pgfkeys{
- /tkzRep/.cd,
-line width = \tkz@sur@lw,
-xlabel = $\vec{\imath}$,
-ylabel = $\vec{\jmath}$,
-posxlabel = {\tkz@sur@posxlabel},
-posylabel = {\tkz@sur@posylabel},
-xnorm = 1,
-ynorm = 1,
-color = \tkz@sur@color,% remove ?
-colorlabel = \tkz@sur@colorlabel}% remove ?
-\pgfqkeys{/tkzRep}{#1}
-\begingroup
- \protected@edef\tkz@temp{%
- \noexpand\draw [line width=\tkz@Rep@lw,color=\tkz@Rep@color,rep style]%
- (0,0) to node[\tkz@Rep@posylabel,color = \tkz@Rep@colorlabel]}\tkz@temp%
- {\tkz@Rep@ylabel}(0,\tkz@Rep@ynorm);
- \protected@edef\tkz@temp{%
- \noexpand \draw [line width=\tkz@Rep@lw,color=\tkz@Rep@color,rep style]%
- (0,0) to node[\tkz@Rep@posxlabel,color = \tkz@Rep@colorlabel]}\tkz@temp%
- {\tkz@Rep@xlabel}(\tkz@Rep@xnorm,0);
-\endgroup
-}
-\def\tkzAddName{\pgfutil@ifnextchar[{\tkz@AddName}{\tkz@AddName[]}}
-\def\tkz@AddName[#1]#2{%
-\node[above left,#1] at (\pgf@path@lastx,\pgf@path@lasty){#2};
-}%
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-math.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-math.tex
deleted file mode 100644
index a4f46d2237..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-math.tex
+++ /dev/null
@@ -1,688 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 d}
-\def\filedate{2018/09/19}
-
-
-
-% Objet : outils mathématiques pour la géométrie euclideienne avec pgf/tikz
-% utilisable de préférence avec un repère orthonormé et le cm comme unité
-% utile pour la compatibilité avec pgf 2
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% Duplicate Length à revoir pas de pt pas de global
-% ||v(CN)||= ||v(AB)|| et v(CN) colineaire à v(CD)
-% A-->#1 B-->#2 C-->#3 D-->#4 N-->#5 ?????
-%<--------------------------------------------------------------------------–>
-\def\tkzDuplicateLen(#1,#2)(#3,#4){%
-\begingroup
- \tkzCalcLength(#1,#2)\tkzGetLength{tkz@firstlen}%
- \tkzCalcLength(#3,#4)\tkzGetLength{tkz@secondlen}%
- \FPdiv\tkz@ratio{\tkz@firstlen}{\tkz@secondlen}%
- \tkz@VecKCoLinear[\tkz@ratio](#3,#4,#3){tkzPointResult}%
-\endgroup
-}
-\let\tkzDuplicateSegment\tkzDuplicateLen %<--------------------------------------------------------------------------–>
-% Coordonnées d'un vecteur (couple de points)
-% Deux points A et B donc un vecteur on récupère les coordonnées de v(AB)
-% en cm
-% tkzGetVecCoord en cm ou en pt ???
-%<--------------------------------------------------------------------------–>
-%result in #3x et #3y #1 et #2 sont les points
-% passage en cm avec fp ?
-\def\tkzGetVectxy(#1,#2)#3{%
-\begingroup
-\pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
-\pgfmathparse{\pgf@sys@tonumber{\pgf@x}/28.45274}%
-\global\let\tkzresultx\pgfmathresult
-\pgfmathparse{\pgf@sys@tonumber{\pgf@y}/28.45274}%
-\global\let\tkzresulty\pgfmathresult
-\global\expandafter\edef\csname #3x\endcsname{\tkzresultx}%
-\global\expandafter\edef\csname #3y\endcsname{\tkzresulty}%
-\endgroup
-}
-\let\tkzGetVecCoord\tkzGetVectxy
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkz@numv{0}
-\pgfkeys{/tkzdefv/.cd,
-K/.code = {\pgfmathparse{#1}\global\def\tkz@ratio{\pgfmathresult}},
-colinear/.code args = {at #1}{\global\def\tkz@numv{0}%
- \global\def\tkz@frompoint{#1}},
-orthogonal/.code = {\global\def\tkz@numv{1}},
-linear/.code = {\global\def\tkz@numv{2}}\pgfmathparse{#1},
-normed orthogonal/.code = {\global\def\tkz@numv{3}},
-normed linear/.code = {\global\def\tkz@numv{4}},
-}
-\def\tkzDefVector[#1](#2,#3)#4{%
-\begingroup
-\pgfkeys{/tkzdefv/.cd,K=1}
-\pgfqkeys{/tkzdefv}{#1}
-\ifcase\tkz@numv%
- % first case 0
- \tkzDefVectorfrom[\tkz@ratio](#2,#3){#4}
- \or% 1
- \tkz@VecKOrth[\tkz@ratio](#2,#3){#4}
- \or% 2
- \tkz@VecK[\tkz@ratio](#2,#3){#4}
- \or% 3
- \tkz@VecKOrthNorm[\tkz@ratio](#2,#3){#4}
- \or% 4
- \tkz@VecKCoLinear[#1](#2,#3)#4
- \fi
-\endgroup
-}
-
-\def\tkzDefVectorfrom[#1](#2,#3)#4{%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#2}{center}}%
- {\pgfpointanchor{#3}{center}}%
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \path[coordinate](\tkz@frompoint)--+(\tkz@ratio\pgf@xa,%
- \tkz@ratio\pgf@ya) coordinate (#4);
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% VecKCoLinear CN = K x AB #1 pt #2 pt #3 pt #4 nb #5 pt result
-% il faut modifier cette macro : on supprime #3 pour la colinéarité
-% Il suffit d'utiliser Replicate ou Duplicate coeff dans #1
-% v(CD)=#1 x v(AB) #1 le coeff; #2-->A #3-->B #4-->C #5-->N
-%<--------------------------------------------------------------------------–>
-\def\tkzVecKCoLinear{\pgfutil@ifnextchar[{\tkz@VecKCoLinear}{\tkz@VecKCoLinear[1]}}
-\def\tkz@VecKCoLinear[#1](#2,#3,#4)#5{%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#2}{center}}%
- {\pgfpointanchor{#3}{center}}%
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \pgfmathparse{#1}\edef\tkz@coeff{\pgfmathresult}
- \path[coordinate](#4)--+(\tkz@coeff\pgf@xa,\tkz@coeff\pgf@ya)%
- coordinate (#5);%
-\endgroup
-}%
-%<--------------------------------------------------------------------------–>
-% v(AN)=#1 x v(AB)
-% #1 le coeff; #2--> A #3--> B #4-->N tq #4-#2 = #1*(#3-#2)
-%<--------------------------------------------------------------------------–>
-\pgfkeys{
- /tkzscalev/.cd,
- ratio/.code = {\pgfmathparse{#1}\global\edef\tkz@ratio{\pgfmathresult}}
- }
-\def\tkzScaleVector{\pgfutil@ifnextchar[{\tkz@ScaleVector}{%
- \tkz@ScaleVector[]}}
-\def\tkz@ScaleVector[#1](#2,#3)#4{%
-\begingroup
-\pgfkeys{/tkzscalev/.cd,ratio=-1}
-\pgfqkeys{/tkzscalev}{#1}
- \pgfpointdiff{\pgfpointanchor{#2}{center}}%
- {\pgfpointanchor{#3}{center}}%
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \path[coordinate](#2)--++(\pgf@xa *\tkz@ratio,\pgf@ya *\tkz@ratio)%
- coordinate (#4);%
-\endgroup
-}%
-%<--------------------------------------------------------------------------–>
-% Outils pour les vecteurs
-%<--------------------------------------------------------------------------–>
-% ce sont des outils élémentaires qui à partir de deux points en définissent
-% un troisième
-% #1 si c'est une option alors c'est un nombre réel
-% #2 et #3 sont deux points
-% #4 est le nom du point qui résulte de la transformation
-% exemple : \tkzVecKNorm (A,B){C} définit un point C tel que AC = 1 et C est % % un point de la droite (AC). #1 peut être négatif
-
-%<--------------------------------------------------------------------------–>
-% VectorNormalised ou K*VectorNormalised
-% A-->#2 B-->#3 N-->#4 v(AB) devient v(AN) tq ||v(AN)||=1 si #1=1
-% sinon ||v(AN)||=#1
-%<--------------------------------------------------------------------------–>
-\def\tkzVecKNorm{\pgfutil@ifnextchar[{\tkz@VecKNorm}{\tkz@VecKNorm[1]}}
-\def\tkz@VecKNorm[#1](#2,#3)#4{%
-\begingroup
- \tkzpointnormalised{%
- \pgfpointdiff{\pgfpointanchor{#2}{center}}
- {\pgfpointanchor{#3}{center}}}
- \pgf@xa=\pgf@x\relax%
- \pgf@ya=\pgf@y\relax%
- \pgfmathparse{#1}\edef\tkz@coeff{\pgfmathresult}
- \FPmul\tkz@coeff{28.45274}{\tkz@coeff}
- \FPmul\tkz@x{\tkz@coeff}{\pgf@sys@tonumber{\pgf@xa}}
- \FPmul\tkz@y{\tkz@coeff}{\pgf@sys@tonumber{\pgf@ya}}
- \path[coordinate](#2)--++(\tkz@x pt,\tkz@y pt)%
- coordinate (#4);%
-\endgroup
-}%
-%<--------------------------------------------------------------------------–>
-% v(AN)=#1 x v(AB)
-% #1 le coeff; #2--> A #3--> B #4-->N tq #4-#2 = #1*(#3-#2)
-%<--------------------------------------------------------------------------–>
-\def\tkzVecK{\pgfutil@ifnextchar[{\tkz@VecK}{\tkz@VecK[1]}}
-\def\tkz@VecK[#1](#2,#3)#4{%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#2}{center}}%
- {\pgfpointanchor{#3}{center}}%
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \pgfmathparse{#1}\edef\tkz@coeff{\pgfmathresult}
- \path[coordinate](#2)--++(\pgf@xa *\tkz@coeff,%
- \pgf@ya *\tkz@coeff)%
- coordinate (#4);%
-\endgroup
-}%
-%<--------------------------------------------------------------------------–>
-% tkzVector K Orth coeff dans #1
-% v(AN) perp v(AB) v(AB) v(AN) sens direct cercle trigo
-% ||v(AN)||=||v(AB)||
-%<--------------------------------------------------------------------------–>
-\def\tkzVecKOrth{\pgfutil@ifnextchar[{\tkz@VecKOrth}{\tkz@VecKOrth[1]}}
-\def\tkz@VecKOrth[#1](#2,#3)#4{%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#2}{center}}%
- {\pgfpointanchor{#3}{center}}%
- \pgf@xa=-\pgf@y%
- \pgf@ya=\pgf@x%
- \pgfmathparse{#1}\edef\tkz@coeff{\pgfmathresult}
- \path[coordinate](#2)--++(\tkz@coeff\pgf@xa,\tkz@coeff\pgf@ya)%
- coordinate (#4);%
-\endgroup
-}%
-%<--------------------------------------------------------------------------–>
-% tkzVecKOrthNorm coeff dans #1
-% v(AN) perp v(AB) v(AB) v(AN) sens direct cercle trigo
-% ||v(AN||=1 si #1 est vide ou =1 sinon ||v(AN||=K
-%<--------------------------------------------------------------------------–>
-\def\tkzVecKOrthNorm{\pgfutil@ifnextchar[{\tkz@VecKOrthNorm}%
- {\tkz@VecKOrthNorm[1]}}
-\def\tkz@VecKOrthNorm[#1](#2,#3)#4{%
-\begingroup
- \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#2}{center}}%
- {\pgfpointanchor{#3}{center}}}
- \pgf@xa=-\pgf@y%
- \pgf@ya=\pgf@x%
- \FPmul\tkz@coeff{28.45274}{#1}
- \FPmul\tkz@x{\tkz@coeff}{\pgf@sys@tonumber{\pgf@xa}}
- \FPmul\tkz@y{\tkz@coeff}{\pgf@sys@tonumber{\pgf@ya}}
- \path[coordinate](#2)--++(\tkz@x pt,\tkz@y pt)%
- coordinate (#4);%
-\endgroup
-}%
-%<--------------------------------------------------------------------------–>
-% \tkzpointnormalised normalise un point A-->A' tq ||v(OA')=1||
-% équivalent de \pgfpointnormalised avec fp
-% example
-% \tkzpointnormalised{%
-% \pgfpointdiff{\pgfpointanchor{A}{center}}
-% {\pgfpointanchor{B}{center}}}
-
-% or
-% \pgf@x=1 cm
-% \pgf@y=12 cm
-% \tkzpointnormalised{} %<--------------------------------------------------------------------------–>
-\def\tkzpointnormalised#1{%
-\pgf@process{#1}%
-\FPmul{\tkz@sx}{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@x}}
-\FPmul{\tkz@sy}{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@y}}
-\FPadd{\tkz@sxy}{\tkz@sx}{\tkz@sy}
-\FProot{\tkz@den}{\tkz@sxy}{2}
-\FPdiv{\tkz@coordx}{\pgf@sys@tonumber{\pgf@x}}{\tkz@den}
-\FPround{\tkz@coordx}{\tkz@coordx}{5}
-\FPdiv{\tkz@coordy}{\pgf@sys@tonumber{\pgf@y}}{\tkz@den}
-\FPround{\tkz@coordy}{\tkz@coordy}{5}
-\pgf@x = \tkz@coordx pt
-\pgf@y = \tkz@coordy pt
-}
-%<--------------------------------------------------------------------------–>
-% restaure and save length
-\def\tkz@save@length{%
-\global\let\tkz@temp@length\tkzLengthResult}%
-\def\tkz@restore@length{%
- \global\let\tkzLengthResult\tkz@temp@length }%
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% \tkzCalcLength Distance entre deux points en pt ou en cm avec FP
-% \veclen mais avec fp
-% option cm le résultat est en cm sinon en pt
-%<--------------------------------------------------------------------------–>
-
-\newif\iftkzLengthIncm
-\pgfkeys{
-DefVecLen/.cd,
- cm/.is if = tkzLengthIncm,
- cm/.default = true}
-
-\def\tkzCalcLength{\pgfutil@ifnextchar[{\tkz@CalcLength}{\tkz@CalcLength[]}}
-\def\tkz@CalcLength[#1](#2,#3){%
-\pgfkeys{DefVecLen/.cd, cm = false}
-\pgfqkeys{/DefVecLen}{#1}%
-\begingroup
-\tkz@@CalcLength(#2,#3){tkzLengthResult}
-\iftkzLengthIncm
- \FPdiv\tkzFPMathLen{\tkzFPMathLen}{28.45274}
- \FPround\tkzFPMathLen\tkzFPMathLen5\relax%
- \global\let\tkzLengthResult\tkzFPMathLen
-\fi
-\endgroup
-}%
-\def\tkz@@CalcLength(#1,#2)#3{%
-\pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
-\pgf@xa=\pgf@x%
-\pgf@ya=\pgf@y%
-\FPeval\tkz@temp@a{\pgfmath@tonumber{\pgf@xa}}%
-\FPeval\tkz@temp@b{\pgfmath@tonumber{\pgf@ya}}%
-\FPeval\tkz@temp@sum{(\tkz@temp@a*\tkz@temp@a+\tkz@temp@b*\tkz@temp@b)}%
-\FProot{\tkzFPMathLen}{\tkz@temp@sum}{2}%
-\FPround\tkzFPMathLen\tkzFPMathLen5\relax
-\global\expandafter\edef\csname #3\endcsname{\tkzFPMathLen}
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzGetLength#1{%
-\global\expandafter\edef\csname #1\endcsname{\tkzLengthResult}}
-%<--------------------------------------------------------------------------–>
-% \tkzpttocm passage de pt à cm div par 28.45274
-%<--------------------------------------------------------------------------–>
-\def\tkzpttocm(#1)#2{%
-\begingroup
- \FPdiv\tkz@mathresult{#1}{28.45274}
- \FPround\tkz@mathresult\tkz@mathresult5\relax%
- \global\let\tkz@mathresult\tkz@mathresult
- \global\expandafter\edef\csname #2\endcsname{\tkz@mathresult}%
-\endgroup
-}%
-%<--------------------------------------------------------------------------–>
-% \tkzcmtopt passage de cm à pt mul par 28.45274 %<--------------------------------------------------------------------------–
-\def\tkzcmtopt(#1)#2{%
-\begingroup
- \FPmul\tkz@mathresult{#1}{28.45274}
- \FPround\tkz@mathresult\tkz@mathresult5\relax%
- \global\let\tkz@mathresult\tkz@mathresult
-\global\expandafter\edef\csname #2\endcsname{\tkz@mathresult}%
-\endgroup
-}%
-%<--------------------------------------------------------------------------–>
-% Slope
-%<--------------------------------------------------------------------------–>
-\def\tkzFindSlope{\tkz@FindSlope}
-\def\tkz@FindSlope(#1,#2)#3{%
- \begingroup
- \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}}
- \tkz@ax=\pgf@x\relax%
- \tkz@ay=\pgf@y\relax%
- \FPdiv{\tkz@Slope}{\pgfmath@tonumber{\tkz@ay}}{\pgfmath@tonumber{\tkz@ax}}
- \FPround{\tkz@Slope}{\tkz@Slope}{5}
- \global\expandafter\edef\csname #3\endcsname{\tkz@Slope}%
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<----------------– for compatibility --------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzmathanglebetweenpoints#1#2{%
-\begingroup
- \pgf@process{\pgfpointdiff{#1}{#2}}%
- %
- % First approximate the angle of the external point...
- %
- \pgf@xa\pgf@x%
- \pgf@ya\pgf@y%
- \pgf@xb\pgf@x%
- \pgf@yb\pgf@y%
- \ifdim\pgf@xa<0pt\relax%
- \pgf@xa-\pgf@xa%
- \fi
- \ifdim\pgf@ya<0pt\relax%
- \pgf@ya-\pgf@ya%
- \fi
- \ifdim\pgf@ya>\pgf@xa%
- \pgf@x\pgf@xa%
- \pgf@y\pgf@ya%
- \else
- \pgf@x\pgf@ya%
- \pgf@y\pgf@xa%
- \fi
- \ifdim\pgf@y=0pt\relax%
- \pgf@x0pt%
- \else
- \FPdiv\pgfmathresult{1}{\pgfmath@tonumber{\pgf@y}}
- \FPround\pgfmathresult\pgfmathresult5\relax%
- \pgf@x\pgfmathresult\pgf@x%
- \fi
- \multiply\pgf@x1000\relax%
- \afterassignment\pgfmath@gobbletilpgfmath@%
- \expandafter\c@pgf@counta\the\pgf@x\relax\pgfmath@%
-\expandafter\pgf@x\csname pgfmath@atan@\the\c@pgf@counta\endcsname pt\relax%
- \ifdim\pgfmath@ya>\pgfmath@xa\relax%
- \pgf@x-\pgf@x%
- \advance\pgf@x90pt%
- \fi
- \ifdim\pgf@xb<0pt%
- \ifdim\pgf@yb>0pt%
- \pgf@x-\pgf@x%
- \fi
- \advance\pgf@x180pt\relax%
- \else
- \ifdim\pgf@yb<0pt%
- \pgf@x-\pgf@x%
- \advance\pgf@x360pt\relax%
- \fi
- \fi
- \ifdim\pgf@x>180pt%
- \advance\pgf@x-360pt\relax%
- \fi
- \pgfmath@returnone\pgf@x%
- \endgroup
-}
-
-% \tkzmathrotatepointaround
-%
-% Rotate point #1 about point #2 by #3 degrees.
-%
-\def\tkzmathrotatepointaround#1#2#3{%
- \pgf@process{%
- \pgf@process{#1}%
- \pgf@xc=\pgf@x%
- \pgf@yc=\pgf@y%
- \pgf@process{#2}%
- \pgf@xa\pgf@x%
- \pgf@ya\pgf@y%
- \pgf@xb\pgf@x%
- \pgf@yb\pgf@y%
- \pgf@x=\pgf@xc%
- \pgf@y=\pgf@yc%
- \advance\pgf@x-\pgf@xa%
- \advance\pgf@y-\pgf@ya%
- \pgfmathsetmacro\tkz@angle{#3}%
- \pgfmathsin@{\tkz@angle}%
- \let\sineangle\pgfmathresult%
- \pgfmathcos@{\tkz@angle}%
- \let\cosineangle\pgfmathresult%
- \pgf@xa\cosineangle\pgf@x%
- \advance\pgf@xa-\sineangle\pgf@y%
- \pgf@ya\sineangle\pgf@x%
- \advance\pgf@ya\cosineangle\pgf@y%
- \pgf@x\pgf@xb%
- \pgf@y\pgf@yb%
- \advance\pgf@x\pgf@xa%
- \advance\pgf@y\pgf@ya%
- }%
-}
-
-
-% \tkzmathanglebetweenlines
-%
-% Calculate the clockwise angle between a line from point #1
-% to point #2 and a line from #3 to point #4.
-%
-\def\tkzmathanglebetweenlines#1#2#3#4{%
- \begingroup
- \tkzmathanglebetweenpoints{#1}{#2}%
- \let\firstangle\pgfmathresult%
- \tkzmathanglebetweenpoints{#3}{#4}%
- \let\secondangle\pgfmathresult%
- \ifdim\firstangle pt>\secondangle pt\relax%
- \pgfmathadd@{\secondangle}{360}%
- \let\secondangle\pgfmathresult%
- \fi
- \pgfmathsubtract@{\secondangle}{\firstangle}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup
-}
-% \pgfmathpointreflectalongaxis
-%
-% Reflects point #2 around an axis centered on #2 at an angle #3.
-%
-\def\tkzmathreflectpointalongaxis#1#2#3{%
- \pgf@process{%
- \pgfmathanglebetweenpoints{#2}{#1}%
- \pgfmath@tempdima\pgfmathresult pt\relax%
- \pgfmathparse{#3}%
- \advance\pgfmath@tempdima-\pgfmathresult pt\relax%
- \pgfmath@tempdima-2.0\pgfmath@tempdima%
- \pgfmathrotatepointaround{#1}{#2}{\pgfmath@tonumber{\pgfmath@tempdima}}%
- }%
-}
-
-
-% \pgfmathpointintersectionoflineandarc
-%
-% A bit experimental at the moment:
-%
-% Locates the point where a line crosses an eliptical arc. If the line
-% does not cross the arc, a meaningless point will result.
-%
-% #1 the point of the line on the "convex" side of the arc.
-% #2 the point of the line on the "concave" side of the arc.
-% #3 the center of the eliptical arc.
-% #4 start angle of the arc.
-% #5 end angle of the arc.
-% #6 radii of the arc.
-%
-\def\tkzmathpointintersectionoflineandarc#1#2#3#4#5#6{%
- \pgf@process{%
- %
- % Get the required angle.
- %
- \pgfmathanglebetweenpoints{#2}{#1}%
- \let\x\pgfmathresult%
- %
- % Get the radii of the arc.
- %
- \pgfmath@in@{and }{#6}%
- \ifpgfmath@in@%
- \pgf@polar@#6\@@%
- \else
- \pgf@polar@#6 and #6\@@%
- \fi
- \edef\xarcradius{\the\pgf@x}%
- \edef\yarcradius{\the\pgf@y}%
- %
- % Get the start and end angles of the arc...
- %
- \pgfmathsetmacro\s{#4}%
- \pgfmathsetmacro\e{#5}%
- %
- % ...and also with rounding.
- %
- \pgfmathmod@{\s}{360}%
- \ifdim\pgfmathresult pt<0pt\relax%
- \pgfmathadd@{\pgfmathresult}{360}%
- \fi
- \let\ss\pgfmathresult%
- \pgfmathmod@{\e}{360}%
- \ifdim\pgfmathresult pt<0pt\relax%
- \pgfmathadd@{\pgfmathresult}{360}%
- \fi
- \let\ee\pgfmathresult%
- %
- % Hackery for when arc straddles zero.
- %
- \ifdim\ee pt<\ss pt\relax%
- \pgfmathadd@{\x}{180}%
- \pgfmathmod@{\pgfmathresult}{360}%
- \let\x\pgfmathresult%
- \fi
- \def\m{360}% Measure of nearness.
- \pgfmathadd@{\s}{\e}%
- \pgfmathdivide@{\pgfmathresult}{2}%
- \let\n\pgfmathresult% The best estimate (default to middle of arc).
- \pgfmathloop%
- \pgfmathadd@{\s}{\e}%
- \pgfmathdivide@{\pgfmathresult}{2}%
- \let\p\pgfmathresult%
- \ifdim\p pt=\s pt\relax%
- \else
- \tkzmathanglebetweenpoints{#2}{%
- \pgfpointadd{#3}{%
- \pgf@x\xarcradius\relax%
- \pgfmathcos@{\p}%
- \pgf@x\pgfmathresult\pgf@x%
- \pgf@y\yarcradius\relax%
- \pgfmathsin@{\p}%
- \pgf@y\pgfmathresult\pgf@y%
- }%
- }%
- %
- % Hackery for when arc straddles zero.
- %
- \ifdim\ee pt<\ss pt\relax%
- \pgfmathadd@{\pgfmathresult}{180}%
- \pgfmathmod@{\pgfmathresult}{360}%
- \fi
- \let\q\pgfmathresult%
- %
- % More hackery...
- %
- \ifdim\x pt>335pt\relax%
- \ifdim\q pt<45pt\relax%
- \pgfmathadd@{\q}{360}%
- \let\q\pgfmathresult%
- \fi
- \fi
- \ifdim\x pt=\q pt% Found it!
- \pgfmathbreakloop% Breaks after current iteration is complete.
- \else
- \ifdim\x pt<\q pt\relax%
- \let\e\p%
- \else
- \let\s\p%
- \fi
- \fi
- \pgfmathsubtract@{\x}{\q}%
- \pgfmathabs@{\pgfmathresult}%
- %
- % Save the estimate if it is better than any previous estimate.
- %
- \ifdim\pgfmathresult pt<\m pt\relax%
- \let\m\pgfmathresult%
- \let\n\p%
- \fi
- \repeatpgfmathloop%
- \pgfpointadd{#3}{\pgfpointpolar{\n}{\xarcradius and \yarcradius}}%
- }%
-}
-
-% \tkzmathangleonellipse
-%
-% Find the angle corresponding to a point on the border of an ellispe.
-%
-% #1 - the point on the border.
-% #2 - the radii of the ellipse.
-%
-\def\tkzmathangleonellipse#1#2{%
- \begingroup
- \pgfmath@in@{and }{#2}%
- \ifpgfmath@in@%
- \pgf@polar@#2\@@%
- \else
- \pgf@polar@#2 and #2\@@%
- \fi
- \pgf@xa\pgf@x%
- \pgf@ya\pgf@y%
- \pgf@process{#1}%
- \ifdim\pgf@x=0pt\relax%
- \pgfutil@tempdima1pt\relax%
- \else
- \pgfutil@tempdima\pgf@x%
-%\pgfmathdivide@{\pgfmath@tonumber{\pgf@xa}}{\pgfmath@tonumber{\pgfutil@tempdima}}%
-\FPdiv\pgfmathresult{\pgfmath@tonumber{\pgf@xa}}{\pgfmath@tonumber{\pgfutil@tempdima}}
-\FPround\pgfmathresult\pgfmathresult5\relax%
- \pgfutil@tempdima\pgfmathresult pt\relax%
- \fi
- \ifdim\pgf@y=0pt\relax%
- \pgfutil@tempdima1pt\relax%
- \else
- % \pgfmathdivide@{\pgfmath@tonumber{\pgf@y}}{\pgfmath@tonumber{\pgf@ya}}%
- \FPdiv\pgfmathresult{\pgfmath@tonumber{\pgf@y}}{%
- \pgfmath@tonumber{\pgf@ya}}%
- \FPround\pgfmathresult\pgfmathresult5\relax%
- \pgfutil@tempdima\pgfmathresult\pgfutil@tempdima%
- \pgfmathatan@{\pgfmath@tonumber{\pgfutil@tempdima}}%
- \fi
- %
- \pgfutil@tempdima\pgfmathresult pt\relax%
- \ifdim\pgfutil@tempdima<0pt\relax%
- \advance\pgfutil@tempdima360pt\relax%
- \fi
- \ifdim\pgf@x<0pt\relax%
- \ifdim\pgf@y=0pt\relax%
- \pgfutil@tempdima180pt\relax%
- \else
- \ifdim\pgf@y<0pt\relax%
- \advance\pgfutil@tempdima180pt\relax%
- \else
- \advance\pgfutil@tempdima-180pt\relax%
- \fi
- \fi
- \else
- \ifdim\pgf@x=0pt\relax%
- \ifdim\pgf@y<0pt\relax%
- \pgfutil@tempdima270pt\relax%
- \else
- \pgfutil@tempdima90pt\relax%
- \fi
- \else
- \ifdim\pgf@y=0pt\relax%
- \pgfutil@tempdima0pt\relax%
- \fi
- \fi
- \fi
- \pgfmath@returnone\pgfutil@tempdima%
- \endgroup
-}
-
-\def\tkzpointborderellipse#1#2{%
- \pgf@process{#2}%
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \ifdim\pgf@xa=\pgf@ya% circle. that's easy!
- \pgf@process{\pgfpointnormalised{#1}}%
- \pgf@x=\pgf@sys@tonumber{\pgf@xa}\pgf@x%
- \pgf@y=\pgf@sys@tonumber{\pgf@xa}\pgf@y%
- \else
- \ifdim\pgf@xa<\pgf@ya%
- % Ok, first, let's compute x/y:
- \c@pgf@countb=\pgf@ya%
- \divide\c@pgf@countb by65536\relax%
- \divide\pgf@x by\c@pgf@countb%
- \divide\pgf@y by\c@pgf@countb%
- \pgf@xc=\pgf@x%
- \pgf@yc=8192pt%
- \pgf@y=.125\pgf@y%
- \c@pgf@countb=\pgf@y%
- \divide\pgf@yc by\c@pgf@countb%
- \pgf@process{#1}%
- \pgf@y=\pgf@sys@tonumber{\pgf@yc}\pgf@y%
- \pgf@y=\pgf@sys@tonumber{\pgf@xc}\pgf@y%
- \pgf@process{\pgfpointnormalised{}}%
- \pgf@x=\pgf@sys@tonumber{\pgf@xa}\pgf@x%
- \pgf@y=\pgf@sys@tonumber{\pgf@ya}\pgf@y%
- \else
- % Ok, now let's compute y/x:
- \c@pgf@countb=\pgf@xa%
- \divide\c@pgf@countb by65536\relax%
- \divide\pgf@x by\c@pgf@countb%
- \divide\pgf@y by\c@pgf@countb%
- \pgf@yc=\pgf@y%
- \pgf@xc=8192pt%
- \pgf@x=.125\pgf@x%
- \c@pgf@countb=\pgf@x%
- \divide\pgf@xc by\c@pgf@countb%
- \pgf@process{#1}%
- \pgf@x=\pgf@sys@tonumber{\pgf@yc}\pgf@x%
- \pgf@x=\pgf@sys@tonumber{\pgf@xc}\pgf@x%
- \pgf@process{\pgfpointnormalised{}}%
- \pgf@x=\pgf@sys@tonumber{\pgf@xa}\pgf@x%
- \pgf@y=\pgf@sys@tonumber{\pgf@ya}\pgf@y%
- \fi
- \fi
-}
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-misc.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-misc.tex
deleted file mode 100644
index 1b77e7b958..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-misc.tex
+++ /dev/null
@@ -1,181 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 d}
-\def\filedate{2018/09/19}
-
-
-%<--------------------------------------------------------------------------–>
-% tkzText
-%<--------------------------------------------------------------------------–>
-\newif\iftkz@node\tkz@nodefalse
-
-\def\tkz@parsenode#1{%
-\tkz@getvirg#1,\@nil
-\iftkz@node
-\else
- \tkz@getfromcart#1\@nil
-\fi
-}
-\def\tkz@getvirg#1,#2\@nil{%
-\ifx\tkzempty#2\tkzempty%
- \tkz@nodetrue
-\else
- \tkz@nodefalse
-\fi
-}
-
-
-\def\tkzText{\pgfutil@ifnextchar[{\tkz@Text}{\tkz@Text[]}}
-\def\tkz@Text[#1](#2)#3{%
- \begingroup
- \tkz@parsenode{#2}
- \iftkz@node \node[#1] at (#2){#3};
- \else
- \FPadd{\ptxa}{\tkz@absc}{-\tkz@init@xorigine}
- \FPadd{\ptya}{\tkz@ord}{-\tkz@init@yorigine}
- \FPdiv{\ptxa}{\ptxa}{\tkz@init@xstep}
- \FPdiv{\ptya}{\ptya}{\tkz@init@ystep}
- \node[#1] at (\ptxa,\ptya){#3};%
- \fi
-\endgroup
-}%
-% %<--------------------------------------------------------------------------–>
-% % légende
-% %<--------------------------------------------------------------------------–>
-\newif\iftkz@legend@line
-\pgfkeys{
-/tkzlegend/.cd,
-line/.is if = tkz@legend@line,
-line/.default = true,
-/tkzlegend/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}
-}
-
-\def\tkzLegend{\pgfutil@ifnextchar[{\tkz@Legend}{\tkz@Legend[]}}
-\def\tkz@Legend[#1](#2,#3)#4{%
-\pgfkeys{/tkzlegend/.cd,
-line=false}
- \pgfqkeys{/tkzlegend}{#1}
- \begingroup
-\c@pgfmath@counta=0 %
-\FPadd{\ptxa}{#2}{-\tkz@init@xorigine}
-\FPadd{\ptya}{#3}{-\tkz@init@yorigine}
-\FPdiv{\ptxa}{\ptxa}{\tkz@init@xstep}
-\FPdiv{\ptya}{\ptya}{\tkz@init@ystep}
-\node[/tkzlegend/.cd,#1] at (\ptxa,\ptya) {%
-\begin{tikzpicture}
- \foreach \motif/\size/\col/\mtext in {#4}{%
- \iftkz@legend@line
- \draw[color = \col,
- line width = \size,
- style = \motif,
- text = \tkz@mainlinecolor]%
- (0cm ,\the\c@pgfmath@counta ex)--%
- (\tkz@legend@line@len,\the\c@pgfmath@counta ex)
- \else
- \draw plot[mark size = \size,%
- mark = \motif,%
- mark options = {color=\col}]%
- coordinates{(0 ex,\the\c@pgfmath@counta ex)}%
- \fi
- node[right=1ex] {\mtext};
- \global\advance\c@pgfmath@counta by 3 %
- }%
-
-\end{tikzpicture}%
-};%
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-% hline pb avec line
-%<--------------------------------------------------------------------------–>
-\def\tkzHLine{\pgfutil@ifnextchar[{\tkz@HLine}{\tkz@HLine[]}}
-\def\tkz@HLine[#1]#2{%
- \begingroup
- \FPeval{\tkz@valy}{(#2)}%
- \FPadd{\tkz@ptya}{\tkz@valy}{-\tkz@init@yorigine}
- \FPdiv{\tkz@ptya}{\tkz@ptya}{\tkz@init@ystep}
- \draw[#1] (\tkz@xa,\tkz@ptya)--(\tkz@xb,\tkz@ptya);%
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% hlines pb avec line
-%<--------------------------------------------------------------------------–>
-\def\tkzHLines{\pgfutil@ifnextchar[{\tkz@HLines}{\tkz@HLines[]}}
-\def\tkz@HLines[#1]#2{%
- \begingroup
- \foreach \tkz@vy in {#2}{%
- \FPeval\my@tkz@vy{\tkz@vy}
- \tkz@HLine[#1]{\my@tkz@vy}}
-\endgroup
-}
-%<--------------------------------------------------------------------------->
-% vline
-%<--------------------------------------------------------------------------->
-\def\tkzVLine{\pgfutil@ifnextchar[{\tkz@VLine}{\tkz@VLine[]}}
-\def\tkz@VLine[#1]#2{%
-\begingroup
- \FPeval\tkz@valx{(#2)}%
- \FPadd{\tkz@ptxa}{\tkz@valx}{-\tkz@init@xorigine}
- \FPdiv{\tkz@ptxa}{\tkz@ptxa}{\tkz@init@xstep}
- \draw[#1](\tkz@ptxa,\tkz@ya)--(\tkz@ptxa,\tkz@yb);
-\endgroup
-}
-
-%<--------------------------------------------------------------------------->
-% vlines
-%<--------------------------------------------------------------------------->
-\def\tkzVLines{\pgfutil@ifnextchar[{\tkz@VLines}{\tkz@VLines[]}}
-\def\tkz@VLines[#1]#2{%
-\begingroup
- \foreach \tkz@vx in {#2}{%
- \FPeval\my@tkz@vx{\tkz@vx}
- \tkz@VLine[#1]{\my@tkz@vx}}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzHTick{\pgfutil@ifnextchar[{\tkz@HTick}{\tkz@HTick[]}}
-\def\tkz@HTick[#1]#2{%
- \begingroup
- \FPeval\tkz@ptxa{(#2)}%
- \FPround\tkz@ptxa\tkz@ptxa{5}
- \FPclip\tkz@ptxa\tkz@ptxa
- \FPadd\tkz@ptxa\tkz@ptxa{-\tkz@init@xorigine}
- \FPdiv\tkz@ptxa\tkz@ptxa{\tkz@init@xstep}
- \draw plot[mark style,#1] coordinates {(\tkz@ptxa,0)};
-\endgroup
-}
-\def\tkzHTicks{\pgfutil@ifnextchar[{\tkz@HTicks}{\tkz@HTicks[]}}
-\def\tkz@HTicks[#1]#2{%
- \begingroup
-\foreach \tkz@hy in {#2} {\tkz@HTick[#1]{\tkz@hy}}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzVTick{\pgfutil@ifnextchar[{\tkz@VTick}{\tkz@VTick[]}}
-\def\tkz@VTick[#1]#2{%
- \begingroup
- \FPeval\tkz@ptya{(#2)}%
- \FPround\tkz@ptya\tkz@ptya{5}%
- \FPclip\tkz@ptya\tkz@ptya
- \FPadd\tkz@ptya\tkz@ptya{-\tkz@init@yorigine}%
- \FPdiv\tkz@ptya\tkz@ptya{\tkz@init@ystep}%
- \draw plot[mark style,#1] coordinates {(0,\tkz@ptya)};
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzVTicks{\pgfutil@ifnextchar[{\tkz@VTicks}{\tkz@VTicks[]}}
-\def\tkz@VTicks[#1]#2{%
-\begingroup
-\foreach \tkz@hy in {#2} {\tkz@VTick[#1]{\tkz@hy}}
-\endgroup
-}
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-obsolete.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-obsolete.tex
deleted file mode 100644
index 82f7e1bcbb..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-obsolete.tex
+++ /dev/null
@@ -1,219 +0,0 @@
-\makeatletter
-\global\edef\tkz@sua@lw{0.4pt}
-\global\edef\tkz@sua@color{black}
-\global\edef\tkz@sua@gradsize{\textstyle}
-\global\edef\tkz@sua@tickwd{0.8 pt}
-\global\edef\tkz@sua@ticka{2 pt}
-\global\edef\tkz@sua@tickb{2 pt}
-
-
-
-\def\tkzX{\pgfutil@ifnextchar[{\tkz@X}{\tkz@X[]}}
-\def\tkz@X[#1]{%
-\begingroup
- \pgfkeys{/tkzX/.cd,
- trig = 0,
- lw = \tkz@sua@lw,
- gradsize = \tkz@sua@gradsize,
- color = \tkz@sua@color,
- tickwd = \tkz@sua@tickwd,
- tickup = \tkz@sua@ticka,
- tickdn = \tkz@sua@tickb,
- pos = {below = 3pt},
- label = $x$,
- poslabel = {below = 3pt},
- noticks = false,
- nograd = false,
-% unit = false,
- orig = false,
- step = \tkz@init@xstep
- }
- \pgfqkeys{/tkzX}{#1}
- \FPtrunc\posmax{\tkz@xb}{\tkz@init@xdec}%
- \FPtrunc\posmin{\tkz@xa}{\tkz@init@xdec}%
- \FPdiv\tkz@posnext{\tkz@posnext}{\tkz@init@xstep}
- \FPadd\posnext{\posmin}{\tkz@posnext}
- \FPadd\tkz@xbsup{\tkz@xb}{\tkz@init@rightspace}
- \path (\tkz@xa,0)--(\tkz@xb,0) node(tkz@xline){};%
- \protected@edef\tkz@temp{%
- \noexpand%
- \draw[xaxe style,line width = \tkz@X@lw,%
- color = \tkz@X@color]%
- (\tkz@xa,0)--(\tkz@xbsup,0)%
- node[xlabel style,\tkz@X@poslabel]}\tkz@temp%
- {\tkz@X@label};%
- \FPtrunc\xtkzero{0.0000000}{\tkz@init@xdec}%
- \iftkz@X@noticks%
- \else
-\ifnum\tkz@X@trig=0%
- \FPtrunc\posmax{\posmax}{\tkz@init@xdec}%
- \foreach \pos in {\posmin,\posnext,...,\posmax}{%
- \FPtrunc\tkz@pos{\pos}{\tkz@init@xdec}%
- \protected@edef\tkz@temp{%
- \noexpand%
- \draw[line width = \tkz@X@tickwd,shift = {(\pos,0)}]%
- (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn)%
- node[\tkz@X@pos,inner sep = 0pt]}\tkz@temp
- {\FPmul{\xgrad}{\pos}{\tkz@init@xstep}%
- \FPadd{\xgrad}{\xgrad}{\tkz@init@xorigine}%
- \FPtrunc\xgrad{\xgrad}{\tkz@init@xdec}%
- \iftkz@X@orig%
- \iftkz@X@nograd
- \else\tkz@showgrad{\xgrad}%
- $\textcolor{\tkz@sur@colorlabel}{%
- \tkz@X@gradsize{\numprint{\tkz@result}}}$%
- \fi
- \else % orig
- \iftkz@init@NO%
- \ifx\tkz@pos\posmin
- \else
- \tkz@showgrad{\xgrad}%
- $\textcolor{\tkz@sur@colorlabel}{%
- \tkz@X@gradsize{\numprint{\tkz@result}}}$
- \fi
- \else % NO
- \ifx\tkz@pos\xtkzero%
- % \iftkz@X@unit\tkz@showgrad{\xgrad}%
- % $\textcolor{\tkz@sur@colorlabel}{%
- % \tkz@X@gradsize{\numprint{\tkz@result}}}$
- % \fi
- \else
- \iftkz@X@nograd%
- \else\tkz@showgrad{\xgrad}%
- $\textcolor{\tkz@sur@colorlabel}{%
- \tkz@X@gradsize{\numprint{\tkz@result}}}$
- \fi
- \fi%end of xtkzero
- \fi%end of NO
- \fi%end of orig
-};% end of draw
-}% end foreach
- \else %trig affichage
- \FPadd{\posmin}{\posmin}{0.5}%
- \FPdiv\nbtrigticksmax{\posmax}{\FPpi}%
- \FPdiv\nbtrigticksmin{\posmin}{\FPpi}%
- \FPmul\nbtrigticksmax{\nbtrigticksmax}{\tkz@X@trig}%
- \FPmul\nbtrigticksmin{\nbtrigticksmin}{\tkz@X@trig}%
- \FPround\nbtrigticksmin{\nbtrigticksmin}{0}%
- \foreach \pos in {\nbtrigticksmin,...,\nbtrigticksmax}{%
- \FPmul\pospi{\pos}{\FPpi}
- \FPdiv\pospi{\pospi}{\tkz@X@trig}%
- \protected@edef\tkz@temp{%
- \noexpand\draw[line width = \tkz@X@tickwd,%
- shift = {(\pospi,0)}]%
- (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickup)%
- node[\tkz@X@pos,%
- text height = 8pt,%
- inner sep = 1pt]}\tkz@temp%
- {\tkzPrintFracWithPi{\pos}{\tkz@X@trig}%
- \tkzprintfrac};%
- }% end foreach
- \fi
-\fi% end ticks
-\endgroup
- }% todo macro pour l'affichage
-
-%<--------------------------------------------------------------------------–>
-% tkzY
-%<--------------------------------------------------------------------------–>
-
-\pgfkeys{
- tkzY/.cd,
- pos/.code = {\def\tkz@Y@pos{#1}},
- trig/.code = {\def\tkz@Y@trig{#1}},
- lw/.code = {\def\tkz@Y@lw{#1}},
- color/.code = {\def\tkz@Y@color{#1}},
- label/.code = {\def\tkz@Y@label{#1}},
- poslabel/.code = {\def\tkz@Y@poslabel{#1}},
- tickwd/.code = {\def\tkz@Y@tickwd{#1}},
- ticklt/.code = {\def\tkz@Y@ticklt{#1}},
- tickrt/.code = {\def\tkz@Y@tickrt{#1}},
- gradsize/.code = {\def\tkz@Y@gradsize{#1}},
- step/.code = {\def\tkz@posnext{#1}},
- noticks/.is if = tkz@Y@noticks,
- noticks/.default = true,
- nograd/.is if = tkz@Y@nograd,
- nograd/.default = true,
- orig/.is if = tkz@Y@orig,
- orig/.default = true,
- unit/.is if = tkz@Y@unit,
- unit/.default = true }
-\def\tkzY{\pgfutil@ifnextchar[{\tkz@Y}{\tkz@Y[]}}
-\def\tkz@Y[#1]{%
- \pgfkeys{/tkzY/.cd,
- trig = 0,
- lw = \tkz@sua@lw,
- gradsize = \tkz@sua@gradsize,
- color = \tkz@sua@color,
- tickwd = \tkz@sua@tickwd,
- tickrt = \tkz@sua@ticka,
- ticklt = \tkz@sua@tickb,
- label = $y$,
- poslabel = {left = 3pt},
- pos = {left = 3pt},
- noticks = false,
- nograd = false,
- unit = false,
- orig = false,
- step = \tkz@init@ystep
- }
- \pgfqkeys{/tkzY}{#1}
- \FPtrunc\posmax{\tkz@yb}{\tkz@init@ydec}%
- \FPtrunc\posmin{\tkz@ya}{\tkz@init@ydec}%
- \FPdiv\tkz@posnext{\tkz@posnext}{\tkz@init@ystep}
- \FPadd\posnext{\posmin}{\tkz@posnext}
- \path (0,\tkz@ya)--(0,\tkz@yb) node(tkz@yline){};%
- \FPadd\tkz@ybsup{\tkz@yb}{\tkz@init@upspace}
- \protected@edef\tkz@temp{%
- \noexpand%
- \draw[line width = \tkz@Y@lw,%
- color = \tkz@Y@color,yaxe style]%
- (0,\tkz@ya)--(0,\tkz@ybsup)%
- node[\tkz@Y@poslabel,ylabel style]}\tkz@temp%
- {\tkz@Y@label};%
- \FPtrunc\ytkzero{0.000000}{\tkz@init@ydec}%
- \iftkz@Y@noticks%
- \else
- \foreach \pos in {\posmin,\posnext,...,\posmax}{%
- \FPtrunc\tkz@pos{\pos}{\tkz@init@ydec}%
- \protected@edef\tkz@temp{%
- \noexpand%
- \draw[line width = \tkz@Y@tickwd,%
- shift = {(0,\pos)}]%
- (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt)%
- node[\tkz@Y@pos,inner sep = 0pt]}\tkz@temp%
- {\FPmul{\ygrad}{\pos}{\tkz@init@ystep}%
- \FPadd{\ygrad}{\ygrad}{\tkz@init@yorigine}
- \FPtrunc\ygrad{\ygrad}{\tkz@init@ydec}%
- \iftkz@Y@orig%
- \iftkz@Y@nograd\else\tkz@showgrad{\ygrad}%
- $\textcolor{\tkz@sur@colorlabel}{\tkz@Y@gradsize{\numprint{\tkz@result}}}$\fi
- \else
- \iftkz@init@NO%
- \ifx\tkz@pos \posmin\else
- \tkz@showgrad{\ygrad}%
- $\textcolor{\tkz@sur@colorlabel}{\tkz@Y@gradsize{\numprint{\tkz@result}}}$\fi
- \else
- \ifx\tkz@pos \ytkzero
- \iftkz@Y@unit\tkz@showgrad{\ygrad}%
- $\textcolor{\tkz@sur@colorlabel}{\tkz@Y@gradsize{\numprint{\tkz@result}}}$\fi\else
- \iftkz@Y@nograd%
- \else \tkz@showgrad{\ygrad}%
- $\textcolor{\tkz@sur@colorlabel}{\tkz@Y@gradsize{\numprint{\tkz@result}}}$\fi\fi
- \fi
- \fi
- };%
- }%
-\fi
-\iftkz@init@NO\else\iftkz@Y@unit%
- \draw[line width = 1pt,%
- inner sep = 1pt] (0,0) -- (0,1)%
- node[left=3pt]%
- {$\tkz@Y@gradsize{\numprint{\tkz@init@ystep}}$};%
- \draw[line width = \tkz@Y@tickwd,%
- shift = {(0,1)}]%
- (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt);%
- \fi\fi
-}%
-\makeatother
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-utilities.tex b/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-utilities.tex
deleted file mode 100644
index 412ad2d8d3..0000000000
--- a/macros/latex/contrib/tkz/tkz-base/latex/tkz/tkzbase/tkz-tools-utilities.tex
+++ /dev/null
@@ -1,338 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 d}
-\def\filedate{2018/09/19}
-
-%<--------------------------------------------------------------------------–>
-\def\tkzutil@empty{}
-\def\tkzutil@firstofone#1{#1}
-\def\tkzutil@firstoftwo#1#2{#1}
-\def\tkzutil@secondoftwo#1#2{#2}
-%<--------------------------------------------------------------------------–>
-\long\def\tkzutil@ifundefined#1{%
- \expandafter\ifx\csname#1\endcsname\relax
- \expandafter\tkzutil@firstoftwo
- \else
- \expandafter\tkzutil@secondoftwo
- \fi}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\global\def\tkzActivOff{%
-\edef\tkzTwoPtCode{\the\catcode`\:}
-\edef\tkzPtExCode{\the\catcode`\!}
-\edef\tkzPtVirCode{\the\catcode`\;}
-\catcode`\:=12 \catcode`\!=12 \catcode`\;=12}%
-\global\def\tkzActivOn{%
-\catcode`\:=\tkzTwoPtCode\relax
-\catcode`\!=\tkzPtExCode\relax
-\catcode`\;=\tkzPtVirCode\relax
-}%
-
-%<----------------------------– autres tools -------------------------------->
-%<-------------------------- Initialisation -------------------------------->
-\pgfkeys{
-/tkzsupcol/.cd,
- background/.code = {\global\edef\tkz@suc@bkc{#1}},%
- text/.code = {\global\edef\tkz@suc@txt{#1}},
-}
-\def\tkzSetUpColors{\pgfutil@ifnextchar[{\tkz@SetUpColors}{\tkz@SetUpColors[]}}
-\def\tkz@SetUpColors[#1]{%
-\begingroup
-\pgfkeys{%
-tkzsupcol/.cd,
- background = \tkz@backgroundcolor,
- text = \tkz@textcolor
- }
-\pgfqkeys{/tkzsupcol}{#1}
-\global\edef\tkz@fillcolor{\tkz@suc@bkc}
-\global\edef\tkz@mainlinecolor{\tkz@suc@txt}
-\global\edef\tkz@textcolor{\tkz@suc@txt}
-\global\def\tkz@otherlinecolor{\tkz@suc@txt!50}
-\global\edef\tkz@sua@color{\tkz@mainlinecolor}
-\pagecolor{\tkz@suc@bkc}
-\color{\tkz@suc@txt}
- \InputIfFileExists{tkz-base.cfg}{\typeout{Local configuration file tkz-param.cfg found and used}}{\typeout{tkz-base.cfg not found}
-%<--------- axes cartesian system ---------------------------------------–>
-\global\edef\tkz@init@color{\tkz@textcolor}
-\global\def\tkz@init@lw{0.4 pt}
-\global\def\tkz@init@xlabel{$x$}
-\global\def\tkz@init@ylabel{$y$}
-\global\def\tkz@init@tickwd{0.8 pt}
-\global\def\tkz@init@ticka{2 pt}
-\global\def\tkz@init@tickb{2 pt}
-\global\def\tkz@init@rightspace{.5}
-\global\def\tkz@init@leftspace{0}
-\global\def\tkz@init@upspace{.5}
-\global\def\tkz@init@downspace{0}
-\global\let\tkzmathstyle\displaystyle
-\tikzset{xlabel style/.style={below=3 pt,
- inner sep = 1pt,
- outer sep = 0pt}}
-\tikzset{xaxe style/.style ={>=latex,->}}
-\tikzset{ylabel style/.style={left = 3 pt,
- inner sep = 1pt,
- outer sep = 0pt}}
-\tikzset{yaxe style/.style ={>=latex,->}}
-%<-------------------------- rep ---------------------------------------–>
-\global\edef\tkz@sur@color{\tkz@mainlinecolor}
-\global\edef\tkz@sur@colorlabel{\tkz@mainlinecolor}
-\global\def\tkz@sur@lw{0.8 pt}
-\global\def\tkz@sur@posxlabel{below=2pt}
-\global\def\tkz@sur@posylabel{left=2pt}
-%<-------------------------- grid ---------------------------------------–>
-\global\edef\tkz@grid@color{gray}
-\global\def\tkz@grid@lw{0.4 pt}
-\global\def\tkzCoeffSubColor{50}
-\global\def\tkzCoeffSubLw{0.8}
-\global\def\tkz@grid@xstep{0.2}
-\global\def\tkz@grid@ystep{0.2}
-%<-------------------------- line ---------------------------------------–>
-\global\edef\tkz@euc@linecolor{\tkz@mainlinecolor}
-\global\def\tkz@euc@linewidth{0.6pt}
-\global\def\tkz@euc@linestyle{solid}
-\global\def\tkz@euc@lineleft{.2}
-\global\def\tkz@euc@lineright{.2}
-\global\def\tkz@legend@line@len{1cm}
-\global\edef\tkz@euc@segmentcolor{\tkz@mainlinecolor}
-\global\edef\tkz@euc@circlecolor{\tkz@mainlinecolor}
-\tikzset{line style/.style={%
- line width = \tkz@euc@linewidth,
- color = \tkz@euc@linecolor,
- style = \tkz@euc@linestyle,
- add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}}}
-%<-------------------------- points -----------------------------------–>
-\global\edef\tkz@euc@pointshape{circle}
-\global\edef\tkz@euc@pointcolor{\tkz@mainlinecolor}
-\global\edef\tkz@euc@labelcolor{\tkz@mainlinecolor}
-\global\def\tkz@euc@pointsize{6}
-\global\def\tkz@euc@pointpos{below right}
-\tikzset{point style/.style={draw = \tkz@euc@pointcolor,
- inner sep = 0pt,
- shape = \tkz@euc@pointshape,
- minimum size = \tkz@euc@pointsize*\pgflinewidth,
- fill = \tkz@euc@pointcolor!50}}
-%<---------------------------- mark -----------------------------------–>
-\global\edef\tkz@mk@color{\tkz@mainlinecolor}
-\global\edef\tkz@mk@mark{*}
-\global\edef\tkz@mk@size{3pt}
-\global\edef\tkz@mk@fill{\tkz@otherlinecolor}
-\tikzset{mark style/.style={mark=\tkz@mk@mark,mark size=\tkz@mk@size,mark options={color=\tkz@mk@color,fill=\tkz@mk@fill}}}
-\tikzset{arrow coord style/.style={dashed,
- \tkz@euc@linecolor,
- >=latex',
- ->}}
-\tikzset{xcoord style/.style={\tkz@euc@labelcolor,
- font=\normalsize,text height=1ex,
- inner sep = 0pt,
- outer sep = 0pt,
- fill=\tkz@fillcolor,
- below=3pt}}
-\tikzset{ycoord style/.style={\tkz@euc@labelcolor,
- font=\normalsize,text height=1ex,
- inner sep = 0pt,
- outer sep = 0pt,
- fill=\tkz@fillcolor,
- left=3pt}}
-%<--------------------------- vector --------------------------------------–>
-\tikzset{vector style/.style={>=latex,->}}
-%<------------------------- compass -----------------------------------–>
-\global\edef\tkz@euc@compasscolor{\tkz@otherlinecolor}
-\global\def\tkz@euc@compasswidth{0.4pt}
-\global\def\tkz@euc@compassstyle{solid}
-\tikzset{compass style/.style={color = \tkz@euc@compasscolor,
- line width = \tkz@euc@compasswidth,
- style = \tkz@euc@compassstyle}}
-}
-\endgroup}
-
-%<--------------------------------------------------------------------------–>
-% Pour savoir le nombre de décimales d'un nombre
-% le nombre dans #1 et le résultat dans \c@pgfmath@countb
-%<--------------------------------------------------------------------------–>
-
-\newcommand*\tkz@getdecimal[1]{%
- \expandafter\@getdecimal#1.\@nil
-}
-
-\def\@getdecimal#1.#2\@nil{%
- \ifx\empty#2\empty
- % Si #2 est vide, c'est qu'il n'y avait pas de point
- % dans la chaîne initiale
- \c@pgfmath@countb0 %
- \global\def\tkz@decpart{}%
- \else
- % sinon c'est la chaîne qui suit le point décimal...
- \CountToken{#2}%
- % ... y compris le point en trop ajouté par \tkz@getdecimal :-)
- \advance\c@pgfmath@countb by-1 %
- \@@getdecimal#2\@nil
- \fi
-}
-\def\@@getdecimal#1.\@nil{\global\def\tkz@decpart{#1}}
-%<--------------------------------------------------------------------------–>
-% code from JCC modifi
-\newcommand\CountToken[1]{%
- \c@pgfmath@countb0 %
- \expandafter\C@untToken#1\@nil
-%modifi ajout du expandafter
-}
-\newcommand\C@untToken{%
- \afterassignment\C@untT@ken\let\CurrT@ken=
-}
-\newcommand\C@untT@ken{%
- \ifx\CurrT@ken\@nil \else
- \advance\c@pgfmath@countb by1 %
- \expandafter\C@untToken
- \fi
-}
-% end code from JCC
-
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-% Tools
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-%<–––––––– code from TeX in Practice ––––––––>
-\newif\if@TestSubString
-\def\SubStringConditional #1#2{%
- TT\fi
- \edef\@MainString{#1}%
- \edef\@SubStringConditionalTemp{{#1}{#2}}%
- \expandafter\@SubStringConditional\@SubStringConditionalTemp
-}
-\def\@SubStringConditional #1#2{%
- \def\@TestSubS ##1#2##2\\{%
- \def\@TestTemp{##1}%
- }%
- \@TestSubS #1#2\\
- \ifx\@MainString\@TestTemp
- \@TestSubStringfalse
- \else
- \@TestSubStringtrue
- \fi
- \if@TestSubString
-}
-
-\def\RecursionMacroEnd #1#2#3{%
- #1\relax
- \def\@RecursionMacroEndNext{#2}%
- \else
- \def\@RecursionMacroEndNext{#3}%
- \fi
- \@RecursionMacroEndNext
-}
-
-\def\ReplaceSubStrings #1#2#3#4{%
- \def\@ReplaceResult{#1}%
- \edef\@ReplaceMain{#2}%
- \edef\@ReplaceSub{#3}%
- \edef\@ReplaceSubRep{#4}%
- \@ReplaceSubStrings
-}
-\def\@ReplaceSubStrings{%
- \RecursionMacroEnd
- {\if\SubStringConditional{\@ReplaceMain}{\@ReplaceSub}}%
- {\@ReplaceSubStringsDo}{\expandafter\edef\@ReplaceResult{\@ReplaceMain}}%
-}
-\def\@ReplaceSubStringsDoX{%
- \def\@ReplaceSubStringsDoA ##1%
-}%
-\def\@ReplaceSubStringsDo{%
- \expandafter\@ReplaceSubStringsDoX \@ReplaceSub
- ##2\@EndReplaceSubStrings{%
- \edef\@ReplaceMain{##1\@ReplaceSubRep ##2}%
- }%
- \expandafter\@ReplaceSubStringsDoA\@ReplaceMain
- \@EndReplaceSubStrings
- \@ReplaceSubStrings
-}
-\def\tkzPrintFrac#1#2{%
-\begingroup
-\tkzReducFrac{#1}{#2}
-\global\edef\tkzprintfrac{$ \frac{\tkzMathFirstResult}{\tkzMathSecondResult}$}%
- \ifnum\tkzMathFirstResult=0%
- \global\edef\tkzprintfrac{$0$}%
- \else
- \ifnum\tkzMathSecondResult=1 %
- \ifnum\tkzMathFirstResult=1 %
- \global\edef\tkzprintfrac{$1$}%
- \else
- \ifnum\tkzMathFirstResult=-1%
- \global\edef\tkzprintfrac{$-1$}%
- \else
- \global\edef\tkzprintfrac{$\tkzMathFirstResult$}%
- \fi\fi
- \else
- \ifnum\tkzMathFirstResult=1 %
- \global\edef\tkzprintfrac{$\tkzmathstyle\frac{1}{\tkzMathSecondResult}$}%
- \else
- \ifnum\tkzMathFirstResult=-1 %
- \global\edef\tkzprintfrac{$\tkzmathstyle\frac{-1}{\tkzMathSecondResult}$}%
- \else
- \global\edef\tkzprintfrac{$\tkzmathstyle\frac{\tkzMathFirstResult}{%
- \tkzMathSecondResult}$}%
- \fi\fi\fi\fi
-\endgroup}
-%<--------------------------------------------------------------------------->
-\def\tkzPrintFracWithPi#1#2{%
-\begingroup
-\tkzReducFrac{#1}{#2}
-\global\edef\tkzprintfrac{$\tkzmathstyle\frac{\tkzMathFirstResult\pi}{\tkzMathSecondResult}$}%
- \ifnum\tkzMathFirstResult=0%
- \global\edef\tkzprintfrac{$0$}%
- \else
- \ifnum\tkzMathSecondResult=1 %
- \ifnum\tkzMathFirstResult=1 %
- \global\edef\tkzprintfrac{$\pi$}%
- \else
- \ifnum\tkzMathFirstResult=-1%
- \global\edef\tkzprintfrac{$-\pi$}%
- \else
- \global\edef\tkzprintfrac{$\tkzMathFirstResult\pi$}%
- \fi\fi
- \else
- \ifnum\tkzMathFirstResult=1 %
- \global\edef\tkzprintfrac{$\tkzmathstyle\frac{\pi}{\tkzMathSecondResult}$}%
- \else
- \ifnum\tkzMathFirstResult=-1 %
- \global\edef\tkzprintfrac{$\tkzmathstyle\frac{-\pi}{\tkzMathSecondResult}$}%
- \else
- \global\edef\tkzprintfrac{$\tkzmathstyle\frac{\tkzMathFirstResult\pi}{%
- \tkzMathSecondResult}$}%
- \fi\fi\fi\fi
-\endgroup}%
-
-%<--------------------------------------------------------------------------->
-% chargement des modules
-\def\tkz@obj@all{polygons,vectors,arcs,sectors,angles,protractor}
-\def\tkz@obj@txt{all}
-\def\usetkzobj{\pgfutil@ifnextchar[{\use@usetkzobj}{\use@@usetkzobj}}%}
-\def\use@usetkzobj[#1]{\use@@usetkzobj{#1}}
-\def\use@@usetkzobj#1{%
- \def\tkz@list{#1}
- \ifx\tkz@obj@txt\tkz@list \edef\tkz@list{\tkz@obj@all}%
- \else
- \edef\tkz@list{#1}%
- \fi
- %\edef\tkz@list{#1}%
- \pgfutil@for\tkz@temp:=\tkz@list\do{%
- \expandafter\ifx\csname tkz@library@\tkz@temp @loaded\endcsname\relax%
- \expandafter\global\expandafter\let\csname tkz@library@\tkz@temp @loaded\endcsname=\pgfutil@empty%
- \expandafter\edef\csname tkz@obj@#1@atcode\endcsname{\the\catcode`\@}
- \expandafter\edef\csname tkz@obj@#1@barcode\endcsname{\the\catcode`\|}
- \catcode`\@=11
- \catcode`\|=12
- \input tkz-obj-\tkz@temp.tex
- \catcode`\@=\csname tkz@obj@#1@atcode\endcsname
- \catcode`\|=\csname tkz@obj@#1@barcode\endcsname
- \fi%
- }%
-}%
-\def\DisabledNumprint{\let\tkz@numprint\numprint
-\let\numprint\relax}
-\def\EnabledNumprint{\let\numprint\tkz@numprint}
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/README b/macros/latex/contrib/tkz/tkz-euclide/README
index 0c8eed86be..b8617b381b 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/README
+++ b/macros/latex/contrib/tkz/tkz-euclide/README
@@ -1,10 +1,10 @@
% encodage utf8
-------------------- english readme ----------------------------------------
-readme-tkz-euclide.txt V1.16 c 01/06/2011
+readme-tkz-euclide.txt V3.01 c 2020/01/24
+
+tkz-euclide is a package (latex) which allows you to draw
+  two-dimensional geometric figures, in other words to create figures of Euclidean geometry. It uses a Cartesian coordinate system orthogonal provided by the tkz-base package as well as tools to define the unique coordinates of points and to manipulate them. The idea is to allow you to follow step by step a construction that would be done by hand as naturally as possible.
-tkz-euclide is a replacement package for the original tkz-2d package.
-tkz-euclide uses the Cartesian (rectangular) coordinate system provided by the
-package tkz-base.sty. It is designed to create figures based on Euclidean geometry.
Licence
-------
@@ -16,12 +16,10 @@ archives in directory macros/latex/base/lppl.txt.
Features
--------
- -- needs etex and fp.sty;
- -- requires and automatically loads PGF/TikZ 2.1;
- -- compiles with utf8, pdflatex;
- -- compiles using the chain dvi->dvips->ps2pdf;
- -- not yet ready for use with TeX and ConText (I need more time and ideas);
-
+ -- needs xfp and numprint;
+ -- requires and automatically loads PGF/TikZ 3;
+ -- compiles with utf8, pdflatex and lualatex;
+
Installation
------------
@@ -31,36 +29,6 @@ distribution files in the directory containing your current tex file.
You can also placing all of the distribution files in the directory :
/texmf/tex/latex/tkz.
-tkz-euclide.sty uses a lot of files. The directory tkzeuclide contains the
- following files :
-
- -- tkz-euclide.sty
- -- tkz-lib-symbols.tex
- -- tkz-obj-addpoints.tex
- -- tkz-obj-angles.tex
- -- tkz-obj-arcs.tex
- -- tkz-obj-circles.tex
- -- tkz-obj-lines.tex
- -- tkz-obj-protractor.tex
- -- tkz-obj-polygons.tex
- -- tkz-obj-sectors.tex
- -- tkz-obj-segments.tex
- -- tkz-obj-vectors.tex
- -- tkz-tools-intersections.tex
- -- tkz-tools-transformations.tex
-
-tkz-euclide also uses the files in the directory tkzbase:
-
- -- tkz-base.cfg
- -- tkz-obj-segments.tex
- -- tkz-tools-misc.tex
- -- tkz-base.sty
- -- tkz-tools-arith.tex
- -- tkz-tools-obsolete.tex
- -- tkz-obj-marks.tex tkz-tools-base.tex
- -- tkz-tools-utilities.tex
- -- tkz-obj-points.tex
- -- tkz-tools-math.tex
How to use it
-------------
@@ -69,50 +37,39 @@ To use the package tkz-euclide, place the following lines in the preamble of
your LaTeX document.
\usepackage{tkz-euclide}
-\usetkzobj{all}
-
-\usepackage{tkz-euclide} loads tkz-base and TikZ. \usetkzobj{all} loads all
- objects used by tkz-euclide.
-
-If you don't need to use all of the objects provided by tkz-euclide, you can
- load just the ones you need.
-\usepackage{tkz-euclide}
-\usetkzobj}{circles,polygons}
-
-This loads two specific objects, circles and polygons.
+\usetkzobj{all} is no longer required with tkz-euclide but you can use it with other packages
+
+\usepackage{tkz-euclide} loads tkz-base and TikZ.
If you use the xcolor package, load that package before tkz-euclide to avoid
package conflicts.
-\usepackage[usenames,dvipsnames]{xcolor}
-\usepackage{amsmath,tkz-euclide,tkz-fct}
-\usetkzobj{all}
-
Documentation
-------------
- Documentation for tkz-euclide and tkz-base is available on my sites:
-
- http://altermundus.fr (en français) or http://altermundus.fr (in english)
- Documentation for printing will be ready soon.
-
+
+Documentation for tkz-euclide and tkz-base is available on CTAN. You have two cheatsheets about tkz-euclide in the archive.
+
Examples
--------
- All examples given in documentation will be stored on my sites as standalone
- files, ready for compilation.
+
+All examples given in documentation will be stored on CTAN as standalone
+ files, ready for compilation. You can use the main.tex file to load and compile an example.
+The archive contains a litle document about Euclidean Geometry with four examples.
+Other examples are on my site : http://altermundus.fr (en français)
Compatibility
-------------
-The new package tkz-euclide is *not* compatible with older packages tkz-base,
- tkz-2d, and tkz-arith.
+The new package tkz-euclide 3.01c is *not* fully compatible with the version 1.16 but the differences are minor.
History
-------
+-- 3.01 this version
-- 1.16 correction of bugs
--- 1.13 first version
+-- 1.13 first version
Alain Matthes
5 rue de Valence
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/Euclidean_geometry.pdf b/macros/latex/contrib/tkz/tkz-euclide/doc/Euclidean_geometry.pdf
new file mode 100644
index 0000000000..385ff5261c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/Euclidean_geometry.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/TKZdoc-euclide.pdf b/macros/latex/contrib/tkz/tkz-euclide/doc/TKZdoc-euclide.pdf
new file mode 100644
index 0000000000..f9310bb886
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/TKZdoc-euclide.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/cheatsheet_euclide_1.pdf b/macros/latex/contrib/tkz/tkz-euclide/doc/cheatsheet_euclide_1.pdf
new file mode 100644
index 0000000000..6b771bf35b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/cheatsheet_euclide_1.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/cheatsheet_euclide_2.pdf b/macros/latex/contrib/tkz/tkz-euclide/doc/cheatsheet_euclide_2.pdf
new file mode 100644
index 0000000000..20dfc84c2e
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/cheatsheet_euclide_2.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-FAQ.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-FAQ.tex
deleted file mode 100644
index b769b479ab..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-FAQ.tex
+++ /dev/null
@@ -1,49 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-\section{FAQ}
-\subsection{Erreurs les plus fréquentes}
- Je me base pour le moment sur les miennes, car ayant changé plusieurs fois de syntaxes, j'ai commis un certain nombre d'erreurs. Cette section est amenée à se développer.
-
- \begin{itemize}\setlength{\itemsep}{10pt}
- \item \tkzcname{tkzDrawPoint(A,B)} alors qu'il faut \tkzcname{tkzDrawPoints}
- \item \tkzcname{tkzGetPoint(A)} Quand on définit un objet, il faut utiliser des accolades et non des parenthèses, il faut donc écrire~: \tkzcname{tkzGetPoint\{A\}}
-
- \item \tkzcname{tkzGetPoint\{A\}} à la place de \tkzcname{tkzGetFirstPoint\{A\}}. Quant une macro donne deux points comme résultats, soit on récupère ces points à l'aide de \tkzcname{tkzGetPoints\{A\}\{B\}}, soit on ne récupère que l'un des deux points, à l'aide \tkzcname{tkzGetFirstPoint\{A\}} ou bien de \tkzcname{tkzGetSecondPoint\{A\}}. Ces deux points peuvent être utilisés avec comme référence \tkzname{tkzFirstPointResult} ou \tkzname{tkzSecondPointResult}. Il est possible qu'un troisième point soit donné sous la référence \tkzname{tkzPointResult}
-
- \item \tkzcname{tkzDrawSegment(A,B A,C)} alors qu'il faut \tkzcname{tkzDrawSegments}. Il est possible de n'utiliser que les versions avec un « s » mais c'est moins efficace!
- \item Mélange option et arguments; toutes les macros qui utilisent un cercle ont besoin de connaître le rayon de celui-ci. Si le rayon est donné par une mesure alors l'option comprend un \tkzname{R}.
-
-\item \tkzcname{tkzDrawSegments[color = gray,style=dashed]\{B,B' C,C'\}} est une erreur. Seules, les macros qui définissent un objet utilisent des accolades.
- \item Les angles sont donnés en degrés
-
- \item Si une erreur survient dans un calcul lors d'un passage de paramètres, alors il est préférable de faire ces calculs avant d'appeler la macro.
- \item Ne pas mélanger la syntaxe de \tkzNamePack{pgfmath} et celle de \tkzNamePack{fp.sty}. J'ai choisi souvent \tkzname{fp.sty} mais si vous préférez pgfmath alors effectuez vos calculs avant le passage de paramètres.
-
-%\tkzDrawLines[add=0 and 8]( A,a B,b) au lieu de \tkzDrawLines[add=0 and 8](A,a B,b)
-
-%\tkzActivOff
-%\tkzDrawSegment[color=Maroon!50](I,H)
-
-\item usage de \tkzcname{tkzClip} : Afin d'avoir des résultats précis, j'ai évité de passer par des vecteurs normalisés. L'avantage de la normalisation est de contrôler la dimension des objets manipulés, le désavantage est qu'avec TeX, cela implique des erreurs. Ces erreurs sont souvent minimes, de l'ordre du millième, mais entraînent des catastrophes si le dessin est agrandi. Ne pas normaliser implique que certains points se trouvent bien loin de la zone de travail et seul \tkzcname{tkzClip} permet de réduire la taille du dessin.
-
-
-\item une erreur se produit si vous utilisez la macro \tkzcname{tkzDrawAngle}
- avec un angle trop petit. L'erreur est produite par la librairie \NameLib{decoration} quand on veut placer une marque sur un arc. Même si la marque est absente, l'erreur, elle, reste présente. Il est possible de contourner cette difficulté avec l'option \tkzname{mkpos=.2} par exemple, qui placera la marque avant l'arc. Une autre possibilité est d'utiliser la macro \tkzcname{tkzFillAngle}
-\item Somme de deux vecteurs
-
-Comment obtenir le point D tel que $\overrightarrow{AD} = \overrightarrow{AB} + \overrightarrow{AC}$?
-
-\begin{tkzexample}[latex=5 cm,small]
- \begin{tikzpicture}[scale=.5]
- \tkzDefPoint(1,1){A}
- \tkzDefPoint(8,0){B}
- \tkzDefPoint(3,4){C}
- \tkzDefVector[colinear= at C](A,B){D}
- \tkzDrawVectors[color=blue](A,B A,C)
- \tkzDrawVector[color=red](A,D)
- \tkzLabelPoints(A,B,C,D)
-\end{tikzpicture}
-\end{tkzexample}
-
- \end{itemize}
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-alea.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-alea.tex
deleted file mode 100644
index 744c987d2f..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-alea.tex
+++ /dev/null
@@ -1,124 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-
-\section{Définition aléatoire de points}
-Il y a pour le moment quatre possibilités :
-\begin{enumerate}
- \item point dans un rectangle,
- \item sur un segment,
- \item sur une droite,
- \item sur un cercle.
-\end{enumerate}
-
-\begin{NewMacroBox}{tkzGetRandPointOn}{\oarg{local options}\marg{name} }
-
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & & définition \\
-\midrule
-\TOline{rectangle = \#1 and \#2}{}{\#1 et \#2 sont des noms de points}
-\TOline{segment = \#1--\#2}{}{\#1 et \#2 sont des noms de points}
-\TOline{line = \#1--\#2}{}{\#1 et \#2 sont des noms de points}
-\TOline{circle = center \#1 radius \#1 }{}{\#1 est un point et \#1 une mesure}
- \bottomrule
-\end{tabular}
-
-\medskip
-\noindent\emph{Cette macro est assez simple à utiliser, voyez les exemples.}
-\end{NewMacroBox}
-
-\subsection{Point aléatoire dans un rectangle}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}
- \tkzInit[xmax=5,ymax=5] \tkzGrid
- \tkzDefPoint(0,0){A} \tkzDefPoint(2,2){B}
- \tkzDefPoint(5,5){C}
- \tkzGetRandPointOn[rectangle = A and B]{a}
- \tkzGetRandPointOn[rectangle = B and C]{d}
- \tkzDrawLine(a,d)
- \tkzDrawPoints(A,B,C,a,d)
- \tkzLabelPoints(A,B,C,a,d)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-\subsection{Point aléatoire sur un segment}
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}
- \tkzInit[xmax=5,ymax=5] \tkzGrid
- \tkzDefPoint(0,0){A} \tkzDefPoint(2,2){B}
- \tkzDefPoint(3,3){C} \tkzDefPoint(5,5){D}
- \tkzGetRandPointOn[segment = A--B]{a}
- \tkzGetRandPointOn[segment = C--D]{d}
- \tkzDrawPoints(A,B,C,D,a,d)
- \tkzLabelPoints(A,B,C,D,a,d)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Point aléatoire sur une droite}
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}
- \tkzInit[xmax=5,ymax=5] \tkzGrid
- \tkzDefPoint(0,0){A} \tkzDefPoint(2,2){B}
- \tkzDefPoint(3,3){C} \tkzDefPoint(5,5){D}
- \tkzGetRandPointOn[line = A--B]{a}
- \tkzGetRandPointOn[line = C--D]{d}
- \tkzDrawPoints(A,B,C,D,a,d)
- \tkzLabelPoints(A,B,C,D,a,d)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Point aléatoire sur un cercle}
-
-\begin{tkzexample}[latex=5cm]
-\begin{tikzpicture}
- \tkzInit[xmax=5,ymax=5] \tkzGrid
- \tkzDefPoint(3,2){A} \tkzDefPoint(1,1){B}
- \tkzCalcLength[cm](A,B) \tkzGetLength{rAB}
- \tkzDrawCircle[R](A,\rAB cm)
- \tkzGetRandPointOn[circle = center A radius \rAB cm]{a}
- \tkzDrawSegment(A,a)
- \tkzDrawPoints(A,B,a)
- \tkzLabelPoints(A,B,a)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\newpage
-\subsection{Milieu d'un segment au compas}
- Pour terminer cette section, voici un exemple plus complexe. Il s'agit de déterminer le milieu d'un segment, uniquement avec un compas.
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=.75]
- \tkzDefPoint(0,0){A}
- \tkzGetRandPointOn[circle= center A radius 4cm]{B}
- \tkzDrawPoints(A,B)
- \tkzDefPointBy[rotation= center A angle 180](B)
- \tkzGetPoint{C}
- \tkzInterCC[R](A,4 cm)(B,4 cm)
- \tkzGetPoints{I}{I'}
- \tkzInterCC[R](A,4 cm)(I,4 cm)
- \tkzGetPoints{J}{B}
- \tkzInterCC(B,A)(C,B)
- \tkzGetPoints{D}{E}
- \tkzInterCC(D,B)(E,B)
- \tkzGetPoints{M}{M'}
- \tikzset{arc/.style={color=brown,style=dashed,delta=10}}
- \tkzDrawArc[arc](C,D)(E)
- \tkzDrawArc[arc](B,E)(D)
- \tkzDrawCircle[color=brown,line width=.2pt](A,B)
- \tkzDrawArc[arc](D,B)(M)
- \tkzDrawArc[arc](E,M)(B)
- \tkzCompasss[color=red,style=solid](B,I I,J J,C)
- \tkzDrawPoints(B,C,D,E,M)
- \end{tikzpicture}
- \end{tkzexample}
-\end{center}
-
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-arcs.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-arcs.tex
deleted file mode 100644
index ce53fb2899..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-arcs.tex
+++ /dev/null
@@ -1,141 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-\section{Les arcs}
-
-\begin{NewMacroBox}{tkzDrawArc}{\oarg{local options}\parg{O,\dots}\parg{\dots} }
-
- \emph{Cette macro trace un arc de centre O. Suivant les options, les arguments diffèrent. Il s'agit de déterminer un point de départ et un point d'arrivée. Soit le point de départ est donné, c'est ce qu'il y a de plus simple, soit on donne le rayon de l'arc. Dans ce dernier cas, il est nécessaire d'avoir deux angles. On peut soit donner directement les angles, soit donner des nodes qui associés au centre permettront de les déterminer.}
-
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{towards}{towards}{O est le centre et l'arc par de A vers (OB)}
-\TOline{rotate} {towards}{l'arc part de A et l'angle détermine sa longueur }
-\TOline{R}{towards}{On donne le rayon et deux angles}
-\TOline{R with nodes}{towards}{On donne le rayon et deux points}
-\TOline{delta}{0}{angle ajouté de chaque côté }
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Il faut ajouter bien sûr tous les styles de \TIKZ pour les tracés}
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-options & arguments & exemple \\
-\midrule
-\TOline{towards}{\parg{pt,pt}\parg{pt}}{\tkzcname{tkzDrawArc[delta=10](O,A)(B)}}
-\TOline{rotate} {\parg{pt,pt}\parg{an}}{\tkzcname{tkzDrawArc[rotate,color=red](O,A)(90)}}
-\TOline{R}{\parg{pt,$r$}\parg{an,an}}{\tkzcname{tkzDrawArc[R,color=blue](O,2 cm)(30,90)}}
-\TOline{R with nodes}{\parg{pt,$r$}\parg{pt,pt}}{\tkzcname{tkzDrawArc[R with nodes](O,2 cm)(A,B)}}
-\bottomrule
-\end{tabular}
-\end{NewMacroBox}
-
-Quelques exemples :
-
-\subsection{\tkzcname{tkzDrawArc} et \tkzname{towards}}
-Il est inutile de mettre \tkzname{towards}. Dans ce premier exemple l'arc part de A et va sur B. L'arc qui va de B vers A est différent. On obtient le saillant en allant dans le sens direct du cercle trigonométrique.
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2,-1){A}
- \tkzDefPointBy[rotation= center O angle 90](A)
- \tkzGetPoint{B}
- \tkzDrawArc[color=blue](O,A)(B)
- \tkzDrawArc(O,B)(A)
- \tkzDrawLines[add = 0 and .5](O,A O,B)
- \tkzDrawPoints(O,A,B)
- \tkzLabelPoints[below](O,A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{\tkzcname{tkzDrawArc} et \tkzname{towards}}
-Dans celui-ci, l'arc part de A mais s'arrête sur la droite (OB).
-
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}[scale=1.5]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2,-1){A}
- \tkzDefPoint(1,1){B}
- \tkzDrawArc[color=blue](O,A)(B)
- \tkzDrawArc[color=Maroon](O,B)(A)
- \tkzDrawArc(O,B)(A)
- \tkzDrawLines[add = 0 and .5](O,A O,B)
- \tkzDrawPoints(O,A,B)
- \tkzLabelPoints[below](O,A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{\tkzcname{tkzDrawArc} et \tkzname{rotate}}
-\begin{tkzexample}[latex=5cm]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2,-2){A}
- \tkzDefPoint(60:2){B}
- \tkzDrawLines[add = 0 and .5](O,A O,B)
- \tkzDrawArc[rotate,color=red](O,A)(180)
- \tkzDrawPoints(O,A,B)
- \tkzLabelPoints[below](O,A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{\tkzcname{tkzDrawArc} et \tkzname{R}}
-\begin{tkzexample}[latex=5cm]
-\begin{tikzpicture}
- \tkzDefPoints{0/0/O}
- \tikzset{compass style/.append style={<->}}
- \tkzDrawArc[R, color=orange,double](O,3cm)(270,360)
- \tkzDrawArc[R, color=blue,double](O,2cm)(0,270)
- \tkzDrawPoint(O)
- \tkzLabelPoint[below](O){$O$}
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{\tkzcname{tkzDrawArc} et \tkzname{R with nodes}}
-\begin{tkzexample}[latex=5cm]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2,-1){A}
- \tkzDefPoint(1,1){B}
- \tkzCalcLength(B,A)\tkzGetLength{radius}
- \tkzDrawArc[R with nodes](B,\radius pt)(A,O)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{\tkzcname{tkzDrawArc} et \tkzname{delta}}
-Cette option permet un peu comme \tkzcname{tkzCompass} de placer un arc et de déborder de chaque côté. delta est une mesure en degré.
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}
- \tkzInit
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(5,0){B}
- \tkzDefPointBy[rotation= center A%
- angle 60](B) \tkzGetPoint{C}
- \tkzSetUpLine[color=gray]
- \tkzDefPointBy[symmetry= center C](A)
- \tkzGetPoint{D}
- \tkzDrawSegments(A,B A,D)
- \tkzDrawLine(B,D)
- \tkzSetUpCompass[color=orange]
- \tkzDrawArc[delta=10](A,B)(C)
- \tkzDrawArc[delta=10](B,C)(A)
- \tkzDrawArc[delta=10](C,D)(D)
- \tkzDrawPoints(A,B,C,D)
- \tkzLabelPoints(A,B,C,D)
- \tkzMarkRightAngle(D,B,A)
-\end{tikzpicture}
-\end{tkzexample}
-
-
- \endinput
-
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-base.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-base.tex
deleted file mode 100644
index 472867e2c8..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-base.tex
+++ /dev/null
@@ -1,105 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-\section{Résumé de tkz-base}
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-
-
-\subsection{Utilité de \tkzname{tkz-base}}
-\tkzNamePack{tkz-base} permet de simplifier l'utilisation d'intervalles de valeurs divers, ce package est nécessaire pour utiliser \tkzname{tkz-tukey}, un package pour dessiner les représentations graphiques en statistiques élémentaires (ce package n'est pas encore en version officielle). Il est aussi nécessaire avec \tkzNamePack{tkz-fct}, pas plus officiel que le précédent et qui permet de dessiner les représentations graphiques des fonctions. Il utile également avec \tkzname{tkz-euclide}, mais pas pour les mêmes raisons, car l'unité par défaut, le cm, convient parfaitement.
-
-Premièrement, il faut savoir qu'il n'est pas nécessaire de s'occuper avec \TIKZ\ de la taille du support (background). Cependant il est parfois nécessaire, soit de tracer une grille, soit de tracer des axes, soit de travailler avec une unité différente que le centimètre, soit finalement de contrôler la taille de ce qui sera affiché.
- Pour cela, il faut avoir préparé le repère dans lequel vous allez travailler, c'est le rôle de \tkzNamePack{tkz-base} et de sa macro principale \tkzNameMacro{tkzInit}. Par exemple, si l'on veut travailler sur un carré de 10 cm de côté, mais tel que l'unité soit le dm alors il faudra utiliser.
-
-\tkzcname{tkzInit[xmax=1,ymax=1,xstep=0.1,ystep=0.1]}
-
- en revanche pour des valeurs de $x$ comprises entre \numprint{0} et \numprint{10000} et des valeurs de $y$ comprises entre \numprint{0} et \numprint{100000}, il faudra écrire
-
-\tkzcname{tkzInit[xmax=10000,ymax=100000,xstep=1000,ystep=10000]}
-
-Tout cela a peu de sens pour faire de la géométrie euclidienne, et dans ce cas, il est recommandé de laisser l'unité graphique égale à 1 cm. Je n'ai d'ailleurs pas testé si toutes les macros destinées à la géométrie euclidienne, acceptaient d'autres valeurs que \tkzname{xstep=1} et \tkzname{ystep=1}. En revanche pour certains dessins, il est intéressant de fixer les valeurs extrêmes et de « clipper » le rectangle de définition afin de contrôler au mieux la taille de la figure.
-
-Les principales macros de \tkzNamePack{tkz-base} sont:
-\begin{itemize}
- \item \tkzcname{tkzInit}
- \item \tkzcname{tkzClip}
- \item \tkzcname{tkzAxeXY}
- \item \tkzcname{tkzAxeX}
- \item \tkzcname{tkzAxeY}
- \item \tkzcname{tkzDrawX}
- \item \tkzcname{tkzDrawY}
- \item \tkzcname{tkzLabelX}
- \item \tkzcname{tkzLabelY}
- \item \tkzcname{tkzGrid}
- \item \tkzcname{tkzRep}
-\end{itemize}
-
-Vous trouverez de multiples exemples dans la documentation de \tkzname{tkz-base}.
-
-\newpage
-\subsection{Exemple avec \tkzcname{tkzInit}}
-
-\begin{center}
-\begin{tkzexample}[latex=8cm]
-\begin{tikzpicture}
- \tkzInit[xmax=3,ymax=3]
- \tkzAxeXY
- \tkzGrid
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-\subsection{\tkzcname{tkzClip}}
-Le rôle de cette macro est de « clipper » le rectangle initial afin que ne soient affichés que les tracés contenus dans ce rectangle.
-
-\begin{tkzexample}[latex=8cm]
-\begin{tikzpicture}
- \tkzInit[xmax=4, ymax=3]
- \tkzAxeXY
- \tkzGrid
- \tkzClip
- \draw[red] (-1,-1)--(5,5);
-\end{tikzpicture}
-\end{tkzexample}
-
-Il est possible d'ajouter un peu d'espace
-\begin{tkzltxexample}[]
- \tkzClip[space=1]
-\end{tkzltxexample}
-
-\subsection{\tkzcname{tkzClip} et l'option \tkzname{space}}
-
-\begin{tkzexample}[latex=8cm]
-\begin{tikzpicture}
- \tkzInit[xmax=4, ymax=3]
- \tkzAxeXY
- \tkzGrid
- \tkzClip[space=-1]
- \draw[red] (-1,-1)--(5,5);
-\end{tikzpicture}
-\end{tkzexample}
-les dimensions du rectangle clippé sont \tkzname{xmin-1}, \tkzname{ymin-1}, \tkzname{xmax+1} et \tkzname{ymax+1}.
-
-\subsection{\tkzcname{tkzGrid} et l'option \tkzname{sub}}
-L'option \tkzname{sub} permet d'afficher un grille secondaire plus fine.
-\begin{tkzexample}[latex=8cm]
-\begin{tikzpicture}
- \tkzInit[xmax=4, ymax=3]
- \tkzAxeXY
- \tkzGrid[sub]
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{\tkzcname{tkzGrid} et les couleurs}
-L'option \tkzname{sub} permet d'afficher un grille secondaire plus fine.
-\begin{tkzexample}[latex=8cm]
-\begin{tikzpicture}
- \tkzInit[xmax=4, ymax=3]
- \tkzAxeXY
- \tkzGrid[sub,color=bistre,
- subxstep=.5,subystep=.5]
-\end{tikzpicture}
-\end{tkzexample}
-
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex
deleted file mode 100644
index c2c8db46a8..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex
+++ /dev/null
@@ -1,628 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-\section{Les Cercles}
-
-Parmi les macros suivantes, l'une va permettre de tracer un cercle, ce qui n'est pas un réel exploit. Pour cela, il va falloir connaître le centre du cercle et soit le rayon du cercle, soit un point de la circonférence. Il m'a semblé que l'utilisation la plus fréquente était de tracer un cercle de centre donné passant par un point donné. Ce sera la méthode par défaut, sinon il faudra utiliser l'option \tkzname{R}. Il existe un grand nombre de cercles particuliers, par exemple le cercle circonscrit à un triangle.
-
-\begin{itemize}
- \item J'ai créé une première macro \tkzcname{tkzDefCircle} qui permet en fonction d'un cercle
- particulier de récupérer son centre et la mesure du rayon en cm. Cette récupération se fait avec les macros \tkzcname{tkzGetPoint} et \tkzcname{tkzGetLength},
-
- \item ensuite une macro \tkzcname{tkzDrawCircle},
-
- \item puis une macro qui permet de colorier un disque, mais sans tracer le cercle \tkzcname{tkzFillCircle},
-
- \item parfois, il est nécessaire qu'un dessin soit contenu dans un disque c'est le rôle attribuer à \tkzcname{tkzClipCircle},
-
-
- \item Il reste enfin à pouvoir donner un label pour désigner un cercle et si plusieurs possibilités sont offertes, nous verrons ici \tkzcname{tkzLabelCircle}.
-\end{itemize}
-
-
-\subsection{Caractéristiques d'un cercle : \tkzcname{tkzDefCircle}}
-
-Pour le moment, il est possible de récupérer les caractéristiques des cercles suivants (le premier est là pour que l'ensemble soit homogène)
-\begin{itemize}
-\item \tkzname{radius} cercle caractérisé par deux points définissant un rayon,
-\item \tkzname{diameter} cercle caractérisé par deux points définissant un diamètre,
-\item \tkzname{circum} cercle circonscrit à un triangle,
-\item \tkzname{in} cercle inscrit dans à un triangle,
-\item \tkzname{euler} cercle d'Euler d'un triangle,
-\item \tkzname{apollonius} cercle d'Apollonius caractérisé par un segment et un ratio.
-\end{itemize}
-
-\begin{NewMacroBox}{tkzDefCircle}{\oarg{local options}\parg{A,B} ou \parg{A,B,C}}
-\emph{Attention les arguments sont des listes de deux ou bien de trois points. Cette macro est, soit utilisée en partenariat avec \tkzcname{tkzGetPoint} et/ou \tkzcname{tkzGetLength} pour obtenir le centre et le rayon du cercle, soit en utilisant \tkzname{tkzPointResult} et \tkzname{tkzLengthResult} s'il n'est pas nécessaire de conserver les résultats.}
-
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{radius} {radius}{cercle caractérisé par deux points définissant un rayon}
-\TOline{diameter} {radius}{cercle caractérisé par deux points définissant un diamètre }
-\TOline{circum}{radius}{cercle circonscrit à un triangle}
-\TOline{in} {radius}{cercle inscrit dans à un triangle }
-\TOline{euler}{radius}{Cercle d'Euler }
-\TOline{apollonius} {radius}{Cercle d'Apollonius}
-\TOline{orthogonal} {radius}{Cercle de centre donné orthogonal à un autre cercle}
-\TOline{orthogonal through}{radius}{Cercle orthogonal à un autre cercle passant par deux points}
-\TOline{K} {2}{Coefficient utilisé pour un cercle d'Apollonius}
-\TOline{color} {black}{couleur du cercle}
-\TOline{fill} {}{couleur du disque, si présent }
-\TOline{line width} {.4pt}{épaisseur du trait } \bottomrule
-\end{tabular}
-
-\medskip\emph{Dans les exemples suivants, je trace les cercles avec une macro pas encore présentée, mais ce n'est pas nécessaire. Dans certains cas on peut seulement avoir besoin du centre ou encore du rayon.}
-\end{NewMacroBox}
-
-\subsubsection{Exemple}
-\begin{tkzexample}[latex=7 cm]
-\begin{tikzpicture}
- \tkzDefPoint(0,4){A}
- \tkzDefPoint(3,2){B}
- \tkzDefCircle[radius](A,B)
- \tkzGetLength{rABpt}
- \tkzpttocm(\rABpt){rABcm}
- \tkzDrawCircle(A,B)
- \tkzDrawPoints(A,B)
- \tkzLabelPoints(A,B)
- \tkzLabelCircle[draw,fill=Gold,%
- text width=3cm,text centered](A,B)(-90)%
- {La mesure du rayon est :
- \rABpt pt soit \rABcm cm}
-\end{tikzpicture}
- \end{tkzexample}
-%
- \subsubsection{Exemple avec un point aléatoire}
-%
-\begin{tkzexample}[latex=7 cm]
- \begin{tikzpicture}
- \tkzDefPoint(0,4){A}
- \tkzDefPoint(3,2){B}
- \tkzDefMidPoint(A,B) \tkzGetPoint{I}
- \tkzGetRandPointOn[segment = I--B]{C}
- \tkzDefCircle[radius](A,C)
- \tkzGetLength{rACpt}
- \tkzpttocm(\rACpt){rACcm}
- \tkzDrawCircle(A,C)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints(A,B,C)
- \tkzLabelCircle[draw,fill=Gold,%
- text width=3cm,text centered](A,C)(-90)%
- {La mesure du rayon est :
- \rACpt pt soit \rACcm cm}
- \end{tikzpicture}
- \end{tkzexample}
-
-\newpage
- \subsubsection{Cercles inscrit et circonscrit pour un triangle donné}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.5]
- \tkzDefPoint(2,2){A}
- \tkzDefPoint(5,-2){B}
- \tkzDefPoint(1,-2){C}
- \tkzDefCircle[in](A,B,C)
- \tkzGetPoint{I} \tkzGetLength{rIN}
- \tkzDefCircle[circum](A,B,C)
- \tkzGetPoint{K} \tkzGetLength{rCI}
- \tkzDrawPoints(A,B,C,I,K)
- \tkzDrawCircle[R,blue](I,\rIN pt)
- \tkzDrawCircle[R,red](K,\rCI pt)
- \tkzLabelPoints[below](B,C)
- \tkzLabelPoints[above left](A,I,K)
- \tkzDrawPolygon(A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\newpage
- \subsubsection{Cercles d'Apollonius colorié pour un segment donné}
-Wikipedia donne comme définition :
-
-Apollonius de Perga propose de définir le cercle comme l'ensemble des points M du plan pour lesquels le rapport des distances MA/MB reste constant, les points A et B étant donnés.
-Théorème — Si A et B sont deux points distincts et $k$ est un réel autre que 0 et 1, le cercle d'Apollonius du triplet (A,B,$k$) est l'ensemble des points M du plan tels que MA/MB = $k$.
-
-
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.25]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(4,0){B}
- \tkzDefCircle[apollonius,K=2](A,B)
- \tkzGetPoint{K1}
- \tkzGetLength{rAp}
- \tkzDrawCircle[R,color = blue!50!black,fill=blue!20,opacity=.4](K1,\rAp pt)
- \tkzDefCircle[apollonius,K=3](A,B)
- \tkzGetPoint{K2} \tkzGetLength{rAp}
- \tkzDrawCircle[R,color=red!50!black,fill=red!20,opacity=.4](K2,\rAp pt)
- \tkzLabelPoints[below](A,B,K1,K2)
- \tkzDrawPoints(A,B,K1,K2)
- \tkzDrawLine[add=.2 and 1](A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-Les cercles ont été tracés et les disques coloriés, simplement avec les outils de \TIKZ.
-
-\newpage
- \subsubsection{Cercle d'Euler pour un triangle donné}
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.5]
- \tkzInit[xmin=-1,ymin=-1,xmax=8,ymax=6] \tkzClip
- \tkzDefPoint(5,3.5){A} \tkzDefPoint(0,0){B} \tkzDefPoint(7,0){C}
- \tkzDefCircle[euler](A,B,C)
- \tkzGetPoint{E} \tkzGetLength{rEuler}
- \tkzDrawPoints(A,B,C,E)
- \tkzDrawCircle[R,blue](E,\rEuler pt)
- \tkzDrawPolygon(A,B,C)
- \tkzLabelPoints[below](B,C) \tkzLabelPoints[left](A,E)
-\end{tikzpicture}
-\end{tkzexample}
- \end{center}
-
- Il est possible avec les outils d'intersection de déterminer les points communs du cercle d'Euler et du triangle.
-
-\newpage
-\subsubsection{Cercle orthogonal de centre donné}
-Nous allons chercher deux cercles orthogonaux au cercle de centre O passant par A, leurs centres B et C étant donnés.
-
-\begin{center}
- \begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.5]
- \tkzDefPoint(0,0){O} \tkzDefPoint(1,0){A}
- \tkzDefPoint(1.5,1.25){B} \tkzDefPoint(-2,-3){C}
- \tkzDrawCircle(O,A)
- \tkzDefCircle[orthogonal from=B](O,A)
- \tkzDrawCircle[thick,color=red](B,tkzFirstPointResult)
- \tkzDefCircle[orthogonal from=C](O,A)
- \tkzDrawCircle[thick,color=red](C,tkzFirstPointResult)
- \tkzDrawPoints(tkzFirstPointResult,tkzSecondPointResult,O,A,B,C)
- \tkzLabelPoints(O,A,C,B)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
- \subsubsection{Cercle orthogonal passant par deux points donnés}
- Nous allons cette fois récupéré le centre.
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=3]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(1,0){A}
- \tkzDrawCircle(O,A)
- \tkzDefPoint(-1.5,-1.5){z1}
- \tkzDefPoint(1.5,-1.25){z2}
- \tkzDefCircle[orthogonal through=z1 and z2](O,A) \tkzGetPoint{c}
- \tkzDrawCircle[thick,color=red](tkzPointResult,z1)
- \tkzDrawPoints[fill=red,color=black,size=4](O,A,z1,z2,c)
- \tkzLabelPoints(O,A,z1,z2,c)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-\newpage
-\subsection{Tracer un cercle}
-\begin{NewMacroBox}{tkzDrawCircle}{\oarg{local options}\parg{A,B} ou \parg{A,B,C}}
-\noindent\emph{Attention les arguments sont des listes de deux ou bien de trois points. Les cercles que l'on peut tracer sont les mêmes que pour la macro précédente. Une option supplémentaire \tkzname{R} afin de donner directement une mesure.}
-
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{radius}{radius}{cercle avec deux points définissant un rayon}
-\TOline{diameter}{radius}{cercle avec deux points définissant un diamètre}
-\TOline{R} {radius}{cercle caractérisé par un point et la mesure d'un rayon}
-\TOline{circum}{radius}{cercle circonscrit à un triangle}
-\TOline{in}{radius}{cercle inscrit dans à un triangle}
-\TOline{euler}{radius}{Le cercle d'Euler}
-\TOline{apollonius}{radius}{Le cercle d'Apollonius}
-\TOline{K}{2}{Coefficient utilisé pour un cercle d'Apollonius}
-\TOline{orthogonal}{radius}{Cercle de centre donné orthogonal à un autre cercle}
-\TOline{orthogonal through}{radius}{Cercle orthogonal à un autre cercle passant par deux points}
- \bottomrule
-\end{tabular}
-
-\medskip
-\emph{Il faut ajouter bien sûr tous les styles de \TIKZ pour les tracés}
-\end{NewMacroBox}
-
- \subsubsection{Cercles et styles, tracer un cercle et colorier le disque}
- On va voir qu'il est possible de colorier un disque, tout en traçant le cercle.
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(3,0){A}
- % cercle de centre O et passant par A
- \tkzDrawCircle[color=blue,style=dashed](O,A)
- % cercle de diamètre $[OA]$
- \tkzDrawCircle[diameter,color=red,%
- line width=2pt,fill=red!40,%
- opacity=.5](O,A)
- % cercle de centre O et de rayon = exp(1) cm
- \FPeval\rayon{exp(1)}
- \tkzDrawCircle[R,color=orange](O,\rayon cm)
-\end{tikzpicture}
-\end{tkzexample}
-
- \subsubsection{Cercle orthogonal à un cercle donné passant par deux points donnés }
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=2]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(1,0){A}
- \tkzDrawCircle(O,A)
- \tkzDefPoint(0.5,-0.25){z1}
- \tkzDefPoint(-0.5,-0.5){z2}
- \tkzDrawPoints[color = black,fill = red,size=12](O,z1,z2)
- \tkzDefPointBy[inversion = center O through A](z1) \tkzGetPoint{Z1}
- \tkzCircumCenter(z1,z2,Z1) \tkzGetPoint{c}
- \tkzDrawCircle(c,Z1)
- \tkzDrawPoints(c,Z1)
- \tkzLabelPoints(O,A,z1,z2,Z1,c)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
- \newpage
- \subsubsection{Cardioïde}
- D'après une idée d'O. Reboux réalisée avec pst-eucl ( module de Pstricks) de D. Rodriguez.
-
-Son nom vient du grec kardia (cœur), en référence à sa forme, et lui fut donné par Johan Castillon. Wikipedia
-%
-% % BibTeX
-% %
-% % @misc{ wiki:xxx,
-% % author = "Wikipédia",
-% % title = "Cardioïde --- Wikipédia{,} l'encyclopédie libre",
-% % year = "2010",
-% % url = "http://fr.wikipedia.org/w/index.php?title=Cardio%C3%AFde&oldid=53868968",
-% % note = "[En ligne; Page disponible le 27-juin-2010]"
-% % }
-% %
-% % Lorsque vous utilisez la package url sous LaTeX (\usepackage{url} quelque part dans le préambule) qui améliore l'affichage des adresses internet, veuillez utiliser de préférence ce format:
-% %
-% %
-% % @misc{ wiki:xxx,
-% % author = "Wikipédia",
-% % title = "Cardioïde --- Wikipédia{,} l'encyclopédie libre",
-% % year = "2010",
-% % url = "\url{http://fr.wikipedia.org/w/index.php?title=Cardio%C3%AFde&oldid=53868968}",
-% % note = "[En ligne; Page disponible le 27-juin-2010]"
-% % }
-
-\begin{center}
- \begin{tkzexample}[vbox]
- \begin{tikzpicture}[scale=1.25]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2,0){A}
- \foreach \ang in {5,10,...,360}{%
- \tkzDefPoint(\ang:2){M}
- \tkzDrawCircle(M,A)
- }
- \end{tikzpicture}
- \end{tkzexample}
-\end{center}
-
-
- \subsubsection{Ceci est une mappemonde }
-
-\begin{tkzexample}[latex=5.5cm,small]
-\begin{tikzpicture}[scale=.333]
- \tkzInit[xmin=-10,xmax=10,ymin=-10,ymax=10]
- \tkzDefPoint(0 , 0){O}
- \tkzDefPoint(9 , 0){A}
- \tkzDefPoint(-9, 0){C}
- \tkzDefPoint(0 , 9){B}
- \tkzDefPoint(0 ,-9){D}
- \tkzClipCircle(O,A)
- \foreach \pti in {1,2,...,8}{
- \tkzDefPoint(10*\pti:9){P\pti}
- \tkzDefPoint(90:\pti){MP\pti}
- \tkzDefPoint(0: \pti){NP\pti}
- \tkzDefLine[mediator](MP\pti,P\pti)
- \tkzInterLL(B,D)(tkzFirstPointResult,tkzSecondPointResult)
- \tkzDrawCircle[color=Maroon](tkzPointResult,P\pti)
- }
- \foreach \pti in {-1,-2,...,-8}{
- \tkzDefPoint(10*\pti:9){P\pti}
- \tkzDefPoint(-90:-\pti){MP\pti}
- \tkzDefPoint(0: -\pti){NP\pti}
- \tkzDefLine[mediator](MP\pti,P\pti)
- \tkzInterLL(B,D)(tkzFirstPointResult,tkzSecondPointResult)
- \tkzDrawCircle[color=Maroon](tkzPointResult,P\pti)
- }
- \foreach \pti in {1,2,...,8}{
- \tkzDefLine[mediator](B,NP\pti)
- \tkzInterLL(A,C)(tkzFirstPointResult,tkzSecondPointResult)
- \tkzDrawCircle[color=Maroon](tkzPointResult,NP\pti)
- }
- \foreach \pti in {1,2,...,8}{
- \tkzDefPoint(0: -\pti){NP\pti}
- \tkzDefLine[mediator](B,NP\pti)
- \tkzInterLL(A,C)(tkzFirstPointResult,tkzSecondPointResult)
- \tkzDrawCircle[color=Maroon](tkzPointResult,NP\pti)
- }
- \tkzDrawCircle[R,color=Maroon](O,9 cm)
- \tkzDrawSegments[color=Maroon](A,C B,D)
-\end{tikzpicture}
- \end{tkzexample}
-
-
-\clearpage \newpage
-
-
-\newpage
-\subsection{Colorier un disque}
-C'était possible avec la macro précédente, mais le tracé du disque était obligatoire, là ce n'est plus le cas.
-
-\begin{NewMacroBox}{tkzFillCircle}{\oarg{local options}\parg{A,B}}
-\begin{tabular}{lll}
-options & défaut & définition \\
-\midrule
-\TOline{radius} {radius}{deux points définissent un rayon}
-\TOline{R} {radius}{un point et la mesure d'un rayon }
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Il n'est pas nécessaire de mettre \tkzname{radius} car c'est l'option par défaut. Il faut ajouter bien sûr tous les styles de \TIKZ pour les tracés}
-\end{NewMacroBox}
-
- \subsubsection{Exemple de \tkzcname{tkzFillCircle} provenant d'un sangaku}
-\begin{center}
- \begin{tkzexample}[vbox,small]
- \begin{tikzpicture}
- \tkzInit[xmin=0,xmax = 6,ymin=0,ymax=6] \tkzClip
- \tkzDefPoint(0,0){B} \tkzDefPoint(6,0){C}%
- \tkzDefSquare(B,C) \tkzGetPoints{D}{A}
- \tkzClipPolygon(B,C,D,A)
- \tkzDefMidPoint(A,D) \tkzGetPoint{F}
- \tkzDefMidPoint(B,C) \tkzGetPoint{E}
- \tkzDefMidPoint(B,D) \tkzGetPoint{Q}
- \tkzTangent[from = B](F,A) \tkzGetPoints{G}{H}
- % \tkzTgtFromP(F,A)(B) est obsolète
- \tkzInterLL(F,G)(C,D) \tkzGetPoint{J}
- \tkzInterLL(A,J)(F,E) \tkzGetPoint{K}
- \tkzDefPointBy[projection=onto B--A](K) \tkzGetPoint{M}
- \tkzFillPolygon[color = green](A,B,C,D)
- \tkzFillCircle[color = orange](B,A)
- \tkzFillCircle[color = blue!50!black](M,A)
- \tkzFillCircle[color = purple](E,B)
- \tkzFillCircle[color = yellow](K,Q)
- \end{tikzpicture}
- \end{tkzexample}
-\end{center}
-
-
-\newpage
-\subsection{Clipper un disque}
-
-\begin{NewMacroBox}{tkzClipCircle}{\oarg{local options}\parg{A,B}}
-\begin{tabular}{lll}
-%\toprule
-options & défaut & définition \\
-\midrule
-\TOline{radius} {radius}{cercle caractérisé par deux points définissant un rayon}
-\TOline{R} {radius}{cercle caractérisé par un point et la mesure d'un rayon }
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Il n'est pas nécessaire de mettre \tkzname{radius} car c'est l'option par défaut.}
-\end{NewMacroBox}
-
- \subsubsection{Exemple 1 de \tkzcname{tkzClipCircle}}
-\begin{tkzexample}[latex=6cm,small]
- \begin{tikzpicture}
- \tkzInit[xmax=5,ymax=5]
- \tkzGrid \tkzClip
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(2,2){O}
- \tkzDefPoint(4,4){B}
- \tkzDefPoint(6,6){C}
- \tkzDrawPoints(O,A,B,C)
- \tkzLabelPoints(O,A,B,C)
- \tkzDrawCircle(O,A)
- \tkzClipCircle(O,A)
- \tkzDrawLine(A,C)
- \tkzDrawCircle[fill=red!20,opacity=.5](C,O)
-\end{tikzpicture}
-\end{tkzexample}
-
- \subsubsection{Exemple 2 de \tkzcname{tkzClipCircle}}
-\begin{tkzexample}[latex=6cm,small]
- \begin{tikzpicture}
- \tkzInit[xmax=6,ymax=6]
- \tkzGrid \tkzClip
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(2,2){O}
- \tkzDefPoint(4,4){B}
- \tkzDefPoint(6,6){C}
- \tkzDrawPoints(O,A,B,C)
- \tkzLabelPoints(O,A,B,C)
- \tkzDrawCircle(O,A)
- \begin{scope}
- \tkzClipCircle(O,A)
- \tkzDrawLine(A,C)
- \end{scope}
- \tkzClipCircle[R](B,1cm)
- \tkzDrawCircle[fill=red!20,opacity=.5](C,B)
-\end{tikzpicture}
-\end{tkzexample}
-
- \subsubsection{Exemple 3 de \tkzcname{tkzClipCircle}}
-\begin{tkzexample}[latex=8cm,small]
-\begin{tikzpicture}[scale=.5]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(8,0){B}
- \tkzDefSquare(A,B)\tkzGetPoints{C}{D}
- \tkzDrawPolygon(A,B,C,D)
- \tkzClipPolygon(A,B,C,D)
- \begin{scope}
- \tkzClipCircle(D,C)
- \tkzFillCircle[color=gray!50,%
- opacity=.5](B,A)
- \end{scope}
- \tkzDrawCircle(B,C)
- \tkzDrawCircle(D,C)
-\end{tikzpicture}
-\end{tkzexample}
-
- \subsubsection{Exemple 4 de \tkzcname{tkzClipCircle} provenant d'un sangaku}
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.75]
- \tkzInit[xmin=-5,ymin=-5,xmax=5,ymax=5]
- \tkzClip
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(-2,-3){A}
- \tkzDefPoint(2,-3){B}
- \tkzDefPoint(0,3){Q}
- \tkzDrawCircle[R](O,5 cm)
- \tkzInterLC[R](A,B)(O,5 cm)
- \tkzGetPoints{M}{N}
- \tkzDrawPoints(M,N)
- \tkzClipCircle[R](O,5 cm)
- \tkzDrawLines[add= 1 and 1](A,B M,Q N,Q)
- \tkzDefMidPoint(M,N) \tkzGetPoint{R}
- \tkzDefLine[orthogonal=through Q](O,Q)
- \tkzGetPoint(q)
- \tkzCalcLength(R,Q) \tkzGetLength{dRQ}
- \tkzCalcLength(M,Q) \tkzGetLength{dMQ}
- \pgfmathparse{(\dMQ)/(\dRQ)*1.5}
- \edef\tkz@q{\pgfmathresult}%
- \tkzDefPoint(\tkz@q,3){K}
- \tkzDefPointBy[projection=onto N--Q](K)
- \tkzGetPoint{G}
- \tkzDrawCircle[R](K,1.5cm)
- \tkzFillCircle[R,color=purple!50,%
- opacity=.5](K,1.5 cm)
-\end{tikzpicture}
- \end{tkzexample}
-
-\newpage
-\subsection{Donner un label à un cercle}
-\begin{NewMacroBox}{tkzLabelCircle}{\oarg{local options}\parg{A,B}\parg{angle}\marg{label}}
-\begin{tabular}{lll}
-%\toprule
-options & défaut & définition \\
-\midrule
-\TOline{radius} {radius}{cercle caractérisé par deux points définissant un rayon}
-\TOline{R} {radius}{cercle caractérisé par un point et la mesure d'un rayon }
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Il n'est pas nécessaire de mettre \tkzname{radius} car c'est l'option par défaut. On peut utiliser les styles de \TIKZ. Le label est créé et donc "passé" entre accolades. }
-\end{NewMacroBox}
-
- \subsubsection{Exemple de \tkzcname{tkzLabelCircle}}
-\begin{tkzexample}[latex=5cm,small]
-\begin{tikzpicture}
- \tkzInit[ymin=-2.25,ymax=2.25,xmin=-2.25,xmax=2.25]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2,0){N}
- \tkzDefPointBy[rotation=center O angle 50](N)
- \tkzGetPoint{M}
- \tkzDefPointBy[rotation=center O angle -20](N)
- \tkzGetPoint{P}
- \tkzDefPointBy[rotation=center O angle 125](N)
- \tkzGetPoint{P'}
- \tkzLabelCircle[above=4pt](O,N)(120){$\mathcal{C}$}
- \tkzDrawCircle(O,M)
- \tkzFillCircle[color=blue!20,opacity=.4](O,M)
- \tkzLabelCircle[R,draw,fill=Gold,%
- text width=2cm,text centered](O,3 cm)(-60)%
- {Le cercle\\ $\mathcal{C}$}
- \tkzDrawSegment[dashed](O,P)
- \tkzDrawPoints(M,P)\tkzLabelPoints[right](M,P)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Tangente à un cercle}
-Deux constructions sont proposées. La première est la construction d'une tangente à un cercle en un point donné de ce cercle et la seconde est la construction d'une tangente à un cercle passant par un point donné hors d'un disque. Ces macros remplacent d'anciennes macros qui existent encore \tkzcname{tkzTgtFromP} ou \tkzcname{tkzTgtFromPR} ainsi que \tkzcname{tkzTgtAt}.
-
-\begin{NewMacroBox}{tkzTangent}{\oarg{local options}\parg{pt1,pt2} ou \parg{pt1,dim}}
-\emph{Le paramètre entre parenthèses est le centre du cercle ou bien le centre du cercle et un point du cercle ou encore le centre et le rayon.}
-
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{at=pt}{at}{tangente en un point du cercle}
-\TOline{from=pt} {at}{tangente à un cercle passant par un point}
-\TOline{from with R=pt} {at}{idem, mais le cercle est défini par centre+rayon}
-\bottomrule
-\end{tabular}
-
-\emph{La tangente n'est pas tracée.Un second point de celle-ci est donné par \tkzname{tkzPointResult}.}
-\end{NewMacroBox}
-
- \subsubsection{Exemple de tangente passant par un point du cercle }
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.5]
- \tkzInit
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(6,6){E}
- \tkzGetRandPointOn[circle=center O radius 4cm]{A}
- \tkzDrawSegment(O,A)
- \tkzDrawCircle(O,A)
- \tkzTangent[at=A](O)
- \tkzGetPoint{h}
- \tkzTangent[from=E](O,A) \tkzGetPoints{e}{f}
- \tkzTangent[from with R=E](O,4 cm)
- \tkzGetPoints{k}{l}
- \tkzDrawLine[add = 5 and 4](A,h)
- \tkzMarkRightAngle[fill=red!30](O,A,h)
- \tkzDrawLines[](E,e E,l)
-\end{tikzpicture}
-\end{tkzexample}
-
-
- \subsubsection{Exemple de tangentes passant par un point extérieur }
-
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=0.75]
- \tkzDefPoint(3,3){c}
- \tkzDefPoint(6,3){a0}
- \tkzRadius=1 cm
- \tkzDrawCircle[R](c,\tkzRadius)
-\foreach \an in {0,10,...,350}{
- \tkzDefPointBy[rotation=center c angle \an](a0)
- \tkzGetPoint{a}
- \tkzTangent[from with R = a](c,\tkzRadius)
- \tkzGetPoints{e}{f}
- \tkzDrawLines[color=magenta](a,f a,e)
- \tkzDrawSegments(c,e c,f)}
-\end{tikzpicture}
-\end{tkzexample}
-
-\newpage
- \subsubsection{Exemple d'Andrew Mertz }
-
-\begin{tkzexample}[vbox]
- \begin{tikzpicture}[scale=1]
- \tkzInit[xmin=-4.1,xmax=5.2,ymin=-4.1,ymax=8]
- \tkzClip[space=.5]
- \tkzDefPoint(100:8){A}\tkzDefPoint(50:8){B}
- \tkzDefPoint(0,0){C} \tkzDefPoint(0,4){R}
- \tkzDrawCircle(C,R)
- \tkzTangent[from = A](C,R) \tkzGetPoints{D}{E}
- \tkzTangent[from = B](C,R) \tkzGetPoints{F}{G}
- \tkzDrawSector[fill=blue!80!black,opacity=0.5](A,D)(E)
- \tkzFillSector[color=red!80!black,opacity=0.5](B,F)(G)
- \tkzInterCC(A,D)(B,F) \tkzGetSecondPoint{I}
- \tkzDrawPoint[color=black](I)
- \end{tikzpicture}
-\end{tkzexample}
-\url{http://www.texample.net/tikz/examples/}
-
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-compass.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-compass.tex
deleted file mode 100644
index ab7bbce641..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-compass.tex
+++ /dev/null
@@ -1,126 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-\section{Utilisation du compas}
-
-\subsection{Macro principale \tkzcname{tkzCompass}}
-\begin{NewMacroBox}{tkzCompass}{\oarg{local options}\parg{A,B}}
-\emph{Attention les arguments sont des listes de deux ou bien de trois points. Cette macro est, soit utilisée en partenariat avec \tkzcname{tkzGetPoint} et/ou \tkzcname{tkzGetLength}, soit en utilisant \tkzname{tkzPointResult} s'il n'est pas nécessaire de conserver le nom.}
-
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{delta} {0}{}
-\TOline{length}{0.75}{}
-\TOline{ratio} {.5}{}
-\bottomrule
-\end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Option \tkzname{length}}
-\begin{tkzexample}[latex=7cm]
- \begin{tikzpicture}
- \tkzInit[xmax=7,ymax=6]
- \tkzDefPoint[pos=left](1,1){A}
- \tkzDefPoint(6,1){B}
- \tkzInterCC[R](A,4cm)(B,3cm)
- \tkzGetPoints{C}{D}
- \tkzDrawPoint(C)
- \tkzCompass[color=red,length=1.5](A,C)
- \tkzCompass[color=red](B,C)
- \tkzDrawSegments(A,B A,C B,C)
- \end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Option \tkzname{delta}}
-\begin{tkzexample}[latex=7cm]
- \begin{tikzpicture}
- \tkzInit[xmax=5,ymax=5]\tkzGrid[sub]
- \tkzClip
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(5,0){B}
- \tkzInterCC[R](A,4cm)(B,3cm)
- \tkzGetPoints{C}{D}
- \tkzDrawPoints(A,B,C)
- \tkzCompass[color=red,delta=20](A,C)
- \tkzCompass[color=red,delta=20](B,C)
- \tkzDrawPolygon(A,B,C)
- \tkzMarkAngle(A,C,B)
- \end{tikzpicture}
-\end{tkzexample}
-
-\newpage
-\subsection{Multiples constructions \tkzcname{tkzCompasss}}
-\begin{NewMacroBox}{tkzCompasss}{\oarg{local options}\parg{pt1,pt2 pt3,pt4,...}}
-\emph{Attention les arguments sont des listes de deux points. Cela permet d'économiser quelques lignes de codes.}
-
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{delta} {0}{}
-\TOline{length}{0.75}{}
-\TOline{ratio} {.5}{}
-\end{tabular}
-\end{NewMacroBox}
-
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=.75]
- \tkzDefPoint(2,2){A} \tkzDefPoint(5,-2){B}
- \tkzDefPoint(3,4){C} \tkzDrawPoints(A,B)
- \tkzDrawPoint[color=red,shape=cross out](C)
- \tkzCompasss[color = orange,length = 1](A,B A,C B,C C,B)
- \tkzShowLine[mediator,color=red,dashed,length = 2](A,B)
- \tkzShowLine[parallel = through C,color = blue,length = 2](A,B)
- \tkzDefLine[mediator](A,B) \tkzGetPoints{i}{j}
- \tkzDefLine[parallel=through C](A,B) \tkzGetPoint{D}
- \tkzDrawLines[add=.6 and .6](C,D A,C B,D)
- \tkzDrawLines(i,j) \tkzDrawPoints(A,B,C,i,j,D)
- \tkzLabelPoints(A,B,C,i,j,D)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-
-\newpage
-
-\subsection{Macro de configuration \tkzcname{tkzSetUpCompass}}
-
-\begin{NewMacroBox}{tkzSetUpCompass}{\oarg{local options}\parg{A,B} ou \parg{A,B,C}}
-\begin{tabular}{lll}
-options & défaut & définition \\
-\midrule
-\TOline{line width} {0.4pt}{épaisseur du trait}
-\TOline{color} {black!50}{couleur du trait}
-\TOline{style} {solid}{style du trait solid, dashed,dotted,...}
-\end{tabular}
-\end{NewMacroBox}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}
- \tkzInit[xmax=9,ymax=7] \tkzClip
- \tkzDefPoints{0/1/A, 8/3/B, 3/6/C}
- \tkzDrawPolygon(A,B,C)
- \tkzSetUpCompass[color=brown,line width=.3 pt,style=dashed]
- \tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
- \tkzDefLine[bisector](C,B,A) \tkzGetPoint{b}
- \tkzShowLine[bisector,size=2,gap=3](B,A,C)
- \tkzShowLine[bisector,size=1,gap=3](C,B,A)
- \tkzInterLL(A,a)(B,b) \tkzGetPoint{I}
- \tkzDefPointBy[projection= onto A--B](I) \tkzGetPoint{H}
- \tkzDrawCircle[radius,color=red](I,H)
- \tkzDrawSegments[color=Maroon!50](I,H)
- \tkzDrawLines[add=0 and 5,color=Maroon!50 ](A,a B,b)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-config.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-config.tex
deleted file mode 100644
index 10fdcda306..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-config.tex
+++ /dev/null
@@ -1,106 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-\section{Personnalisation}
-
-
-
-\subsection{Fichier de configuration: \tkzname{tkz-base.cfg}}
-
-Vous pouvez créer votre propre fichier \tkzname{tkz-base.cfg} que vous placerez dans un dossier qui sera prioritaire au sein du \tkzname{texmf}.
-Dans \tkzname{tkz-base.cfg}, il est possible de modifier les couleurs, ls épaisseurs des lignes. La lecture de ce fichier doit suffire à déterminer le rôle de chaque variable.
-
-\subsection{\tkzcname{tkzSetUpLine}} \label{tkzsetupline}
-\begin{NewMacroBox}{tkzSetUpLine}{\oarg{local options}}
-\begin{tabular}{lll}
-options & défaut & définition \\
-\midrule
-\TOline{color}{black}{couleur des arcs de cercle de construction}
-\TOline{line width}{0.4pt}{épaisseur des arcs de cercle de construction}
-\TOline{style}{solid}{style des arcs de cercle de construction}
-\TOline{add}{.2 and .2}{modification de la longueur d'un segment}
-\end{tabular}
-\end{NewMacroBox}
-
-Construire un triangle avec trois segments donnés
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.6]
- \tkzDefPoint(1,0){A} \tkzDefPoint(4,0){B}
- \tkzDefPoint(1,1){C} \tkzDefPoint(5,1){D}
- \tkzDefPoint(1,2){E} \tkzDefPoint(6,2){F}
- \tkzDefPoint(0,4){A'}\tkzDefPoint(3,4){B'}
- \tkzDrawSegments(A,B C,D E,F)
- \tkzDrawLine(A',B')
- \tkzSetUpLine[style=dashed,color=gray]
- \tkzCompass(A',B')
- \tkzCalcLength[cm](C,D) \tkzGetLength{rCD}
- \tkzDrawCircle[R](A',\rCD cm)
- \tkzCalcLength[cm](E,F) \tkzGetLength{rEF}
- \tkzDrawCircle[R](B',\rEF cm)
- \tkzInterCC[R](A',\rCD cm)(B',\rEF cm)
- \tkzGetPoints{I}{J}
- \tkzSetUpLine[color=red] \tkzDrawLine(A',B')
- \tkzDrawSegments(A',I B',I)
- \tkzDrawPoints(A,B,C,D,E,F,A',B',I,J)
- \tkzLabelPoints(A,B,C,D,E,F,A',B',I,J)
-\end{tikzpicture}
-\end{tkzexample}
-
-Par défaut, dans \tkzname{tkz-base.cfg}, ces styles sont définis par :
-
-\begin{tkzltxexample}[]
-\global\edef\tkz@euc@linecolor{\tkz@mainlinecolor}
-\global\def\tkz@euc@linewidth{0.6pt}
-\global\def\tkz@euc@linestyle{solid}
-\global\def\tkz@euc@lineleft{.2}
-\global\def\tkz@euc@lineright{.2}
-\end{tkzltxexample}
-
-
-
-\subsection{\tkzcname{tkzSetUpCompass}}
-
-\begin{NewMacroBox}{tkzSetUpCompass}{\oarg{local options}}
-\begin{tabular}{lll}
-options & défaut & définition \\
-\midrule
-\TOline{color}{black}{couleur des arcs de cercle de construction}
-\TOline{line width}{0.4pt}{épaisseur des arcs de cercle de construction}
-\TOline{style}{solid}{style des arcs de cercle de construction}
-\end{tabular}
-\end{NewMacroBox}
-
-Par défaut, dans \tkzname{tkz-base.cfg}, ces styles sont définis par :
-
-\begin{tkzltxexample}[]
- \global\edef\tkz@euc@compasscolor{\tkz@otherlinecolor}
- \global\def\tkz@euc@compasswidth{0.4pt}
- \global\def\tkz@euc@compassstyle{solid}
-\end{tkzltxexample}
-
-Vous pouvez créer votre propre fichier \tkzname{tkz-base.cfg} que vous placerez dans un dossier qui sera prioritaire au sein du \tkzname{texmf}.
-
-\begin{center}
- \begin{tkzexample}[vbox]
- \begin{tikzpicture}[scale=0.75]
- \tkzInit[ymax=8] \tkzClip
- \tkzDefPoints{0/1/A, 8/3/B, 3/6/C}
- \tkzDrawPolygon(A,B,C)
- \tkzSetUpCompass[color=red,line width=.2 pt]
- \tkzDefLine[bisector](A,C,B) \tkzGetPoint{c}
- \tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
- \tkzDefLine[bisector](C,B,A) \tkzGetPoint{b}
- \tkzShowLine[bisector,size=2,gap=3](A,C,B)
- \tkzShowLine[bisector,size=2,gap=3](B,A,C)
- \tkzShowLine[bisector,size=1,gap=2](C,B,A)
- \tkzDrawLines[add=0 and 0 ](B,b C,c)
- \tkzDrawLine[add=0 and -.4 ](A,a)
- \tkzLabelPoints(A,B) \tkzLabelPoints[above](C)
- \end{tikzpicture}
- \end{tkzexample}
-\end{center}
-
-
-
-% section: (end)
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-example.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-example.tex
deleted file mode 100644
index cba1eecd49..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-example.tex
+++ /dev/null
@@ -1,347 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-\section{Gallery : Some examples}
-
-Some examples with explanations in english.
-%–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-
-\subsection{White on Black}
-This example shows how to get a segment with a length equal at $\sqrt{a}$ from a segment of length $a$, only with a rule and a compass.
-
-
-\begin{center}
-\begin{tkzexample}[]
- \tikzset{background rectangle/.style={fill=black}}
-\begin{tikzpicture}[show background rectangle]
- \tkzInit[ymin=-1.5,ymax=7,xmin=-1,xmax=+11]
- \tkzClip
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(1,0){I}
- \tkzDefPoint(10,0){A}
- \tkzDefPointWith[orthogonal](I,A) \tkzGetPoint{H}
- \tkzDefMidPoint(O,A) \tkzGetPoint{M}
- \tkzInterLC(I,H)(M,A)\tkzGetPoints{C}{B}
- \tkzDrawSegments[color=white,line width=1pt](I,H O,A)
- \tkzDrawPoints[color=white](O,I,A,B,M)
- \tkzMarkRightAngle[color=white,line width=1pt](A,I,B)
- \tkzDrawArc[color=white,line width=1pt,style=dashed](M,A)(O)
- \tkzLabelSegment[white,right=1ex,pos=.5](I,B){$\sqrt{a}$}
- \tkzLabelSegment[white,below=1ex,pos=.5](O,I){$1$}
- \tkzLabelSegment[pos=.6,white,below=1ex](I,A){$a$}
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\vfill\newpage
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-
-\subsection{ Square root of the integers }
-How to get $1$, $\sqrt{2}$, $\sqrt{3}$ with a rule and a compass.
-\begin{center}
-\begin{tkzexample}[]
-\begin{tikzpicture}[scale=1.75]
- \tkzInit[xmin=-3,xmax=4,ymin=-2,ymax=4]
- \tkzGrid
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(1,0){a0}
- \newcounter{tkzcounter}
- \setcounter{tkzcounter}{0}
- \newcounter{density}
- \setcounter{density}{20}
- \foreach \i in {0,...,15}{%
- \pgfmathsetcounter{density}{\thedensity+2}
- \setcounter{density}{\thedensity}
- \stepcounter{tkzcounter}
- \tkzDefPointWith[orthogonal normed](a\i,O)
- \tkzGetPoint{a\thetkzcounter}
- \tkzDrawPolySeg[color=Maroon!\thedensity,%
- fill=Maroon!\thedensity,opacity=.5](a\i,a\thetkzcounter,O)}
- \end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
- \vfill\newpage
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-%
-\subsection{How to construct the tangent lines from a point to a circle with a rule and a compass.}
-\begin{center}
-\begin{tkzexample}[]
- \begin{tikzpicture}
- \tkzPoint(0,0){O}
- \tkzPoint(9,2){P}
- \tkzDefMidPoint(O,P) \tkzGetPoint{I}
- \tkzDrawCircle[R](O,4cm)
- \tkzDrawCircle[diameter](O,P)
- \tkzCalcLength(I,P) \tkzGetLength{dIP}
- \tkzInterCC[R](O,4cm)(I,\dIP pt)\tkzGetPoints{Q1}{Q2}
- \tkzDrawPoint[color=red](Q1)
- \tkzDrawPoint[color=red](Q2)
- \tkzDrawLine(P,Q1)
- \tkzDrawLine(P,Q2)
- \tkzDrawSegments(O,Q1 O,Q2)
- \tkzDrawLine(P,O)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-%
-% %<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
- \vfill\newpage
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-
-\subsection{Circle and tangent}
-We have a point A $(8,2)$, a circle with center A and radius=3cm and a line
- $\delta$ $y=4$. The line intercepts the circle at B. We want to draw the tangent at the circle in B.
-
-\begin{center}
-\begin{tkzexample}[]
-\begin{tikzpicture}
- \tkzInit[xmax=14,ymin=-2,ymax=6]
- \tkzDrawX[noticks,label=$(d)$]
- \tkzPoint[pos=above right](8,2){A};
- \tkzPoint[color=red,pos=above right](0,0){O};
- \tkzDrawCircle[R,color=blue,line width=.8pt](A,3 cm)
- \tkzHLine[color=red,style=dashed]{4}
- \tkzText[above](12,4){$\delta$}
- \FPeval\alphaR{arcsin(2/3)}% on a les bonnes valeurs
- \FPeval\xB{8-3*cos(\alphaR)}
- \tkzPoint[pos=above left](\xB,4){B};
- \tkzDrawSegment[line width=1pt](A,B)
- \tkzDefLine[orthogonal=through B](A,B) \tkzGetPoint{b}
- \tkzDefPoint(1,0){i}
- \tkzInterLL(B,b)(O,i) \tkzGetPoint{B'}
- \tkzDrawPoint(B')
- \tkzDrawLine(B,B')
- \end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
- \vfill\newpage
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-
-\subsection{About right triangle}
-
-We have a segment $[AB]$ and we want to determine a point $C$ such as $AC=8 cm$ and $ABC$ is a right triangle in $B$.
-
-\begin{center}
-\begin{tkzexample}[]
-\begin{tikzpicture}
- \tkzInit
- \tkzClip
- \tkzPoint[pos=left](2,1){A}
- \tkzPoint(6,4){B}
- \tkzDrawSegment(A,B)
- \tkzDrawPoint[color=red](A)
- \tkzDrawPoint[color=red](B)
- \tkzDefPointWith[orthogonal,K=-1](B,A)
- \tkzDrawLine[add = .5 and .5](B,tkzPointResult)
- \tkzInterLC[R](B,tkzPointResult)(A,8 cm) \tkzGetPoints{C}{J}
- \tkzDrawPoint[color=red](C)
- \tkzCompass(A,C)
- \tkzMarkRightAngle(A,B,C)
- \tkzDrawLine[color=gray,style=dashed](A,C)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
- %<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
- \vfill\newpage %<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-
-\subsection{Archimedes}
-
-This is an ancient problem proved by the great Greek mathematician Archimedes .
-The figure below shows a semicircle, with diameter $AB$. A tangent line is drawn and touches the semicircle at $B$. An other tangent line at a point, $C$, on the semicircle is drawn. We project the point $C$ on the segment$[AB]$ on a point $D$ . The two tangent lines intersect at the point $T$.
-
-Prove that the line $(AT)$ bisects $(CD)$
-
-\begin{center}
-\begin{tkzexample}[]
-\begin{tikzpicture}[scale=1.25]
- \tkzInit[ymin=-1,ymax=7]
- \tkzClip
- \tkzDefPoint(0,0){A}\tkzDefPoint(6,0){D}
- \tkzDefPoint(8,0){B}\tkzDefPoint(4,0){I}
- \tkzDefLine[orthogonal=through D](A,D)
- \tkzInterLC[R](D,tkzPointResult)(I,4 cm) \tkzGetFirstPoint{C}
- \tkzDefLine[orthogonal=through C](I,C) \tkzGetPoint{c}
- \tkzDefLine[orthogonal=through B](A,B) \tkzGetPoint{b}
- \tkzInterLL(C,c)(B,b) \tkzGetPoint{T}
- \tkzInterLL(A,T)(C,D) \tkzGetPoint{P}
- \tkzDrawArc(I,B)(A)
- \tkzDrawSegments(A,B A,T C,D I,C) \tkzDrawSegment[color=orange](I,C)
- \tkzDrawLine[add = 1 and 0](C,T) \tkzDrawLine[add = 0 and 1](B,T)
- \tkzMarkRightAngle(I,C,T)
- \tkzDrawPoints(A,B,I,D,C,T)
- \tkzLabelPoints(A,B,I,D) \tkzLabelPoints[above right](C,T)
- \tkzMarkSegment[pos=.25,mark=s|](C,D) \tkzMarkSegment[pos=.75,mark=s|](C,D)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\subsection{Example from Dimitris Kapeta}
-
-You need in this example to use \tkzname{mkpos=.2} with \tkzcname{tkzMarkAngle} because the measure of $ \widehat{CAM}$ is too small.
-Another possiblity is to use \tkzcname{tkzFillAngle}.
-
-\begin{center}
-\begin{tkzexample}[]
-\begin{tikzpicture}[scale=1.25]
- \tkzInit[xmin=-5.2,xmax=3.2,ymin=-3.2,ymax=3.3]
- \tkzClip
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2.5,0){N}
- \tkzDefPoint(-4.2,0.5){M}
- \tkzDefPointBy[rotation=center O angle 30](N)
- \tkzGetPoint{B}
- \tkzDefPointBy[rotation=center O angle -50](N)
- \tkzGetPoint{A}
- \tkzInterLC(M,B)(O,N) \tkzGetFirstPoint{C}
- \tkzInterLC(M,A)(O,N) \tkzGetSecondPoint{A'}
- \tkzMarkAngle[fill=blue!25,mkpos=.2, size=0.5](A,C,B)
- \tkzMarkAngle[fill=green!25,mkpos=.2, size=0.5](A,M,C)
- \tkzDrawSegments(A,C M,A M,B)
- \tkzDrawCircle(O,N)
- \tkzLabelCircle[above left](O,N)(120){$\mathcal{C}$}
- \tkzMarkAngle[fill=red!25,mkpos=.2, size=0.5cm](C,A,M)
- \tkzDrawPoints(O, A, B, M, B, C)
- \tkzLabelPoints[right](O,A,B)
- \tkzLabelPoints[above left](M,C)
- \tkzLabelPoint[below left](A'){$A'$}
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsection{Example 1 from John Kitzmiller }
-This figure is the last of beamer document. You can find the document on my site
-
-Prove $\bigtriangleup LKJ$ is equilateral
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.5]
- \tkzDefPoint[label=below left:A](0,0){A}
- \tkzDefPoint[label=below right:B](6,0){B}
- \tkzDefTriangle[equilateral](A,B) \tkzGetPoint{C}
- \tkzMarkSegments[mark=|](A,B A,C B,C)
- \tkzDefBarycentricPoint(A=1,B=2) \tkzGetPoint{C'}
- \tkzDefBarycentricPoint(A=2,C=1) \tkzGetPoint{B'}
- \tkzDefBarycentricPoint(C=2,B=1) \tkzGetPoint{A'}
- \tkzInterLL(A,A')(C,C') \tkzGetPoint{J}
- \tkzInterLL(C,C')(B,B') \tkzGetPoint{K}
- \tkzInterLL(B,B')(A,A') \tkzGetPoint{L}
- \tkzLabelPoint[above](C){C}
- \tkzDrawPolygon(A,B,C) \tkzDrawSegments(A,J B,L C,K)
- \tkzMarkAngles[fill= orange,size=1cm,opacity=.3](J,A,C K,C,B L,B,A)
- \tkzLabelPoint[right](J){J}
- \tkzLabelPoint[below](K){K}
- \tkzLabelPoint[above left](L){L}
- \tkzMarkAngles[fill=orange, opacity=.3,thick,size=1,](A,C,J C,B,K B,A,L)
- \tkzMarkAngles[fill=green, size=1, opacity=.5](A,C,J C,B,K B,A,L)
- \tkzFillPolygon[color=yellow, opacity=.2](J,A,C)
- \tkzFillPolygon[color=yellow, opacity=.2](K,B,C)
- \tkzFillPolygon[color=yellow, opacity=.2](L,A,B)
- \tkzDrawSegments[line width=3pt,color=cyan,opacity=0.4](A,J C,K B,L)
- \tkzDrawSegments[line width=3pt,color=red,opacity=0.4](A,L B,K C,J)
- \tkzMarkSegments[mark=o](J,K K,L L,J)
-\end{tikzpicture}
-\end{tkzexample}
-
-\end{center}
-
-\newpage
-\subsection{Example 2 from John Kitzmiller }
-Prove $\dfrac{AC}{CE}=\dfrac{BD}{DF} \qquad$
-
-Another interesting example from John, you can see how to use some extra options like \tkzname{decoration} and \tkzname{postaction} from \TIKZ\ with \tkzname{tkz-euclide}.
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.5,decoration={markings,
- mark=at position 3cm with {\arrow[scale=2]{>}};}]
- \tkzInit[xmin=-0.25,xmax=6.25, ymin=-0.5,ymax=4]
- \tkzClip
- \tkzDefPoints{0/0/E, 6/0/F, 0/1.8/P, 6/1.8/Q, 0/3/R, 6/3/S}
- \tkzDrawLines[postaction={decorate}](E,F P,Q R,S)
- \tkzDefPoints{3.5/3/A, 5/3/B}
- \tkzDrawSegments(E,A F,B)
- \tkzInterLL(E,A)(P,Q) \tkzGetPoint{C}
- \tkzInterLL(B,F)(P,Q) \tkzGetPoint{D}
- \tkzLabelPoints[above right](A,B)
- \tkzLabelPoints[below](E,F)
- \tkzLabelPoints[above left](C)
- \tkzDrawSegments[style=dashed](A,F)
- \tkzInterLL(A,F)(P,Q) \tkzGetPoint{G}
- \tkzLabelPoints[above right](D,G)
- \tkzDrawSegments[color=teal, line width=3pt, opacity=0.4](A,C A,G)
- \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](C,E G,F)
- \tkzDrawSegments[color=teal, line width=3pt, opacity=0.4](B,D)
- \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](D,F)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsection{Example 3 from John Kitzmiller }
-Prove $\dfrac{BC}{CD}=\dfrac{AB}{AD} \qquad$ (Angle Bisector)
-
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.5]
- \tkzInit[xmin=-4,xmax=5,ymax=4.5] \tkzClip[space=.5]
- \tkzDefPoints{0/0/B, 5/0/D} \tkzDefPoint(70:3){A}
- \tkzDrawPolygon(B,D,A)
- \tkzDefLine[bisector](B,A,D) \tkzGetPoint{a}
- \tkzInterLL(A,a)(B,D) \tkzGetPoint{C}
- \tkzDefLine[parallel=through B](A,C) \tkzGetPoint{b}
- \tkzInterLL(A,D)(B,b) \tkzGetPoint{P}
- \begin{scope}[decoration={markings,
- mark=at position .5 with {\arrow[scale=2]{>}};}]
- \tkzDrawSegments[postaction={decorate},dashed](C,A P,B)
- \end{scope}
- \tkzDrawSegment(A,C) \tkzDrawSegment[style=dashed](A,P)
- \tkzLabelPoints[below](B,C,D) \tkzLabelPoints[above](A,P)
- \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](B,C P,A)
- \tkzDrawSegments[color=teal, line width=3pt, opacity=0.4](C,D A,D)
- \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](A,B)
- \tkzMarkAngles[size=0.7](B,A,C C,A,D)
- \tkzMarkAngles[size=0.7, fill=green, opacity=0.5](B,A,C A,B,P)
- \tkzMarkAngles[size=0.7, fill=yellow, opacity=0.3](B,P,A C,A,D)
- \tkzMarkAngles[size=0.7, fill=green, opacity=0.6](B,A,C A,B,P B,P,A C,A,D)
- \tkzLabelAngle[pos=1](B,A,C){1} \tkzLabelAngle[pos=1](C,A,D){2}
- \tkzLabelAngle[pos=1](A,B,P){3}) \tkzLabelAngle[pos=1](B,P,A){4}
- \tkzMarkSegments[mark=|](A,B A,P)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsection{Example 4 from John Kitzmiller }
-Prove $\overline{AG}\cong\overline{EF} \qquad$ (Detour)
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=2]
- \tkzInit[xmax=5, ymax=5]
- \tkzDefPoint(0,3){A} \tkzDefPoint(6,3){E} \tkzDefPoint(1.35,3){B}
- \tkzDefPoint(4.65,3){D} \tkzDefPoint(1,1){G} \tkzDefPoint(5,5){F}
- \tkzDefMidPoint(A,E) \tkzGetPoint{C}
- \tkzFillPolygon[yellow, opacity=0.4](B,G,C)
- \tkzFillPolygon[yellow, opacity=0.4](D,F,C)
- \tkzFillPolygon[blue, opacity=0.3](A,B,G)
- \tkzFillPolygon[blue, opacity=0.3](E,D,F)
- \tkzMarkAngles[size=0.6,fill=green](B,G,A D,F,E)
- \tkzMarkAngles[size=0.6,fill=orange](B,C,G D,C,F)
- \tkzMarkAngles[size=0.6,fill=yellow](G,B,C F,D,C)
- \tkzMarkAngles[size=0.6,fill=red](A,B,G E,D,F)
- \tkzMarkSegments[mark=|](B,C D,C) \tkzMarkSegments[mark=s||](G,C F,C)
- \tkzMarkSegments[mark=o](A,G E,F) \tkzMarkSegments[mark=s](B,G D,F)
- \tkzDrawSegment[color=red](A,E)
- \tkzDrawSegment[color=blue](F,G)
- \tkzDrawSegments(A,G G,B E,F F,D)
- \tkzLabelPoints[below](C,D,E,G) \tkzLabelPoints[above](A,B,F)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-exemples.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-exemples.tex
deleted file mode 100644
index 0ce6cb6993..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-exemples.tex
+++ /dev/null
@@ -1,142 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-
-\section{Quelques exemples intéressants}
-
-\subsection{Triangles isocèles semblables}
-
-Ce qui suit provient de l'excellent site \textbf{Descartes et les Mathématiques}. Je n'ai pas modifié le texte et je ne suis l'auteur que de la programmation des figures.
-
-\url{http://debart.pagesperso-orange.fr/seconde/triangle.html}
-
-Bibliographie : Géométrie au Bac - Tangente, hors série no 8 - Exercice 11, page 11
-
-Élisabeth Busser et Gilles Cohen : 200 nouveaux problèmes du Monde - POLE 2007
-
-Affaire de logique n° 364 - Le Monde 17 février 2004
-
-
-Deux énoncés ont été proposés, l'un par la revue \emph{Tangente}, et l'autre par le journal \emph{Le Monde}.
-
-\vspace*{2cm}
-\emph{Rédaction de la revue Tangente} : \textcolor{orange}{On construit deux triangles isocèles semblables AXB et BYC de sommets principaux X et Y, tels que A, B et C soient alignés et que ces triangles soient « indirect ». Soit $\alpha$ l'angle au sommet $\widehat{AXB}$ = $\widehat{BYC}$. On construit ensuite un troisième triangle isocèle XZY semblable aux deux premiers, de sommet principal Z et « indirect ».\\
-On demande de démontrer que le point Z appartient à la droite (AC).}
-
-\vspace*{2cm}
-\emph{Rédaction du Monde} : \textcolor{orange}{On construit deux triangles isocèles semblables AXB et BYC de sommets principaux X et Y, tels que A, B et C soient alignés et que ces triangles soient « indirect ». Soit $\alpha$ l'angle au sommet $\widehat{AXB}$ = $\widehat{BYC}$. Le point Z du segment [AC] est équidistant des deux sommets X et Y.\\
-Sous quel angle voit-il ces deux sommets ?}
-
-\vspace*{2cm} Les constructions et leurs codes associés sont sur les deux pages suivantes, mais vous pouvez chercher avant de regarder. La programmation respecte (il me semble ...), mon raisonnement dans les deux cas.
-\newpage
-
- \subsubsection{version revue "Tangente"}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=.8,rotate=60]
- \tkzDefPoint(6,0){X} \tkzDefPoint(3,3){Y}
- \tkzDefShiftPoint[X](-110:6){A} \tkzDefShiftPoint[X](-70:6){B}
- \tkzDefShiftPoint[Y](-110:4.2){A'} \tkzDefShiftPoint[Y](-70:4.2){B'}
- \tkzDefPointBy[translation= from A' to B ](Y) \tkzGetPoint{Y}
- \tkzDefPointBy[translation= from A' to B ](B') \tkzGetPoint{C}
- \tkzInterLL(A,B)(X,Y) \tkzGetPoint{O}
- \tkzDefMidPoint(X,Y) \tkzGetPoint{I}
- \tkzDefPointWith[orthogonal](I,Y)
- \tkzInterLL(I,tkzPointResult)(A,B) \tkzGetPoint{Z}
- \tkzDrawCircle[circum](X,Y,B)
- \tkzDrawLines[add = 0 and 1.5](A,C) \tkzDrawLines[add = 0 and 3](X,Y)
- \tkzDrawSegments(A,X B,X B,Y C,Y) \tkzDrawSegments[color=red](X,Z Y,Z)
- \tkzDrawPoints(A,B,C,X,Y,O,Z)
- \tkzLabelPoints(A,B,C,Z) \tkzLabelPoints[above right](X,Y,O)
-\end{tikzpicture}
-\end{tkzexample}
-
-
- \newpage
-
- \subsubsection{version "Le Monde"}
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.25]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(3,0){B}
- \tkzDefPoint(9,0){C}
- \tkzDefPoint(1.5,2){X}
- \tkzDefPoint(6,4){Y}
- \tkzDefCircle[circum](X,Y,B) \tkzGetPoint{O}
- \tkzDefMidPoint(X,Y) \tkzGetPoint{I}
- \tkzDefPointWith[orthogonal](I,Y) \tkzGetPoint{i}
- \tkzDrawLines[add = 2 and 1,color=orange](I,i)
- \tkzInterLL(I,i)(A,B) \tkzGetPoint{Z}
- \tkzInterLC(I,i)(O,B) \tkzGetSecondPoint{M}
- \tkzDefPointWith[orthogonal](B,Z) \tkzGetPoint{b}
- \tkzDrawCircle(O,B)
- \tkzDrawLines[add = 0 and 2,color=orange](B,b)
- \tkzDrawSegments(A,X B,X B,Y C,Y A,C X,Y)
- \tkzDrawSegments[color=red](X,Z Y,Z)
- \tkzDrawPoints(A,B,C,X,Y,Z,M,I)
- \tkzLabelPoints(A,B,C,Z)
- \tkzLabelPoints[above right](X,Y,M,I)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-\newpage
-\subsection{Hauteurs d'un triangle}
-
-Ce qui suit provient encore de l'excellent site \textbf{Descartes et les Mathématiques}.
-
-\url{http://debart.pagesperso-orange.fr/geoplan/geometrie_triangle.html}
-
-Les trois hauteurs d'un triangle sont concourantes au même point H.
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.25]
- \tkzInit[xmin= 0,xmax=8 ,ymin=0 ,ymax=7 ] \tkzClip[space=.5]
- \tkzDefPoint(0,0){C}
- \tkzDefPoint(7,0){B}
- \tkzDefPoint(5,6){A}
- \tkzDrawPolygon(A,B,C)
- \tkzDefMidPoint(C,B) \tkzGetPoint{I}
- \tkzDrawArc(I,B)(C)
- \tkzInterLC(A,C)(I,B) \tkzGetSecondPoint{B'}
- \tkzInterLC(A,B)(I,B) \tkzGetFirstPoint{C'}
- \tkzInterLL(B,B')(C,C') \tkzGetPoint{H}
- \tkzInterLL(A,H)(C,B) \tkzGetPoint{A'}
- \tkzDrawCircle[circum,color=red](A,B',C')
- \tkzDrawSegments[color=orange](B,B' C,C' A,A')
- \tkzMarkRightAngles(C,B',B B,C',C C,A',A)
- \tkzDrawPoints(A,B,C,A',B',C',H)
- \tkzLabelPoints(A,B,C,A',B',C',H)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsection{Hauteurs - autre construction}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}
- \tkzClip[space=1]
- \tkzDefPoint(0,0){A}\tkzDefPoint(8,0){B}\tkzDefPoint(3.5,10){C}
- \tkzDefMidPoint(A,B) \tkzGetPoint{O}
- \tkzDefPointBy[projection=onto A--B](C) \tkzGetPoint{P}
- \tkzInterLC(C,A)(O,A) \tkzGetSecondPoint{M}
- \tkzInterLC(C,B)(O,A) \tkzGetFirstPoint{N}
- \tkzInterLL(B,M)(A,N) \tkzGetPoint{I}
- \tkzDrawCircle[diameter](A,B)
- \tkzDrawSegments(C,A C,B A,B B,M A,N)
- \tkzMarkRightAngles[fill=Maroon!20](A,M,B A,N,B A,P,C)
- \tkzDrawSegment[style=dashed,color=orange](C,P)
- \tkzLabelPoints(O,A,B,P)
- \tkzLabelPoint[left](M){$M$}
- \tkzLabelPoint[right](N){$N$}
- \tkzLabelPoint[above](C){$C$}
- \tkzLabelPoint[fill=fondpaille,above right](I){$I$}
- \tkzDrawPoints[color=red](M,N,P,I) \tkzDrawPoints[color=Maroon](O,A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-installation.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-installation.tex
deleted file mode 100644
index 73df3fc339..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-installation.tex
+++ /dev/null
@@ -1,167 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-\section{Installation} \NameDist{TeXLive}
-
-
-Lorsque vous lirez ce document, il est possible que \tkzname{tkz-euclide} soit présent sur le serveur du \tkzname{CTAN}\footnote{\tkzname{tkz-euclide} ne fait pas encore partie de \tkzname{TeXLive}} alors \tkzname{tlmgr} vous permettra de l'installer. Si \tkzname{tkz-euclide} ne fait pas encore partie de votre distribution, cette section vous montre comment l'installer, elle est aussi nécessaire si vous avez envie d'installer une version beta ou personnalisée de \tkzname{tkz-euclide}. Si le package est présent
- sur le serveur du \tkzname{CTAN} et que vous n'utilisez pas \tkzname{tlmgr}, je vous conseille de la télécharger à partir de ce serveur, sinon vous le trouverez sur mon site.
- Pour distinguer les anciennes versions de la nouvelle, j'ai repris la numérotation à 1.00 et j'ai ajouté « c »\footnote{pour CTAN} . Vous allez donc installer la version \tkzname{1.13 c}.
-
-Le plus simple est de créer un dossier \tikz[remember picture,baseline=(n1.base)]\node [fill=blue!30,draw] (n1) {tkz};\footnote{ou bien un autre nom} avec comme chemin : \colorbox{blue!20}{ texmf/tex/latex/tkz}.
-
-\medskip
-\begin{enumerate}
-\item Après l'avoir décompressé, placez le dossier \tikz[remember picture,baseline=(n2.base)]\node [fill=blue!20,draw] (n2) {tkzeuclide}; dans le dossier \tikz[baseline=(tk.base)]\node [fill=blue!30,draw] (tk) {tkz};. Le dossier \tkzname{tkzbase} doit se trouver aussi dans le dossier \tkzname{tkz}.
-
-
-\medskip
-\begin{tikzpicture} [remember picture,rotate=90]
-
-\node (texmf) at (4,2) [draw,fill=blue!30 ] {texmf};
-
-\node (tex) at (6,0) [draw ] {tex};
-\node (doc) at (2,0) [draw ] {doc};
-
-\node (texgen) at (7,-2) [draw ] {generic};
-\node (docgen) at (0,-2) [draw ] {generic};
-
-\node (latex) at (4,-2) [draw ] {latex};
-
-\node (genpgf) at (7,-4) [draw] {pgf};
-\node (latpgf) at (5,-4) [draw] {pgf};
-\node (tkz) at (4,-4) [draw,fill=blue!20 ] {tkz};
-
-\node (docpgf) at (0,-4) [draw] {pgf};
-
-\node (fct) at (6,-6) [draw,fill=orange!20] {tkz-fct.sty};
-\node (tkb) at (4,-6) [draw,fill=blue!20] {tkzeuclide};
-\node (tke) at (2,-6) [draw,fill=blue!20] {tkzbase};
-
-\node (sym) at (10,-11) [draw,fill=green!20] {tkz-lib-symbols.tex};
-\node (add) at (9,-11) [draw,fill=green!20] {tkz-obj-addpoints.tex};
-\node (tuti) at (8,-11) [draw,fill=green!20] {tkz-obj-angles.tex};
-\node (tmisc) at (7,-11) [draw,fill=green!20] {tkz-obj-arcs.tex};
-\node (tmath) at (6,-11) [draw,fill=green!20] {tkz-obj-circles.tex};
-\node (tbas) at (5,-11) [draw,fill=green!20] {tkz-obj-lines.tex};
-\node (base) at (4,-11) [draw,fill=green!20] {tkz-euclide.sty};
-\node (cfg) at (3,-11) [draw,fill=green!20] {tkz-obj-protractor.tex};
-\node (mark) at (2,-11) [draw,fill=green!20] {tkz-obj-polygons.tex};
-\node (pts) at (1,-11) [draw,fill=green!20] {tkz-obj-sectors.tex};
-\node (int) at (0,-11) [draw,fill=green!20] {tkz-tools-intersections.tex};
-\node (tsf) at (-1,-11) [draw,fill=green!20] {tkz-tools-transformations.tex};
-
-\draw[-open triangle 90](texmf.north east) --(tex.south west) ;
-\draw[-open triangle 90](texmf.south east) -- (doc.north west) ;
-
-\draw[-open triangle 90](tex.north east) --(texgen.south west) ;
-\draw[-open triangle 90](tex.south east) -- (latex.north west) ;
-\draw[-open triangle 90](texgen.east) -- (genpgf.west) ;
-
-\draw[-open triangle 90](doc.south east) -- (docgen.north west) ;
-\draw[-open triangle 90](docgen.east) -- (docpgf.west) ;
-
-\draw[-open triangle 90](latex.north east) -- (latpgf.south west) ;
-\draw[-open triangle 90](latex.east) -- (tkz.west) ;
-
-\draw[-open triangle 90,blue!40](tkz.east) to[out=-90,in=90](fct.west) ;
-\draw[-open triangle 90,blue!40](tkz.east) to[out=-90,in=90](tkb.west) ;
-\draw[-open triangle 90,blue!40](tkz.east) to[out=-90,in=90](tke.west) ;
-
-\draw[-open triangle 90,blue!40](tkb.east) to[out=-90,in=90](sym.west) ;
-\draw[-open triangle 90,blue!40](tkb.east) to[out=-90,in=90](add.west) ;
-\draw[-open triangle 90,blue!40](tkb.east) to[out=-90,in=90](tuti.west) ;
-\draw[-open triangle 90,blue!40](tkb.east) to[out=-90,in=90](tmisc.west) ;
-\draw[-open triangle 90,blue!40](tkb.east) to[out=-90,in=90](tmath.west) ;
-\draw[-open triangle 90,blue!40](tkb.east) to[out=-90,in=90](tbas.west) ;
-\draw[-open triangle 90,blue!40](tkb.east) to[out=-90,in=90](base.west) ;
-\draw[-open triangle 90,blue!40](tkb.east) to[out=-90,in=90](cfg.west) ;
-\draw[-open triangle 90,blue!40](tkb.east) to[out=-90,in=90](mark.west) ;
-\draw[-open triangle 90,blue!40](tkb.east) to[out=-90,in=90](pts.west) ;
-\draw[-open triangle 90,blue!40](tkb.east) to[out=-90,in=90](int.west) ;
-\draw[-open triangle 90,blue!40](tkb.east) to[out=-90,in=90](tsf.west) ;
-
-\end{tikzpicture}
-\begin{tikzpicture}[remember picture,overlay]
- \path[->,thin,red!40,>=latex] (n1) edge [bend left] (tkz);
- \path[->,thin,red!40,>=latex] (n2) edge [bend left] (tkb);
-\end{tikzpicture}
-
-\newpage
-
-Il est nécessaire que \tkzname{tkz-base} soit aussi installé. Le plus simple est d'installer \tkzname{tkz} complètement.
-
-\item Ouvrir un terminal, puis faire \colorbox{red!20}{|sudo texhash|} si nécessaire.
-\item Vérifier que \tkzname{fp}, \tkzname{numprint} et \tkzname{tikz 2.10} sont installés car ils sont obligatoires, pour le bon fonctionnement de \tkzname{tkz-euclide}.
-
-\end{enumerate}
-
- Voici les chemins du dossier tkz sur mes deux ordinateurs:
-
-\medskip
-\begin{itemize}\setlength{\itemsep}{5pt}
-\item sous OS X \colorbox{blue!30}{\textbf{/Users/ego/Library/texmf}};
-\item sous Ubuntu \colorbox{blue!30}{\textbf{/home/ego/texmf}}.
-\end{itemize}\NameSys{Linux}\NameSys{OS X}
-
-
-Je suppose que si vous mettez vos packages ailleurs, vous savez pourquoi !
-
-\emph{remarque : l'installation proposée n'est valable que pour un utilisateur.}
-
-\subsection{Avec MikTeX sous Windows XP}\NameDist{MikTeX}\NameSys{Windows XP}
-
-Je ne connais pas grand-chose à ce système, mais un utilisateur de mes packages \tkzimp{Wolfgang Buechel} a eu la gentillesse de me faire parvenir ce qui suit~:
-
-Pour ajouter \tkzname{tkzeuclide} à MiKTeX\footnote{Essai réalisé avec la version \tkzname{2.7}}:
-
-\begin{itemize}\setlength{\itemsep}{10pt}
- \item ajouter un dossier \tkzname{tkz} dans le dossier
- \textcolor{blue!60!black}{\texttt{[MiKTeX-dir]/tex/latex}}
- \item copier \tkzname{tkzeuclide} et tous les fichiers présents dans le dossier \tkzname{tkz},
- \item mettre à jour MiKTeX, pour cela dans shell DOS lancer la commande \textbf{\textcolor{red}{|mktexlsr -u|}}
-
- ou bien encore, choisir \textcolor{red!50}{|Start/Programs/Miktex/Settings/General|}
-
- puis appuyer sur le bouton \textbf{\textcolor{red}{|Refresh FNDB|}}.
-\end{itemize}
-
-\subsection{Liste des fichiers des dossiers \tkzname{tkzbase} et \tkzname{tkzeuclide}}
-
-Dans le dossier \tkzname{base} :
-
-\begin{itemize}
-\item \tkzname{tkz-base.cfg }
-\item \tkzname{tkz-base.sty }
-\item \tkzname{tkz-obj-marks.tex }
-\item \tkzname{tkz-obj-points.tex }
-\item \tkzname{tkz-obj-segments.tex }
-\item \tkzname{tkz-tools-arith.tex }
-\item \tkzname{tkz-tools-base.tex }
-\item \tkzname{tkz-tools-math.tex }
-\item \tkzname{tkz-tools-misc.tex }
-\item \tkzname{tkz-tools-utilities.tex }
-\end{itemize}
-
-Dans le dossier \tkzname{euclide} :
-
-\begin{itemize}
-\item \tkzname{tkz-euclide.sty }
-\item \tkzname{tkz-lib-symbols.tex }
-\item \tkzname{tkz-obj-addpoints.tex }
-\item \tkzname{tkz-obj-angles.tex }
-\item \tkzname{tkz-obj-arcs.tex }
-\item \tkzname{tkz-obj-circles.tex }
-\item \tkzname{tkz-obj-lines.tex }
-\item \tkzname{tkz-obj-protractor.tex }
-\item \tkzname{tkz-obj-polygons.tex }
-\item \tkzname{tkz-obj-sectors.tex }
-\item \tkzname{tkz-obj-vectors.tex }
-\item \tkzname{tkz-tools-intersections.tex }
-\item \tkzname{tkz-tools-transformations.tex}
-\end{itemize}
-
-\subsection{Chargement des fichiers avec \tkzname{usetkzobj}}
-Il n'était pas nécessaire de tout charger en une seule fois, seuls les fichiers indispensables sont installés. \tkzcname{usepackage\{tkz-base\}} charge tous les fichiers présents dans le dossier \tkzname{tkzbase}; en particulier, les fichiers "objets" \tkzname{tkz-obj-points.tex} et \tkzname{tkz-obj-segments.tex} et \tkzname{tkz-obj-marks.tex}.
-\tkzcname{usepackage\{tkz-euclide\}} va ajouter des outils indispensables, mais vous devrez indiquer quels objets vous seront utiles. Pour tout charger, vous pouvez écrire : \tkzcname{usetkzobj\{all\}} mais sinon vous pouvez demander :
- \tkzcname{usetkzobj\{cercles, arcs, protractor\}}.
-\endinput
-
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-intersec.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-intersec.tex
deleted file mode 100644
index ef697668a7..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-intersec.tex
+++ /dev/null
@@ -1,411 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-
-\section{Intersections}
-
-
-
-Il est possible de déterminer les coordonnées des points d'intersection entre deux droites, une droite et un cercle et deux cercles.
-
-Les commandes associées n'ont pas d'arguments optionnels et l'usager doit lui même déterminer l'existence des points d'intersection.
-
-
-\subsection{Intersection de deux droites}
-
-
- \begin{NewMacroBox}{tkzInterLL}{\parg{$A,B$}\parg{$C,D$}}
-\emph{Définit le point d'intersection \tkzname{tkzPointResult} des deux droites $(AB)$ and $(CD)$. Les points connus sont donnés en couple (deux par droite) entre parenthèses, quant au point obtenu, son nom est placé entre accolades.}
-
- \end{NewMacroBox}
-%
-
-\medskip
-\subsubsection{exemple d'intersection entre deux droites}
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[rotate=-30]
- \tkzDefPoint(2,1){A} \tkzDefPoint(6,5){B}
- \tkzDefPoint(3,6){C} \tkzDefPoint(5,2){D}
- \tkzDrawLines(A,B C,D)
- \tkzInterLL(A,B)(C,D) \tkzGetPoint{I}
- \tkzDrawPoints[color=blue](A,B,C,D) \tkzDrawPoint[color=red](I)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-De nombreux points particuliers sont obtenus avec cette macro par exemple l'orthocentre (OrthoCenter) voir \tkzcname{tkzOrthoCenter}, le centre du cercle circonscrit à un triangle \tkzcname{tkzCircumCenter}.
-
-\newpage
-\subsection{Intersection d'une droite et d'un cercle} % (fold)
-\label{sub:intersection_d_une_droite_et_d_un_cercle}
-Pour avoir une syntaxe homogène, l'option pour définir le cercle à l'aide de la mesure du rayon est \tkzname{R} comme pour les macros pour le cercle , les arcs et les secteurs.
-
-Comme précédemment, la droite est définie par un couple de points. Le cercle
- est aussi défini par un un couple :
- \begin{itemize}
- \item $(O,C)$ qui est un couple de points, le premier désigne le centre et le second est un point quelconque du cercle.
- \item $(O,r)$ La mesure $r$ est celle du rayon. Elle est exprimée soint en \emph{cm}, soit en \emph{pt}.
- \end{itemize}
-
-
-\begin{NewMacroBox}{tkzInterLC}{\parg{$A,B$}\parg{$O,C/r$}\marg{$I$}\marg{$J$}}
-Les arguments sont donc deux couples. Le premier couple est un couple de points, le second est soit un couple de points si aucune option n'est utilisée ou bien si l'option \tkzname{N} est utilisée sinon le couple est constitué d'un point (le centre du cercle et d'une mesure, celle du rayon).
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{N} {N} { (O,C) détermine le cercle}
-\TOline{R} {N} { (O, 1 cm) ou (O, 120 pt)}
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{La macro définit les points d' intersection $I$ et $J$ de la droite $(AB)$ et du cercle de centre $O$ de rayon $r$ s'ils existent; dans le cas contraire, une erreur sera signalée dans le fichier .log}
-\end{NewMacroBox}
-
-\subsubsection{Exemple simple d'intersection droite-cercle}
-
-Dans l'exemple suivant, le tracé du cercle utilise deux points et l'intersection de la droite et du cercle utilise deux couples de points
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}
- \tkzInit[xmax=5,ymax=4]
- \tkzDefPoint(1,1){O}
- \tkzDefPoint(0,4){A}
- \tkzDefPoint(5,0){B}
- \tkzDefPoint(3,3){C}
- \tkzInterLC(A,B)(O,C) \tkzGetPoints{D}{E}
- \tkzDrawCircle(O,C)
- \tkzDrawPoints[color=blue](O,A,B,C)
- \tkzDrawPoints[color=red](D,E)
- \tkzDrawLine(A,B)
- \tkzLabelPoints[above right](O,A,B,C,D,E)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Exemple plus complexe d'intersection droite-cercle}
-\url{http://gogeometry.com/problem/p190_tangent_circle}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.25]
- \tkzInit[xmin=0,xmax=8,ymin=-4,ymax=4] \tkzClip[space=.4]
- \tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B}
- \tkzDefMidPoint(A,B) \tkzGetPoint{O}
- \tkzDrawCircle(O,B)
- \tkzDefMidPoint(O,B) \tkzGetPoint{O'}
- \tkzDrawCircle(O',B)
- \tkzTangent[from=A](O',B) \tkzGetSecondPoint{E}
- \tkzInterLC(A,E)(O,B) \tkzGetSecondPoint{D}
- \tkzDefPointBy[projection=onto A--B](D) \tkzGetPoint{F}
- \tkzMarkRightAngle(D,F,B)
- \tkzDrawSegments(A,D A,B D,F)
- \tkzDrawSegments[color=red,line width=1pt,opacity=.4](A,O F,B)
- \tkzDrawPoints(A,B,O,O',E,D) \tkzLabelPoints(A,B,O,O',E,D)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-
-\newpage
-\subsubsection{Cercle défini par un centre et une mesure, et cas particuliers}
-Regardons quelques cas particuliers comme des droites tangentes au cercle.
-
-\begin{center}
-
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=.75]
- \tkzDefPoint(0,8){A} \tkzDefPoint(8,0){B}
- \tkzDefPoint(8,8){C} \tkzDefPoint(4,4){I}
- \tkzDefPoint(2,7){E} \tkzDefPoint(6,4){F}
- \tkzDrawCircle[R](I,4 cm)
- \tkzInterLC[R](A,C)(I,4 cm) \tkzGetPoints{I1}{I2}
- \tkzInterLC[R](B,C)(I,4 cm) \tkzGetPoints{J1}{J2}
- \tkzInterLC[R](A,B)(I,4 cm) \tkzGetPoints{K1}{K2}
- \tkzDrawPoints[color=red](I1,J1,K1,K2)
- \tkzDrawLines(A,B B,C A,C)
- \tkzInterLC[R](E,F)(I,4 cm) \tkzGetPoints{I2}{J2}
- \tkzDrawPoints[color=blue](E,F)
- \tkzDrawPoints[color=red](I2,J2)
- \tkzDrawLine(I2,J2)\end{tikzpicture}
-\end{tkzexample}
-
-\end{center}
-
-\newpage
-\subsubsection{Exemple plus complexe}
-Attention à la syntaxe. Tout d'abord, les calculs pour les points peuvent être faits pendant le passage des arguments, mais il faut respecter la syntaxe de \tkzname{fp}. Vous pouvez constater que j'utilise la macro \tkzcname{FPpi} car \tkzname{fp} travaille en radians !. De plus quand des calculs nécéssitent l'emploi de parenthèses, celles-ci doivent être insérées dans un groupe \TEX \{ \dots \}.
-
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=2.5,rotate=180]
- \tkzDefPoint(0,1){J} \tkzDefPoint(0,0){O}
- \tkzDrawCircle[R](O,1 cm)
- \tkzDrawArc[R,line width=1pt,color=Gold](J,2.5 cm)(180,0)
- \foreach \i in {0,-5,-10,...,-85}{
- \tkzDefPoint({2.5*cos(\i*\FPpi/180)},{1+2.5*sin(\i*\FPpi/180)}){P}
- \tkzDrawSegment[color=orange](J,P)
- \tkzInterLC[R](P,J)(O,1 cm) \tkzGetPoints{M}{N}
- \tkzDrawPoints(N)}
- \foreach \i in {-90,-95,...,-175,-180}{
- \tkzDefPoint({2.5*cos(\i*\FPpi/180)},{1+2.5*sin(\i*\FPpi/180)}){P}
- \tkzDrawSegment[color=orange](J,P)
- \tkzInterLC[R](P,J)(O,1 cm) \tkzGetPoints{M}{N}
- \tkzDrawPoints(M)}
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsubsection{Calcul de la mesure du rayon}
- Avec \tkzname{pgfmath} et \tkzcname{pgfmathsetmacro}
-
-La mesure du rayon peut être le résultat d'un calcul que l'on ne fera pas au sein de la macro d'intersection, mais avant.
-On peut calculer une longueur de plusieurs façons. Il est possible bien sûr,
- d'utiliser le module \tkzname{pgfmath} et la macro \tkzcname{pgfmathsetmacro}. Dans certains, les résultats obtenus ne sont pas assez précis ainsi le calcul suivant $0.0002 \div 0.0001$ donne 1.98 avec pgfmath alors que fp.sty donnera 2. C'est pour cela que j'ai préféré interdire le calcul pendant le passage de paramètres, cela permet à chacun de choisir sa méthode.
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}
- \tkzDefPoint(2,2){A}
- \tkzDefPoint(5,4){B}
- \tkzDefPoint(4,4){O}
- \pgfmathsetmacro{\tkzLen}{0.0002/0.0001}
- \tkzDrawCircle[R](O,\tkzLen cm)
- \tkzInterLC[R](A,B)(O, \tkzLen cm)
- \tkzGetPoints{I}{J}
- \tkzDrawPoints[color=blue](A,B)
- \tkzDrawPoints[color=red](I,J)
- \tkzDrawLine(I,J)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Calcul de la mesure du rayon}
-Avec \tkzname{fp} et \tkzcname{FPeval}
-
-\begin{tkzexample}[latex=7cm]
- \begin{tikzpicture}
- \tkzDefPoint(2,2){A}
- \tkzDefPoint(5,4){B}
- \tkzDefPoint(4,4){O}
- \FPeval{\tkzLen}{0.0002/0.0001}
- \tkzDrawCircle[R](O,\tkzLen cm)
- \tkzInterLC[R](A,B)(O, \tkzLen cm)
- \tkzGetPoints{I}{J}
- \tkzDrawPoints[color=blue](A,B)
- \tkzDrawPoints[color=red](I,J)
- \tkzDrawLine(I,J)
-\end{tikzpicture}
- \end{tkzexample}
-
-\subsubsection{Calcul de la mesure du rayon}
- Avec \TEX\ et \tkzcname{tkzLength}.
-
- Cette dimension a été créée avec \tkzcname{newdimen}. 2 cm a été transformé en points. Il est bien sûr possible d'utiliser \TEX\ pour calculer.
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}
- \tkzDefPoint(2,2){A}
- \tkzDefPoint(5,4){B}
- \tkzDefPoint(4,4){O}
- \tkzLength=2cm
- \tkzDrawCircle[R](O,\tkzLength pt)
- \tkzInterLC[R](A,B)(O, \tkzLength pt)
- \tkzGetPoints{I}{J}
- \tkzDrawPoints[color=blue](A,B)
- \tkzDrawPoints[color=red](I,J)
- \tkzDrawLine(I,J)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-
-\subsubsection{Des carrés dans un demi-disque}
-Un air de Sangaku ! Il s'agit de prouver que l'on peut inscrire dans un demi-disque, deux carrés, et de déterminer la longueur de leurs côtés respectifs en fonction du rayon.
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.5]
- \tkzInit[xmax=8,ymax=5]\tkzClip[space=.25]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(8,0){B}
- \tkzDefPoint(4,0){I}
- \tkzDefSquare(A,B)
- \tkzGetPoints{C}{D}
- \tkzInterLC(I,C)(I,B)
- \tkzGetPoints{E'}{E}
- \tkzInterLC(I,D)(I,B)
- \tkzGetPoints{F'}{F}
- \tkzDefPointsBy[projection = onto A--B](E,F){H,G}
- \tkzDefPointsBy[symmetry = center H](I){J}
- \tkzDefSquare(H,J)
- \tkzGetPoints{K}{L}
- \tkzDrawSector[fill=Maroon!30](I,B)(A)
- \tkzFillPolygon[color=red!40](H,E,F,G)
- \tkzFillPolygon[color=blue!40](H,J,K,L)
- \tkzDrawPolySeg[color=red](H,E,F,G)
- \tkzDrawPolySeg[color=red](J,K,L)
- \tkzDrawPoints(E,G,H,F,J,K,L)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-\clearpage \newpage
-\subsection{Intersection de deux cercles}
-
-Le cas le plus fréquent est celui de deux cercles définis par leur centre et un point, mais comme précédemment l'option \tkzname{R} permet d'utiliser les mesures des rayons
-
-\begin{NewMacroBox}{tkzInterCC}{\oarg{options}\parg{$O,A/r$}\parg{$O',A'/r'$}\marg{$I$}\marg{$J$}}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{N} {N} {OA et O'A' sont des rayons, O et O' les centres}
-\TOline{R} {N} {$r$ et $r'$ sont des dimensions et mesurent les rayons}
-\bottomrule
-\end{tabular}
-
-\medskip
-\noindent
-\emph{Cette macro définit le(s) point(s) d' intersection $I$ et $J$ des deux cercles de centre $O$ et $O'$. Si les deux cercles n'ont pas de point commun alors la macro se termine par une erreur qui n'est pas gérée. \\
-Il est également possible d'utiliser directement \tkzcname{tkzInterCCN} et \tkzcname{tkzInterCCR}.}
-\end{NewMacroBox}
-
-\subsubsection{Construction d'un triangle connaissant les mesures des côtés}
-On veut obtenir le triangle de Pythagore (3,4,5)
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=.8]
- \tkzDefPoint(0,0){A} \tkzDefPoint(5,0){B}
- \tkzDrawCircle[R,dashed](A,4 cm) \tkzDrawCircle[R,dashed](B,3 cm)
- \tkzInterCC[R](A,4 cm)(B,3 cm) \tkzGetPoints{C}{D}
- \tkzDrawPolygon(A,B,C)
- \tkzCompasss(A,C B,C)
- \tkzLabelSegment[below](A,B){$5$ cm}
- \tkzLabelSegment[above left](A,C){$4$ cm}
- \tkzLabelSegment[above right](B,C){$3$ cm}
- \tkzDrawPoints[color=red](C)
- \tkzDrawPoints[color=blue](A,B)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\subsubsection{Dupliquer un triangle}
-Trois segments étant donnés, construire un triangle. Il s'agit de récupérer les mesures des longueurs avec \tkzcname{tkzCalcLength}.
-
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}
- \tkzDefPoint(1,0){A} \tkzDefPoint(4,0){B} % On place les points
- \tkzDefPoint(1,1){C} \tkzDefPoint(5,1){D}
- \tkzDefPoint(1,2){E} \tkzDefPoint(6,2){F}
- \tkzDefPoint(0,4){A'} \tkzDefPoint(3,4){B'}
- \tkzCalcLength[cm](C,D)\tkzGetLength{rCD}
- \tkzCalcLength[cm](E,F)\tkzGetLength{rEF}
- \tkzInterCC[R](A',\rCD cm)(B',\rEF cm)\tkzGetPoints{I}{J}
- \tkzDrawSegments[red](A,B C,D E,F) % Les tracés
- \tkzDrawLine(A',B')
- \tkzDrawPoints(D,E,I,J)
- \tkzDrawPolygon[color=red](A',B',I)
- \tkzSetUpLine[color=gray]
- \tkzCompass(A',B')
- \tkzDrawCircle[R](A',\rCD cm)
- \tkzDrawCircle[R](B',\rEF cm)
- \tkzDrawPoints(A,B,C,D,E,F,A',B',I)
- \tkzLabelPoints[left](A,C,E)
- \tkzLabelPoints[right](B,D,F)
- \tkzLabelPoints[below](A',B')
- \tkzLabelPoint[above left](I){$C'$}
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Construction d'un triangle équilatéral}
-
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[rotate=30]
- \tkzDefPoint(1,1){A}
- \tkzDefPoint(5,1){B}
- \tkzInterCC(A,B)(B,A)\tkzGetPoints{C}{D}
- \tkzDrawPoint[color=black](C)
- \tkzDrawCircle[dashed](A,B)
- \tkzDrawCircle[dashed](B,A)
- \tkzCompass[color=red](A,C)
- \tkzCompass[color=red](B,C)
- \tkzDrawPolygon(A,B,C)
- \tkzLabelSegment[above left](A,C){$4$ cm}
- \tkzLabelSegment[above right](B,C){$4$ cm}
- \tkzLabelSegment[below](A,B){$4$ cm}
- \tkzLabelPoints[](A,B)
- \tkzLabelPoint[above](C){$C$}
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Un triangle isocèle.}
-
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[rotate=30]
- \tkzDefPoint(1,2){A}
- \tkzDefPoint(5,1){B}
- \tkzInterCC[R](A,5cm)(B,5cm)\tkzGetPoints{C}{D}
- \tkzDrawCircle[R,dashed](A,5 cm)
- \tkzDrawCircle[R,dashed](B,5 cm)
- \tkzDrawPoint[color=blue](C)
- \tkzCompass[color=red](A,C)
- \tkzCompass[color=red](B,C)
- \tkzDrawPolygon(A,B,C)
- \tkzLabelSegment[above left](A,C){$5$ cm}
- \tkzLabelSegment[above right](B,C){$5$ cm}
- \tkzLabelPoints[](A,B)
- \tkzLabelPoint[above](C){$C$}
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Exemple une médiatrice}
-
-\begin{center}
-\begin{tkzexample}[]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(3,3){B}
- \tkzDrawCircle[color=blue](B,A)
- \tkzDrawCircle[color=blue](A,B)
- \tkzInterCC(B,A)(A,B)\tkzGetPoints{M}{N}
- \tkzDrawLine(A,B)
- \tkzDrawPoints(M,N)
- \tkzDrawLine[color=red](M,N)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsubsection{Trisection d'un segment}
-Voici un exemple complet utilisant toutes les macros précédentes. Il s'agit de partager avec une règle et un compas, un segment en trois segments de même longueur.
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=.8]
- \tkzDefPoint(0,0){A} \tkzDefPoint(3,2){B}
- \tkzInterCC(A,B)(B,A) \tkzGetPoints{C}{D}
- \tkzInterCC(D,B)(B,A) \tkzGetPoints{A}{E}
- \tkzInterCC(D,B)(A,B) \tkzGetPoints{F}{B}
- \tkzInterLC(E,F)(F,A) \tkzGetPoints{D}{G}
- \tkzInterLL(A,G)(B,E) \tkzGetPoint{O}
- \tkzInterLL(O,D)(A,B) \tkzGetPoint{J}
- \tkzInterLL(O,F)(A,B) \tkzGetPoint{I}
- \tkzDrawCircle(D,A) \tkzDrawCircle(A,B)
- \tkzDrawCircle(B,A) \tkzDrawCircle(F,A)
- \tkzDrawSegments[color=red](O,G O,B O,D O,F)
- \tkzDrawPoints(A,B,D,E,F,G,I,J) \tkzLabelPoints(A,B,D,E,F,G,I,J)
- \tkzDrawSegments[blue](A,B B,D A,D A,F F,G E,G B,E)
- \tkzMarkSegments[mark=s|](A,I I,J J,B)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
- \endinput
-
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex
deleted file mode 100644
index e2e3b8bec9..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex
+++ /dev/null
@@ -1,341 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-\section{Les droites}
-
-Il est bien sûr essentiel de tracer des droites, mais avant il faut pouvoir définir certaines droites particulières comme des médiatrices, des bissectrices, des parallèles ou encore des perpendiculaires. Le principe consiste à déterminer deux points de la droite.
-
-
-\subsection{Définition de droites}
-
-\begin{NewMacroBox}{tkzDefLine}{\oarg{local options}\parg{pt1,pt2} ou \parg{pt1,pt2,pt3}}
-\noindent\emph{L' argument est une liste de deux ou trois points. Suivant les cas, la macro définit un ou deux points nécessaires pour obtenir la droite cherchée. Il faut utiliser soit la macro \tkzcname{tkzGetPoint}, soit la macro \tkzcname{tkzGetPoints}.}
-
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{mediator}{}{médiatrice. Deux points sont définis}
-\TOline{perpendicular=through\ldots}{}{perpendiculaire à une droite passant par un point}
-\TOline{orthogonal=through\ldots}{}{voir ci-dessus }
-\TOline{parallel=through\ldots}{}{parallèle à une droite passant par un point}
-\TOline{bisector}{}{bissectrice d'un angle défini par trois points}
-\TOline{bisector out}{}{bissectrice extérieure}
-\TOline{K}{1}{Coefficient pour la droite perpendiculaire}
- \bottomrule
-\end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Exemple avec \tkzname{mediator}}
-\begin{tkzexample}[latex=5 cm]
-\begin{tikzpicture}[rotate=25]
- \tkzInit
- \tkzDefPoints{-2/0/A,1/2/B}
- \tkzDefLine[mediator](A,B) \tkzGetPoints{C}{D}
- \tkzDefPointWith[linear,K=.75](C,D) \tkzGetPoint{D}
- \tkzDefMidPoint(A,B) \tkzGetPoint{I}
- \tkzFillPolygon[color=orange!30](A,C,B,D)
- \tkzDrawSegments(A,B C,D)
- \tkzMarkRightAngle(B,I,C)
- \tkzDrawSegments(D,B D,A)
- \tkzDrawSegments(C,B C,A)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Exemple avec \tkzname{orthogonal} et \tkzname{parallel}}
-\begin{tkzexample}[latex=5 cm]
-\begin{tikzpicture}
- \tkzDefPoints{-1.5/-0.25/A,1/-0.75/B,-0.7/1/C}
- \tkzDrawLine[end = $(d_1)$](A,B)
- \tkzDrawPoints(A,B,C)
- \tkzDefLine[orthogonal=through C](B,A) \tkzGetPoint{c}
- \tkzDrawLine[end = $(\delta)$](C,c)
- \tkzInterLL(A,B)(C,c) \tkzGetPoint{I}
- \tkzMarkRightAngle(C,I,B)
- \tkzDefLine[parallel=through C](A,B) \tkzGetPoint{c'}
- \tkzDrawLine[end = $(d_2)$](C,c')
- \tkzMarkRightAngle(I,C,c')
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Tracer une droite}
-
-Pour tracer une droite, il suffit de donner les deux points et d'utiliser l'option \tkzname{add}. Cette option est due à Mark Wibrow
-
-\begin{tkzltxexample}[]
- \tikzset{%
- add/.style args={#1 and #2}{
- to path={%
- ($(\tikztostart)!-#1!(\tikztotarget)$)--($(\tikztotarget)!-#2!(\tikztostart)$)%
- \tikztonodes}}}
-\end{tkzltxexample}
-
- Cela permet de tracer une partie d'une droite définie par deux points. On utilise pour cela deux valeurs, qui sont des pourcentages par rapport à la longueur du segment défini par les deux points.
-
-\begin{tkzexample}[]
-\begin{tikzpicture}
- \tkzDefPoints{0/0/A,5/0/B}
- \tkzDrawLine[color=blue,thin, add=1 and 1,end = $(\delta)$](A,B)
- \tkzDrawLine[color=red,thick, add=.5 and .5](A,B)
- \tkzDrawPoints(A,B) \tkzLabelPoints(A,B)
- \tkzDrawLine[color=Maroon,line width=2pt, add=-.2 and -.2 ](A,B)
- \end{tikzpicture}
-\end{tkzexample}
-
- \begin{NewMacroBox}{tkzDrawLine}{\oarg{local options}\parg{pt1,pt2}}
-\emph{Les arguments sont une liste de deux points.}
-
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{add= nb1 and nb2}{.2 and .2}{Permet de prolonger le segment}
- \bottomrule
-\end{tabular}
-
-\medskip
-\emph{\tkzname{add} permet de définir la longueur du trait passant par les points pt1 et pt2. Les deux nombres sont des pourcentages. Les styles de \TIKZ\ sont accessibles pour les tracés}
-\end{NewMacroBox}
-
-\subsubsection{Exemple de tracer de droite avec \tkzname{add}}
-
-\begin{tkzexample}[latex=5cm]
-\begin{tikzpicture}
- \tkzInit[xmin=-2,xmax=3,ymin=-2.25,ymax=2.25]
- \tkzClip[space=.25]
- \tkzDefPoint(0,0){A} \tkzDefPoint(2,0.5){B}
- \tkzDefPoint(0,-1){C}\tkzDefPoint(2,-0.5){D}
- \tkzDefPoint(0,1){E} \tkzDefPoint(2,1.5){F}
- \tkzDefPoint(0,-2){G} \tkzDefPoint(2,-1.5){H}
- \tkzDrawLine(A,B) \tkzDrawLine[add = 0 and .5](C,D)
- \tkzDrawLine[add = 1 and 0](E,F)
- \tkzDrawLine[add = 0 and 0](G,H)
- \tkzDrawPoints(A,B,C,D,E,F,G,H)
- \tkzLabelPoints(A,B,C,D,E,F,G,H)
-\end{tikzpicture}
-\end{tkzexample}
-
-\newpage
-Il est possible de tracer plusieurs droites, mais avec les mêmes options.
-\begin{NewMacroBox}{tkzDrawLines}{\oarg{local options}\parg{pt1,pt2 pt3,pt4 ...}}
-\emph{Les arguments sont une liste de couples de deux points séparés par des espaces. Les styles de \TIKZ\ sont accessibles pour les tracés.}
-\end{NewMacroBox}
-
-\subsubsection{Exemple avec \tkzcname{tkzDrawLines}}
-\begin{center}
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(2,0){B}
- \tkzDefPoint(1,2){C}
- \tkzDefPoint(3,2){D}
- \tkzDrawLines(A,B C,D A,C B,D)
- \tkzLabelPoints(A,B,C,D)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}
- \tkzInit[xmin=-3,xmax=6, ymin=-1,ymax=6]
- \tkzClip
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(3,1){I}
- \tkzDefPoint(1,4){J}
- \tkzDefLine[bisector](I,O,J) \tkzGetPoint{i}
- \tkzDefLine[bisector out](I,O,J) \tkzGetPoint{j}
- \tkzDrawLines[add = 1 and 1,color=red](O,I O,J)
- \tkzDrawLines[add = 5 and 5,color=blue](O,i O,j)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsubsection{Une enveloppe}
-D'après une figure d'O. Reboux avec pst-eucl de D Rodriguez
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.25]
- \tkzInit[xmin=-6,ymin=-6,xmax=6,ymax=6]
- \tkzClip
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(132:4){A}
- \tkzDefPoint(5,0){B}
- \foreach \ang in {5,10,...,360}{%
- \tkzDefPoint(\ang:5){M}
- \tkzDefLine[mediator](A,M)
- \tkzDrawLine[color=magenta,add= 4 and 4](tkzFirstPointResult,tkzSecondPointResult)}
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsubsection{Une parabole}
-D'après une figure d'O. Reboux avec pst-eucl de D Rodriguez.
-Il n'est pas nécessaire de nommer les deux points qui définissent la médiatrice.
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.25]
- \tkzInit[xmin=-6,ymin=-6,xmax=6,ymax=6]
- \tkzClip
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(132:5){A}
- \tkzDefPoint(4,0){B}
- \foreach \ang in {5,10,...,360}{%
- \tkzDefPoint(\ang:4){M}
- \tkzDefLine[mediator](A,M)
- \tkzDrawLine[color=magenta,
- add= 4 and 4](tkzFirstPointResult,tkzSecondPointResult)}
- \end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-\subsection{Ajouter des labels aux droites \tkzcname{tkzLabelLine}}
-
- \begin{NewMacroBox}{tkzLabelLine}{\oarg{local options}\parg{pt1,pt2}\marg{label}}
-
- \begin{tabular}{lll}
- \toprule
- arguments & défaut & définition \\
- \midrule
- \TAline{label}{}{exemple \tkzcname{tkzLabelLine(A,B)\{$\delta$\}}}
- \bottomrule
- \end{tabular}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{pos}{.5}{pos est une option de \TIKZ\ mais essentielle dans ce cas}
- \bottomrule
-\end{tabular}
-
-\medskip
-\emph{En option et en plus de \tkzname{pos}, on peut utiliser tous les styles de \TIKZ\ , en particulier le placement avec \tkzname{above}, \tkzname{right}, \dots}
-
- \end{NewMacroBox}
-
-\subsubsection{Exemple avec \tkzcname{tkzLabelLine}}
-Une option importante est \tkzname{pos}, c'est elle qui permet de placer le label le long de la droite. La valeur de \tkzname{pos} peut être supérieure à 1 ou négative.
-
-\begin{tkzexample}[latex=4cm]
-\begin{tikzpicture}
- \tkzInit[ymin=-1,ymax=1.5,xmin=-2,xmax=2.5]
- \tkzDefPoints{0/0/A,3/0/B,1/1/C}
- \tkzDefLine[perpendicular=through C,K=-1](A,B)
- \tkzGetPoint{c}
- \tkzDrawLines(A,B C,c)
- \tkzLabelLine[pos=1.25,blue,right](C,c){$(\delta)$}
- \tkzLabelLine[pos=-0.25,red,left](C,c){encore $(\delta)$}
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{Configurer les options pour les lignes \tkzcname{tkzSetUpLine}}
-voir \ref{tkzsetupline}
-
-\newpage
-\subsection{Montrer les constructions de certaines lignes \tkzcname{tkzShowLine}}
-
- \begin{NewMacroBox}{tkzShowLine}{\oarg{local options}\parg{pt1,pt2} ou \parg{pt1,pt2,pt3}}
-\emph{Ces constructions concernent les médiatrices, les droites perpendiculaires ou parallèles passant par un point donné et les bissectrices. Les arguments sont donc des listes de deux ou bien de trois points. Plusieurs options permettent l'ajustement des constructions. L'idée de cette macro revient à \tkzimp{Yves Combe}}
-
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{mediator}{mediator}{affiche les constructions d'une médiatrice}
-\TOline{perpendicular}{mediator}{constructions pour une perpendiculaire}
-\TOline{orthogonal}{mediator}{idem}
-\TOline{bisector}{mediator}{constructions pour une bissectrice}
-\TOline{K}{1}{cercle inscrit dans à un triangle }
-\TOline{length}{1}{ en cm, longueur d'un arc}
-\TOline{ratio} {.5}{rapport entre les longueurs des arcs}
-\TOline{gap}{2}{placement le point de construction}
-\TOline{size}{1}{rayon d'un arc (voir bissectrice)}
- \bottomrule
-\end{tabular}
-
-\emph{Il faut ajouter bien sûr tous les styles de \TIKZ\ pour les tracés}
-\end{NewMacroBox}
-
-\subsubsection{Exemple de \tkzcname{tkzShowLine} et \tkzname{parallel}}
-
-\begin{tkzexample}[latex=5cm]
-\begin{tikzpicture}
- \tkzDefPoints{-1.5/-0.25/A,1/-0.75/B,-1.5/2/C}
- \tkzDrawLine(A,B)
- \tkzDefLine[parallel=through C](A,B) \tkzGetPoint{c}
- \tkzShowLine[parallel=through C](A,B)
- \tkzDrawLine(C,c)
- \tkzDrawPoints(A,B,C,c)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-
-\subsubsection{Exemple de \tkzcname{tkzShowLine} et \tkzname{perpendicular}}
-
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}
- \tkzInit[xmin=0,xmax=6,ymin=0,ymax=6]
- \tkzClip
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(3,4){B}
- \tkzDefPoint(2,4){C}
- \tkzDefLine[perpendicular=through C,%
- K=-.5](A,B)
- \tkzGetPoint{c}
- \tkzDefPointBy[projection=onto A--B](c)
- \tkzGetPoint{h}
- \tkzMarkRightAngle[fill=lightgray](A,h,C)
- \tkzDrawLines[](A,B C,c)
- \tkzDrawPoints(A,B,C,h,c)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Exemple de \tkzcname{tkzShowLine} et \tkzname{bisector}}
-
-\begin{tkzexample}[latex=5.25 cm]
-\begin{tikzpicture}
- \tkzInit[xmin=0,xmax=7,ymin=0,ymax=7]
- \tkzClip
- \tkzDefPoints{0/0/A, 6/2/B, 1/6/C}
- \tkzDrawPolygon(A,B,C)
- \tkzSetUpCompass[color=brown,line width=.1 pt]
- \tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
- \tkzDefLine[bisector](C,B,A) \tkzGetPoint{b}
- \tkzShowLine[bisector,size=2,gap=3](B,A,C)
- \tkzShowLine[bisector,size=1,gap=3](C,B,A)
- \tkzInterLL(A,a)(B,b) \tkzGetPoint{I}
- \tkzDefPointBy[projection = onto A--B](I)
- \tkzDrawCircle[radius,color=red,%
- line width=.2pt](I,tkzPointResult)
- \tkzDrawSegments[color=Maroon!50](I,tkzPointResult)
- \tkzDrawLines[add=0 and 5,color=Maroon!50](A,a B,b)
-\end{tikzpicture}
-
-\end{tkzexample}
-
-\subsubsection{Exemple de \tkzcname{tkzShowLine} et \tkzname{mediator}}
-\begin{tkzexample}[latex=6 cm]
-\begin{tikzpicture}
- \tkzInit[xmax=6,ymax=7]
- \tkzGrid
- \tkzDefPoint(2,2){A}
- \tkzDefPoint(5,4){B}
- \tkzDrawPoints(A,B)
- \tkzShowLine[mediator,color=orange,length=1](A,B)
- \tkzGetPoints{i}{j}
- \tkzLabelPoints[below =3pt](A,B)
- \tkzDrawLines[](A,B i,j)
-\end{tikzpicture}
-\end{tkzexample}
-\endinput \ No newline at end of file
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
deleted file mode 100644
index 7e8499b1f5..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex
+++ /dev/null
@@ -1,176 +0,0 @@
-% encoding : utf8
-% doc de tkz-euclide.sty
-% Created by Alain Matthes on 2010-04-04.
-% Copyright (C) 2010 Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License , either version 1.3
-% of this license or (at your option) any later version and/or
-% 2. under the GNU Public License.
-%
-% See the file doc/generic/pgf/licenses/LICENSE for more details.%
-% See http://www.latex-project.org/lppl.txt for details.
-%
-%
-% TKZdoc-euclide-main is the french doc of tkz-euclide
-
-\documentclass[DIV = 12,
- fontsize = 10,
- headinclude = false,
- index = totoc,
- footinclude = false,
- twoside,
- headings = small]{tkz-doc}
-%\usepackage{svn-multi}
-\usepackage{tkz-euclide}
-\usetkzobj{all}
-\tkzSetUpColors[background=fondpaille,text=Maroon]
-\usepackage[frenchb]{babel}
-\usepackage[autolanguage]{numprint}
-\usepackage[pdftex,
- unicode,
- colorlinks = true,
- pdfpagelabels,
- urlcolor = blue,
- filecolor = pdffilecolor,
- linkcolor = blue,
- breaklinks = false,
- hyperfootnotes= false,
- bookmarks = false,
- bookmarksopen = false,
- linktocpage = true,
- pdfsubject ={Euclidean geometry},
- pdfauthor ={Alain Matthes},
- pdftitle ={tkz-euclide},
- pdfkeywords ={euclide,compass,rule,point,line},
- pdfcreator ={pdfeTeX}
- ]{hyperref}
-\usepackage{url}
-\def\UrlFont{\small\ttfamily}
-\usepackage[protrusion = true,
- expansion,
- final,
- verbose = false]{microtype}
-
-\DisableLigatures{encoding = T1, family = tt*}
-\usepackage{tkzexample}
-% \usepackage[saved]{tkzexample}
-% \def\tkzFileSavedPrefix{tkzEucl}%
-\usepackage[parfill]{parskip}
-\gdef\nameofpack{tkz-euclide}
-\gdef\versionofpack{1.13 c}
-\gdef\dateofpack{2011/01/20}
-\gdef\nameofdoc{doc-tkz-euclide}
-\gdef\dateofdoc{2011/02/18}
-\gdef\authorofpack{Alain Matthes}
-\gdef\adressofauthor{}
-\gdef\namecollection{AlterMundus}
-\gdef\urlauthor{http://altermundus.fr}
-\gdef\urlauthorcom{http://altermundus.com}
-\title{The package : tkz-euclide.sty}
-\author{Alain Matthes}
-
-%\usepackage{hvindex}
-
-\usepackage{shortvrb,fancyvrb}
-\makeatletter
-\renewcommand*\l@subsubsection{\bprot@dottedtocline{3}{3.8em}{4em}}
-\makeatother
-\AtBeginDocument{\MakeShortVerb{\|}}
-
-\pdfcompresslevel=9
-\pdfinfo{
- /Title (doc-tkz-euclide.pdf)
- /Creator (TeX)
- /Producer (pdfeTeX)
- /Author (Alain Matthes)
- /CreationDate (18 février 2011)
- /Subject (Documentation du package tkz-euclide v 1.13 c)
- /Keywords (pdfeTeX, geometry, compass, triangle, segment, line, pdflatex) }
-
-%<--------------------------------------------------------------------------->
-\begin{document}
-
-\title{\nameofpack}
-\date{\today}
-\clearpage
-\thispagestyle{empty}
-\maketitle
-
-\clearpage
-\pagecolor{fondpaille}
-\color{Maroon}
-\colorlet{graphicbackground}{fondpaille}
-\colorlet{codebackground}{Peach!30}
-\colorlet{codeonlybackground}{Peach!30}
-\colorlet{numbackground}{fondpaille}
-\colorlet{textcodecolor}{Maroon}
-\colorlet{numcolor}{gray}
-
-\nameoffile{\nameofpack}
-\defoffile{Le package \textbf{tkz-euclide.sty} est un ensemble de macros spécialisées permettant de construire des objets géométriques en 2D dans un plan muni d'un repère. Il est construit au-dessus de PGF et son interface TikZ. Ce document fournit les définitions des différentes macros ainsi que des exemples dont la complexité est graduée. \textbf{tkz-euclide.sty} remplace \textbf{tkz-2d.sty} dont le code n'est plus maintenu. Ce package nécessite la version 2.1 de \TIKZ.}
-
-\presentation
-
-\vspace*{1cm}
-\noindent\lefthand\ Je souhaite remercier \textbf{Till Tantau} pour avoir créé le merveilleux outil \href{http://sourceforge.net/projects/pgf/}{Ti\emph{k}Z}, ainsi que \tkzimp{Michel Bovani} pour \tkzname{fourier}, dont l'association avec \tkzname{utopia} est excellente.
-
-\vspace*{12pt}
-\noindent\lefthand\ Je remercie \textbf{Yve Combe} pour avoir partagé son travail sur le rapporteur et les constructions à l'aide du compas. Je souhaite remercier également, \tkzimp{David Arnold} qui a corrigé un grand nombre d'erreurs et qui a testé de nombreux exemples, \tkzimp{Wolfgang Büchel} qui a corrigé également des erreurs et a construit de superbes scripts pour obtenir les fichiers d'exemples, \tkzimp{John Kitzmiller} et \tkzimp{Dimitri Kapetas} pour leurs exemples, et enfin \tkzimp{Gaétan Marris} pour ses remarques et corrections.
-
-\vspace*{12pt}
-\noindent\lefthand\ Vous trouverez de nombreux exemples sur mes sites~:
-\href{http://altermundus.com/pages/download.html}{altermundus.com} ou
-\href{http://altermundus.fr/pages/download.html}{altermundus.fr}
-
-\vfill
-Vous pouvez envoyer vos remarques, et les rapports sur des erreurs que vous aurez constatées à l'adresse suivante~: \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.
-
-\vspace{1cm}
-\begin{center}
- \begin{tikzpicture}[decoration=snake,color=Peach,line width=1pt]
- \draw[decorate] (0,0)--(\textwidth-1cm,0);
- \end{tikzpicture}
-\end{center}
-
-\clearpage
-\tableofcontents
-
-\vspace{1cm}
-\begin{center}
- \begin{tikzpicture}[decoration=snake,color=Peach,line width=1pt]
- \draw[decorate] (0,0)--(\textwidth-1cm,0);
- \end{tikzpicture}
-\end{center}
-\clearpage \newpage
-
-\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}
-\include{TKZdoc-euclide-installation}
-\include{TKZdoc-euclide-presentation}
-\include{TKZdoc-euclide-base}
-\include{TKZdoc-euclide-points}
-\include{TKZdoc-euclide-alea}
-\include{TKZdoc-euclide-transf}
-\include{TKZdoc-euclide-intersec}
-\include{TKZdoc-euclide-lines}
-\include{TKZdoc-euclide-segments}
-\include{TKZdoc-euclide-vec}
-\include{TKZdoc-euclide-polygons}
-\include{TKZdoc-euclide-circles}
-\include{TKZdoc-euclide-compass}
-\include{TKZdoc-euclide-sectors}
-\include{TKZdoc-euclide-arcs}
-\include{TKZdoc-euclide-rapporteur}
-\include{TKZdoc-euclide-tools}
-\include{TKZdoc-euclide-config}
-\include{TKZdoc-euclide-exemples}
-\include{TKZdoc-euclide-example}
-\include{TKZdoc-euclide-FAQ}
-\clearpage\newpage
-\printindex
-
-\end{document}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-obj.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-obj.tex
deleted file mode 100644
index edfe22f22a..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-obj.tex
+++ /dev/null
@@ -1,98 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-\section{Utilisation des objets complémentaires}
-
-Ces objets complémentaires peuvent être des points, des segments, des droites.
-Il est possible d'utiliser certains de ces objets sans charger complètement \tkzname{tkz-euclide} mais en utilisant la macro \tkzcname{usetkzobj}. Attention, il faut utiliser \tkzname{tkz-euclide} pour avoir la possibilité d'utiliser des outils comme les transformations ou encore les intersections.
-
-Voici la liste actuelle des objets et ceux qui sont chargés par défaut par \tkzname{tkz-base}.
-\begin{NewMacroBox}{usetkzobj}{\marg{liste d'objets}}
-
-\begin{tabular}{lll}
-options & & définition \\
-\midrule
-\TAline{all} {absent} {tous les objets sont chargés}
-\TAline{points}{présent}{définir, nommer, tracer des points }
-\TAline{lines}{absent} {définir, nommer, tracer des droites}
-\TAline{segments} {présent}{définir, nommer, tracer des segments}
-\TAline{vectors} {absent}{définir, nommer, tracer des des vecteurs}
-\TAline{circles} {absent}{définir, nommer, tracer des cercles}
-\TAline{polygons}{absent}{définir, nommer, tracer des quadrilatères}
-\TAline{arcs} {absent}{définir, nommer, tracer des arcs}
-\TAline{sectors}{absent}{définir, nommer, tracer des secteurs}
-\TAline{protractor}{absent}{tracer un rapporteur}
-\TAline{marks}{présent}{définir, nommer, tracer des marques}
-\end{tabular}
- \end{NewMacroBox}
-
-
-\subsection{Nuage de points}
-\subsubsection{\tkzcname{usetkzobj\{points,segments\}}}
-
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}
- \tkzInit[xmax=12,ymin=1000,ymax=9000,ystep=1000]
- \tkzAxeX[below=12pt,label=mois]
- \tkzAxeY[label=Recette]
- \tkzGrid
- \tkzDefPoint(1,2000){A}
- \tkzDefPoint(2,3000){B}
- \tkzDefPoint(4,2500){C}
- \tkzDefPoint(6,4200){D}
- \tkzDefPoint(8,5200){E}
- \tkzDefPoint(10,5000){F}
- \tkzDefPoint(12,8400){G}
- \tkzDrawPoints[shape=circle,color=red,size=10](A,B,C,D,E,F,G)
- \tkzDrawPolySeg[line width=1pt,color=blue](A,B,C,D,E,F,G)
- \tkzText[draw,
- color = red,
- text = blue,
- fill = orange!20,
- inner sep = 12pt](6,-500)
- {Recette en fonction du mois}
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsubsection{\tkzcname{usetkzobj\{marks\}}}
-
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}
-\tkzInit[xmax=12,ymin=1000,ymax=9000,ystep=1000]
-\tkzClip[space=2]
-\tkzX[label=mois,poslabel={below=10pt}]
-\tkzY[label=Recette]
-\tkzDefSetOfPoints(1/2000,
- 2/3000,
- 4/2500,
- 5/4200,
- 6/4800,
- 7/4600,
- 8/5200,
- 9/6200,
- 10/7000,
- 11/7400,
- 12/10000)
-\tkzJoinMarks[]
-\tkzText[draw,color = red,fill = red!10,text width=3cm](5,6000)%
-{\begin{center}\color{blue}Recette en fonction du mois\end{center}}
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{\tkzcname{usetkzobj\{marks,segments\}}}
-
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}
- \tkzInit[xmin = 1900,xmax = 2000,xstep = 10,
- ymin = 1000,ymax = 9000,ystep = 1000]
- \tkzAxeX[label = Année,below=16pt]
- \tkzAxeY[label = Recette]
- \tkzDefSetOfPoints[mark = oplus,mark size=3pt](%
- 1900/2000,%
- 1940/8000,%
- 1960/5000,%
- 2000/7000)
- \tkzDrawSegments(tkzPt1,tkzPt2 tkzPt2,tkzPt3 tkzPt3,tkzPt4)
-\end{tikzpicture}
-\end{tkzexample}
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-points.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-points.tex
deleted file mode 100644
index d1ec52b759..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-points.tex
+++ /dev/null
@@ -1,605 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-\section{Les points}
-
-
-J'ai fait une distinction entre le point utilisé en géométrie euclidienne et le point pour représenter un élément d'un nuage statistique. Dans le premier cas, j'utilise comme objet un \tkzname{node}, ce qui se traduit par le fait que la représentation du point ne peut être modifiée par un \tkzname{scale}; dans le second cas, j'utilise comme objet un \tkzname{plot mark}. Ce dernier peut être mis à l'échelle et posséder des formes plus variées que le node.
-
-La nouvelle macro est \tkzNameMacro{tkzDefPoint}, celle-ci permet d'utiliser des options propres à \TIKZ\ comme shift et les valeurs sont traitées avec tkz-base. De plus, si des calculs sont nécessaires alors c'est le package \tkzNamePack{fp.sty} qui s'en charge. On peut utiliser les coordonnées cartésiennes ou polaires.
-
-\subsection{Définition d'un point en coordonnées cartésiennes : \tkzcname{tkzDefPoint}} \hypertarget{tdp}{}
-
-\begin{NewMacroBox}{tkzDefPoint}{\oarg{local options}\parg{x,y}\marg{name} ou \parg{a:r}\marg{name}}
-
-\begin{tabular}{lll}
-\toprule
-arguments & défaut & définition \\
-\midrule
-\TAline{x,y}{no default}{x et y sont deux dimensions, par défaut en cm.}
-\TAline{a:r}{no default}{a est un angle en degré, r une dimension}
-\bottomrule
-\end{tabular}
-
-\medskip
-\noindent\emph{Les arguments obligatoires de cette macro sont deux dimensions exprimées avec des décimaux, dans le premier cas ce sont deux mesures de longueur, dans le second ce sont une mesure de longueur et la mesure d'un angle en degré}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{shift} {(0,0)} {espacement entre deux valeurs}
-\TOline{label} {no default} {permet de placer un label à une distance prédéfinie}
- \bottomrule
-\end{tabular}
-
-\medskip
-\noindent\emph{Toutes les options de \TIKZ\ que l'on peut appliquer à \tkzname{coordinate}, sont applicables (enfin je l'espère!)}
-\end{NewMacroBox}
-
-\subsubsection{Utilisation de \tkzname{shift} et \tkzname{label} }
-\tkzname{shift} permet de placer les points par rapport à un autre. Je n'aime guère utiliser l'option \tkzname{label} mais en tout cas c'est possible. Attention à l'utilisation de \tkzname{shift}, dans certains comme celui ci-dessous, une transformation générale de la figure n'est pas possible. Voir la méthode
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}
- \tkzDefPoint[label=-60:$A_n$](2,3){A}
- \tkzDefPoint[shift={(2,3)},%
- label=above left:$B_n$](31:3){B}
- \tkzDefPoint[shift={(2,3)},%
- label=above right:$C_n$](158:3){C}
- \tkzDrawSegments[color=red,%
- line width=1pt](A,B A,C)
- \tkzDrawPoints[color=red](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-Préférable pour effectuer une rotation, est d'utiliser un environnement \tkzNameEnv{scope}.
-
-\begin{tkzexample}[latex=5cm]
-\begin{tikzpicture}[rotate=90]
- \tkzDefPoint[label=right:$A_n$](2,3){A}
- \begin{scope}[shift={(A)}]
- \tkzDefPoint[label= right:$B_n$](31:3){B}
- \tkzDefPoint[label= right:$C_n$](158:3){C}
- \end{scope}
- \tkzDrawSegments[color=red,%
- line width=1pt](A,B A,C)
- \tkzDrawPoints[color=red](A,B,C)
- \end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Formules et coordonnées}
-Il faut ici respecter la syntaxe de \tkzNamePack{fp.sty}. Il est toujours possible de passer par \tkzNamePack{pgfmath.sty} mais dans ce cas, il faut calculer les coordonnées avant d'utiliser la macro \tkzcname{tkzDefPoint}.
-
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}[scale=1]
- \tkzInit[xmax=6,ymax=6]
- \tkzGrid
- \tkzSetUpPoint[shape = circle,color = red,%
- size = 8,fill = red!30]
- \tkzDefPoint(-1+1,-1+4){O}
- \tkzDefPoint({3*ln(exp(1))},{exp(1)}){A}
- \tkzDefPoint({4*sin(FPpi/6)},{4*cos(FPpi/6)}){B}
- \tkzDefPoint({4*sin(FPpi/3)},{4*cos(FPpi/3)}){B'}
- \tkzDefPoint(30:5){C}
- \tkzDefPoint[shift={(1,3)}](45:4){A'}
- \begin{scope}[shift=(A)]
- \tkzDefPoint(30:3){C'}
- \end{scope}
- \tkzDrawPoints[color=blue](O,B,C)
- \tkzDrawPoints[color=red,%
- shape=cross out](B',A,A',C')
- \tkzLabelPoints(A,O,B,B',A',C,C')
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsubsection{Scope et \tkzcname{tkzDefPoint} }
-On peut tout d'abord utiliser l'environnement \tkzNameEnv{scope} de \TIKZ\
-Dans l'exemple suivant, nous avons un moyen de définir un triangle isocèle.
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}[scale=1]
- \tkzSetUpLine[color=blue!60]
- \begin{scope}[rotate=30]
- \tkzDefPoint(2,3){A}
- \begin{scope}[shift=(A)]
- \tkzDefPoint(90:5){B}
- \tkzDefPoint(30:5){C}
- \end{scope}
- \end{scope}
- \tkzDrawPolygon(A,B,C)
-\tkzLabelPoints[above](B,C)
-\tkzLabelPoints[below](A)
-\end{tikzpicture}
-\end{tkzexample}
-%<--------------------------------------------------------------------------->
-\subsection{Définition de points multiples en coordonnées cartésiennes : \tkzcname{tkzDefPoints}}
-
-\begin{NewMacroBox}{tkzDefPoints}{\oarg{local options}\marg{$x_1/y_1/n_1,x_2/y_2/n_2$, ...}}
-$x_1$ et $y_1$ sont les coordonnées d'un point référencé $n_1$
-
-\begin{tabular}{lll}
-\toprule
-arguments & exemple & \\
-\midrule
-\TAline{$x_i/y_i/n_i$}{\tkzcname{tkzDefPoints\{0/0/O,2/2/A\}}}{}
-\end{tabular}
-\end{NewMacroBox}
-
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=1]
- \tkzDefPoints{0/0/A,
- 2/0/B,
- 2/2/C,
- 0/2/D}
- \tkzDrawSegments(D,A A,B B,C C,D)
- \tkzDrawPoints(A,B,C,D)
-\end{tikzpicture}
-\end{tkzexample}
-
-\newpage
-%<--------------------------------------------------------------------------->
-\subsection{Point relativement à un autre : \tkzcname{tkzDefShiftPoint}}
-\begin{NewMacroBox}{tkzDefShiftPoint}{\oarg{Point}\parg{x,y}\marg{name} ou \parg{a:r}\marg{name}}
-\begin{tabular}{lll}
-arguments & défaut & définition \\
-\midrule
-\TAline{(x,y)}{no default}{x et y sont deux dimensions, par défaut en cm.}
-\TAline{(a:r)}{no default}{a est un angle en degré, r une dimension}
-\TOline{point} {no default} {\tkzcname{tkzDefShiftPoint}[A](0:4)\{B\}}
-\bottomrule
-\end{tabular}
-
-\emph{Pas d'option. Le nom du point est obligatoire.}
-\end{NewMacroBox}
-
-\subsubsection{Exemple avec \tkzcname{tkzDefShiftPoint}}
-Cette macro permet de placer un point relativement à un autre. Cela revient à une translation. Voici comment construire un triangle isocèle de sommet principal A et d'angle au sommet de $30$ degrés.
-
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=2,rotate=-30]
- \tkzDefPoint(2,3){A}
- \tkzDefShiftPoint[A](0:4){B}
- \tkzDefShiftPoint[A](30:4){C}
- \tkzDrawSegments(A,B B,C C,A)
- \tkzMarkSegments[mark=|,color=red](A,B A,C)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints(B,C) \tkzLabelPoints[above left](A)
-\end{tikzpicture}
-\end{tkzexample}
-
-\newpage
-\subsection{Point relativement à un autre : \tkzcname{tkzDefShiftPointCoord}}
-
-\begin{NewMacroBox}{tkzDefShiftPointCoord}{\oarg{a,b}\parg{x,y}\marg{name} ou \parg{a:r}\marg{name}}
-\emph{Il s'agit d'effectuer une translation de vecteur $(a,b)$ au point défini par rapport à l'oigine.}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-arguments & défaut & définition \\
-\midrule
-\TAline{(x,y)}{no default}{x et y sont deux dimensions, par défaut en cm.}
-\TAline{(a:r)}{no default}{a est un angle en degré, r une dimension}
-\end{tabular}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & exemple \\
-\midrule
-\TOline{a,b} {no default} {\tkzcname{tkzDefShiftPointCoord}[2,3](0:4)\{B\}}
-\end{tabular}
-\emph{L'option est obligatoire}
-\end{NewMacroBox}
-
-
-\subsubsection{Triangle équilatéral avec \tkzcname{tkzDefShiftPointCoord}}
-Voyons comment obtenir un triangle équilatéral (il y a beaucoup plus simple)
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}[scale=1]
- \tkzDefPoint(2,3){A}
- \tkzDefShiftPointCoord[2,3](30:4){B}
- \tkzDefShiftPointCoord[2,3](-30:4){C}
- \tkzDrawPolygon(A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Triangle isocèle avec \tkzcname{tkzDefShiftPointCoord}}
-Voyons comment obtenir un triangle isocèle dont l'angle principal est de 30 degrés. La rotation est possible. $AB=AC=5$ et $\widehat{BAC}$
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}[rotate=15]
- \tkzDefPoint(2,3){A}
- \tkzDefShiftPointCoord[2,3](15:5){B}
- \tkzDefShiftPointCoord[2,3](-15:5){C}
- \tkzDrawSegments(A,B B,C C,A)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints(B,C)
- \tkzLabelPoint[left](A){$A$}
-\end{tikzpicture}
-\end{tkzexample}
-%<--------------------------------------------------------------------------->
-%<--------------------------------------------------------------------------->
-%<--------------------------------------------------------------------------->
-
-\clearpage \newpage
-\subsection{Tracer des points \tkzcname{tkzDrawPoint}} \hypertarget{tdrp}{}
-
-\begin{NewMacroBox}{tkzDrawPoint}{\oarg{local options}\parg{name}}
-\begin{tabular}{lll}
-arguments & défaut & définition \\
-\midrule
-\TAline{name of point} {no default} {Un seul nom de point est accepté}
-\bottomrule
-\end{tabular}
-
-\medskip
-\noindent\emph{L'argument est obligatoire. Le disque prend la couleur du cercle mais 50\% plus clair. Il est possible de tout modifier. Le point est un node et donc il est invariant si le dessin est modifié par une mise à l'échelle.}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{shape} {circle}{Possible \tkzname{cross} ou \tkzname{cross out}}
-\TOline{size} {6}{$6 \times$ \tkzcname{pgflinewidth}}
-\TOline{color} {black}{la couleur par défaut peut être changée}
-\bottomrule
-\end{tabular}
-
-\medskip
-\noindent\emph{On peut créer d'autres formes comme \tkzname{cross}}
-\end{NewMacroBox}
-
-\subsubsection{Exemple de tracés de points}
-Il faut remarquer que \tkzname{scale} ne touche pas à la forme des points. Ce qui est normal. La plupart du temps, on se contente d'une seule forme de points que l'on pourra définir dès le début, soit avec une macro, soit en modifiant un fichier de configuration.
-
-
-\begin{tkzexample}[latex=5cm]
- \begin{tikzpicture}[scale=.5]
- \tkzDefPoint(1,3){A}
- \tkzDefPoint(4,1){B}
- \tkzDefPoint(0,0){O}
- \tkzDrawPoint[shape=cross out,size=12,color=red](A)
- \tkzDrawPoint[shape=cross,size=12,color=blue](B)
- \tkzDrawPoint[size=12,color=green](O)
- \end{tikzpicture}
-\end{tkzexample}
-
-Il est possible de tracer plusieurs points en une seule fois mais cette macro est un peu plus lente que la précédente. De plus on doit se contenter des mêmes options pour tous les points.
-
-\hypertarget{tdrps}{}
-\begin{NewMacroBox}{tkzDrawPoints}{\oarg{local options}\parg{liste}}
-\begin{tabular}{lll}
-arguments & défaut & définition \\
-\midrule
-\TAline{liste de points}{no default}{exemple \tkzcname{tkzDrawPoints(A,B,C)}}
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Attention au « s » final, un oubli entraîne des erreurs en cascade si vous tentez de tracer des points multiples. Les options sont les mêmes que pour la macro précédente. }
-\end{NewMacroBox}
-
-\subsubsection{Exemple avec \tkzcname{tkzDefPoint} et \tkzcname{tkzDrawPoints} }
-
-\begin{tkzexample}[latex=5cm]
- \begin{tikzpicture}[scale=.5]
- \tkzDefPoint(1,3){A}
- \tkzDefPoint(4,1){B}
- \tkzDefPoint(0,0){O}
- \tkzDrawPoints[size=8,color=red](A,B,C)
- \end{tikzpicture}
-\end{tkzexample}
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}[scale=.5]
- \tkzDefPoint(2,3){A} \tkzDefPoint(5,-1){B}
- \tkzDefPoint[label=below:$\mathcal{C}$,
- shift={(2,3)}](-30:5.5){E}
- \begin{scope}[shift=(A)]
- \tkzDefPoint(30:5){C}
- \end{scope}
- \tkzCalcLength[cm](A,B)\tkzGetLength{rAB}
- \tkzDrawCircle[R](A,\rAB cm)
- \tkzDrawSegment(A,B)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints(B,C)
- \tkzLabelPoints[above](A)
-\end{tikzpicture}
-\end{tkzexample}
-%<--------------------------------------------------------------------------->
-%<--------------------------------------------------------------------------->
-%<--------------------------------------------------------------------------->
-
-\clearpage \newpage
-\subsection{Ajouter des labels aux points \tkzcname{tkzLabelPoint}}
-\hypertarget{tlp}{}
-
- \begin{NewMacroBox}{tkzLabelPoint}{\oarg{local options}\parg{point}\marg{label}}
-\begin{tabular}{lll}
-arguments & exemple & \\
-\midrule
-\TAline{point}{\tkzcname{tkzLabelPoint(A)\{$A_1$\}}}{}
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{En option, on peut utiliser tous les styles de \TIKZ\ , en particulier le placement avec \tkzname{above}, \tkzname{right}, \dots}
-
- \end{NewMacroBox}
-
-\subsubsection{Exemple avec \tkzcname{tkzLabelPoint}}
-
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(4,0){B}
- \tkzDefPoint(0,3){C}
- \tkzDrawSegments(A,B B,C C,A)
- % \tkzDrawPolygon with
- % \usetkzobj{polygons}
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoint[left,red](A){$A$}
- \tkzLabelPoint[right,blue](B){$B$}
- \tkzLabelPoint[above,purple](C){$C$}
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{label et référence}
- La référence d'un point est l'objet qui permet d'utiliser le point, le label est le nom du point qui sera affiché.
-
-\begin{tkzexample}[latex=8cm]
- \begin{tikzpicture}
- \tkzInit[xmax=1,xstep=0.15,ymax=.5]
- \tkzAxeX \tkzDrawY
- \tkzDefPoint(0.22,0.25){A}
- \tkzDrawPoint(A)
- \tkzLabelPoint[above](A){$A_1$}
- \end{tikzpicture}
- \end{tkzexample}
-
-
-\newpage
-
-Il est possible de placer plusieurs labels rapidement quand les références des points sont identiques aux labels et quand les labels sont placés de la même manière par rapport aux points. Par défaut, c'est \tkzname{below right} qui a été choisi.
-\hypertarget{tlps}{}
-
-\begin{NewMacroBox}{tkzLabelPoints}{\oarg{local options}\parg{$A_1,A_2,...$}}
-\begin{tabular}{lll}
-arguments & exemple & résultat \\
-\midrule
-\TAline{list of points}{\tkzcname{tkzLabelPoint(A,B,C)}}{Affichage de A, B et C}
-\bottomrule
-\end{tabular}
-
-\medskip
- \emph{Cette macro diminue le nombre de lignes de codes mais il n'est pas évident que tous les points aient besoin du même positionnement des labels.}
-\end{NewMacroBox}
-
-\subsubsection{Exemple avec \tkzcname{tkzLabelPoints}}
-\begin{tkzexample}[latex = 6cm]
-\begin{tikzpicture}
- \tkzDefPoint(2,3){A}
- \tkzDefShiftPoint[A](30:2){B}
- \tkzDefShiftPoint[A](30:5){C}
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints(A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Style des points avec \tkzcname{tkzSetUpPoint}}
-
-\begin{NewMacroBox}{tkzSetUpPoint}{\oarg{local options}}
-\begin{tabular}{lll}
-options & défaut & définition \\
-\midrule
-\TOline{liste}{no default}{exemple \tkzcname{tkzLabelPoint(A,B,C)}}
-\bottomrule
-\end{tabular}
-
-\end{NewMacroBox}
-
-Il s'agit d'une macro permettant de choisir un \hypertarget{setupoint}{style} pour les points. La macro \tkzcname{tkzDrawSegments} est décrite \hyperlink{segs}{ici}.
-
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}
- \tkzInit[ymin=-0.5,ymax=3,xmin=-0.5,xmax=7]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(02.25,04.25){B}
- \tkzDefPoint(4,0){C}
- \tkzDefPoint(3,2){D}
- \tkzDrawSegments(A,B A,C A,D)
- \tkzSetUpPoint[shape=cross out,size=10,color=red]
- \tkzDrawPoints(A,B,C,D)
- \tkzLabelPoints(A,B,C,D)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-
-\section{Points particuliers}
-L'introduction des points a été réalisée dans \tkzname{tkz-base}. La macro la plus importante étant \tkzcname{tkzDefPoint}. \tkzcname{tkzDrawPoint} permet de tracer les points, quant à \tkzcname{tkzLabelPoint}, elle permet d'afficher un label, lié au point. Voici quelques points particuliers.
-
-%<--------------------------------------------------------------------------->
-\subsection{Milieu d'un segment \tkzcname{tkzDefMidPoint}}
-Il s'agit de déterminer le milieu d'un segment.
-
-\begin{NewMacroBox}{tkzDefMidPoint}{\parg{pt1,pt2}}
-Le résultat est dans \tkzname{tkzPointResult}. On peut le récupérer avec \tkzcname{tkzGetPoint}. Soit vous ne voulez pas conserver ce point et dans ce cas, vous pouvez immédiatement travailler avec \tkzname{tkzPointResult}, soit vous aurez besoin untéreurement
-
- \medskip
-\begin{tabular}{lll}
-\toprule
-arguments & défaut & définition \\
-\midrule
-\TAline{(pt1,pt2)}{no default}{pt1 et pt2 sont deux points}
-\end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Utilisation de \tkzcname{tkzDefMidPoint}}
-Revoir l'utilisation de \tkzcname{tkzDefPoint} dans \NamePack{tkz-base}.
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}[scale=1]
- \tkzDefPoint(2,3){A}
- \tkzDefPoint(4,0){B}
- \tkzDefMidPoint(A,B) \tkzGetPoint{C}
- \tkzDrawSegment(A,B)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints[right](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Coordonnées barycentriques \tkzcname{tkzDefBarycentricPoint}}
-
-$pt_1$, $pt_2$, \dots, $pt_n$ étant $n$ points, ils définissent $n$ vecteurs $\overrightarrow{v_1}$, $\overrightarrow{v_2}$, \dots, $\overrightarrow{v_n}$ avec comme extrémité commune l'origine du repère. $\alpha_1$, $\alpha_2$,
-\dots, $\alpha_n$ étant $n$ nombres, le vecteur obtenu par :
-\begin{align*}
- \frac{\alpha_1 \overrightarrow{v_1} + \alpha_2 \overrightarrow{v_2} + \cdots + \alpha_n \overrightarrow{v_n}}{\alpha_1
- + \alpha_2 + \cdots + \alpha_n}
-\end{align*}
-définit un point unique.
-
-\begin{NewMacroBox}{tkzDefBarycentricPoint}{\parg{pt1=nb1,pt2=nb2,\ldots}}
-\begin{tabular}{lll}
-arguments & défaut & définition \\
-\midrule
-\TAline{(pt1=$\alpha_1$,pt2=$\alpha_2$,\ldots)}{no default}{Chaque point a une pondération}
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Il faut au moins deux points.}
-\end{NewMacroBox}
-
-
-\subsubsection{Utilisation de \tkzcname{tkzDefBarycentricPoint} avec deux points}
-Nous obtenons dans l'exemple suivant le barycentre des points A et B affectés des coefficients 1 et 2, autrement dit:
-\[
- \overrightarrow{AI}= \frac{2}{3}\overrightarrow{AB}
-\]
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}
- \tkzDefPoint(2,3){A}
- \tkzDefShiftPointCoord[2,3](30:4){B}
- \tkzDefBarycentricPoint(A=1,B=2)
- \tkzGetPoint{I}
- \tkzDrawPoints(A,B,I)
- \tkzDrawLine(A,B)
- \tkzLabelPoints(A,B,I)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Utilisation de \tkzcname{tkzDefBarycentricPoint} avec trois points}
-
-Cette fois M est simplement le centre de gravité du triangle. Pour des raisons de simplification et d'homogénéité, il existe aussi \tkzcname{tkzCentroid}
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}[scale=.8]
- \tkzInit[xmax=6,ymax=6]
- \tkzDefPoint(2,1){A}
- \tkzDefPoint(5,3){B}
- \tkzDefPoint(0,6){C}
- \tkzDrawPolygon(A,B,C)
- \tkzDefBarycentricPoint(A=1,B=1,C=1)
- \tkzGetPoint{M}
- \tkzDrawLines[add=0 and 1](A,M B,M C,M)
- \tkzDrawPoints(A,B,C,M)
- \tkzLabelPoints(A,B,C,M)
- \tkzDefMidPoint(A,B) \tkzGetPoint{C'}
- \tkzDefMidPoint(A,C) \tkzGetPoint{B'}
- \tkzDefMidPoint(C,B) \tkzGetPoint{A'}
- \tkzDrawPoints(A',B',C')
- \tkzLabelPoints(A',B',C')
-\end{tikzpicture}
-\end{tkzexample}
-
-\clearpage \newpage
-\subsection{\tkzcname{tkzCentroid}}
- On obtient le centre de gravité du triangle. Le résultat est bien sûr dans \tkzname{tkzPointResult}. On peut le récupérer avec \tkzcname{tkzGetPoint}.
-
-\begin{NewMacroBox}{tkzCentroid}{\parg{pt1,pt2,pt3}}
-\begin{tabular}{lll}
-arguments & défaut & définition \\
-\midrule
-\TAline{(pt1,pt2,pt3)}{no default}{liste non ordonnée de trois points}
-\bottomrule
-\end{tabular}
-\end{NewMacroBox}
-
-
-\subsubsection{Utilisation de \tkzcname{tkzCentroid}}
-
-\begin{tkzexample}[latex=5cm]
- \begin{tikzpicture}[scale=.75]
- \tkzDefPoint(-1,1){A}
- \tkzDefPoint(5,1){B}
- \tkzDefEquilateral(A,B)\tkzGetPoint{C}
- \tkzDrawPolygon[color=Maroon](A,B,C)
- \tkzCentroid(A,B,C)\tkzGetPoint{G}
- \tkzDrawPoint(G)
- \tkzDrawLines[add = 0 and 2/3](A,G B,G C,G)
- \end{tikzpicture}
-\end{tkzexample}
-
-\subsection{\tkzcname{tkzCircumCenter}}
- On obtient le centre du cercle circonscrit à un triangle. Le résultat est bien sûr dans \tkzname{tkzPointResult}. On peut le récupérer avec \tkzcname{tkzGetPoint}.
-
-\begin{NewMacroBox}{tkzCircumCenter}{\parg{pt1,pt2,pt3}}
-\begin{tabular}{lll}
-arguments & défaut & définition \\
-\midrule
-\TAline{(pt1,pt2,pt3)}{no default}{liste non ordonnée de trois points}
-\end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Utilisation de \tkzcname{tkzCircumCenter}}
-
-\begin{tkzexample}[latex=6cm]
- \begin{tikzpicture}
- \tkzDefPoint(0,1){A} \tkzDefPoint(3,2){B}
- \tkzDefPoint(1,4){C}
- \tkzDrawPolygon[color=Maroon](A,B,C)
- \tkzCircumCenter(A,B,C)\tkzGetPoint{G}
- \tkzDrawPoint(G)
- \tkzDrawCircle(G,A)
- \end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{\tkzcname{tkzInCenter}}
- On obtient le centre du cercle inscrit du triangle. Le résultat est bien sûr dans \tkzname{tkzPointResult}. On peut le récupérer avec \tkzcname{tkzGetPoint}.
-
-\begin{NewMacroBox}{tkzInCenter}{\parg{pt1,pt2,pt3}}
-\begin{tabular}{lll}
-arguments & défaut & définition \\
-\midrule
-\TAline{(pt1,pt2,pt3)}{no default}{liste non ordonnée de trois points}
-\bottomrule
-\end{tabular}
-\end{NewMacroBox}
-
-
-\subsubsection{Utilisation de \tkzcname{tkzInCenter} avec trois points}
-Les trois points sont donnés dans le sens direct
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}
- \tkzInit[xmax=6,ymax=6]
- \tkzClip
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(5,1){B}
- \tkzDefPoint(1,4){C}
- \tkzDrawPolygon[color=Maroon](A,B,C)
- \tkzInCenter(A,B,C)\tkzGetPoint{G}
- \tkzDrawPoint(G)
- \tkzDrawLines[add = 0 and 2/3](A,G B,G C,G)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\endinput
-
-
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-polygons.tex
deleted file mode 100644
index 62ed7d66a1..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-polygons.tex
+++ /dev/null
@@ -1,551 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-\section{Polygones}
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-\subsection{Définition des triangles}
-Les macros suivantes vont permettre de définir ou de construire un triangle à partir \tkzname{au moins} de deux points.
-
- Pour le moment, il est possible de définir les triangles suivants :
- \begin{itemize}
-\item \tkzname{two angles} détermine un triangle connaissant deux angles,
-\item \tkzname{equilateral} détermine un triangle équilatéral,
-\item \tkzname{half} détermine un triangle rectangle tel que le rapport des mesures des deux côtés adjacents à l'angle droit soit égal à $2$,
-\item \tkzname{pythagore} détermine un triangle rectangle dont les mesures des côtés sont proportionnelles à 3, 4 et 5,
-\item \tkzname{school} détermine un triangle rectangle dont les angles sont 30, 60 et 90 degrés,
-\item \tkzname{golden} détermine un triangle rectangle tel que le rapport des mesures des deux côtés adjacents à l'angle droit soit égal $\Phi=1,618034$, J'ai choisi comme dénomination « triangle doré » car il rpovient du rectangle d'or et j'ai conservé la dénomination « triangle d'or » ou encore « triangle d'Euclide » pour le triangle isocèle dont les angles à la base sont de 72 degrés,
-
-\item \tkzname{gold} ou \tkzname{euclide} pour le triangle d'or,
-
-\item \tkzname{cheops} détermine un troisième point tel que le triangle soit isocèle dont les mesures des côtés sont proportionnelles à $2$, $\Phi$ et $\Phi$.
-\end{itemize}
-
-\begin{NewMacroBox}{tkzDefTriangle}{\oarg{local options}\parg{A,B}}
-\emph{les points sont ordonnés car le triangle est construit en suivant le sens direct du cercle trigonométrique. Cette macro est soit utilisée en partenariat avec \tkzcname{tkzGetPoint} soit en utilisant \tkzname{tkzPointResult} s'il n'est pas nécessaire de conserver le nom. }
-
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{two angles= \#1 and \#2}{no defaut}{triangle connaissant deux angles}
-\TOline{equilateral} {no defaut}{triangle équilatéral }
-\TOline{pythagore}{no defaut}{proportionnel au triangle de pythagore 3-4-5}
-\TOline{school} {no defaut}{ angles de 30, 60 et 90 degrés }
-\TOline{gold}{no defaut}{ angles de 72, 72 et 36 degrés, $A$ est le sommet }
-\TOline{euclide} {no defaut}{identique au précédent mais $[AB]$ est la base}
-\TOline{golden} {no defaut}{rectangle en B et $AB/AC = \Phi$}
-\TOline{cheops} {no defaut}{AC=BC, AC et BC sont proportionnels à $2$ et $\Phi$.}
-\end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{triangle doré (golden)}
-\begin{tkzexample}[latex=6 cm,small]
-\begin{tikzpicture}[scale=.8]
-\tkzInit[xmax=5,ymax=3] \tkzClip[space=.5]
- \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
- \tkzDefTriangle[golden](A,B)\tkzGetPoint{C}
- \tkzDrawPolygon(A,B,C) \tkzDrawPoints(A,B,C)
- \tkzLabelPoints(A,B) \tkzDrawBisector(A,C,B)
- \tkzLabelPoints[above](C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{triangle équilatéral}
-\begin{tkzexample}[latex=7 cm,small]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(4,0){B}
- \tkzDefTriangle[equilateral](A,B)
- \tkzGetPoint{C}
- \tkzDrawPolygon(A,B,C)
- \tkzDefTriangle[equilateral](B,A)
- \tkzGetPoint{D}
- \tkzDrawPolygon(B,A,D)
- \tkzDrawPoints(A,B,C,D)
- \tkzLabelPoints(A,B,C,D)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{triangle d'or (euclide)}
-\begin{tkzexample}[latex=7 cm,small]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
- \tkzDefTriangle[euclide](A,B)\tkzGetPoint{C}
- \tkzDrawPolygon(A,B,C)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints(A,B)
- \tkzLabelPoints[above](C)
- \tkzDrawBisector(A,C,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-\newpage
-\subsection{Tracé des triangles}
- \begin{NewMacroBox}{tkzDrawTriangle}{\oarg{local options}\parg{A,B}}
-\emph{Macro semblable à la macro précédente mais les côtés sont tracés.}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{two angles= \#1 and \#2}{no defaut}{triangle connaissant deux angles}
-\TOline{equilateral} {no defaut}{triangle équilatéral }
-\TOline{pythagore}{no defaut}{proportionnel au triangle de pythagore 3-4-5}
-\TOline{school} {no defaut}{les angles sont 30, 60 et 90 degrés }
-\TOline{gold}{no defaut}{les angles sont 72, 72 et 36 degrés, $A$ est le sommet }
-\TOline{euclide} {no defaut}{identique au précédent mais $[AB]$ est la base}
-\TOline{golden} {no defaut}{rectangle en B et $AB/AC = \Phi$}
-\TOline{cheops} {no defaut}{isocèle en C et $AC/AB = \frac{\Phi}{2}$}
-\bottomrule
- \end{tabular}
-
-\medskip
-\emph{Dans toutes ses définitions, les dimensions du triangle dépendent des deux points de départ.}
-\end{NewMacroBox}
-
-
-\subsubsection{triangle de Pythagore}
-Ce triangle a des côtés dont les longueurs sont proportionnelles à 3, 4 et 5.
-
-\begin{tkzexample}[latex=6 cm,small]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(4,0){B}
- \tkzDrawTriangle[pythagore,fill=blue!30](A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-
- \subsubsection{triangle 30 60 90 (school)}
- Les angles font 30, 60 et 90 degrés.
-
-\begin{tkzexample}[latex=6 cm,small]
-\begin{tikzpicture}
- \tkzInit[ymin=-2.5,ymax=0,xmin=-5,xmax=0]
- \tkzClip[space=.5]
- \begin{scope}[rotate=-180]
- \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
- \tkzDrawTriangle[school,fill=red!30](A,B)
- \end{scope}
- \end{tikzpicture}
-\end{tkzexample}
-
-\newpage
-\subsection{Les médianes}
-
- \begin{NewMacroBox}{tkzDrawMedian}{\oarg{local options}\parg{point,point}\parg{point}}
-\emph{Il y aura sans doute une autre syntaxe pour ces segments.}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-arguments & exemple & explication \\
-\midrule
-\TAline{\parg{pt1,pt2}\parg{pt3}}{\parg{A,B}\parg{C}}{[AB] est le segment cible C est le sommet}
-\bottomrule
- \end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Médiane}
-\begin{tkzexample}[latex=7 cm,small]
- \begin{tikzpicture}[scale=1.25]
- \tkzInit[xmin=0,xmax=4,ymin=0,ymax=3] \tkzClip
- \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
- \tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
- \tkzSetUpLine[color=blue]
- \tkzDrawMedian(A,B)(C)
- \tkzDrawMedian(A,C)(B)
- \tkzDrawMedian(B,C)(A)
- \end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{Les hauteurs}
-
- \begin{NewMacroBox}{tkzDrawAltitude}{\oarg{local options}\parg{point,point}\parg{point}}
-\emph{Il y aura sans doute une autre syntaxe pour ces segments }
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & exemple & explication \\
-\midrule
-\TAline{\parg{pt1,pt2}\parg{pt3}}{\parg{A,B}\parg{C}}{[AB] est le segment cible C est le sommet}
-\bottomrule
- \end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Hauteur}
-
-\begin{tkzexample}[latex=7 cm,small]
-\begin{tikzpicture}[scale=1.25]
- \tkzInit[xmin=0,xmax=4,ymin=0,ymax=3] \tkzClip
- \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
- \tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
- \tkzSetUpLine[color=magenta]
- \tkzDrawAltitude(A,B)(C)
- \tkzDrawAltitude(A,C)(B)
- \tkzDrawAltitude(B,C)(A)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Les bissectrices}
-
- \begin{NewMacroBox}{tkzDrawBisector}{\oarg{local options}\parg{point,point}\parg{point}}
-\emph{Il faut donner l'angle dans le sens direct}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & exemple & explication \\
-\midrule
-\TAline{\parg{pt1,pt2,pt3}}{\parg{A,B,C}}{Le sommet est B}
-\bottomrule
- \end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Bissectrices dans un triangle}
-Il faut donner les angles dans le sens direct.
-
-\begin{tkzexample}[latex=7 cm,small]
-\begin{tikzpicture}[scale=1.5]
- \tkzInit[xmin=0,xmax=4,ymin=0,ymax=3] \tkzClip
- \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
- \tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
- \tkzSetUpLine[color=purple]
- \tkzDrawBisector(C,B,A)
- \tkzDrawBisector(B,A,C)
- \tkzDrawBisector(A,C,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Le parallélogramme}
-
-Il n'y a pas de macro particulière pour tracer un parallélogramme. Le plus simple est d'employer
-
- \tkzcname{tkzDefPointWith[colinear= at ..]}
-
-
-\subsubsection{Exemple simple avec \tkzcname{colinear= at}}
-
-\begin{tkzexample}[latex=7 cm,small]
-\begin{tikzpicture}[scale=1.5]
- \tkzInit[xmin=0,xmax=4,ymin=0,ymax=2]
- \tkzClip[space=.5] \tkzDefPoint(0,0){A}
- \tkzDefPoint(3,0){B} \tkzDefPoint(4,2){C}
- \tkzDefPointWith[colinear= at C](B,A)
- \tkzGetPoint{D}
- \tkzDrawPolygon(A,B,C,D)
- \tkzLabelPoints(A,B)
- \tkzLabelPoints[above right](C,D)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Construction du rectangle d'or avec \tkzcname{colinear= at}}
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.5]
- \tkzInit[xmax=14,ymax=10]
- \tkzClip[space=1]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(8,0){B}
- \tkzDefMidPoint(A,B)\tkzGetPoint{I}
- \tkzDefSquare(A,B)\tkzGetPoints{C}{D}
- \tkzDrawSquare(A,B)
- \tkzInterLC(A,B)(I,C)\tkzGetPoints{G}{E}
- \tkzDrawArc[style=dashed,color=gray](I,E)(D)
- \tkzDefPointWith[colinear= at C](E,B)
- \tkzGetPoint{F}
- \tkzDrawPoints(C,D,E,F)
- \tkzLabelPoints(A,B,C,D,E,F)
- \tkzDrawSegments[style=dashed,color=gray]%
-(E,F C,F B,E)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{Définir les points d'un carré}
- \begin{NewMacroBox}{tkzDefSquare}{\parg{pt1,pt2}}
- \emph{Le carré est défini dans le sens direct. À partir de deux points, on obtient deux autres points tel que les quatre pris dans l'ordre forme un carré. Le carré est défini dans le sens direct. Les résultats sont dans \tkzname{tkzFirstPointResult} et \tkzname{tkzSecondPointResult}.\\
-On peut les renommer avec \tkzcname{tkzGetPoints}}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & exemple & explication \\
-\midrule
-\TAline{\parg{pt1,pt2}}{\tkzcname{tkzDefSquare}\parg{A,B}}{Le carré est défini dans le sens direct}
-\bottomrule
- \end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Utilisation de \tkzcname{tkzDefSquare} avec deux points}
-
-Il faut remarquer l'inversion des deux premiers points et le résultat.
-
-\begin{tkzexample}[latex=4cm,small]
-\begin{tikzpicture}[scale=.5]
- \tkzDefPoint(0,0){A} \tkzDefPoint(3,0){B}
- \tkzDefSquare(A,B)
- \tkzDrawPolygon[color=Maroon](A,B,tkzFirstPointResult,%
- tkzSecondPointResult)
- \tkzDefSquare(B,A)
- \tkzDrawPolygon[color=Gold](B,A,tkzFirstPointResult,%
- tkzSecondPointResult)
-\end{tikzpicture}
-\end{tkzexample}
-
- On peut n'avoir besoin que d'un point pour tracer un triangle isocèle rectangle alors on utilise \tkzcname{tkzGetFirstPoint} ou \tkzcname{tkzGetSecondPoint}
-
-\subsubsection{Utilisation de \tkzcname{tkzDefSquare} pour obtenir un triangle isocèle rectangle}
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=1.5]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(3,0){B}
- \tkzDefSquare(A,B) \tkzGetFirstPoint{C}
- \tkzDrawPolygon[color=Maroon,fill=bistre](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Théorème de Pythagore et \tkzcname{tkzDefSquare} }
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.75]
-\tkzInit
-\tkzDefPoint(0,0){C}
-\tkzDefPoint(4,0){A}
-\tkzDefPoint(0,3){B}
-\tkzDefSquare(B,A)\tkzGetPoints{E}{F}
-\tkzDefSquare(A,C)\tkzGetPoints{G}{H}
-\tkzDefSquare(C,B)\tkzGetPoints{I}{J}
-\tkzFillPolygon[fill = red!50 ](A,C,G,H)
-\tkzFillPolygon[fill = blue!50 ](C,B,I,J)
-\tkzFillPolygon[fill = purple!50](B,A,E,F)
-\tkzFillPolygon[fill = orange,opacity=.5](A,B,C)
-\tkzDrawPolygon[line width = 1pt](A,B,C)
-\tkzDrawPolygon[line width = 1pt](A,C,G,H)
-\tkzDrawPolygon[line width = 1pt](C,B,I,J)
-\tkzDrawPolygon[line width = 1pt](B,A,E,F)
-\tkzLabelSegment[above](C,A){$a$}
-\tkzLabelSegment[right](B,C){$b$}
-\tkzLabelSegment[below left](B,A){$c$}
-\end{tikzpicture}
-\end{tkzexample}
-
-\newpage
-\subsection{Tracé un carré}
-
- \begin{NewMacroBox}{tkzDrawSquare}{\oarg{local options}\parg{pt1,pt2}}
- \emph{La macro trace un carré mais pas les sommets. Il est possible de colorier l'intérieur. L'ordre des points est celui du sens direct du cercle trigonométrique}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & exemple & explication \\
-\midrule
-\TAline{\parg{pt1,pt2}}{\tkzcname{tkzDrawSquare}\parg{A,B}}{}
-\bottomrule
- \end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Il s'agit d'inscrire deux carrés dans un demi-cercle.}
-
-\begin{tkzexample}[latex=6 cm,small]
-\begin{tikzpicture}[scale=.75]
- \tkzInit[ymax=8,xmax=8]
- \tkzClip[space=.25] \tkzDefPoint(0,0){A}
- \tkzDefPoint(8,0){B} \tkzDefPoint(4,0){I}
- \tkzDefSquare(A,B) \tkzGetPoints{C}{D}
- \tkzInterLC(I,C)(I,B) \tkzGetPoints{E'}{E}
- \tkzInterLC(I,D)(I,B) \tkzGetPoints{F'}{F}
- \tkzDefPointsBy[projection=onto A--B](E,F){H,G}
- \tkzDefPointsBy[symmetry = center H](I){J}
- \tkzDefSquare(H,J) \tkzGetPoints{K}{L}
- \tkzDrawSector[fill=yellow](I,B)(A)
- \tkzFillPolygon[color=red!40](H,E,F,G)
- \tkzFillPolygon[color=blue!40](H,J,K,L)
- \tkzDrawPolySeg[color=red](H,E,F,G)
- \tkzDrawPolySeg[color=red](J,K,L)
- \tkzDrawPoints(E,G,H,F,J,K,L)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Le rectangle d'or}
- \begin{NewMacroBox}{tkzDefGoldRectangle}{\parg{point,point}}
-\emph{La macro détermine un rectangle dont le rapport des dimensions est le nombre $\Phi$. Les points créés sont dans \tkzname{tkzFirstPointResult} et \tkzname{tkzSecondPointResult}. On peut les obtenir avec la macro \tkzcname{tkzGetPoints}. La macro suivante permet de tracer le rectangle.}
-
-\begin{tabular}{lll}
-\toprule
-options & exemple & explication \\
-\midrule
-\TAline{\parg{pt1,pt2}}{\parg{A,B}}{Si C et D sont créés alors $AB/BC=\Phi$}
- \end{tabular}
-\end{NewMacroBox}
-
- \begin{NewMacroBox}{tkzDrawGoldRectangle}{\oarg{local options}\parg{point,point}}
-\begin{tabular}{lll}
-options & exemple & explication \\
-\midrule
-\TAline{\parg{pt1,pt2}}{\parg{A,B}}{Trace le rectangle d'or basé sur le segment $[AB]$}
- \end{tabular}
-\end{NewMacroBox}
-
-%
-\subsubsection{Rectangles d'or}
-
-\begin{tkzexample}[latex=6 cm,small]
-\begin{tikzpicture}[scale=.6]
- \tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B}
- \tkzDefGoldRectangle(A,B) \tkzGetPoints{C}{D}
- \tkzDefGoldRectangle(B,C) \tkzGetPoints{E}{F}
- \tkzDrawPolygon[color=red,fill=red!20](A,B,C,D)
- \tkzDrawPolygon[color=blue,fill=blue!20](B,C,E,F)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Tracer un polygone}
-
- \begin{NewMacroBox}{tkzDrawPolygon}{\oarg{local options}\parg{liste de points}}
-\emph{Il suffit de donner une liste de points et la macro trace le polygone en utilisant les options de \TIKZ\ présentes.}
-
-\begin{tabular}{lll}
-\toprule
-options & exemple & explication \\
-\midrule
-\TAline{\parg{pt1,pt2}}{\parg{A,B}}{}
- \end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Tracer un polygone}
-
-\begin{tkzexample}[latex=7 cm,small]
- \begin{tikzpicture}[rotate=25,scale=1.25]
-\tkzDefPoints{-1/0/A,0/-2/B,4/0/C,0/1/D}
-\tkzDrawPolygon[fill=green!50!blue,
-line width=10pt,rounded corners](A,B,C,D)
-\end{tikzpicture}
-\end{tkzexample}
-
-\begin{tkzexample}[latex=7cm, small]
-\begin{tikzpicture} [rotate=18,scale=1.5]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(2.25,0.2){B}
- \tkzDefPoint(2.5,2.75){C}
- \tkzDefPoint(-0.75,2){D}
- \tkzDrawPolygon[fill=black!50!blue!20!](A,B,C,D)
- \tkzDrawSegments[style=dashed](A,C B,D)
-\end{tikzpicture}\end{tkzexample}
-
-\begin{tkzexample}[latex=7cm, small]
-\begin{tikzpicture} [shift={(0,-5)},
- rotate=-28,scale=1.5]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(2.25,0.2){C}
- \tkzDefPoint(2.5,2.75){B}
- \tkzDefPoint(-0.75,2){D}
- \tkzDrawPolygon[fill=black!50!blue!20!](A,B,C,D)
- \tkzDrawSegments[style=dashed](A,C B,D)
-\end{tikzpicture}\end{tkzexample}
-
-\begin{tkzexample}[latex=7cm, small]
-\begin{tikzpicture} [shift={(0,-9)},
- rotate=-58,scale=1.5]
- \tkzDefPoint(1.5,1.5){A}
- \tkzDefPoint(2.25,0.2){B}
- \tkzDefPoint(2.5,2.75){C}
- \tkzDefPoint(-0.75,2){D}
- \tkzDrawPolygon[fill=black!50!blue!20!,%
- opacity=.5](A,B,C,D)
- \tkzDrawSegments[style=dashed](A,C B,D)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{Clipper un polygone}
- \begin{NewMacroBox}{tkzClipPolygon}{\oarg{local options}\parg{liste de points}}
-\emph{Cette macro permet de contenir les différentes tracés dans le polygone désigné.}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & exemple & explication \\
-\midrule
-\TAline{\parg{pt1,pt2}}{\parg{A,B}}{}
-%\bottomrule
- \end{tabular}
-\end{NewMacroBox}
-\subsubsection{Exemple simple avec \tkzcname{tkzClipPolygon}}
-\begin{tkzexample}[latex=7 cm,small]
-\begin{tikzpicture}[scale=1.25]
- \tkzInit[xmin=0,xmax=4,ymin=0,ymax=3]
- \tkzClip[space=.5]
- \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
- \tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
- \tkzDefPoint(0,2){D} \tkzDefPoint(2,0){E}
- \tkzDrawPoints(D,E) \tkzLabelPoints(D,E)
- \tkzClipPolygon(A,B,C)
- \tkzDrawLine[color=red](D,E)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Exemple Sangaku dans un carré}
-\begin{tkzexample}[latex=7cm, small]
-\begin{tikzpicture}[scale=.75]
- \tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B}
- \tkzDefSquare(A,B) \tkzGetPoints{C}{D}
- \tkzDrawPolygon(B,C,D,A)
- \tkzClipPolygon(B,C,D,A)
- \tkzDefPoint(4,8){F}
- \tkzDefTriangle[equilateral](C,D)
- \tkzGetPoint{I}
- \tkzDrawPoint(I)
- \tkzDefPointBy[projection=onto B--C](I)
- \tkzGetPoint{J}
- \tkzInterLL(D,B)(I,J) \tkzGetPoint{K}
- \tkzDefPointBy[symmetry=center K](B)
- \tkzGetPoint{M}
- \tkzDrawCircle(M,I)
- \tkzCalcLength(M,I) \tkzGetLength{dMI}
- \tkzFillPolygon[color = orange](A,B,C,D)
- \tkzFillCircle[R,color = yellow](M,\dMI pt)
- \tkzFillCircle[R,color = blue!50!black](F,4 cm)%
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Colorier un polygone}
- \begin{NewMacroBox}{tkzFillPolygon}{\oarg{local options}\parg{liste de points}}
- \emph{On peut colorier en traçant le polygone mais là on colorie l'intrieur du polygone sans le tracer.}
-
- \medskip
-\begin{tabular}{lll}
-\toprule
-options & exemple & explication \\
-\midrule
-\TAline{\parg{pt1,pt2,\dots}}{\parg{A,B,\dots}}{}
-%\bottomrule
- \end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Colorier un polygone}
-\begin{tkzexample}[latex=7cm, small]
-\begin{tikzpicture}[scale=0.7]
-\tkzInit[xmin=-3,xmax=6,ymin=-1,ymax=6]
-\tkzDrawX[noticks]
-\tkzDrawY[noticks]
-\tkzDefPoint(0,0){O} \tkzDefPoint(4,2){A}
-\tkzDefPoint(-2,6){B}
-\tkzPointShowCoord[xlabel=$x$,ylabel=$y$](A)
-\tkzPointShowCoord[xlabel=$x'$,ylabel=$y'$,%
- ystyle={right=2pt}](B)
-\tkzDrawVectors(O,A O,B)
-\tkzLabelSegment[above=3pt](O,A){$\vec{u}$}
-\tkzLabelSegment[above=3pt](O,B){$\vec{v}$}
-\tkzMarkAngle[fill= yellow,size=1.8cm,%
- opacity=.5](A,O,B)
-\tkzFillPolygon[red!30,opacity=0.25](A,B,O)
-\tkzLabelAngle[pos = 1.5](A,O,B){$\alpha$}
-\end{tikzpicture}
-\end{tkzexample}
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex
deleted file mode 100644
index ecdce5e9b3..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex
+++ /dev/null
@@ -1,239 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-\section{Présentation}
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-
-\subsection{À propos de Ti\emph{k}Z et que peut apporter \tkzname{tkz-euclide.sty} ? }
-\TIKZ\ est un outil que je trouve très agréable à utiliser. J'ai trouvé si simple son utilisation que je me suis demandé si cela avait un sens de créer un package pour la création de dessins en 2d et en particulier pour créer des dessins liés à la géométrie euclidienne. Quels arguments peuvent intervenir?
-
-\begin{enumerate}
-
-\item Certains utilisateurs n'ont pas envie d'apprendre quoi que ce soit sur \TIKZ, cela est respectable et une simplification du code par l'intermédiaire d'un package peut avoir une certaine utilité. La syntaxe n'est plus tout à fait celle de \TIKZ, mais ressemble davantage à celle de \LATEX.
-
-\item Les noms des macros ont une signification plus mathématique.
-
-\item La grande différence avec \TIKZ\ est qu'il est possible d'utiliser des grandes valeurs ainsi que des très petites, car la majorité des calculs sont faits à l'aide de \tkzNamePack{fp.sty}. C'est plus lent, mais nettement plus précis.
-
-\item Il est possible de modifier facilement les styles pour les objets principaux que sont les points, les droites, les cercles, les arcs, etc.
-
-\item Des exemples de constructions géométriques sont fournies et peuvent être utiles au débutant.
-
-\item Et pour terminer, cela peut être une approche en douceur de l'utilisation de \TIKZ\, par l'intermédiaire des options. Dans cette nouvelle version, j'ai essayé que les options de \TIKZ\ soient pratiquement toujours disponibles.
-
-\end{enumerate}
-
-Je vous encourage toutefois à étudier \TIKZ. En effet, l'utilisation de \tkzname{tkz-euclide.sty} fait perdre la notion de \tkzname{path}. Je donnerai quelques exemples pour voir les différences entre les codes. Cela dit, il est toujours possible de mélanger les différents codes et différentes syntaxes, cela n'est pas franchement satisfaisant, mais peut permettre de résoudre certains problèmes.
-
-
-\subsection{À propos de \tkzname{tkz-euclide}}
-
-Le but est donc de créer des dessins en 2D sur une page à priori A4, mais si je me suis préoccupé d'utiliser une surface inférieure, j'avoue ne pas avoir testé la possibilité de travailler sur une page de taille supérieure.
-
-Avec \tkzname{tkz-euclide}, l'unité est le centimètre. Si votre travail ne concerne que de la géométrie classique, je vous conseille de conserver cette unité.
-
-\emph{Pourquoi \tkzname{tkz-2d} disparait-il?}
-
-Je n'étais pas content de la syntaxe qui était confuse, je n'avais pas utilisé pgf 2.00 et surtout j'ai généralisé l'utilisation de \tkzname{fp.sty}.
-
-\clearpage \newpage
-\section{Syntaxe}
-Quelques mots sur la syntaxe.
-
- Les accolades sont réservés pour la création d'objets et les parenthèses ne sont utilisées que pour des objets, déjà existants~:
-
- \tkzcname{tkzDefPoint(1,2)\{A\}} crée le point nommé $A$.
-
-\tkzcname{tkzLabelSegment[below](O,A)\{\$1\$\}} crée le label $1$ pour le segment $[OA]$.
-
- Enfin des macros comme \tkzcname{tkzDefMidPoint(O,A)} crée un point, qui est ici, le milieu d'un segment. Le point est nommé \tkzname{tkzPointResult}.
-
-Soit la création est une étape intermédiaire, et vous n'avez pas besoin de conserver ce point, alors tant qu'aucune macro ne modifie l'attribution de \tkzname{tkzPointResult}, vous pouvez utiliser ce nom pour faire référence au milieu; soit vous voulez conserver ce point, car il sera utilisé plusieurs fois, alors la macro \tkzcname{tkzGetPoint\{M\}} permet d'attribuer le nom \tkzname{M} au point.
-
- Quant une macro donne comme résultat deux points, le premier est nommé \tkzname{tkzFirstPointResult} et le second \tkzname{tkzSecondPointResult}, la macro qui permet de récupérer les points est :
-
- \begin{itemize}
- \item \tkzcname{tkzGetPoints\{M\}\{N\}} qui attribue deux noms;
- \item \tkzcname{tkzGetFirstPoint\{M\}} seul le premier point sera utilisé;
- \item \tkzcname{tkzGetSecondPoint\{N\}} cette fois, seul le second point est nommé.
- \end{itemize}
-Il est difficile de conserver un découpage du code comme dans l'exemple, si on ne veut pas nommer un point par exemple H dans l'\hyperlink{firstex}{exemple} minimal, mais complet de la section suivante.
-
-Le code pourrait devenir :
-
-\begin{tkzltxexample}[]
- \tkzDefPointWith[orthogonal](I,M) %\tkzGetPoint{H}
- \tkzDrawSegment[style=dashed](I,tkzPointResult)
- \tkzInterLC(I,tkzPointResult)(M,A) \tkzGetSecondPoint{B}
-\end{tkzltxexample}
-
-\subsection{Notions générales}
-
-Le principe est de définir des points en utilisant des coordonnées cartésiennes ou des coordonnées polaires et même des coordonnées barycentriques.
-
-Ensuite, il est possible d'obtenir d'autres points comme intersections d'objets, comme images d'autres points à l'aide de transformations ou bien encore des points issus de propriétés vectorielles.
-
-\begin{itemize}
- \item \tkzcname{tkzDefPoint} pour l'usage de coordonnées,
- \item \tkzcname{tkzDefPointBy} pour l'usage des transformations,
- \item \tkzcname{tkzDefPointWith} pour l'usage des propriétés vectorielles,
- \item et enfin \tkzcname{tkzInterLL}, \tkzcname{tkzInterLC} et \tkzcname{tkzInterCC} sont les trois types d'intersections possibles de droites et de cercles. Pour ces trois macros, j'ai préféré utiliser \tkzname{fp.sty} afin d'obtenir des résultats plus précis.
-\end{itemize}
-
-
-Puis à l'aide de ces points, nous pouvons tracer des objets comme des segments, des demi-droites, des droites, des triangles, des cercles, des arcs etc.
-
-Cela se fait à l'aide de macros dont le nom commence par \tkzcname{tkzDraw...}.
-
-Enfin il est possible de placer des labels à l'aide de macros dont le nom commence par \tkzcname{tkzLabel...}.
-
-Cela permet à ceux qui le souhaitent, de décomposer la création des figures en quatre étapes~:
-\begin{enumerate}
- \item Définir les points dont les coordonnées sont connues ou bien calculables.
- \item Création de nouveaux points à l'aide de méthodes (intersection, transformation,etc.).
- \item Tracés des objets dans un ordre choisi.
- \item Placement des labels.
-\end{enumerate}
-
-
-Les coordonnées peuvent être obtenues à l'aide de calculs en utilisant pgfmath, fp ou encore \TEX. Toutes les macros n'acceptent pas que les calculs soient faits pendant leurs assignations. Après avoir toléré ce comportement, je l'ai abandonné afin de laisser plus de souplesse à l'utilisateur. \tkzNamePack{fp.sty} est plus précis \tkzNamePack{pgfmath}, plus rapide aussi tout dépend des constructions demandées.
-
-D'une façon générale, la syntaxe est plus homogène. Les noms des points créés sont entre accolades alors que les noms des points utilisés sont entre parenthèses.
-
-Après beaucoup d'hésitations, j'ai choisi le procédé suivant. Quand une macro crée un point, deux points, donne la mesure d'un angle alors le résultat est rangé dans un nom de générique. Ainsi l'intersection de deux droites définit un point appelé \tkzname{tkzPointResult}, celle de deux cercles donne \tkzname{tkzFirstPointResult} et \tkzname{tkzSecondPointResult}. Certaines macros définissent une mesure de rayon qui sera alors dans une macro \tkzcname{tkzLengthResult} et d'autres la mesure d'un angle \tkzcname{tkzAngleResult}.
- Des macros sont fournies pour nommer différemment ces résultats et les conserver. Il pourrait paraître plus simple de donner un paramètre supplémentaire à la macro pour nommer directement le résultat, mais par exemple, on peut n'avoir besoin que d'un point sur deux après une intersection, une macro peut définir trois résultats un angle , une longueur et un point. Ensuite il est facile à l'utilisateur de créer des macros qui feront tout cela d'un seul coup si cela est nécessaire.
-
-\tkzcname{tkzDefPoint} utilise des accolades ainsi que les macros créant des labels. Il en est de même des transformations quand elles agissent sur une liste de points.
-
-
-\clearpage \newpage
-\section{Exemple minimal, mais complet}
-Cet exemple se trouve dans le dossier du package, et vous permet de tester votre installation.
-
-Une unité de longueur étant choisie, l'exemple montre comment obtenir un segment de longueur $\sqrt{a}$ à partir d'un segment de longueur $a$, à l'aide d'une règle et d'un compas.
-
-$IM=a$, $OI=1$
-
-\vspace{12pt}
-\hypertarget{firstex}{}
-\begin{center}
-\begin{tikzpicture}[scale=.8]
- \tkzInit[ymin=-1,ymax=6,xmin=-1,xmax=10]
- \tkzClip[space=.5]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(1,0){I}
- \tkzDefPoint(10,0){A}
- \tkzDefMidPoint(O,A) \tkzGetPoint{M}
- \tkzDefPointWith[orthogonal](I,M) \tkzGetPoint{H}
- \tkzInterLC(I,H)(M,A) \tkzGetSecondPoint{B}
- \tkzDrawSegment(O,A)
- \tkzDrawSegment[style=dashed](I,H)
- \tkzDrawPoints(O,I,A,B,M)
- \tkzDrawArc(M,A)(O)
- \tkzMarkRightAngle(A,I,B)
- \tkzLabelSegment[right=4pt](I,B){$\sqrt{a}$}
- \tkzLabelSegment[below](O,I){$1$}
- \tkzLabelSegment[below](I,M){$a/2$}
- \tkzLabelSegment[below](M,A){$a/2$}
- \tkzLabelPoints(I,M,B,A)
- \tkzLabelPoint[below left](O){$O$}
-\end{tikzpicture}
-\end{center}
-
-\emph{Commentaires}
-
- Voyons tout d'abord le préambule. Il faut charger \tkzname{xcolor.sty} avant \tkzname{tkz-euclide.sty} c'est à dire avant \TIKZ. Les options de \tkzname{xcolor.sty} dépendent des couleurs que vous utiliserez. Sinon, Il n'y rien de particulier à signaler, à l'exception du fait que \TIKZ{} peut poser des problèmes avec les caractères actifs de \tkzname{frenchb} de \tkzNamePack{babel}, aussi j'ai créé deux macros \tkzNameMacro{tkzActivOff} et \tkzNameMacro{tkzActivOn} pour désactiver puis réactiver ces caractères.
-
-\begin{center}
-\begin{tkzltxexample}[]
-\documentclass{scrartcl}
-\usepackage[utf8]{inputenc}
-\usepackage[upright]{fourier}
-\usepackage[usenames,dvipsnames,svgnames]{xcolor}
-\usepackage{tkz-euclide}
-\usetkzobj{all} % on charge tous les objets
-\usepackage[frenchb]{babel}
-\end{tkzltxexample}
-\end{center}
-
-
-\emph{Commentaires}
-
-Le code suivant comprend quatre parties :
-\begin{itemize}
- \item la première prépare le support. Ici, les deux lignes \tkzimp{2} et \tkzimp{3} permettent de limiter la taille du dessin.
- \item la deuxième comprend les définitions de points nécessaires à la contruction, ce sont les lignes qui vont de \tkzimp{4} et \tkzimp{9};
-
- \item la troisième comprend les différents tracés, les lignes de \textcolor{brown}{10} et \textcolor{brown}{14};
-
- \item la dernière ne s'occupe que du placement des labels.
-\end{itemize}
-
-\begin{enumerate}
-\item Mise en place
-\begin{tkzltxexample}[num]
-\begin{tikzpicture}[scale=.8]
- \tkzInit[ymin=-1,ymax=5,xmin=-1,xmax=10]
- \tkzClip
- \end{tkzltxexample}
-\item Création des points
-\begin{tkzltxexample}[global num]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(1,0){I}
- \tkzDefPointBy[homothety=center O ratio 10 ](I) \tkzGetPoint{A}
- \tkzDefMidPoint(O,A) \tkzGetPoint{M}
- \tkzDefPointWith[orthogonal](I,M) \tkzGetPoint{H}
- \tkzInterLC(I,H)(M,A) \tkzGetSecondPoint{B}
- \end{tkzltxexample}
-\item Tracés
-\begin{tkzltxexample}[global num]
- \tkzDrawSegment(O,A)
- \tkzDrawSegment[style=dashed](I,H)
- \tkzDrawPoints(O,I,A,B,M)
- \tkzDrawArc(M,A)(O)
- \tkzMarkRightAngle(A,I,B)\end{tkzltxexample}
-\item Création des labels pour les points et les segments
-\begin{tkzltxexample}[global num]
- \tkzLabelSegment[right=4pt](I,B){$\sqrt{a}$}
- \tkzLabelSegment[below](O,I){$1$}
- \tkzLabelSegment[below](I,M){$a/2$}
- \tkzLabelSegment[below](M,A){$a/2$}
- \tkzLabelPoints(I,M,B,A)
- \tkzLabelPoint[below left](O){$O$}
-\end{tikzpicture}\end{tkzltxexample}
-\end{enumerate}
-
-\endinput
-
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-\section{Syntaxe}
-%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
-% \macro[options](){}
-Toutes les macros commencent par \tkzname{tkz}. Elles permettent de définir un objet ( en général un point), de tracer cette objet, de placer un label ou encore une marque
-\begin{itemize}
- \item \tkzhname{\hyperlink{defpt}{tkzDefPoint}}
- \item \tkzhname{\hyperlink{defpts}{tkzDefPoints}}
- \item \tkzhname{\hyperlink{defptby}{tkzDefPointBy}}
- \item \tkzhname{\hyperlink{defptwith}{tkzDefPointWith}}
- \item \tkzhname{\hyperlink{defptmid}{tkzDefMidPoint}}
- \item \tkzhname{\hyperlink{defptequi}{tkzDefEquiPoint}}
- \item \tkzhname{\hyperlink{defl}{tkzDefLine}}
- \item \tkzhname{\hyperlink{defc}{tkzDefCircle}}
- \item \tkzhname{\hyperlink{defequi}{tkzDefEquilateral}}
- \item \tkzhname{\hyperlink{defsq}{tkzDefSquare}}
- \item \tkzhname{\hyperlink{defll}{tkzDefLLgram}}
- \item \tkzhname{\hyperlink{drpt}{tkzDrawPoint}}
- \item \tkzhname{\hyperlink{drpts}{tkzDrawPoints}}
- \item \tkzhname{\hyperlink{drl}{tkzDrawLine}}
- \item \tkzhname{\hyperlink{drls}{tkzDrawLines}}
- \item \tkzhname{\hyperlink{drs}{tkzDrawSegment}}
- \item \tkzhname{\hyperlink{drss}{tkzDrawSegments}}
- \item \tkzhname{\hyperlink{drc}{tkzDrawCircle}}
- \item \tkzhname{\hyperlink{dra}{tkzDrawArc}}
- \item \tkzhname{\hyperlink{drsec}{tkzDrawSector}}
- \item \tkzhname{\hyperlink{drp}{tkzDrawPolygon}}
- \item \tkzhname{\hyperlink{drps}{tkzDrawPolySeg}}
- \item \tkzhname{\hyperlink{drm}{tkzDrawMark}}
- \item \tkzhname{\hyperlink{drms}{tkzDrawMarks}}
- \item \tkzhname{\hyperlink{fa}{tkzFindAngle}}
-\end{itemize}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-rapporteur.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-rapporteur.tex
deleted file mode 100644
index 14d7bc0d8f..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-rapporteur.tex
+++ /dev/null
@@ -1,156 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-
-\section{Rapporteurs} % (fold)
-\label{sec:rapporteurs}
-
-D'après une idée de Yves Combe., la macro suivante permet de dessiner un rapporteur. J'ai ajouté mon propre rapporteur qui est obtenu avec l'option \tkzname{full} (par défaut), celui de Yves est obtenu avec \tkzname{half}.
-
-
-\begin{NewMacroBox}{tkzProtractor}{\oarg{local options}\parg{$O,A$}}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{with} {full} { full ou bien half}
-\TOline{lw} {0.4 pt} { épaisseur des lignes}
-\TOline{scale} {1} { ratio : permet d'ajuster la taille du rapporteur} \TOline{return} {false} { sens indirect du cercle trigonométrique}
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Le principe de fonctionnement est encore plus simple. Il suffit de nommer une demi-droite. Le rapporteur sera placé sur l'origine $O$ la direction de la demi-droites est donnée par $A$. L'angle est mesuré dans le sens direct du cercle trigonométrique}
-\end{NewMacroBox}
-
-
-\subsection{Le rapporteur circulaire}
-
-Mesure dans le sens direct
-
-\begin{tkzltxexample}[]
-\begin{tikzpicture}[scale=.75]
-\tkzDefPoint(2,3){A}
-\tkzDefPoint[shift={(2,3)}](31:8){B}
-\tkzDefPoint[shift={(2,3)}](158:8){C}
-\tkzDrawSegments[color = red,
- line width = 1pt](A,B A,C)
-\tkzProtractor[with = full,
- scale = 1.25](A,B)
-\end{tikzpicture}
-\end{tkzltxexample}
-
-\vspace*{6cm}\hspace*{6cm}
-\begin{tikzpicture}[scale=.75,overlay]
-\tkzDefPoint(2,3){A}
-\tkzDefPoint[shift={(2,3)}](31:8){B}
-\tkzDefPoint[shift={(2,3)}](158:8){C}
-\tkzDrawSegments[color = red,
- line width = 1pt](A,B A,C)
-\tkzProtractor[with = full,
- scale = 1.25](A,B)
-\end{tikzpicture}
-
-\newpage
-\subsection{Le rapporteur circulaire, transparent et retourné}
-Mesure dans le sens indirect, on retourne le rapporteur.
-
-\begin{center}
- \begin{tkzexample}[vbox]
-\begin{tikzpicture}
- \tkzInit[xmin=-4,xmax=9,ymin=-3,ymax=9]
- \tkzClip
- \tkzDefPoint(2,3){A}
- \tkzDefPoint[shift={(2,3)}](31:8){B}
- \tkzDefPoint[shift={(2,3)}](158:8){C}
- \tkzDrawSegments[color=red,line width=1pt](A,B A,C)
- \tkzProtractor[scale=1.25,with=full,return](A,C)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsection{Le rapporteur original semi-circulaire (Yves Combes)}
-
-Mesure dans le sens direct avec un rapporteur semi-circulaire
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}
- \tkzInit[xmin=-5,xmax=9,ymin=-3,ymax=10]
- \tkzClip
- \tkzDefPoint(2,3){A}
- \tkzDefPoint[shift={(2,3)}](31:8){B}
- \tkzDefPoint[shift={(2,3)}](158:8){C}
- \tkzDrawSegments[color=red,line width=1pt](A,B A,C)
- \tkzProtractor[scale=1.25,with=half](A,B)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-\subsection{Le rapporteur semi-circulaire dans le sens indirect}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}
- \tkzInit[xmin=-5,xmax=9,ymin=-3,ymax=10]
- \tkzClip
- \tkzDefPoint(2,3){A}
- \tkzDefPoint[shift={(2,3)}](31:8){B}
- \tkzDefPoint[shift={(2,3)}](158:8){C}
- \tkzDrawSegments[color=red,line width=1pt](A,B A,C)
- \tkzProtractor[scale=1.25,with=half,return](A,C)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-le cas échéant vous pouvez utiliser la macro originale de Yves
-
-\begin{NewMacroBox}{tkzOriProtractor}{\oarg{local options}}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{with} {full} {full ou bien half}
-\TOline{lw} {0.4 pt} {épaisseur des lignes}
-\TOline{shift} {(x;y)}{permet de faire glisser le rapporteur}
-\TOline{rotate} {0} {permet de faire pivoter le rapporteur}
-\TOline{scale} {1} {ratio : permet d'ajuster la taille du rapporteur} \TOline{return}{false}{sens indirect du cercle trigonométrique}
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Le principe de fonctionnement est encore plus simple. Il suffit de nommer une demi-droite. Le rapporteur sera placé sur l'origine.}
-\end{NewMacroBox}
-
-\subsection{Le rapporteur semi-circulaire avec la macro originale}
-\begin{center}
- \begin{tkzexample}[vbox]
-\begin{tikzpicture}
- \tkzInit[xmin=-5,xmax=9,ymin=-3,ymax=10]
- \tkzClip
- \tkzDefPoint(2,3){A}
- \tkzDefPoint[shift={(2,3)}](158:8){B}
- \tkzDefPoint[shift={(2,3)}](31:8){C}
- \tkzDrawSegments[color=red,line width=1pt](A,B A,C)
- \tkzOriProtractor[shift = {(2,3)},scale=1.25, rotate = +31,with=half]
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\subsection{Le rapporteur semi-circulaire avec la macro originale dans le sens indirect}
-\begin{center}
- \begin{tkzexample}[vbox]
-\begin{tikzpicture}
- \tkzInit[xmin=-5,xmax=9,ymin=-3,ymax=10]
- \tkzClip
- \tkzDefPoint(2,3){A}
- \tkzDefPoint[shift={(2,3)}](158:8){B}
- \tkzDefPoint[shift={(2,3)}](31:8){C}
- \tkzDrawSegments[color=red,line width=1pt](A,B A,C)
- \tkzOriProtractor[shift = {(2,3)},scale=1.25, rotate = -22,with=half]
-\end{tikzpicture}
- \end{tkzexample}
-\end{center}
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-sectors.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-sectors.tex
deleted file mode 100644
index 7b00c1ee58..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-sectors.tex
+++ /dev/null
@@ -1,212 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-\section{Les secteurs}
-
-\begin{NewMacroBox}{tkzDrawSector}{\oarg{local options}\parg{O,\dots}\parg{\dots}}
-\noindent\emph{Attention les arguments varient en fonction des options.}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{towards}{towards}{O est le centre et l'arc par de A vers (OB)}
-\TOline{rotate} {towards}{l'arc part de A et l'angle détermine sa longueur }
-\TOline{R}{towards}{On donne le rayon et deux angles}
-\TOline{R with nodes}{towards}{On donne le rayon et deux points}
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Il faut ajouter bien sûr tous les styles de \TIKZ\ pour les tracés}
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-options & arguments & exemple \\
-\midrule
-\TOline{towards}{\parg{pt,pt}\parg{pt}}{\tkzcname{tkzDrawSector(O,A)(B)}}
-\TOline{rotate} {\parg{pt,pt}\parg{an}}{\tkzcname{tkzDrawSector[rotate,color=red](O,A)(90)}}
-\TOline{R}{\parg{pt,$r$}\parg{an,an}}{\tkzcname{tkzDrawSector[R,color=blue](O,2 cm)(30,90)}}
-\TOline{R with nodes}{\parg{pt,$r$}\parg{pt,pt}}{\tkzcname{tkzDrawSector[R with nodes](O,2 cm)(A,B)}}
-\bottomrule
-\end{tabular}
-\end{NewMacroBox}
-
-Quelques exemples :
-
-\subsection{\tkzcname{tkzDrawSector} et \tkzname{towards}}
-Il est inutile de mettre \tkzname{towards}.
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=1]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(-30:3){A}
- \tkzDefPointBy[rotation = center O angle -60](A)
- \tkzDrawSector[fill=red!50](O,A)(tkzPointResult)
- \begin{scope}[shift={(-60:1cm)}]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(-30:3){A}
- \tkzDefPointBy[rotation = center O angle -60](A)
- \tkzDrawSector[fill=blue!50](O,tkzPointResult)(A)
- \end{scope}
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{\tkzcname{tkzDrawSector} et \tkzname{rotate}}
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}[scale=2]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2,2){A}
- \tkzDrawSector[rotate,draw=red!50!black,%
- fill=red!20](O,A)(30)
- \tkzDrawSector[rotate,draw=blue!50!black,%
- fill=blue!20](O,A)(-30)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{\tkzcname{tkzDrawSector} et \tkzname{R}}
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}[scale=1.25]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2,-1){A}
- \tkzDrawSector[R,draw=white,%
- fill=red!50](O,2cm)(30,90)
- \tkzDrawSector[R,draw=white,%
- fill=red!60](O,2cm)(90,180)
- \tkzDrawSector[R,draw=white,%
- fill=red!70](O,2cm)(180,270)
- \tkzDrawSector[R,draw=white,%
- fill=red!90](O,2cm)(270,360)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{\tkzcname{tkzDrawSector} et \tkzname{R}}
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}[scale=1.25]
- \tkzDefPoint[pos=left](0,0){O}
- \tkzDefPoint(4,-2){A}
- \tkzDefPoint(4,1){B}
- \tkzDefPoint(3,3){C}
- \tkzDrawSector[R with nodes,%
- fill=blue!20](O,1 cm)(B,C)
- \tkzDrawSector[R with nodes,%
- fill=red!20](O,1 cm)(A,B)
-\tkzDrawSegments(O,A O,B O,C)
-\tkzDrawPoints(O,A,B,C)
-\tkzLabelPoints(A,B,C)
-\tkzLabelPoints[left](O)
-\end{tikzpicture}
-\end{tkzexample}
-
-\begin{NewMacroBox}{tkzFillSector}{\oarg{local options}\parg{O,\dots}\parg{\dots}}
-\noindent\emph{Attention les arguments varient en fonction des options.}
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{towards}{towards}{O est le centre et l'arc par de A vers (OB)}
-\TOline{rotate} {towards}{l'arc part de A et l'angle détermine sa longueur }
-\TOline{R}{towards}{On donne le rayon et deux angles}
-\TOline{R with nodes}{towards}{On donne le rayon et deux points}
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Il faut ajouter bien sûr tous les styles de \TIKZ pour les tracés}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & arguments & exemple \\
-\midrule
-\TOline{towards}{\parg{pt,pt}\parg{pt}}{\tkzcname{tkzFillSector(O,A)(B)}}
-\TOline{rotate} {\parg{pt,pt}\parg{an}}{\tkzcname{tkzFillSector[rotate,color=red](O,A)(90)}}
-\TOline{R}{\parg{pt,$r$}\parg{an,an}}{\tkzcname{tkzFillSector[R,color=blue](O,2 cm)(30,90)}}
-\TOline{R with nodes}{\parg{pt,$r$}\parg{pt,pt}}{\tkzcname{tkzFillSector[R with nodes](O,2 cm)(A,B)}}
-\bottomrule
-\end{tabular}
-\end{NewMacroBox}
-
-\subsection{\tkzcname{tkzFillSector} et \tkzname{towards}}
-Il est inutile de mettre \tkzname{towards} et vous remarquerez que les contours ne sont pas tracés,seule la surface est colorée.
-\begin{tkzexample}[latex=5.75cm,small]
-\begin{tikzpicture}[scale=.6]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(-30:3){A}
- \tkzDefPointBy[rotation = center O angle -60](A)
- \tkzFillSector[fill=red!50](O,A)(tkzPointResult)
- \begin{scope}[shift={(-60:1cm)}]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(-30:3){A}
- \tkzDefPointBy[rotation = center O angle -60](A)
- \tkzFillSector[color=blue!50](O,tkzPointResult)(A)
- \end{scope}
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{\tkzcname{tkzFillSector} et \tkzname{rotate}}
-\begin{tkzexample}[latex=5.75cm,small]
-\begin{tikzpicture}[scale=1.5]
- \tkzDefPoint(0,0){O} \tkzDefPoint(2,2){A}
- \tkzFillSector[rotate,color=red!20](O,A)(30)
- \tkzFillSector[rotate,color=blue!20](O,A)(-30)
-\end{tikzpicture}
-\end{tkzexample}
-
-\newpage
-\begin{NewMacroBox}{tkzClipSector}{\oarg{local options}\parg{O,\dots}\parg{\dots}}
-\noindent\emph{Attention les arguments varient en fonction des options.}
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{towards}{towards}{O est le centre et le secteur part de A vers (OB)}
-\TOline{rotate} {towards}{le secteur part de A et l'angle détermine son amplitude }
-\TOline{R}{towards}{On donne le rayon et deux angles}
-\bottomrule
-\end{tabular}
-
-
-\medskip
-\emph{Il faut ajouter bien sûr tous les styles de \TIKZ\ pour les tracés}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & arguments & exemple \\
-\midrule
-\TOline{towards}{\parg{pt,pt}\parg{pt}}{\tkzcname{tkzClipSector(O,A)(B)}}
-\TOline{rotate} {\parg{pt,pt}\parg{angle}}{\tkzcname{tkzClipSector[rotate](O,A)(90)}}
-\TOline{R}{\parg{pt,$r$}\parg{angle 1,angle 2}}{\tkzcname{tkzClipSector[R](O,2 cm)(30,90)}}
-\bottomrule
-\end{tabular}
-\end{NewMacroBox}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=2]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2,-1){A}
- \tkzDefPoint(1,1){B}
- \tkzDrawSector[color=bistre,dashed](O,A)(B)
- \tkzDrawSector[color=Maroon](O,B)(A)
- \tkzDrawPoints(A,B,O)
- \tkzClipSector(O,B)(A)
-\draw[fill=red!20] (-1,0) rectangle (3,3);
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-
- \endinput
-
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-segments.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-segments.tex
deleted file mode 100644
index 902a4970cb..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-segments.tex
+++ /dev/null
@@ -1,254 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-\section{Les segments}
-
-Il existe bien sûr, une macro pour tracer simplement un segment (il serait possible comme pour une demi-droite, de créer un style avec \tkzcname{add}) .
-
-\subsection{Tracer un segment \tkzcname{tkzDrawSegment}}
- \hypertarget{tds}{}
-
- \begin{NewMacroBox}{tkzDrawSegment}{\oarg{local options}\parg{pt1,pt2}}
-\emph{Les arguments sont une liste de deux points. Les styles de \TIKZ\ sont accessibles pour les tracés}
-
-\medskip
-\begin{tabular}{lll}
-argument & exemple & définition \\
-\midrule
-\TAline{(pt1,pt2)}{(A,B)}{trace le segment $[A,B]$}
-\bottomrule
-\end{tabular}
-
-C'est bien sûr équivalent à \tkzcname{draw (A)--(B);}
-\end{NewMacroBox}
-
-\subsubsection{Exemple avec des références de points}
-
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}[scale=1.5]
- \tkzInit[xmin=-1,xmax=3,ymin=-1,ymax=2]
- \tkzClip
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(2,1){B}
- \tkzDrawSegment[color=red,thin](A,B)
- \tkzDrawPoints(A,B)
- \tkzLabelPoints(A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsubsection{Exemple avec des références de points}
- Il est préférable de référencer les points, car les points sont
- placées en tenant compte de \tkzcname{tkzInit}.
-
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}[scale=1.5]
- \tkzInit[xmin=-1,xmax=3,ymin=-1,ymax=2]
- \tkzClip
- \tkzDrawSegment[color=red,thin]({0,0},{2,1})
-\end{tikzpicture}
-\end{tkzexample}
-
-\bigskip
-Si les options sont les mêmes on peut tracer plusieurs \hypertarget{segs}{segments} avec la même macro.
-
-\newpage
-\subsection{Tracer des segments \tkzcname{tkzDrawSegments}}
- \hypertarget{tdss}{}
-
- \begin{NewMacroBox}{tkzDrawSegments}{\oarg{local options}\parg{pt1,pt2 pt3,pt4 ...}}
-\emph{Les arguments sont une liste de couple de deux points. Les styles de \TIKZ\ sont accessibles pour les tracés}
-\end{NewMacroBox}
-
-\begin{center}
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}
- \tkzInit[xmin=-1,xmax=3,ymin=-1,ymax=2]
- \tkzClip[space=1]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(2,1){B}
- \tkzDefPoint(3,0){C}
- \tkzDrawSegments(A,B B,C)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints(A,C)
- \tkzLabelPoints[above](B)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\subsection{Marquer un segment \tkzcname{tkzMarkSegment}}
-\hypertarget{tms}{}
-
- \begin{NewMacroBox}{tkzMarkSegment}{\oarg{local options}\parg{pt1,pt2}}
-\emph{La macro permet de placer une marque sur un segment.}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{pos}{.5}{position de la marque}
-\TOline{color}{black}{couleur de la marque}
-\TOline{mark}{none}{choix de la marque}
-\TOline{size}{4pt}{taille de la marque}
-\bottomrule
-\end{tabular}
-
-\emph{Les marques possibles sont celles fournies par \TIKZ, mais d'autres marques ont été crées d'après une idée de Yves Combe.}
-\end{NewMacroBox}
-
-\subsubsection{Marques multiples}
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}
- \tkzDefPoint(2,1){A}
- \tkzDefPoint(6,4){B}
- \tkzDrawSegment(A,B)
- \tkzMarkSegment[color=Maroon,size=2pt,
- pos=0.4, mark=z](A,B)
- \tkzMarkSegment[color=blue,
- pos=0.2, mark=oo](A,B)
- \tkzMarkSegment[pos=0.8,
- mark=s,color=red](A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Utilisation de \tkzname{mark}}
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}
- \tkzDefPoint(2,1){A}
- \tkzDefPoint(6,4){B}
- \tkzDrawSegment(A,B)
- \tkzMarkSegment[color=gray,
- pos=0.2,mark=s|](A,B)
- \tkzMarkSegment[color=gray,
- pos=0.4,mark=s||](A,B)
- \tkzMarkSegment[color=Maroon,
- pos=0.6,mark=||](A,B)
- \tkzMarkSegment[color=red,
- pos=0.8,mark=|||](A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{Marquer des segments \tkzcname{tkzMarkSegments}}
-\hypertarget{tmss}{}
-
-\begin{NewMacroBox}{tkzMarkSegments}{\oarg{local options}\parg{pt1,pt2 pt3,pt4 ...}}
-\emph{Les arguments sont une liste de couple de deux points séparés par des espaces. Les styles de \TIKZ\ sont accessibles pour les tracés.}
-\end{NewMacroBox}
-
-\subsubsection{Marques pour un triangle isocèle}
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=1]
- \tkzDefPoints{0/0/O,2/2/A,4/0/B,6/2/C}
- \tkzDrawSegments(O,A A,B)
- \tkzDrawPoints(O,A,B)
- \tkzDrawLine(O,B)
- \tkzMarkSegments[mark=||,size=6pt](O,A A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Exemple de rotation}
-\begin{center}
-\begin{tkzexample}[latex=7cm,small]
- \begin{tikzpicture}[scale=0.5]
- \tkzDefPoint(0,0){A}\tkzDefPoint(3,2){B}
- \tkzDefPoint(4,0){C}\tkzDefPoint(2.5,1){P}
- \tkzDrawPolygon(A,B,C)
- \tkzDefEquilateral(A,P) \tkzGetPoint{P'}
- \tkzDefPointsBy[rotation=center A angle 60](P,B){P',C'}
- \tkzDrawPolygon(A,P,P')
- \tkzDrawPolySeg(P',C',A,P,B)
- \tkzDrawSegment(C,P)
- \tkzDrawPoints(A,B,C,C',P,P')
- \tkzMarkSegments[mark=s|,mark size=6pt,
- color=blue](A,P P,P' P',A)
- \tkzMarkSegments[mark=||,color=orange](B,P P',C')
- \tkzLabelPoints(A,C) \tkzLabelPoints[below](P)
- \tkzLabelPoints[above right](P',C',B)
-
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-\newpage
-\hypertarget{tls}{}
- \begin{NewMacroBox}{tkzLabelSegment}{\oarg{local options}\parg{pt1,pt2}\marg{label}}
-\emph{Cette macro permet de placer une étiquette le long d'un segment ou encore d'une ligne. Les options sont celles de \TIKZ\ par exemple \tkzname{pos} }
-
-\medskip
-\begin{tabular}{lll}
-argument & exemple & définition \\
-\midrule
-\TAline{label}{\tkzcname{tkzLabelSegment(A,B)\{$5$\}}}{texte de l'étiquette}
-\TAline{(pt1,pt2)}{(A,B)}{étiquette le long de $[A,B]$}
-\bottomrule
-\end{tabular}
-
-
-\medskip
-\begin{tabular}{lll}
-options & défaut & définition \\
-\midrule
-\TOline{pos}{.5}{position du label}
-\end{tabular}
-\end{NewMacroBox}
-
- \subsubsection{Labels multiples}
-\begin{tkzexample}[latex=6 cm,small]
-\begin{tikzpicture}
-\tkzInit
-\tkzDefPoint(0,0){A}
-\tkzDefPoint(6,0){B}
-\tkzDrawSegment(A,B)
-\tkzLabelSegment[above,pos=.8](A,B){$a$}
-\tkzLabelSegment[below,pos=.2](A,B){$4$}
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Labels et Pythagore}
-Cet exemple nécessite \tkzcname{usetkzobj{polygons}}
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}[scale=.75]
-\tkzInit[xmax=5,ymax=5]
-\tkzDefPoint(0,0){C}
-\tkzDefPoint(4,0){A}
-\tkzDefPoint(0,3){B}
-\tkzDefSquare(B,A)\tkzGetPoints{E}{F}
-\tkzDefSquare(A,C)\tkzGetPoints{G}{H}
-\tkzDefSquare(C,B)\tkzGetPoints{I}{J}
-\tkzFillPolygon[draw,
- fill = red!50 ](A,C,G,H)
-\tkzFillPolygon[draw,
- fill = blue!50 ](C,B,I,J)
-\tkzFillPolygon[draw,
- fill = purple!50](B,A,E,F)
-\tkzFillPolygon[draw,opacity=.5,
- fill = orange](A,B,C)
-\tkzDrawPolygon[line width = 1pt](A,B,C)
-\tkzLabelSegment[above](C,A){$a$}
-\tkzLabelSegment[right](B,C){$b$}
-\tkzLabelSegment[below left](B,A){$c$}
-\end{tikzpicture}
-\end{tkzexample}
-
-\newpage
-\hypertarget{tlss}{}
- \begin{NewMacroBox}{tkzLabelSegments}{\oarg{local options}\parg{pt1,pt2 pt3,pt4 ...}}
-\emph{Les arguments sont une liste de couple de deux points. Les styles de \TIKZ\ sont accessibles pour les tracés.}
-\end{NewMacroBox}
-
-\subsubsection{Labels pour un triangle isocèle}
-\begin{center}
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=1]
- \tkzDefPoints{0/0/O,2/2/A,4/0/B,6/2/C}
- \tkzDrawSegments(O,A A,B)
- \tkzDrawPoints(O,A,B)
- \tkzDrawLine(O,B)
- \tkzLabelSegments[color=red,above=4pt](O,A A,B){$a$}
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-\endinput
-
-
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tips_and_tricks.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tips_and_tricks.tex
deleted file mode 100644
index c323bd35a7..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tips_and_tricks.tex
+++ /dev/null
@@ -1 +0,0 @@
-reflect avec cm \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex
deleted file mode 100644
index f5cbe7b939..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex
+++ /dev/null
@@ -1,325 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-
-\section{Quelques outils}
-
-
-\subsection{Dupliquer un segment}
-
-Il s'agit de construire un segment sur une demi-droite donnée de même longueur qu'un segment donné.
-
-\begin{NewMacroBox}{tkzDuplicateLen}{\parg{pt1,pt2}\parg{pt3,pt4}\marg{pt5}}
-Il s'agit de créer un segment sur une demi-droite donnée de même longueur qu'un segment donné . Il s'agit en fait de la définition d'un point.
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-arguments & exemple & explication \\
-\midrule
-\TAline{(pt1,pt2)(pt3,pt4)\{pt5\}} {\tkzcname{tkzDuplicateLen}(A,B)(E,F)\{C\}}{AC=EF et $C \in [AB)$} \\
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{La macro \tkzcname{tkzDuplicateSegment} est identique à celle-ci. }
-\end{NewMacroBox}
-
-\subsubsection{Proportion d'or avec \tkzcname{tkzDuplicateLen}}
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[rotate=-90]
- \tkzInit[xmax=10,ymax=10]
- \tkzClip[space=1]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(10,0){B}
- \tkzDefMidPoint(A,B) \tkzGetPoint{I}
- \tkzDefPointWith[orthogonal,K=-.75](B,A)
- \tkzGetPoint{C}
- \tkzInterLC(B,C)(B,I) \tkzGetSecondPoint{D}
- \tkzDuplicateLen(B,D)(D,A) \tkzGetPoint{E}
- \tkzInterLC(A,B)(A,E) \tkzGetPoints{N}{M}
- \tkzDrawArc[delta=10](D,E)(B)
- \tkzDrawArc[delta=10](A,M)(E)
- \tkzDrawLines(A,B B,C A,D)
- \tkzDrawArc[delta=10](B,D)(I)
- \tkzDrawPoints(A,B,D,C,M,I,N)
- \tkzLabelPoints(A,B,D,C,M,I,N)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{Déterminer une pente}
-Il s'agit de déterminer si elle existe, la pente d'une droite définie par deux points. Aucune vérification de l'existence n'est faite.
-
-\begin{NewMacroBox}{tkzFindSlope}{\parg{pt1,pt2}\marg{name of macro}}
-Le résultat est stocké dans une macro.
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-arguments & exemple & explication \\
-\midrule
-\TAline{(pt1,pt2){pt3}} {\tkzcname{tkzFindSlope}(A,B)\{slope\}}{\tkzcname{slope} donnera le résultat de $\frac{y_B-y_A}{x_B-x_A}$} \\
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Attention à ne pas avoir $x_B=x_A$ }
-\end{NewMacroBox}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.5]
- \tkzInit[xmax=5,ymax=5]\tkzGrid[sub]
- \tkzDefPoint(1,2){A} \tkzDefPoint(3,4){B}
- \tkzDefPoint(3,2){C} \tkzDefPoint(3,1){D}
- \tkzDrawSegments(A,B A,C A,D)
- \tkzDrawPoints[color=red](A,B,C,D) \tkzLabelPoints(A,B,C,D)
- \tkzFindSlope(A,B){SAB} \tkzFindSlope(A,C){SAC}\tkzFindSlope(A,D){SAD}
- \tkzText[fill=Gold!50,draw=brown](2.5,0){La pente de (AB) est : \SAB}
- \tkzText[fill=Gold!50,draw=brown](2.5,-.5){La pente de (AC) est : \SAC}
- \tkzText[fill=Gold!50,draw=brown](2.5,-1){La pente de (AD) est : \SAD}
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-\newpage
-\subsection{Angle formé par une droite avec l'axe horizontal}
-Beaucoup plus intéressante que la précédente. Le résultat est compris entre -180 degrés et +180 degrés.
-
-\begin{NewMacroBox}{tkzFindSlopeAngle}{\parg{pt1,pt2}}
-Le résultat est stocké dans une macro \tkzcname{tkzAngleResult}.
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-arguments & exemple & explication \\
-\midrule
-\TAline{(pt1,pt2)} {\tkzcname{tkzFindSlopeAngle}(A,B)}{\tkzcname{tkzGetAngle} peut récupèrer le résultat}
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Si la récupération n'est pas nécessaire, il est possible d'utiliser \tkzcname{tkzAngleResult}}
-\end{NewMacroBox}
-
-
-\subsubsection{exemple d'utilisation de \tkzcname{tkzFindSlopeAngle}}
-Voici une autre version de la construction d'une médiatrice
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}
- \tkzInit
- \tkzDefPoint(0,0){A} \tkzDefPoint(3,2){B}
- \tkzDefLine[mediator](A,B) \tkzGetPoints{I}{J}
- \tkzCalcLength[cm](A,B) \tkzGetLength{dAB}
- \tkzFindSlopeAngle(A,B) \tkzGetAngle{tkzangle}
- \begin{scope}[rotate=\tkzangle]
- \tikzset{arc/.style={color=gray,delta=10}}
- \tkzDrawArc[R,arc](B,3/4*\dAB)(120,240)
- \tkzDrawArc[R,arc](A,3/4*\dAB)(-45,60)
- \tkzDrawLine(I,J) \tkzDrawSegment(A,B)
- \end{scope}
- \tkzDrawPoints(A,B,I,J) \tkzLabelPoints(A,B)
- \tkzLabelPoints[right](I,J)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-
-\newpage
-\subsection{Récupérer un angle}
-Dans l'exemple précédent, j'ai utilisé la macro \tkzcname{tkzGetAngle} qui permet de récupérer un angle.
-
-\begin{NewMacroBox}{tkzGetAngle}{\marg{name of macro}}
-Cette macro récupère \tkzcname{tkzAngleResult} et stocke le résultat dans une nouvelle macro.
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-arguments & exemple & explication \\
-\midrule
-\TAline{name of macro} {\tkzcname{tkzGetAngle}\{ang\}}{\tkzcname{ang} contient la valeur de l'angle.}
-\end{tabular}
-\end{NewMacroBox}
-
-\subsection{exemple d'utilisation de \tkzcname{tkzGetAngle}}
- Il s'agit ici que $(AB)$ soit la bissectrice de $\widehat{CAD}$, tel que la pente $AD$ soit nulle. On récupère la pente de $(AB)$ puis on effectue deux rotations.
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}
- \tkzInit
- \tkzDefPoint(1,5){A} \tkzDefPoint(5,2){B} \tkzDrawSegment(A,B)
- \tkzFindSlopeAngle(A,B)\tkzGetAngle{tkzang}
- \tkzDefPointBy[rotation= center A angle \tkzang ](B) \tkzGetPoint{C}
- \tkzDefPointBy[rotation= center A angle -\tkzang ](B) \tkzGetPoint{D}
- \tkzCompass[length=1,dashed,color=red](A,C)
- \tkzCompass[delta=10,Maroon](B,C) \tkzDrawPoints(A,B,C,D)
- \tkzLabelPoints(B,C,D) \tkzLabelPoints[above left](A)
- \tkzDrawSegments[style=dashed,color=bistre](A,C A,D)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-
-
-\newpage
-\subsection{Angle formé par trois points}
-
-
-\begin{NewMacroBox}{tkzFindAngle}{\parg{pt1,pt2,pt3}}
-Le résultat est stocké dans une macro \tkzcname{tkzAngleResult}.
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-arguments & exemple & explication \\
-\midrule
-\TAline{(pt1,pt2,pt3)} {\tkzcname{tkzFindAngle}(A,B,C)}{\tkzcname{tkzAngleResult} donne l'angle ($\overrightarrow{BA},\overrightarrow{BC}$)}
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Le résultat est compris entre -180 degrés et +180 degrés. pt2 est le sommet et \tkzcname{tkzGetAngle} peut récupérer l'angle. }
-\end{NewMacroBox}
-
-\subsection{Exemple d'utilisation de \tkzcname{tkzFindAngle} }
-
-\begin{center}
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}
- \tkzInit[xmin=-1,ymin=-1,xmax=7,ymax=7]
- \tkzClip
- \tkzDefPoint (0,0){O} \tkzDefPoint (6,0){A}
- \tkzDefPoint (5,5){B} \tkzDefPoint (3,4){M}
- \tkzFindAngle (A,O,M) \tkzGetAngle{an}
- \tkzDefPointBy[rotation=center O angle \an](A) \tkzGetPoint{C}
- \tkzDrawSector[fill = blue!50,opacity=.5](O,A)(C)
- \tkzFindAngle(M,B,A) \tkzGetAngle{am}
- \tkzDefPointBy[rotation = center O angle \am](A) \tkzGetPoint{D}
- \tkzDrawSector[fill = red!50,opacity = .5](O,A)(D)
- \tkzDrawPoints(O,A,B,M,C,D) \tkzLabelPoints(O,A,B,M,C,D)
- \FPround\an\an{2} \FPround\am\am{2} \tkzDrawSegments(M,B B,A)
- \tkzText(4,2){$\widehat{AOC}=\widehat{AOM}=\an^{\circ}$}
- \tkzText(1,4){$\widehat{AOD}=\widehat{MBA}=\am^{\circ}$}
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-
-\newpage
-\subsection{Longueur d'un segment \tkzcname{tkzVecLen}}
-Il existe dans \TIKZ\ une option \tkzname{veclen}. Cette option
- permet de calculer AB si A et B sont deux points.
-
-Le seul problème pour moi est que la version de \TIKZ\ n'est pas assez précise dans certains cas particuliers. Ma version utilise le package \tkzNamePack{fp.sty} et est plus lente, mais plus précise
-
-\begin{NewMacroBox}{tkzVecLen}{\oarg{local options}\parg{pt1,pt2}\marg{name of macro}}
-Le résultat est stocké dans une macro.
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-arguments & exemple & explication \\
-\midrule
-\TAline{(pt1,pt2)\{name of macro\}} {\tkzcname{tkzVecLen}(A,B)\{dAB\}}{\tkzcname{dAB} donne $AB$ en pt}
-\bottomrule
-\end{tabular}
-
-\medskip
-Une seule option
-
-\begin{tabular}{lll}
-\toprule
-options & défaut & exemple \\
-\midrule
-\TOline{cm} {false}{\tkzcname{tkzVecLen}[cm](A,B)\{dAB\} \tkzcname{dAB} donne AB en cm}
-\end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Construction d'un carré au compas}
-
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}[scale=1.2]
- \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
- \tkzDrawLine[add= .6 and .2](A,B)
- \tkzCalcLength[cm](A,B)\tkzGetLength{dAB}
- \tkzDefLine[perpendicular=through A](A,B)
- \tkzDrawLine(A,tkzPointResult) \tkzGetPoint{D}
- \tkzShowLine[orthogonal=through A,gap=2](A,B)
- \tkzMarkRightAngle(B,A,D)
- \tkzVecKOrth[-1](B,A){C}
- \tkzCompasss(A,D D,C) \tkzDrawArc[R](B,\dAB)(80,110)
- \tkzDrawPoints(A,B,C,D) \tkzDrawSegments[color=gray,style=dashed](B,C C,D)
- \tkzLabelPoints(A,B,C,D)
-\end{tikzpicture}
-\end{tkzexample}
-
-\newpage
-\subsection{Transformation de pt en cm ou de cm en pt}
-Pas sûr que cela soit nécessaire et il ne s'agit que d'une division par 28,45274 et d'un multiplication par ce même nombre. Les macros sont :
-
-\begin{NewMacroBox}{tkzpttocm}{\parg{nombre}\marg{name of macro}}
-Le résultat est stocké dans une macro.
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-arguments & exemple & explication \\
-\midrule
-\TAline{(nombre){name of macro}} {\tkzcname{tkzpttocm}(120)\{len\}}{\tkzcname{len} donne un nombre de tkzname{cm}}
-\bottomrule
-\end{tabular}
-
-\medskip
-\noindent\emph{Il faudra utiliser \tkzcname{len} accompagné de \tkzname{cm}}
-\end{NewMacroBox}
-
-\begin{NewMacroBox}{tkzcmtopt}{\parg{nombre}\marg{name of macro}}
-Le résultat est stocké dans une macro.
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-arguments & exemple & explication \\
-\midrule
-\TAline{(nombre){name of macro}}{\tkzcname{tkzcmtopt}(5)\{len\}}{\tkzcname{len} donne un nombre de tkzname{pt}}
-\bottomrule
-\end{tabular}
-
-\medskip
-\noindent\emph{Il faudra utiliser \tkzcname{len} accompagné de \tkzname{pt}}
-\end{NewMacroBox}
-
-\subsubsection{Exemple}
-La macro \tkzcname{tkzDefCircle[radius](A,B)} définit le rayon que l'on récupère avec \tkzcname{tkzGetLength}, mais ce résultat est en \tkzname{pt}.
-
-\begin{tkzexample}[latex=8cm]
- \begin{tikzpicture}
- \tkzDefPoint(0,4){A}
- \tkzDefPoint(3,2){B}
- \tkzDefCircle[radius](A,B)
- \tkzGetLength{rABpt}
- \tkzpttocm(\rABpt){rABcm}
- \tkzDrawCircle(A,B)
- \tkzDrawPoints(A,B)
- \tkzLabelPoints(A,B)
- \end{tikzpicture}
-\end{tkzexample}
-
-
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-transf.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-transf.tex
deleted file mode 100644
index 9816cbd601..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-transf.tex
+++ /dev/null
@@ -1,472 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-
-\section{Définition de points par transformation; \tkzcname{tkzDefPointBy} }
-Ces transformations sont au nombre de sept :
-
-\begin{enumerate}
- \item la translation;
- \item l'homothetie;
- \item la réflexion ou symétrie orthogonale;
- \item la symétrie centrale;
- \item la projection orthogonale;
- \item la rotation;
- \item la rotation en radian;
- \item l'inversion par rapport à un cercle
-\end{enumerate}
-
-Le choix des transformations se fait par l'intermédiaire des options. Il y a deux macros l'une pour la transformation d'un unique point \tkzcname{tkzDefPointBy} et l'autre pour la transformation d'une liste de points \tkzcname{tkzDefPointsBy}. Dans le second cas, il faut donner en argument, les noms des images ou bien encore indiquer que le nom des images est formé à partir du nom des antécédents. Par défaut l'image de $A$ est $A'$. Par exemple, on écrira~:
-\begin{tkzltxexample}[]
-\tkzDefPointBy[translation= from A to A'](B) le résultat est dans tkzPointResult}
-\tkzDefPointsBy[translation= from A to A'](B,C){} les images sont B' et C'
-\tkzDefPointsBy[translation= from A to A'](B,C){D,E} les images sont D et E
-\tkzDefPointsBy[translation= from A to A'](B) l'image est B'
-\end{tkzltxexample}
-
-La variante sans (s), évite l'usage d'une boucle et d'un test et est donc plus efficace.
-
-\bigskip
-\begin{NewMacroBox}{tkzDefPointBy}{\oarg{local options}\parg{pt}}
-\emph{L'argument est un simple point existant et son image est stockée dans \tkzname{tkzPointResult}. Soit la création est une étape intermédiaire et vous n'avez pas besoin de conserver ce point alors tant qu'aucune macro ne modifie l'attribution de \tkzname{tkzPointResult}, vous pouvez utiliser ce nom pour faire référence au point obtenu. Si vous voulez conserver ce point alors la macro \tkzcname{tkzGetPoint\{M\}} permet d'attribuer le nom \tkzname{M} au point.}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-arguments & définition & exemples \\
-\midrule
-\TAline{pt} {nom d'un point existant} {$(A)$}
-\bottomrule
-\end{tabular}
-
-
-\medskip
-\begin{tabular}{lll}
-options & & exemples \\
-\midrule
-\TOline{translation}{= from \#1 to \#2}{[translation=from A to B](E)}
-\TOline{homothety} {= center \#1 ratio \#2}{[homothety=center A ratio .5](E)}
-\TOline{reflection} {= over \#1--\#2}{[reflection=over A--B](E)}
-\TOline{symmetry } {= center \#1}{[symmetry=center A](E)}
-\TOline{projection }{= onto \#1--\#2}{[projection=onto A--B](E)}
-\TOline{rotation } {= center \#1 angle \#2}{[rotation=center O angle 30](E)}
-\TOline{rotation in rad}{= center \#1 angle \#2}{rotation=center O angle pi/3}
-\TOline{inversion}{= center \#1 through \#2}{[inversion =center O through A](E)}
-\bottomrule
-\end{tabular}
-
-\medskip
-\noindent\emph{ L'image est seulement définie et non tracée.}
-\end{NewMacroBox}
-
-\newpage
-\subsection{La réflexion ou symétrie orthogonale }
-
-\subsubsection{Exemple de réflexion}
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1]
- \tkzInit[ymin=-4,ymax=6,xmin=-7,xmax=3]
- \tkzClip
- \tkzDefPoints{1.5/-1.5/C,-4.5/2/D}
- \tkzDefPoint(-4,-2){O}
- \tkzDefPoint(-2,-2){A}
- \foreach \i in {0,1,...,4}{%
- \pgfmathparse{0+\i * 72}
- \tkzDefPointBy[rotation=center O angle \pgfmathresult](A) \tkzGetPoint{A\i}
- \tkzDefPointBy[reflection = over C--D](A\i) \tkzGetPoint{A\i'}}
- \tkzDrawPolygon(A0, A2, A4, A1, A3)
- \tkzDrawPolygon(A0', A2', A4', A1', A3')
- \tkzDrawLine[add= .5 and .5](C,D)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsection{L'homothétie}
-\subsubsection{Exemple d'homothétie et de projection}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.25]
- \tkzInit \tkzClip
- \tkzDefPoint(0,1){A} \tkzDefPoint(6,3){B} \tkzDefPoint(3,6){C}
- \tkzDrawLines[add= 0 and .3](A,B A,C)
- \tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
- \tkzDrawLine[add=0 and 0,color=magenta!50 ](A,a)
- \tkzDefPointBy[homothety=center A ratio .5](a) \tkzGetPoint{a'}
- \tkzDefPointBy[projection = onto A--B](a') \tkzGetPoint{k}
- \tkzDrawSegment[style=dashed](a',k)
- \tkzShowLine[bisector,size=2,gap=3](B,A,C)
- \tkzDrawCircle(a',k)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-\newpage
-\subsection{La projection }
-\subsubsection{Exemple de projection}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=1.5]
- \tkzInit[xmin=-3,xmax=5,ymax=4] \tkzClip[space=.5]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(0,4){B}
- \tkzDrawTriangle[pythagore](B,A) \tkzGetPoint{C}
- \tkzDefLine[bisector](B,C,A) \tkzGetPoint{c}
- \tkzInterLL(C,c)(A,B) \tkzGetPoint{D}
- \tkzDrawSegment(C,D)
- \tkzDrawCircle(D,A)
- \tkzDefPointBy[projection=onto B--C](D) \tkzGetPoint{G}
- \tkzInterLC(C,D)(D,A) \tkzGetPoints{E}{F}
- \tkzDrawPoints(A,C,F) \tkzLabelPoints(A,C,F)
- \tkzDrawPoints(B,D,E,G)
- \tkzLabelPoints[above right](B,D,E,G)
- \end{tikzpicture}
- \end{tkzexample}
-\end{center}
-
-
-\newpage
-\subsection{La symétrie }
-\subsubsection{Exemple de symétrie}
-
- \begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=2]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2,-1){A}
- \tkzDefPoint(2,2){B}
- \tkzDefPointsBy[symmetry=center O](B,A){}
- \tkzDrawLine(A,A')
- \tkzDrawLine(B,B')
- \tkzMarkAngle[mark=s,arc=lll,size=2 cm,mkcolor=red](A,O,B)
- \tkzLabelAngle[pos=1,circle,draw,fill=blue!10](A,O,B){$60^{\circ}$}
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsection{La rotation }
-\subsubsection{Exemple de rotation}
-
- \begin{center}
-\begin{tkzexample}[vbox]
- \begin{tikzpicture}[scale=1.2,rotate=-90]
- \tkzInit
- \tkzPoint(0,0){A} \tkzPoint(5,0){B}
- \tkzDrawSegment(A,B)
- \tkzDefPointBy[rotation= center A angle 60](B)
- \tkzGetPoint{C}
- \tkzDefPointBy[symmetry= center C](A)
- \tkzGetPoint{D}
- \tkzDrawSegment(A,tkzPointResult)
- \tkzDrawLine(B,D)
- \tkzDrawArc[delta=10](A,B)(C)
- \tkzDrawArc[delta=10](B,C)(A)
- \tkzDrawArc[delta=10](C,D)(D)
- \tkzMarkRightAngle(D,B,A)
-\end{tikzpicture}
-\end{tkzexample}
- \end{center}
-
-\newpage
-\subsection{La rotation en radian }
-\subsubsection{Exemple de rotation en radian}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}
- \tkzInit\tkzGrid[sub]
- \tkzPoint[pos=left](1,5){A}
- \tkzPoint(5,2){B}
- \tkzDrawSegment(A,B)
- \tkzDefPointBy[rotation in rad= center A angle pi/3](B)
- \tkzGetPoint{C}
- \tkzCompass[color=red](A,C)
- \tkzCompass[color=red](B,C)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsection{L'inversion par rapport à un cercle }
-\subsubsection{Inversion de points}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=2]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(1,0){A}
- \tkzDrawCircle(O,A)
- \tkzDefPoint(-1.5,-1.5){z1}
- \tkzDefPoint(0.35,0){z2}
- \tkzDrawPoints[fill=red,color=black,size=8](O,z1,z2)
- \tkzDefPointBy[inversion = center O through A](z1)
- \tkzGetPoint{Z1}
- \tkzDefPointBy[inversion = center O through A](z2)
- \tkzGetPoint{Z2}
- \tkzDrawPoints[fill=red,color=black,size=8](Z1,Z2)
- \tkzDrawSegments(z1,Z1 z2,Z2)
- \tkzLabelPoints(O,A,z1,z2,Z1,Z2)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\subsubsection{Inversion de point : cercles orthogonaux}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=3]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(1,0){A}
- \tkzDrawCircle(O,A)
- \tkzDefPoint(0.5,-0.25){z1}
- \tkzDefPoint(-0.5,-0.5){z2}
- \tkzDefPointBy[inversion = center O through A](z1)
- \tkzGetPoint{Z1}
- \tkzCircumCenter(z1,z2,Z1)\tkzGetPoint{c}
- \tkzDrawCircle(c,Z1)
- \tkzDrawPoints[color=black,fill=red,size=12](O,z1,z2,Z1,O,A)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-
-\newpage
-Il existe une variante de cette macro pour la définition de multiples images
-
-\begin{NewMacroBox}{tkzDefPointsBy}{\oarg{local options}\parg{liste de pts}\marg{liste de pts}}
-\begin{tabular}{lll}
-\toprule
-arguments & exemples & \\
-\midrule
-\TAline{\parg{liste de pts}\marg{liste de pts}}{(A,B)\{E,F\}}{E est l'image de A et F celle de B.} \\
-\bottomrule
-\end{tabular}
-
-\medskip
-\emph{Si la liste des images est vide alors le nom de l'image est le nom de l'antécédent auquel on ajoute « ' »}
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & & exemples \\
-\midrule
-\TOline{translation = from \#1 to \#2}{}{[translation=from A to B](E)\{\}}
-\TOline{homothety = center \#1 ratio \#2}{}{[homothety=center A ratio .5](E)\{F\}}
-\TOline{reflection = over \#1--\#2}{}{[reflection=over A--B](E)\{F\}}
-\TOline{symmetry = center \#1}{}{[symmetry=center A](E)\{F\}}
-\TOline{projection = onto \#1--\#2}{}{[projection=onto A--B](E)\{F\}}
-\TOline{rotation = center \#1 angle \#2}{}{[rotation=center angle 30](E)\{F\}}
-\TOline{rotation in rad = center \#1 angle \#2}{}{par exemple angle pi/3}
-\bottomrule
-\end{tabular}
-
-\medskip
-\noindent\emph{ Les points sont seulement définis et non tracés.}
-\end{NewMacroBox}
-
-\subsection{Exemple de translation}
-
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){A} \tkzDefPoint(5,2){A'}
- \tkzDefPoint(3,0){B} \tkzDefPoint(1,2){C}
- \tkzDefPointsBy[translation= from A to A'](B,C){}
- \tkzDrawPolygon[color=blue](A,B,C)
- \tkzDrawPolygon[color=red](A',B',C')
- \tkzDrawPoints[color=blue](A,B,C)
- \tkzDrawPoints[color=red](A',B',C')
- \tkzLabelPoints(A,B,A',B') \tkzLabelPoints[above](C,C')
- \tkzDrawSegments[color = gray,->,style=dashed](A,A' B,B' C,C')
-\end{tikzpicture}
-\end{tkzexample}
-
-\newpage
-\subsection{Fruit of Life}
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=.8]
- \tkzDefPoint(0,0){O} \tkzDefPoint(1.5,0){A}
- \tkzDrawCircle(O,A)
- \foreach \i in {0,...,5}{
- \tkzDefPointBy[rotation = center O angle 30+60*\i](A) \tkzGetPoint{a\i}
- \tkzDefPointBy[homothety = center O ratio 2](a\i) \tkzGetPoint{b\i}
- \tkzDefPointBy[homothety = center O ratio 3](a\i) \tkzGetPoint{c\i}
- \tkzDefPointBy[homothety = center O ratio 4](a\i) \tkzGetPoint{d\i}
- \tkzDrawCircle(b\i,a\i) \tkzDrawCircle(d\i,c\i)
- }
-\tkzDrawPolygon[color=red!50!Gold,ultra thick](d0,d1,d2,d3,d4,d5)
-\tkzDrawPolygon[color=red!50!Gold,ultra thick](b0,b2,b4)
-\tkzDrawSegments[color=red!50!Gold,ultra thick](b0,d5 b0,d0 b0,d1 %
- b2,d1 b2,d2 b2,d3 b4,d3 b4,d4 b4,d5)
-\tkzDrawPoints[color=red!50!Gold,size=20](b0,b2,b4,d0,d1,d2,d3,d4,d5)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsection{Flower of Life}
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale=.6]
- \tkzSetUpLine[line width=2pt,color=orange!80!black]
- \tkzSetUpCompass[line width=2pt,color=orange!80!black]
- \tkzDefPoint(0,0){O} \tkzDefPoint(2.25,0){A}
- \tkzDrawCircle(O,A)
- \foreach \i in {0,...,5}{
- \tkzDefPointBy[rotation= center O angle 30+60*\i](A) \tkzGetPoint{a\i}
- \tkzDefPointBy[rotation= center {a\i} angle 120](O) \tkzGetPoint{b\i}
- \tkzDefPointBy[rotation= center {a\i} angle 180](O) \tkzGetPoint{c\i}
- \tkzDefPointBy[rotation= center {c\i} angle 120](a\i) \tkzGetPoint{d\i}
- \tkzDefPointBy[rotation= center {c\i} angle 60](d\i) \tkzGetPoint{f\i}
- \tkzDefPointBy[rotation= center {d\i} angle 60](b\i) \tkzGetPoint{e\i}
- \tkzDefPointBy[rotation= center {f\i} angle 60](d\i) \tkzGetPoint{g\i}
- \tkzDefPointBy[rotation= center {d\i} angle 60](e\i) \tkzGetPoint{h\i}
- \tkzDefPointBy[rotation= center {e\i} angle 180](b\i) \tkzGetPoint{k\i}
-
- \tkzDrawCircle(a\i,O) \tkzDrawCircle(b\i,a\i)
- \tkzDrawCircle(c\i,a\i)
- \tkzDrawArc[rotate](f\i,d\i)(-120)
- \tkzDrawArc[rotate](e\i,d\i)(180)
- \tkzDrawArc[rotate](d\i,f\i)(180)
- \tkzDrawArc[rotate](g\i,f\i)(60)
- \tkzDrawArc[rotate](h\i,d\i)(60)
- \tkzDrawArc[rotate](k\i,e\i)(60) }
- \tkzClipCircle(O,f0)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\clearpage\newpage
-\subsection{Sangaku cercle et carré}
-Dans cet exemple, on peut voir comment utiliser un point sans le nommer
-
-\begin{center}
-\begin{tkzexample}[vbox]
-\begin{tikzpicture}[scale = 1]
- \tkzInit[xmax = 8] \tkzClip
- \tkzDefPoint(0,0){B}
- \tkzDefPoint(0,8){A}
- \tkzDefSquare(A,B)
- \tkzGetPoints{C}{D}
- \tkzDrawSquare(A,B)
- \tkzClipPolygon(A,B,C,D)
- \tkzDefPoint(4,8){F}
- \tkzDefPoint(4,0){E}
- \tkzDefPoint(4,4){Q}
- \tkzFillPolygon[color = green](A,B,C,D)
- \tkzDrawCircle[fill = orange](B,A)
- \tkzDrawCircle[fill = purple](E,B)
- \tkzTgtFromP(F,A)(B)
- \tkzInterLL(F,tkzFirstPointResult)(C,D)
- \tkzInterLL(A,tkzPointResult)(F,E)
- \tkzDrawCircle[fill = yellow](tkzPointResult,Q)
- \tkzDefPointBy[projection= onto B--A](tkzPointResult)
- \tkzDrawCircle[fill = blue!50!black](tkzPointResult,A)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\newpage
-\subsection{Constructions de certaines transformations \addbs{tkzShowTransformation}}
-
- \begin{NewMacroBox}{tkzShowTransformation}{\oarg{local options}\parg{pt1,pt2} ou \parg{pt1,pt2,pt3}}
-\emph{Ces constructions concernent les symétries orthogonales, les symétries centrales, les projections orthogonales et les translations. Plusieurs options permettent l'ajustement des constructions. L'idée de cette macro revient à \tkzimp{Yves Combe}}
-
-
-\medskip
-\begin{tabular}{lll}
-\toprule
-options & défaut & définition \\
-\midrule
-\TOline{reflection= over pt1--pt2}{reflection}{constructions d'une symétrie orthogonale}
-\TOline{symmetry=center pt}{reflection}{constructions d'une symétrie centrale}
-\TOline{projection=onto pt1--pt2}{reflection}{constructions d'une projection}
-\TOline{translation=from pt1 to pt2}{reflection}{constructions d'une translation}
-\TOline{K}{1}{cercle inscrit dans à un triangle }
-\TOline{length}{1}{longueur d'un arc}
-\TOline{ratio} {.5}{rapport entre les longueurs des arcs}
-\TOline{gap}{2}{placement le point de construction}
-\TOline{size}{1}{rayon d'un arc (voir bissectrice)}
- \bottomrule
-\end{tabular}
-
-\emph{Il faut ajouter bien sûr tous les styles de \TIKZ\ pour les tracés}
-\end{NewMacroBox}
-
-\subsubsection{Exemple d'utilisation de \tkzcname{tkzShowTransformation}}
-
-\begin{center}
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=.8]
- \tkzInit[xmin=-4,xmax=4,ymin=-5,ymax=5]
- \tkzGrid \tkzClip \tkzPoint(0,0){O} \tkzPoint(2,-2){A}
- \tkzDefPoint(70:4){B} \tkzDrawPoints(A,O,B)
- \tkzLabelPoints(A,O,B)
- \tkzDrawLine[add= 2 and 2](O,A)
- \tkzDefPointBy[translation=from O to A](B)
- \tkzGetPoint{C}
- \tkzDrawPoint[color=orange](C) \tkzLabelPoints(C)
- \tkzShowTransformation[translation=from O to A,%
- length=2](B)
- \tkzDrawVectors[color=orange](O,A B,C)
- \tkzDefPointBy[reflection=over O--A](B) \tkzGetPoint{E}
- \tkzDrawSegment[blue](B,E)
- \tkzDrawPoint[color=blue](E)\tkzLabelPoints(E)
- \tkzShowTransformation[reflection=over O--A,size=2](B)
- \tkzDefPointBy[symmetry=center O](B) \tkzGetPoint{F}
- \tkzDrawSegment[color=green](B,F)
- \tkzDrawPoint[color=green](F)\tkzLabelPoints(F)
- \tkzShowTransformation[symmetry=center O,%
- length=2](B)
- \tkzDefPointBy[projection=onto O--A](C)
- \tkzGetPoint{H}
- \tkzDrawSegments[color=magenta](C,H)
- \tkzDrawPoint[color=magenta](H)\tkzLabelPoints(H)
- \tkzShowTransformation[projection=onto O--A,%
- color=red,size=3,gap=-2](C)
-\end{tikzpicture}
-\end{tkzexample}
-\end{center}
-
-\subsubsection{Autre exemple d'utilisation de \tkzcname{tkzShowTransformation}}
-
-Vous retouverez cette figure, mais sans les traits de construction
-\begin{tkzexample}[vbox]
- \begin{tikzpicture}[scale=1.25]
- % on définit les points nécessaires
- \tkzInit[ymin=-3]
- \tkzClip[space=1]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(8,0){B}
- \tkzDefPoint(3.5,10){I}
- \tkzDefMidPoint(A,B) \tkzGetPoint{O}
- % syntaxe (liste de points) {liste des images} si vide on met des '
- \tkzDefPointBy[projection=onto A--B](I) \tkzGetPoint{J}
- \tkzInterLC(I,A)(O,A) \tkzGetPoints{M'}{M}
- \tkzInterLC(I,B)(O,A) \tkzGetPoints{N}{N'}
- \tkzDrawCircle[diameter](A,B)
- % attention plusieurs segments donc (s) espace entre les objets
- % virgule entre les points
- \tkzDrawSegments(I,A I,B A,B B,M A,N)
- % idem (s) et espace entre les objets
- \tkzMarkRightAngles(A,M,B A,N,B)
- \tkzDrawSegment[style=dashed,color=blue](I,J)
- % tkzShowTransformation il y a aussi tkzShowLine
- \tkzShowTransformation[projection=onto A--B,color=red,size=3,gap=-3](I)
- % on trace les points à la fin ainsi c'est plus propre, il n'y a rien
- % par-dessus
- \tkzDrawPoints[color=red](M,N)
- \tkzDrawPoints[color=blue](O,A,B,I)
- % \tkzLabelPoints version rapide de \tkzLabelPoint on met automatiquement
- % $O$ etc ... sinon on traite chaque point l'un après l'autre avec
- % \tkzLabelPoint(le point){son label}
- \tkzLabelPoints(O) \tkzLabelPoints[above right](N,I)
- \tkzLabelPoints[below left](M,A)
-\end{tikzpicture}
-\end{tkzexample}
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-vec.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-vec.tex
deleted file mode 100644
index c215ab8182..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-vec.tex
+++ /dev/null
@@ -1,129 +0,0 @@
-%!TEX root = /Users/ego/Boulot/TKZ/tkz-euclide/doc_fr/TKZdoc-euclide-main.tex
-
-
-\section{Définition de points à l'aide d'un vecteur}
-
-\subsection{\tkzcname{tkzDefPointWith}}
-Il y a plusieurs possibilités pour créer des points qui répondent à certaines conditions vectorielles.
-Cela peut se faire avec \tkzcname{tkzDefPointWith}. Le principe général est le suivant, deux points sont passés en argument, autrement dit un vecteur. Les différentes options permettent d'obtenir un nouveau point formant avec le premier point (sauf exception) un vecteur colinéaire ou bien orthogonal au premier vecteur. Ensuite la longueur est soit proportionnelle à celle du premier, ou bien proportionnelle à l'unité. Dans la mesure ou ce point n'est utilisé que temporairement, il n'est pas obligé de le nommer immédiatement. Le résultat est dans \tkzcname{tkzPointResult}. La macro \tkzNameMacro{tkzGetPoint} permet de récupérer le point et de le nommer différemment.
-
-\begin{NewMacroBox}{tkzDefPointWith}{\parg{pt1,pt2}}
- Il s'agit en fait de la définition d'un point répondant à des conditions vectorielles.
-
-\medskip
-
-\begin{tabular}{lll}
-\toprule
-arguments & définition & explication \\
-\midrule
-\TAline{(pt1,pt2)} {couple de points}{le résultat est un point dans \tkzcname{tkzPointResult} } \\
- \bottomrule
-\end{tabular}
-
-\medskip
-Dans ce qui suit, on suppose que le point est récupéré par \tkzNameMacro{tkzGetPoint\{C\}}
-
-\begin{tabular}{lll}
-\toprule
-options & exemple & explication \\
-\midrule
-\TOline{orthogonal}{[orthogonal](A,B)}{$AC=AB$ et $\overrightarrow{AC} \perp \overrightarrow{AB}$}
-\TOline{orthogonal normed}{[orthogonal normed](A,B)}{$AC=1$ et $\overrightarrow{AC} \perp \overrightarrow{AB}$ }
-\TOline{linear}{[linear](A,B)}{ $\overrightarrow{AC}=K \times \overrightarrow{AB}$}
-\TOline{linear normed}{[linear normed](A,B)}{$AC=K$ et $\overrightarrow{AC}=k\times \overrightarrow{AB}$ }
-\TOline{colinear= at \#1}{[colinear= at C](A,B)}{$\overrightarrow{CD}= \overrightarrow{AB}$ }
-\TOline{K}{[linear](A,B),K=2}{$\overrightarrow{AC}=2\times \overrightarrow{AB}$}
- \bottomrule
-\end{tabular}
-
-\medskip
-\noindent\emph{Pour la linéarité, K est obligatoire. Sa valeur par défaut est égale à 1.}
-
-
-\end{NewMacroBox}
-
-\subsubsection{\tkzcname{tkzDefPointWith} et \tkzname{orthogonal}}
-$K=-1$ c'est pour que $(\overrightarrow{AC},\overrightarrow{AB})$ détermine un angle positif. AB=AC puisque $|K|=1$
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}[scale=1.2]
- \tkzInit[xmax=5,ymax=4] \tkzGrid
- \tkzDefPoint(2,3){A} \tkzDefPoint(4,2){B}
- \tkzDefPointWith[orthogonal,K=-1](A,B)
- \tkzGetPoint{C}
- \tkzDrawPoints[color=red](A,B,C)
- \tkzLabelPoints[above right=3pt](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{\tkzcname{tkzDefPointWith} \tkzname{orthogonal normed}}
-AC=1
-
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}[scale=1.2]
- \tkzInit[ymin=1,xmax=5,ymax=5] \tkzGrid
- \tkzDefPoint(2,3){A} \tkzDefPoint(4,2){B}
- \tkzDefPointWith[orthogonal normed](A,B)
- \tkzGetPoint{C}
- \tkzDrawPoints[color=red](A,B,C)
- \tkzLabelPoints[above right=3pt](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{\tkzcname{tkzDefPointWith} et \tkzname{orthogonal normed}}
-$K=2$ donc AC=2.
-
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}[scale=1.2]
- \tkzInit[ymin=1,xmax=5,ymax=5] \tkzGrid
- \tkzDefPoint(2,3){A} \tkzDefPoint(4,2){B}
- \tkzDefPointWith[orthogonal normed,K=2](A,B)
- \tkzGetPoint{C}
- \tkzDrawPoints[color=red](A,B,C)
- \tkzLabelPoints[above right=3pt](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{\tkzcname{tkzDefPointWith} et \tkzname{colinear}}
-$K=2$ donc AC=2.
-
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}[scale=1.2]
- \tkzInit[xmax=5,ymax=4] \tkzGrid
- \tkzDefPoint(2,3){A} \tkzDefPoint(4,2){B}
- \tkzDefPoint(0,1){C}
- \tkzDefPointWith[colinear=at C](A,B)
- \tkzGetPoint{D}
- \tkzDrawPoints[color=red](A,B,C,D)
- \tkzLabelPoints[above right=3pt](A,B,C,D)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{\tkzcname{tkzDefPointWith} \tkzname{linear} }
- Ici $K=0.5$
-Cela revient à appliquer une homothétie ou bien encore une multiplication d'un vecteur par un réel. C est ici le milieu de $[AB]$.
-
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}[scale=1.2]
- \tkzInit[ymin=1,xmax=5,ymax=4] \tkzGrid
- \tkzDefPoint(1,3){A} \tkzDefPoint(4,2){B}
- \tkzDefPointWith[linear,K=0.5](A,B)
- \tkzGetPoint{C}
- \tkzDrawPoints[color=red](A,B,C)
- \tkzLabelPoints[above right=3pt](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{\tkzcname{tkzDefPointWith} \tkzname{linear normed}}
-Dans l'exemple suivant AC=1 et C appartient à $(AB)$.
-
-\begin{tkzexample}[latex=6cm]
-\begin{tikzpicture}[scale=1.2]
- \tkzInit[ymin=1,xmax=5,ymax=4] \tkzGrid
- \tkzDefPoint(1,3){A} \tkzDefPoint(4,2){B}
- \tkzDefPointWith[linear normed](A,B)
- \tkzGetPoint{C}
- \tkzDrawPoints[color=red](A,B,C)
- \tkzLabelPoints[above right=3pt](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-\endinput
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/euclide.ist b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/euclide.ist
deleted file mode 100644
index 935392d700..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/euclide.ist
+++ /dev/null
@@ -1,6 +0,0 @@
-heading_prefix "{\\bfseries\\hfil "
-heading_suffix "\\hfil}\\nopagebreak\n"
-headings_flag 1
-delim_0 "\\dotfill"
-delim_1 "\\dotfill"
-delim_2 "\\dotfill"
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide-screen.pdf b/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide-screen.pdf
deleted file mode 100644
index 265e54f22c..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide-screen.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/Makefile b/macros/latex/contrib/tkz/tkz-euclide/examples/Makefile
deleted file mode 100644
index e6d2c02491..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/examples/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-all: doc
-
-doc:
- for datei in $$(ls *tex | cut -d \. -f 1) ; do make $$datei.pdf ; done
-
-%.pdf: %.tex
- pdflatex --shell-escape $*.tex \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/how_to_compile.txt b/macros/latex/contrib/tkz/tkz-euclide/examples/how_to_compile.txt
new file mode 100644
index 0000000000..096675e543
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/how_to_compile.txt
@@ -0,0 +1,2 @@
+If you want to compile the file tkzeuclide-7-5-3.tex.
+You add \input{tkzeuclide-7-5-3} inside the environment "document" \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/info_euclide_tex.txt b/macros/latex/contrib/tkz/tkz-euclide/examples/info_euclide_tex.txt
deleted file mode 100644
index 40cb7e5d07..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/examples/info_euclide_tex.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-2011/06/01
-
-
-This archive contains all the examples of the documentation about tkz-euclide.
-
-You need to compile a file with pdflatex or pfdtex to have in the same directory the file tkzeuclpreamble.ltx. This file is present in the archive.
-
-You can also find Makefile in the archive. The way to use the Makefile is :
-
-$ cd <path of the archive>
-$ make
-
-Best regards
-
-Alain Matthes
-
- \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/main.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/main.tex
new file mode 100644
index 0000000000..831c906046
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/main.tex
@@ -0,0 +1,11 @@
+% !TEX TS-program = pdflatex
+% Created by Alain Matthes on 2020-01-23.
+% Copyright (c) 2020 __ AlterMundus __.
+
+\documentclass{standalone}
+%\usepackage{xcolor}
+\usepackage{tkz-euclide} %you can add tkz-fct etc.
+
+\begin{document}
+\input{tkzeuclide-5-0-0}
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-10-0-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-10-0-2.tex
new file mode 100644
index 0000000000..56d8ee7691
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-10-0-2.tex
@@ -0,0 +1,8 @@
+ \begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(1,3){A}
+ \tkzDefPoint(4,1){B}
+ \tkzDefPoint(0,0){O}
+ \tkzDrawPoint[color=red](A)
+ \tkzDrawPoint[fill=blue!20,draw=blue](B)
+ \tkzDrawPoint[color=green](O)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-10-0-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-10-0-3.tex
new file mode 100644
index 0000000000..9f1d52f4ce
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-10-0-3.tex
@@ -0,0 +1,14 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(2,3){A} \tkzDefPoint(5,-1){B}
+ \tkzDefPoint[label=below:$\mathcal{C}$,
+ shift={(2,3)}](-30:5.5){E}
+ \begin{scope}[shift=(A)]
+ \tkzDefPoint(30:5){C}
+ \end{scope}
+ \tkzCalcLength[cm](A,B)\tkzGetLength{rAB}
+ \tkzDrawCircle[R](A,\rAB cm)
+ \tkzDrawSegment(A,B)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(B,C)
+ \tkzLabelPoints[above](A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-1-1.tex
new file mode 100644
index 0000000000..476573282f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-1-1.tex
@@ -0,0 +1,14 @@
+\begin{tikzpicture}[scale=1]
+ \tkzInit[ymin=-4,ymax=6,xmin=-7,xmax=3]
+ \tkzClip
+ \tkzDefPoints{1.5/-1.5/C,-4.5/2/D}
+ \tkzDefPoint(-4,-2){O}
+ \tkzDefPoint(-2,-2){A}
+ \foreach \i in {0,1,...,4}{%
+ \pgfmathparse{0+\i * 72}
+ \tkzDefPointBy[rotation=center O angle \pgfmathresult](A) \tkzGetPoint{A\i}
+ \tkzDefPointBy[reflection = over C--D](A\i) \tkzGetPoint{A\i'}}
+ \tkzDrawPolygon(A0, A2, A4, A1, A3)
+ \tkzDrawPolygon(A0', A2', A4', A1', A3')
+ \tkzDrawLine[add= .5 and .5](C,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-2-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-2-1.tex
new file mode 100644
index 0000000000..da42148d17
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-2-1.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}[scale=1.25]
+ \tkzInit \tkzClip
+ \tkzDefPoint(0,1){A} \tkzDefPoint(6,3){B} \tkzDefPoint(3,6){C}
+ \tkzDrawLines[add= 0 and .3](A,B A,C)
+ \tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
+ \tkzDrawLine[add=0 and 0,color=magenta!50 ](A,a)
+ \tkzDefPointBy[homothety=center A ratio .5](a) \tkzGetPoint{a'}
+ \tkzDefPointBy[projection = onto A--B](a') \tkzGetPoint{k}
+ \tkzDrawSegment[blue](a',k)
+ \tkzDrawPoints(a,a',k,A)
+ \tkzDrawCircle(a',k)
+ \tkzLabelPoints(a,a',k,A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-3-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-3-1.tex
new file mode 100644
index 0000000000..b063a58112
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-3-1.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}[scale=1.5]
+ \tkzInit[xmin=-3,xmax=5,ymax=4] \tkzClip[space=.5]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(0,4){B}
+ \tkzDrawTriangle[pythagore](B,A) \tkzGetPoint{C}
+ \tkzDefLine[bisector](B,C,A) \tkzGetPoint{c}
+ \tkzInterLL(C,c)(A,B) \tkzGetPoint{D}
+ \tkzDrawSegment(C,D)
+ \tkzDrawCircle(D,A)
+ \tkzDefPointBy[projection=onto B--C](D) \tkzGetPoint{G}
+ \tkzInterLC(C,D)(D,A) \tkzGetPoints{E}{F}
+ \tkzDrawPoints(A,C,F) \tkzLabelPoints(A,C,F)
+ \tkzDrawPoints(B,D,E,G)
+ \tkzLabelPoints[above right](B,D,E,G)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-4-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-4-1.tex
new file mode 100644
index 0000000000..28f09e524c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-4-1.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}[scale=1.5]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(2,-1){A}
+ \tkzDefPoint(2,2){B}
+ \tkzDefPointsBy[symmetry=center O](B,A){}
+ \tkzDrawLine(A,A')
+ \tkzDrawLine(B,B')
+ \tkzMarkAngle[mark=s,arc=lll,size=2 cm,mkcolor=red](A,O,B)
+ \tkzLabelAngle[pos=1,circle,draw,fill=blue!10](A,O,B){$60^{\circ}$}
+ \tkzDrawPoints(A,B,O,A',B')
+ \tkzLabelPoints(A,B,O,A',B')
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-5-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-5-1.tex
new file mode 100644
index 0000000000..8a1ff71d7c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-5-1.tex
@@ -0,0 +1,15 @@
+ \begin{tikzpicture}[scale=1.2,rotate=-90]
+ \tkzInit
+ \tkzDefPoint(0,0){A} \tkzDefPoint(5,0){B}
+ \tkzDrawSegment(A,B)
+ \tkzDefPointBy[rotation= center A angle 60](B)
+ \tkzGetPoint{C}
+ \tkzDefPointBy[symmetry= center C](A)
+ \tkzGetPoint{D}
+ \tkzDrawSegment(A,tkzPointResult)
+ \tkzDrawLine(B,D)
+ \tkzDrawArc[delta=10](A,B)(C)
+ \tkzDrawArc[delta=10](B,C)(A)
+ \tkzDrawArc[delta=10](C,D)(D)
+ \tkzMarkRightAngle(D,B,A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-6-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-6-1.tex
new file mode 100644
index 0000000000..c76759cf1d
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-6-1.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}
+ \tkzDefPoint["$A$" left](1,5){A}
+ \tkzDefPoint["$B$" right](5,2){B}
+ \tkzDefPointBy[rotation in rad= center A angle pi/3](B)
+ \tkzGetPoint{C}
+
+ \tkzDrawSegment(A,B)
+ \tkzDrawPoints(A,B,C)
+ \tkzCompass[color=red](A,C)
+ \tkzCompass[color=red](B,C)
+
+ \tkzLabelPoints(C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-7-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-7-1.tex
new file mode 100644
index 0000000000..68c0cedbaa
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-7-1.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}[scale=2]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(1,0){A}
+ \tkzDrawCircle(O,A)
+ \tkzDefPoint(-1.5,-1.5){z1}
+ \tkzDefPoint(0.35,0){z2}
+ \tkzDrawPoints[color=black,fill=red,size=4](O,z1,z2)
+ \tkzDefPointBy[inversion = center O through A](z1)
+ \tkzGetPoint{Z1}
+ \tkzDefPointBy[inversion = center O through A](z2)
+ \tkzGetPoint{Z2}
+ \tkzDrawPoints[color=black,fill=red,size=4](Z1,Z2)
+ \tkzDrawSegments(z1,Z1 z2,Z2)
+ \tkzLabelPoints(O,A,z1,z2,Z1,Z2)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-7-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-7-2.tex
new file mode 100644
index 0000000000..89ef4d3b9a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-11-7-2.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}[scale=3]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(1,0){A}
+ \tkzDrawCircle(O,A)
+ \tkzDefPoint(0.5,-0.25){z1}
+ \tkzDefPoint(-0.5,-0.5){z2}
+ \tkzDefPointBy[inversion = center O through A](z1)
+ \tkzGetPoint{Z1}
+ \tkzCircumCenter(z1,z2,Z1)\tkzGetPoint{c}
+ \tkzDrawCircle(c,Z1)
+ \tkzDrawPoints[color=black,fill=red,size=4](O,z1,z2,Z1,O,A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-12-1-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-12-1-0.tex
new file mode 100644
index 0000000000..ac4964b5c1
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-12-1-0.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){A} \tkzDefPoint(4,2){A'}
+ \tkzDefPoint(3,0){B} \tkzDefPoint(1,2){C}
+ \tkzDefPointsBy[translation= from A to A'](B,C){}
+ \tkzDrawPolygon[color=blue](A,B,C)
+ \tkzDrawPolygon[color=red](A',B',C')
+ \tkzDrawPoints[color=blue](A,B,C)
+ \tkzDrawPoints[color=red](A',B',C')
+ \tkzLabelPoints(A,B,A',B')
+ \tkzLabelPoints[above](C,C')
+ \tkzDrawSegments[color = gray,->,
+ style=dashed](A,A' B,B' C,C')
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-1.tex
new file mode 100644
index 0000000000..11fa637627
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-1.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}[scale=1.2,
+ vect/.style={->,shorten >=3pt,>=latex'}]
+ \tkzDefPoint(2,3){A} \tkzDefPoint(4,2){B}
+ \tkzDefPoint(0,1){C}
+ \tkzDefPointWith[colinear=at C](A,B)
+ \tkzGetPoint{D}
+ \tkzDrawPoints[color=red](A,B,C,D)
+ \tkzLabelPoints[above right=3pt](A,B,C,D)
+ \tkzDrawSegments[vect](A,B C,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-10.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-10.tex
new file mode 100644
index 0000000000..f51b6990c9
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-10.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}[scale=1.2]
+ \tkzDefPoint(1,3){A} \tkzDefPoint(4,2){B}
+ \tkzDefPointWith[linear,K=0.5](A,B)
+ \tkzGetPoint{C}
+ \tkzDrawPoints[color=red](A,B,C)
+ \tkzDrawSegment(A,B)
+ \tkzLabelPoints[above right=3pt](A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-11.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-11.tex
new file mode 100644
index 0000000000..a348d741b2
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-11.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[scale=1.2]
+ \tkzDefPoint(1,3){A} \tkzDefPoint(4,2){B}
+ \tkzDefPointWith[linear normed](A,B)
+ \tkzGetPoint{C}
+ \tkzDrawPoints[color=red](A,B,C)
+ \tkzDrawSegment(A,B)
+ \tkzLabelSegment(A,C){$1$}
+ \tkzLabelPoints[above right=3pt](A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-2.tex
new file mode 100644
index 0000000000..464e81c6bd
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-2.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}[vect/.style={->,
+ shorten >=3pt,>=latex'}]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(5,0){B}
+ \tkzDefPoint(1,2){C}
+ \tkzDefPointWith[colinear=at C](A,B)
+ \tkzGetPoint{G}
+ \tkzDefPointWith[colinear=at C,K=0.5](A,B)
+ \tkzGetPoint{H}
+ \tkzLabelPoints(A,B,C,G,H)
+ \tkzDrawPoints(A,B,C,G,H)
+ \tkzDrawSegments[vect](A,B C,H)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-3.tex
new file mode 100644
index 0000000000..60d7f7a1bb
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-3.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}[vect/.style={->,
+ shorten >=3pt,>=latex'}]
+ \tkzDefPoint(1,1){A}
+ \tkzDefPoint(4,2){B}
+ \tkzDefPoint(2,2){CU}
+ \tkzDefPointWith[colinear=at C,K=sqrt(2)/2](A,B)
+ \tkzGetPoint{D}
+ \tkzDrawPoints[color=red](A,B,C,D)
+ \tkzDrawSegments[vect](A,B C,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-4.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-4.tex
new file mode 100644
index 0000000000..0f9366c2af
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-4.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[scale=1.2,
+ vect/.style={->,shorten >=3pt,>=latex'}]
+ \tkzDefPoint(2,3){A}
+ \tkzDefPoint(4,2){B}
+ \tkzDefPointWith[orthogonal,K=-1](A,B)
+ \tkzGetPoint{C}
+ \tkzDrawPoints[color=red](A,B,C)
+ \tkzLabelPoints[right=3pt](A,B,C)
+ \tkzDrawSegments[vect](A,B A,C)
+ \tkzMarkRightAngle(B,A,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-5.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-5.tex
new file mode 100644
index 0000000000..f4d040e71c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-5.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoint(1,2){O}
+ \tkzDefPoint(2,5){I}
+ \tkzDefPointWith[orthogonal](O,I)
+ \tkzGetPoint{J}
+ \tkzDefPointWith[orthogonal,K=-1](O,I)
+ \tkzGetPoint{K}
+ \tkzDrawSegment(O,I)
+ \tkzDrawSegments[->](O,J O,K)
+ \tkzMarkRightAngles(I,O,J I,O,K)
+ \tkzDrawPoints(O,I,J,K)
+ \tkzLabelPoints(O,I,J,K)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-6.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-6.tex
new file mode 100644
index 0000000000..068aeb6d69
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-6.tex
@@ -0,0 +1,19 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoints{0/0/A,6/0/B}
+ \tkzDefMidPoint(A,B)
+ \tkzGetPoint{I}
+ \tkzDefPointWith[orthogonal,K=-.75](B,A)
+ \tkzGetPoint{C}
+ \tkzInterLC(B,C)(B,I)
+ \tkzGetPoints{D}{F}
+ \tkzDuplicateSegment(B,F)(A,F)
+ \tkzGetPoint{E}
+ \tkzDrawArc[delta=10](F,E)(B)
+ \tkzInterLC(A,B)(A,E)
+ \tkzGetPoints{N}{M}
+ \tkzDrawArc[delta=10](A,M)(E)
+ \tkzDrawLines(A,B B,C A,F)
+ \tkzCompass(B,F)
+ \tkzDrawPoints(A,B,C,F,M,E)
+ \tkzLabelPoints(A,B,C,F,M,E)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-7.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-7.tex
new file mode 100644
index 0000000000..5025f0cdfe
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-7.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}[scale=1.2,
+ vect/.style={->,shorten >=3pt,>=latex'}]
+ \tkzDefPoint(2,1){A}
+ \tkzDefPoint(6,2){B}
+ \tkzDefPointWith[orthogonal,K=.5](A,B)
+ \tkzGetPoint{C}
+ \tkzDefPointWith[colinear=at C,K=.5](A,B)
+ \tkzGetPoint{D}
+ \tkzMarkRightAngle[fill=gray!20](B,A,C)
+ \tkzDrawSegments[vect](A,B A,C C,D)
+ \tkzDrawPoints(A,...,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-8.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-8.tex
new file mode 100644
index 0000000000..dbe2bb3b6e
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-8.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[scale=1.2,
+ vect/.style={->,shorten >=3pt,>=latex'}]
+ \tkzDefPoint(2,3){A} \tkzDefPoint(4,2){B}
+ \tkzDefPointWith[orthogonal normed](A,B)
+ \tkzGetPoint{C}
+ \tkzDrawPoints[color=red](A,B,C)
+ \tkzDrawSegments[vect](A,B A,C)
+ \tkzMarkRightAngle[fill=gray!20](B,A,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-9.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-9.tex
new file mode 100644
index 0000000000..4e69660705
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-1-9.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[scale=1.2,
+ vect/.style={->,shorten >=3pt,>=latex'}]
+ \tkzDefPoint(2,3){A} \tkzDefPoint(5,1){B}
+ \tkzDefPointWith[orthogonal normed,K=2](A,B)
+ \tkzGetPoint{C}
+ \tkzDrawPoints[color=red](A,B,C)
+ \tkzDrawCircle[R](A,2cm)
+ \tkzDrawSegments[vect](A,B A,C)
+ \tkzMarkRightAngle[fill=gray!20](B,A,C)
+ \tkzLabelPoints[above=3pt](A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-2-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-2-1.tex
new file mode 100644
index 0000000000..390379750b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-13-2-1.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(1,1){A}
+ \tkzDefPoint(4,2){B}
+ \tkzGetVectxy(A,B){v}
+ \tkzDefPoint(\vx,\vy){V}
+ \tkzDrawSegment[->,color=red](O,V)
+ \tkzDrawSegment[->,color=blue](A,B)
+ \tkzDrawPoints(A,B,O)
+ \tkzLabelPoints(A,B,O,V)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-2-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-2-0.tex
new file mode 100644
index 0000000000..5dd1da2c1a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-2-0.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=5,ymax=5]\tkzGrid
+ \tkzDefPoints{0/0/A,2/2/B,5/5/C}
+ \tkzDefRandPointOn[rectangle = A and B]
+ \tkzGetPoint{a}
+ \tkzDefRandPointOn[rectangle = B and C]
+ \tkzGetPoint{d}
+ \tkzDrawLine(a,d)
+ \tkzDrawPoints(A,B,C,a,d)
+ \tkzLabelPoints(A,B,C,a,d)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-3-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-3-0.tex
new file mode 100644
index 0000000000..d237b81332
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-3-0.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=5,ymax=5] \tkzGrid
+ \tkzDefPoints{0/0/A,2/2/B,3/3/C,5/5/D}
+ \tkzDefRandPointOn[segment = A--B]\tkzGetPoint{a}
+ \tkzDefRandPointOn[segment = C--D]\tkzGetPoint{d}
+ \tkzDrawPoints(A,B,C,D,a,d)
+ \tkzLabelPoints(A,B,C,D,a,d)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-4-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-4-0.tex
new file mode 100644
index 0000000000..d75b58c5f1
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-4-0.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=5,ymax=5] \tkzGrid
+ \tkzDefPoints{0/0/A,2/2/B,3/3/C,5/5/D}
+ \tkzDefRandPointOn[line = A--B]\tkzGetPoint{a}
+ \tkzDefRandPointOn[line = C--D]\tkzGetPoint{d}
+ \tkzDrawPoints(A,B,C,D,a,d)
+ \tkzLabelPoints(A,B,C,D,a,d)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-4-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-4-1.tex
new file mode 100644
index 0000000000..2545f20b5b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-4-1.tex
@@ -0,0 +1,20 @@
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,2/2/B,-1/-1/C}
+ \tkzDefCircle[through=](A,C)
+ \tkzGetLength{rAC}
+ \tkzDrawCircle(A,C)
+ \tkzDrawCircle(A,B)
+ \tkzDefRandPointOn[rectangle=A and B]
+ \tkzGetPoint{a}
+ \tkzDefRandPointOn[segment=A--B]
+ \tkzGetPoint{b}
+ \tkzDefRandPointOn[circle=center A radius \rAC pt]
+ \tkzGetPoint{d}
+ \tkzDefRandPointOn[circle through= center A through B]
+ \tkzGetPoint{c}
+ \tkzDefRandPointOn[disk through=center A through B]
+ \tkzGetPoint{e}
+ \tkzLabelPoints[above right=3pt](A,B,C,a,b,...,e)
+ \tkzDrawPoints[](A,B,C,a,b,...,e)
+ \tkzDrawRectangle(A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-5-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-5-1.tex
new file mode 100644
index 0000000000..35e28352eb
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-5-1.tex
@@ -0,0 +1,23 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoints{0/0/A,3/0/B}
+ \def\coeffK{2}
+ \tkzApolloniusCenter[K=\coeffK](A,B)
+ \tkzGetPoint{P}
+ \tkzDefApolloniusPoint[K=\coeffK](A,B)
+ \tkzGetPoint{M}
+ \tkzDefApolloniusRadius[K=\coeffK](A,B)
+ \tkzDrawCircle[R,color = blue!50!black,
+ fill=blue!20,
+ opacity=.4](tkzPointResult,\tkzLengthResult pt)
+ \tkzDefRandPointOn[circle through= center P through M]
+ \tkzGetPoint{N}
+ \tkzDrawPoints(A,B,P,M,N)
+ \tkzLabelPoints(A,B,P,M,N)
+ \tkzDrawSegments[red](N,A N,B)
+ \tkzDrawPoints(A,B)
+ \tkzDrawSegments[red](A,B)
+ \tkzLabelCircle[R,draw,fill=green!10,%
+ text width=3cm,%
+ text centered](P,\tkzLengthResult pt-20pt)(-120)%
+ { $MA/MB=\coeffK$\\$NA/NB=\coeffK$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-6-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-6-0.tex
new file mode 100644
index 0000000000..0d8639e9c5
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-6-0.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=5,ymax=5] \tkzGrid
+ \tkzDefPoints{3/2/A,1/1/B}
+ \tkzCalcLength[cm](A,B) \tkzGetLength{rAB}
+ \tkzDrawCircle[R](A,\rAB cm)
+ \tkzDefRandPointOn[circle = center A radius
+ \rAB cm]\tkzGetPoint{a}
+ \tkzDrawSegment(A,a)
+ \tkzDrawPoints(A,B,a)
+ \tkzLabelPoints(A,B,a)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-7-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-7-0.tex
new file mode 100644
index 0000000000..e04b606698
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-14-7-0.tex
@@ -0,0 +1,25 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoint(0,0){A}
+ \tkzDefRandPointOn[circle= center A radius 4cm]
+ \tkzGetPoint{B}
+ \tkzDrawPoints(A,B)
+ \tkzDefPointBy[rotation= center A angle 180](B)
+ \tkzGetPoint{C}
+ \tkzInterCC[R](A,4 cm)(B,4 cm)
+ \tkzGetPoints{I}{I'}
+ \tkzInterCC[R](A,4 cm)(I,4 cm)
+ \tkzGetPoints{J}{B}
+ \tkzInterCC(B,A)(C,B)
+ \tkzGetPoints{D}{E}
+ \tkzInterCC(D,B)(E,B)
+ \tkzGetPoints{M}{M'}
+ \tikzset{arc/.style={color=brown,style=dashed,delta=10}}
+ \tkzDrawArc[arc](C,D)(E)
+ \tkzDrawArc[arc](B,E)(D)
+ \tkzDrawCircle[color=brown,line width=.2pt](A,B)
+ \tkzDrawArc[arc](D,B)(M)
+ \tkzDrawArc[arc](E,M)(B)
+ \tkzCompasss[color=red,style=solid](B,I I,J J,C)
+ \tkzDrawPoints(B,C,D,E,M)
+ \tkzLabelPoints(A,B,M)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-1.tex
new file mode 100644
index 0000000000..d4fabaab5b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-1.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}[rotate=25]
+ \tkzInit
+ \tkzDefPoints{-2/0/A,1/2/B}
+ \tkzDefLine[mediator](A,B) \tkzGetPoints{C}{D}
+ \tkzDefPointWith[linear,K=.75](C,D) \tkzGetPoint{D}
+ \tkzDefMidPoint(A,B) \tkzGetPoint{I}
+ \tkzFillPolygon[color=orange!30](A,C,B,D)
+ \tkzDrawSegments(A,B C,D)
+ \tkzMarkRightAngle(B,I,C)
+ \tkzDrawSegments(D,B D,A)
+ \tkzDrawSegments(C,B C,A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-2.tex
new file mode 100644
index 0000000000..2eea88ee9c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-2.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}
+ \tkzDefPoints{-1.5/-0.25/A,1/-0.75/B,-0.7/1/C}
+ \tkzDrawLine(A,B)
+ \tkzLabelLine[pos=1.25,left](A,B){$(d_1)$}
+ \tkzDrawPoints(A,B,C)
+ \tkzDefLine[orthogonal=through C](B,A) \tkzGetPoint{c}
+ \tkzDrawLine(C,c)
+ \tkzLabelLine[pos=1.25,left](C,c){$(\delta)$}
+ \tkzInterLL(A,B)(C,c) \tkzGetPoint{I}
+ \tkzMarkRightAngle(C,I,B)
+ \tkzDefLine[parallel=through C](A,B) \tkzGetPoint{c'}
+ \tkzDrawLine(C,c')
+ \tkzLabelLine[pos=1.25,left](C,c'){$(d_2)$}
+ \tkzMarkRightAngle(I,C,c')
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-3.tex
new file mode 100644
index 0000000000..4049c8dc95
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-3.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[scale=1]
+ \tkzInit[xmin=-6,ymin=-6,xmax=6,ymax=6]
+ \tkzClip
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(132:4){A}
+ \tkzDefPoint(5,0){B}
+ \foreach \ang in {5,10,...,360}{%
+ \tkzDefPoint(\ang:5){M}
+ \tkzDefLine[mediator](A,M)
+ \tkzDrawLine[color=magenta,add= 4 and 4](tkzFirstPointResult,tkzSecondPointResult)}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-4.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-4.tex
new file mode 100644
index 0000000000..cb58fa3452
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-4.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}[scale=1.25]
+ \tkzInit[xmin=-6,ymin=-6,xmax=6,ymax=6]
+ \tkzClip
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(132:5){A}
+ \tkzDefPoint(4,0){B}
+ \foreach \ang in {5,10,...,360}{%
+ \tkzDefPoint(\ang:4){M}
+ \tkzDefLine[mediator](A,M)
+ \tkzDrawLine[color=magenta,
+ add= 4 and 4](tkzFirstPointResult,tkzSecondPointResult)}
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-5.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-5.tex
new file mode 100644
index 0000000000..60e7b1c695
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-5.tex
@@ -0,0 +1,18 @@
+ \begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(6,6){E}
+ \tkzDefRandPointOn[circle=center O radius 4cm]
+ \tkzGetPoint{A}
+ \tkzDefRandPointOn[circle=center O radius 4cm]
+ \tkzGetPoint{B}
+ \tkzDrawSegments(O,A O,B)
+ \tkzDrawCircle(O,A)
+ \tkzDefTangent[from with R=E](O,4cm)
+ \tkzGetSecondPoint{k}
+ \tkzDefTangent[at=A](O)
+ \tkzGetPoint{h}
+ \tkzDrawPoints(E)
+ \tkzDrawLine[add = .5 and .5](A,h)
+ \tkzDrawLine[add = .5 and .5](E,k)
+ \tkzMarkRightAngle[fill=red!30](O,A,h)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-6.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-6.tex
new file mode 100644
index 0000000000..1347aecde9
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-15-1-6.tex
@@ -0,0 +1,20 @@
+ \begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(0,0){B}
+ \tkzDefPoint(0,8){A}
+ \tkzDefSquare(A,B)
+ \tkzGetPoints{C}{D}
+ \tkzDrawSquare(A,B)
+ \tkzClipPolygon(A,B,C,D)
+ \tkzDefPoint(4,8){F}
+ \tkzDefPoint(4,0){E}
+ \tkzDefPoint(4,4){Q}
+ \tkzFillPolygon[color = green](A,B,C,D)
+ \tkzDrawCircle[fill = orange](B,A)
+ \tkzDrawCircle[fill = purple](E,B)
+ \tkzDefTangent[from=B](F,A)
+ \tkzInterLL(F,tkzFirstPointResult)(C,D)
+ \tkzInterLL(A,tkzPointResult)(F,E)
+ \tkzDrawCircle[fill = yellow](tkzPointResult,Q)
+ \tkzDefPointBy[projection= onto B--A](tkzPointResult)
+ \tkzDrawCircle[fill = blue!50!black](tkzPointResult,A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-1-1.tex
new file mode 100644
index 0000000000..7a40607519
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-1-1.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=-2,xmax=3,ymin=-2.25,ymax=2.25]
+ \tkzClip[space=.25]
+ \tkzDefPoint(0,0){A} \tkzDefPoint(2,0.5){B}
+ \tkzDefPoint(0,-1){C}\tkzDefPoint(2,-0.5){D}
+ \tkzDefPoint(0,1){E} \tkzDefPoint(2,1.5){F}
+ \tkzDefPoint(0,-2){G} \tkzDefPoint(2,-1.5){H}
+ \tkzDrawLine(A,B) \tkzDrawLine[add = 0 and .5](C,D)
+ \tkzDrawLine[add = 1 and 0](E,F)
+\tkzDrawLine[add = 0 and 0](G,H)
+ \tkzDrawPoints(A,B,C,D,E,F,G,H)
+ \tkzLabelPoints(A,B,C,D,E,F,G,H)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-1-2.tex
new file mode 100644
index 0000000000..6be6387813
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-1-2.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(2,0){B}
+ \tkzDefPoint(1,2){C}
+ \tkzDefPoint(3,2){D}
+ \tkzDrawLines(A,B C,D A,C B,D)
+ \tkzLabelPoints(A,B,C,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-1-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-1-3.tex
new file mode 100644
index 0000000000..18739883b8
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-1-3.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(3,1){I}
+ \tkzDefPoint(1,4){J}
+ \tkzDefLine[bisector](I,O,J)
+ \tkzGetPoint{i}
+ \tkzDefLine[bisector out](I,O,J)
+ \tkzGetPoint{j}
+ \tkzDrawLines[add = 1 and .5,color=red](O,I O,J)
+ \tkzDrawLines[add = 1 and .5,color=blue](O,i O,j)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-2-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-2-1.tex
new file mode 100644
index 0000000000..2ea57441cc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-16-2-1.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,3/0/B,1/1/C}
+ \tkzDefLine[perpendicular=through C,K=-1](A,B)
+ \tkzGetPoint{c}
+ \tkzDrawLines(A,B C,c)
+ \tkzLabelLine[pos=1.25,blue,right](C,c){$(\delta)$}
+ \tkzLabelLine[pos=-0.25,red,left](C,c){encore $(\delta)$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-1-1.tex
new file mode 100644
index 0000000000..cad85c29c5
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-1-1.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}[scale=1.5]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(2,1){B}
+ \tkzDrawSegment[color=red,thin](A,B)
+ \tkzDrawPoints(A,B)
+ \tkzLabelPoints(A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-1-2.tex
new file mode 100644
index 0000000000..2d79844eb2
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-1-2.tex
@@ -0,0 +1,9 @@
+ \begin{tikzpicture}
+ \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
+ \tkzDefTriangleCenter[euler](A,B,C)
+ \tkzGetPoint{E}
+ \tkzDrawCircle[euler,red](A,B,C)
+ \tkzDrawLines[add=.5 and .5](A,B A,C B,C)
+ \tkzDrawPoints(A,B,C,E)
+ \tkzLabelPoints(A,B,C,E)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-1-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-1-3.tex
new file mode 100644
index 0000000000..2cc2068bc3
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-1-3.tex
@@ -0,0 +1,21 @@
+ \begin{tikzpicture}[scale=2]
+ \pgfkeys{/pgf/number format/.cd,fixed,precision=2}
+ % Define the first two points
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(3,0){B}
+ \tkzDefPoint(1,1){C}
+ % Draw the triangle and the points
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A,B,C)
+ % Label the sides
+ \tkzCalcLength[cm](A,B)\tkzGetLength{ABl}
+ \tkzCalcLength[cm](B,C)\tkzGetLength{BCl}
+ \tkzCalcLength[cm](A,C)\tkzGetLength{ACl}
+ % add dim
+ \tkzDrawSegment[dim={\pgfmathprintnumber\BCl,
+ 6pt,transform shape}](C,B)
+ \tkzDrawSegment[dim={\pgfmathprintnumber\ACl,
+ 6pt,transform shape}](A,C)
+ \tkzDrawSegment[dim={\pgfmathprintnumber\ABl,
+ -6pt,transform shape}](A,B)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-2-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-2-0.tex
new file mode 100644
index 0000000000..e2efe5a28f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-2-0.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=-1,xmax=3,ymin=-1,ymax=2]
+ \tkzClip[space=1]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(2,1){B}
+ \tkzDefPoint(3,0){C}
+ \tkzDrawSegments(A,B B,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,C)
+ \tkzLabelPoints[above](B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-3-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-3-1.tex
new file mode 100644
index 0000000000..37c9305c21
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-3-1.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}
+ \tkzDefPoint(2,1){A}
+ \tkzDefPoint(6,4){B}
+ \tkzDrawSegment(A,B)
+ \tkzMarkSegment[color=Maroon,size=2pt,
+ pos=0.4, mark=z](A,B)
+ \tkzMarkSegment[color=blue,
+ pos=0.2, mark=oo](A,B)
+ \tkzMarkSegment[pos=0.8,
+ mark=s,color=red](A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-3-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-3-2.tex
new file mode 100644
index 0000000000..b532bdbe81
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-3-2.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}
+ \tkzDefPoint(2,1){A}
+ \tkzDefPoint(6,4){B}
+ \tkzDrawSegment(A,B)
+ \tkzMarkSegment[color=gray,
+ pos=0.2,mark=s|](A,B)
+ \tkzMarkSegment[color=gray,
+ pos=0.4,mark=s||](A,B)
+ \tkzMarkSegment[color=Maroon,
+ pos=0.6,mark=||](A,B)
+ \tkzMarkSegment[color=red,
+ pos=0.8,mark=|||](A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-4-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-4-1.tex
new file mode 100644
index 0000000000..a350f99961
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-4-1.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoints{0/0/O,2/2/A,4/0/B,6/2/C}
+ \tkzDrawSegments(O,A A,B)
+ \tkzDrawPoints(O,A,B)
+ \tkzDrawLine(O,B)
+ \tkzMarkSegments[mark=||,size=6pt](O,A A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-0.tex
new file mode 100644
index 0000000000..618e7d219a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-0.tex
@@ -0,0 +1,16 @@
+ \begin{tikzpicture}[scale=1]
+ \tkzDefPoint(0,0){A}\tkzDefPoint(3,2){B}
+ \tkzDefPoint(4,0){C}\tkzDefPoint(2.5,1){P}
+ \tkzDrawPolygon(A,B,C)
+ \tkzDefEquilateral(A,P) \tkzGetPoint{P'}
+ \tkzDefPointsBy[rotation=center A angle 60](P,B){P',C'}
+ \tkzDrawPolygon(A,P,P')
+ \tkzDrawPolySeg(P',C',A,P,B)
+ \tkzDrawSegment(C,P)
+ \tkzDrawPoints(A,B,C,C',P,P')
+ \tkzMarkSegments[mark=s|,size=6pt,
+ color=blue](A,P P,P' P',A)
+ \tkzMarkSegments[mark=||,color=orange](B,P P',C')
+ \tkzLabelPoints(A,C) \tkzLabelPoints[below](P)
+ \tkzLabelPoints[above right](P',C',B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-1.tex
new file mode 100644
index 0000000000..65bbee7805
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-1.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+\tkzInit
+\tkzDefPoint(0,0){A}
+\tkzDefPoint(6,0){B}
+\tkzDrawSegment(A,B)
+\tkzLabelSegment[above,pos=.8](A,B){$a$}
+\tkzLabelSegment[below,pos=.2](A,B){$4$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-2.tex
new file mode 100644
index 0000000000..2798efaf6d
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-2.tex
@@ -0,0 +1,26 @@
+\begin{tikzpicture}[rotate=-60]
+\tikzset{label seg style/.append style = {%
+ color = red,
+ }}
+\tkzDefPoint(0,1){A}
+\tkzDefPoint(2,4){C}
+\tkzDefPointWith[orthogonal normed,K=7](C,A)
+\tkzGetPoint{B}
+\tkzDrawPolygon[green!60!black](A,B,C)
+\tkzDrawLine[altitude,dashed,color=magenta](B,C,A)
+\tkzGetPoint{P}
+\tkzLabelPoint[left](A){$A$}
+\tkzLabelPoint[right](B){$B$}
+\tkzLabelPoint[above](C){$C$}
+\tkzLabelPoint[below](P){$P$}
+\tkzLabelSegment[](B,A){$c$}
+\tkzLabelSegment[swap](B,C){$a$}
+\tkzLabelSegment[swap](C,A){$b$}
+\tkzMarkAngles[size=1cm,
+ color=cyan,mark=|](C,B,A A,C,P)
+\tkzMarkAngle[size=0.75cm,
+ color=orange,mark=||](P,C,B)
+\tkzMarkAngle[size=0.75cm,
+ color=orange,mark=||](B,A,C)
+\tkzMarkRightAngles[german](A,C,B B,P,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-3.tex
new file mode 100644
index 0000000000..450c9c3fd1
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-17-5-3.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoints{0/0/O,2/2/A,4/0/B,6/2/C}
+ \tkzDrawSegments(O,A A,B)
+ \tkzDrawPoints(O,A,B)
+ \tkzDrawLine(O,B)
+ \tkzLabelSegments[color=red,above=4pt](O,A A,B){$a$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-1-1.tex
new file mode 100644
index 0000000000..d276812b75
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-1-1.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}[scale=.8]
+\tkzInit[xmax=5,ymax=3] \tkzClip[space=.5]
+ \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
+ \tkzDefTriangle[golden](A,B)\tkzGetPoint{C}
+ \tkzDrawPolygon(A,B,C) \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B) \tkzDrawBisector(A,C,B)
+ \tkzLabelPoints[above](C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-1-2.tex
new file mode 100644
index 0000000000..231cc7e7d6
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-1-2.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(4,0){B}
+ \tkzDefTriangle[equilateral](A,B)
+ \tkzGetPoint{C}
+ \tkzDrawPolygon(A,B,C)
+ \tkzDefTriangle[equilateral](B,A)
+ \tkzGetPoint{D}
+ \tkzDrawPolygon(B,A,D)
+ \tkzDrawPoints(A,B,C,D)
+ \tkzLabelPoints(A,B,C,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-1-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-1-3.tex
new file mode 100644
index 0000000000..d438bc7942
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-1-3.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
+ \tkzDefTriangle[euclide](A,B)\tkzGetPoint{C}
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoints[above](C)
+ \tkzDrawBisector(A,C,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-2-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-2-1.tex
new file mode 100644
index 0000000000..08a4e70069
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-2-1.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(4,0){B}
+ \tkzDrawTriangle[pythagore,fill=blue!30](A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-2-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-2-2.tex
new file mode 100644
index 0000000000..b315e5d77b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-2-2.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+\tkzInit[ymin=-2.5,ymax=0,xmin=-5,xmax=0]
+\tkzClip[space=.5]
+ \begin{scope}[rotate=-180]
+ \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
+ \tkzDrawTriangle[school,fill=red!30](A,B)
+ \end{scope}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-3-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-3-1.tex
new file mode 100644
index 0000000000..1accd70ba9
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-3-1.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[scale=1.25]
+ \tkzInit[xmin=0,xmax=4,ymin=0,ymax=3] \tkzClip
+ \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
+ \tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
+ \tkzSetUpLine[color=blue]
+ \tkzDrawLine[median](B,C,A)
+ \tkzDrawLine[median](C,A,B)
+ \tkzDrawLine[median](A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-4-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-4-1.tex
new file mode 100644
index 0000000000..d323b4e1de
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-4-1.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[scale=1.25]
+ \tkzInit[xmin=0,xmax=4,ymin=0,ymax=3] \tkzClip
+ \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
+ \tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
+ \tkzSetUpLine[color=magenta]
+ \tkzDrawLine[altitude](B,C,A)
+ \tkzDrawLine[altitude](C,A,B)
+ \tkzDrawLine[altitude](A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-5-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-5-1.tex
new file mode 100644
index 0000000000..7dabe9e81a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-18-5-1.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[scale=1.5]
+ \tkzInit[xmin=0,xmax=4,ymin=0,ymax=3] \tkzClip
+ \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
+ \tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
+ \tkzSetUpLine[color=purple]
+ \tkzDrawLine[bisector](B,C,A)
+ \tkzDrawLine[bisector](C,A,B)
+ \tkzDrawLine[bisector](A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-1.tex
new file mode 100644
index 0000000000..211cc71637
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-1.tex
@@ -0,0 +1,26 @@
+\begin{tikzpicture}[rotate=90,scale=1.25]
+ \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
+ \tkzDefSpcTriangle[medial,
+ name=M](A,B,C){_A,_B,_C}
+ \tkzDefTriangleCenter[euler](A,B,C)
+ \tkzGetPoint{N} % I= N nine points
+ \tkzDefTriangleCenter[ortho](A,B,C)
+ \tkzGetPoint{H}
+ \tkzDefMidPoint(A,H) \tkzGetPoint{E_A}
+ \tkzDefMidPoint(C,H) \tkzGetPoint{E_C}
+ \tkzDefMidPoint(B,H) \tkzGetPoint{E_B}
+ \tkzDefSpcTriangle[ortho,name=H](A,B,C){_A,_B,_C}
+ \tkzDrawPolygon[color=blue](A,B,C)
+ \tkzDrawCircle(N,E_A)
+ \tkzDrawSegments[blue](A,H_A B,H_B C,H_C)
+ \tkzDrawPoints(A,B,C,N,H)
+ \tkzDrawPoints[red](M_A,M_B,M_C)
+ \tkzDrawPoints[blue]( H_A,H_B,H_C)
+ \tkzDrawPoints[green](E_A,E_B,E_C)
+ \tkzAutoLabelPoints[center=N,font=\scriptsize]%
+(A,B,C,M_A,M_B,M_C,H_A,H_B,H_C,E_A,E_B,E_C)
+\tkzLabelPoints[font=\scriptsize](H,N)
+\tkzMarkSegments[mark=s|,size=3pt,
+ color=blue,line width=1pt](B,E_B E_B,H)
+ \tkzDrawPolygon[color=red](M_A,M_B,M_C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-2.tex
new file mode 100644
index 0000000000..dc76c83991
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-2.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[scale=1.5]
+ \tkzDefPoints{ 0/0/A,5/0/B,1/3/C}
+ \tkzDefSpcTriangle[in,name=I](A,B,C){a,b,c}
+ \tkzInCenter(A,B,C)\tkzGetPoint{I}
+ \tkzDrawPolygon[red](A,B,C)
+ \tkzDrawPolygon[blue](Ia,Ib,Ic)
+ \tkzDrawPoints(A,B,C,I,Ia,Ib,Ic)
+ \tkzLabelPoints(A,B,C,I,Ia,Ib,Ic)
+ \tkzDrawCircle[in](A,B,C)
+ \tkzDrawSegments[dashed](A,Ia B,Ib C,Ic)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-3.tex
new file mode 100644
index 0000000000..4c50c4d99c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-3.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}[scale=.5,rotate=60]
+ \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
+ \tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c}
+ \tkzDefSpcTriangle[extouch,name=T](A,B,C){a,b,c}
+ \tkzDrawCircles[red](Ja,Ta Jb,Tb Jc,Tc)
+ \tkzDrawLines[add=1 and 1](A,B B,C C,A)
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPolygon[blue](Ja,Jb,Jc)
+ \tkzDrawPoints(A,B,C)
+ \tkzDrawPoints[blue](Ja,Jb,Jc)
+ \tkzLabelPoints(A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-4.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-4.tex
new file mode 100644
index 0000000000..72d2ddff8b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-4.tex
@@ -0,0 +1,17 @@
+\begin{tikzpicture}[scale=.75,rotate=60]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(3,0){B}
+ \tkzDefPoint(0.5,2.5){C}
+ \tkzDefCircle[euler](A,B,C) \tkzGetPoint{N}
+ \tkzDefSpcTriangle[feuerbach,name=F](A,B,C){_a,_b,_c}
+ \tkzDefSpcTriangle[excentral,name=J](A,B,C){_a,_b,_c}
+ \tkzDefSpcTriangle[extouch,name=T](A,B,C){_a,_b,_c}
+ \tkzDrawCircle[red](N,F_a)
+ % \tkzDrawCircle[in](A,B,C)
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPolygon[blue](F_a,F_b,F_c)
+ \tkzDrawPoints[blue](J_a,J_b,J_c,F_a,F_b,F_c,A,B,C))
+ \tkzDrawCircles[purple](J_a,F_a J_b,F_b J_c,F_c)
+ \tkzAutoLabelPoints[center=N,dist=.3,
+ font=\scriptsize](A,B,C,F_a,F_b,F_c,J_a,J_b,J_c)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-5.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-5.tex
new file mode 100644
index 0000000000..384b9963a8
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-5.tex
@@ -0,0 +1,14 @@
+\begin{tikzpicture}[scale=.5,rotate=80]
+ \tkzDefPoints{0/0/A,6/0/B,1.8/4/C}
+ \tkzDefSpcTriangle[tangential,
+ name=T](A,B,C){a,b,c}
+ \tkzDrawPolygon[red](A,B,C)
+ \tkzDrawPolygon[blue](Ta,Tb,Tc)
+ \tkzDrawPoints[red](A,B,C)
+ \tkzDrawPoints[blue](Ta,Tb,Tc)
+ \tkzDefCircle[circum](A,B,C)
+ \tkzGetPoint{O}
+ \tkzDrawCircle(O,A)
+ \tkzLabelPoints[red](A,B,C)
+ \tkzLabelPoints[blue](Ta,Tb,Tc)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-6.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-6.tex
new file mode 100644
index 0000000000..2983b4249e
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-6.tex
@@ -0,0 +1,22 @@
+ \begin{tikzpicture}[scale=.4]
+ \tkzDefPoints{% x y name
+ 0 /0 /A,
+ 6 /0 /B,
+ 4 /6 /C}
+
+ \tkzDefSpcTriangle[ex](A,B,C){Ja,Jb,Jc}
+ \tkzDefSpcTriangle[extouch](A,B,C){Ta,Tb,Tc}
+ \tkzDrawPoints(Ja,Jb,Jc,Ta,Tb,Tc)
+ \tkzLabelPoints(Ja,Jb,Jc,Ta,Tb,Tc)
+ \tkzDrawPolygon[](A,B,C)
+ \tkzDefTriangleCenter[nagel](A,B,C)
+ \tkzGetPoint{Na}
+ \tkzDrawPoints(B,C,A,Na)
+ \tkzLabelPoints(B,C,A,Na)
+ \tkzShowBB\tkzClipBB
+ \tkzDrawLines[add=1 and 1,dashed](A,B B,C C,A)
+ \tkzDrawCircles[dashed](Ja,Ta Jb,Tb Jc,Tc)
+ \tkzDrawSegments[dashed](Ja,Ta Jb,Tb Jc,Tc)
+ \tkzMarkRightAngles[fill=gray!20](Ja,Ta,C
+ Jb,Tb,A Jc,Tc,B)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-7.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-7.tex
new file mode 100644
index 0000000000..3308bd3049
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-19-0-7.tex
@@ -0,0 +1,21 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoints{0/0/A,6/0/B,4/6/C}
+ \tkzDefSpcTriangle[centroid](A,B,C){Ma,Mb,Mc}
+ \tkzDefSpcTriangle[ex](A,B,C){Ja,Jb,Jc}
+ \tkzDefSpcTriangle[extouch](A,B,C){Ta,Tb,Tc}
+ \tkzDefTriangleCenter[mittenpunkt](A,B,C)
+ \tkzGetPoint{Mi}
+ \tkzDrawPoints(Ma,Mb,Mc,Ja,Jb,Jc)
+ \tkzClipBB
+ \tkzDrawPolygon[](A,B,C)
+ \tkzDrawLines[add=0 and 1](Ja,Ma
+ Jb,Mb Jc,Mc)
+ \tkzDrawLines[add=1 and 1](A,B A,C B,C)
+ \tkzDrawCircles[dashed](Ja,Ta Jb,Tb Jc,Tc)
+ \tkzDrawPoints(B,C,A,Mi)
+ \tkzLabelPoints(B,C,A,Mi)
+ \tkzLabelPoints[left](Mb)
+ \tkzLabelPoints(Ma,Mc,Jb,Jc)
+ \tkzLabelPoints[above left](Ja,Jc)
+ \tkzShowBB
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-1-1.tex
new file mode 100644
index 0000000000..ada53493da
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-1-1.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(0,0){A} \tkzDefPoint(3,0){B}
+ \tkzDefSquare(A,B)
+ \tkzDrawPolygon[color=red](A,B,tkzFirstPointResult,%
+ tkzSecondPointResult)
+ \tkzDefSquare(B,A)
+ \tkzDrawPolygon[color=blue](B,A,tkzFirstPointResult,%
+ tkzSecondPointResult)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-1-2.tex
new file mode 100644
index 0000000000..23e0a85573
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-1-2.tex
@@ -0,0 +1,6 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(3,0){B}
+ \tkzDefSquare(A,B) \tkzGetFirstPoint{C}
+ \tkzDrawPolygon[color=blue,fill=blue!30](A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-1-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-1-3.tex
new file mode 100644
index 0000000000..2ff0bbf24f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-1-3.tex
@@ -0,0 +1,20 @@
+\begin{tikzpicture}[scale=.5]
+\tkzInit
+\tkzDefPoint(0,0){C}
+\tkzDefPoint(4,0){A}
+\tkzDefPoint(0,3){B}
+\tkzDefSquare(B,A)\tkzGetPoints{E}{F}
+\tkzDefSquare(A,C)\tkzGetPoints{G}{H}
+\tkzDefSquare(C,B)\tkzGetPoints{I}{J}
+\tkzFillPolygon[fill = red!50 ](A,C,G,H)
+\tkzFillPolygon[fill = blue!50 ](C,B,I,J)
+\tkzFillPolygon[fill = purple!50](B,A,E,F)
+\tkzFillPolygon[fill = orange,opacity=.5](A,B,C)
+\tkzDrawPolygon[line width = 1pt](A,B,C)
+\tkzDrawPolygon[line width = 1pt](A,C,G,H)
+\tkzDrawPolygon[line width = 1pt](C,B,I,J)
+\tkzDrawPolygon[line width = 1pt](B,A,E,F)
+\tkzLabelSegment[](A,C){$a$}
+\tkzLabelSegment[](C,B){$b$}
+\tkzLabelSegment[swap](A,B){$c$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-3-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-3-1.tex
new file mode 100644
index 0000000000..2d6b95b7ff
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-3-1.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoints{0/0/A,3/0/B,4/2/C}
+ \tkzDefParallelogram(A,B,C)
+ \tkzGetPoint{D}
+ \tkzDrawPolygon(A,B,C,D)
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoints[above right](C,D)
+ \tkzDrawPoints(A,...,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-3-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-3-2.tex
new file mode 100644
index 0000000000..695e68316e
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-3-2.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoints{0/0/A,3/0/B,4/2/C}
+ \tkzDefPointWith[colinear= at C](B,A)
+ \tkzGetPoint{D}
+ \tkzDrawPolygon(A,B,C,D)
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoints[above right](C,D)
+ \tkzDrawPoints(A,...,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-3-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-3-3.tex
new file mode 100644
index 0000000000..7a0ec301b9
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-3-3.tex
@@ -0,0 +1,17 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzInit[xmax=14,ymax=10]
+ \tkzClip[space=1]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(8,0){B}
+ \tkzDefMidPoint(A,B)\tkzGetPoint{I}
+ \tkzDefSquare(A,B)\tkzGetPoints{C}{D}
+ \tkzDrawSquare(A,B)
+ \tkzInterLC(A,B)(I,C)\tkzGetPoints{G}{E}
+ \tkzDrawArc[style=dashed,color=gray](I,E)(D)
+ \tkzDefPointWith[colinear= at C](E,B)
+ \tkzGetPoint{F}
+ \tkzDrawPoints(C,D,E,F)
+ \tkzLabelPoints(A,B,C,D,E,F)
+ \tkzDrawSegments[style=dashed,color=gray]%
+(E,F C,F B,E)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-4-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-4-1.tex
new file mode 100644
index 0000000000..5c07f233fd
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-4-1.tex
@@ -0,0 +1,17 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzInit[ymax=8,xmax=8]
+ \tkzClip[space=.25] \tkzDefPoint(0,0){A}
+ \tkzDefPoint(8,0){B} \tkzDefPoint(4,0){I}
+ \tkzDefSquare(A,B) \tkzGetPoints{C}{D}
+ \tkzInterLC(I,C)(I,B) \tkzGetPoints{E'}{E}
+ \tkzInterLC(I,D)(I,B) \tkzGetPoints{F'}{F}
+ \tkzDefPointsBy[projection=onto A--B](E,F){H,G}
+ \tkzDefPointsBy[symmetry = center H](I){J}
+ \tkzDefSquare(H,J) \tkzGetPoints{K}{L}
+ \tkzDrawSector[fill=yellow](I,B)(A)
+ \tkzFillPolygon[color=red!40](H,E,F,G)
+ \tkzFillPolygon[color=blue!40](H,J,K,L)
+ \tkzDrawPolySeg[color=red](H,E,F,G)
+ \tkzDrawPolySeg[color=red](J,K,L)
+ \tkzDrawPoints(E,G,H,F,J,K,L)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-5-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-5-1.tex
new file mode 100644
index 0000000000..1e87cc36d3
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-5-1.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}[scale=.6]
+ \tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B}
+ \tkzDefGoldRectangle(A,B) \tkzGetPoints{C}{D}
+ \tkzDefGoldRectangle(B,C) \tkzGetPoints{E}{F}
+ \tkzDrawPolygon[color=red,fill=red!20](A,B,C,D)
+ \tkzDrawPolygon[color=blue,fill=blue!20](B,C,E,F)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-6-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-6-1.tex
new file mode 100644
index 0000000000..f654bcee82
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-6-1.tex
@@ -0,0 +1,35 @@
+\begin{tikzpicture} [rotate=18,scale=1.5]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(2.25,0.2){B}
+ \tkzDefPoint(2.5,2.75){C}
+ \tkzDefPoint(-0.75,2){D}
+ \tkzDrawPolygon[fill=black!50!blue!20!](A,B,C,D)
+ \tkzDrawSegments[style=dashed](A,C B,D)
+\end{tikzpicture}\end{tkzexample}
+
+
+\subsection{Clipper un polygone}
+ \begin{NewMacroBox}{tkzClipPolygon}{\oarg{local options}\parg{liste de points}}
+Cette macro permet de contenir les différentes tracés dans le polygone désigné.
+
+\medskip
+\begin{tabular}{lll}
+\toprule
+options & exemple & explication \\
+\midrule
+\TAline{\parg{pt1,pt2}}{\parg{A,B}}{}
+%\bottomrule
+ \end{tabular}
+\end{NewMacroBox}
+\subsubsection{Exemple simple avec \tkzcname{tkzClipPolygon}}
+\begin{tkzexample}[latex=7 cm,small]
+\begin{tikzpicture}[scale=1.25]
+ \tkzInit[xmin=0,xmax=4,ymin=0,ymax=3]
+ \tkzClip[space=.5]
+ \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
+ \tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
+ \tkzDefPoint(0,2){D} \tkzDefPoint(2,0){E}
+ \tkzDrawPoints(D,E) \tkzLabelPoints(D,E)
+ \tkzClipPolygon(A,B,C)
+ \tkzDrawLine[color=red](D,E)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-6-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-6-2.tex
new file mode 100644
index 0000000000..6c5492a5ee
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-6-2.tex
@@ -0,0 +1,20 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B}
+ \tkzDefSquare(A,B) \tkzGetPoints{C}{D}
+ \tkzDrawPolygon(B,C,D,A)
+ \tkzClipPolygon(B,C,D,A)
+ \tkzDefPoint(4,8){F}
+ \tkzDefTriangle[equilateral](C,D)
+ \tkzGetPoint{I}
+ \tkzDrawPoint(I)
+ \tkzDefPointBy[projection=onto B--C](I)
+ \tkzGetPoint{J}
+ \tkzInterLL(D,B)(I,J) \tkzGetPoint{K}
+ \tkzDefPointBy[symmetry=center K](B)
+ \tkzGetPoint{M}
+ \tkzDrawCircle(M,I)
+ \tkzCalcLength(M,I) \tkzGetLength{dMI}
+ \tkzFillPolygon[color = orange](A,B,C,D)
+ \tkzFillCircle[R,color = yellow](M,\dMI pt)
+ \tkzFillCircle[R,color = blue!50!black](F,4 cm)%
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-7-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-7-1.tex
new file mode 100644
index 0000000000..b69484368a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-20-7-1.tex
@@ -0,0 +1,17 @@
+\begin{tikzpicture}[scale=0.7]
+\tkzInit[xmin=-3,xmax=6,ymin=-1,ymax=6]
+\tkzDrawX[noticks]
+\tkzDrawY[noticks]
+\tkzDefPoint(0,0){O} \tkzDefPoint(4,2){A}
+\tkzDefPoint(-2,6){B}
+\tkzPointShowCoord[xlabel=$x$,ylabel=$y$](A)
+\tkzPointShowCoord[xlabel=$x'$,ylabel=$y'$,%
+ ystyle={right=2pt}](B)
+\tkzDrawSegments[->](O,A O,B)
+\tkzLabelSegment[above=3pt](O,A){$\vec{u}$}
+\tkzLabelSegment[above=3pt](O,B){$\vec{v}$}
+\tkzMarkAngle[fill= yellow,size=1.8cm,%
+ opacity=.5](A,O,B)
+\tkzFillPolygon[red!30,opacity=0.25](A,B,O)
+\tkzLabelAngle[pos = 1.5](A,O,B){$\alpha$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-1.tex
new file mode 100644
index 0000000000..0ad9d2a9b6
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-1.tex
@@ -0,0 +1,18 @@
+ \begin{tikzpicture}[scale=1]
+ \tkzDefPoint(0,4){A}
+ \tkzDefPoint(2,2){B}
+ \tkzDefMidPoint(A,B) \tkzGetPoint{I}
+ \tkzDefRandPointOn[segment = I--B]
+ \tkzGetPoint{C}
+ \tkzDefCircle[through](A,C)
+ \tkzGetLength{rACpt}
+ \tkzpttocm(\rACpt){rACcm}
+ \tkzDrawCircle(A,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B,C)
+ \tkzLabelCircle[draw,fill=Gold,%
+ text width=3cm,text centered,
+ font=\scriptsize](A,C)(-90)%
+ {La mesure du rayon est :
+ \rACpt pt soit \rACcm cm}
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-2.tex
new file mode 100644
index 0000000000..5fbdc3260f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-2.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoint(2,2){A}
+ \tkzDefPoint(5,-2){B}
+ \tkzDefPoint(1,-2){C}
+ \tkzDefCircle[in](A,B,C)
+ \tkzGetPoint{I} \tkzGetLength{rIN}
+ \tkzDefCircle[circum](A,B,C)
+ \tkzGetPoint{K} \tkzGetLength{rCI}
+ \tkzDrawPoints(A,B,C,I,K)
+ \tkzDrawCircle[R,blue](I,\rIN pt)
+ \tkzDrawCircle[R,red](K,\rCI pt)
+ \tkzLabelPoints[below](B,C)
+ \tkzLabelPoints[above left](A,I,K)
+ \tkzDrawPolygon(A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-3.tex
new file mode 100644
index 0000000000..df2e141919
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-3.tex
@@ -0,0 +1,16 @@
+\begin{tikzpicture}[scale=0.75]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(4,0){B}
+ \tkzDefCircle[apollonius,K=2](A,B)
+ \tkzGetPoint{K1}
+ \tkzGetLength{rAp}
+ \tkzDrawCircle[R,color = blue!50!black,
+ fill=blue!20,opacity=.4](K1,\rAp pt)
+ \tkzDefCircle[apollonius,K=3](A,B)
+ \tkzGetPoint{K2} \tkzGetLength{rAp}
+ \tkzDrawCircle[R,color=red!50!black,
+ fill=red!20,opacity=.4](K2,\rAp pt)
+ \tkzLabelPoints[below](A,B,K1,K2)
+ \tkzDrawPoints(A,B,K1,K2)
+ \tkzDrawLine[add=.2 and 1](A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-4.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-4.tex
new file mode 100644
index 0000000000..f68e7e7026
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-4.tex
@@ -0,0 +1,22 @@
+\begin{tikzpicture}[scale=.6]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(3,0){B}
+ \tkzDefPoint(1,2.5){C}
+ \tkzDefCircle[ex](A,B,C) \tkzGetPoint{I}
+ \tkzGetLength{rI}
+ \tkzDefCircle[ex](C,A,B) \tkzGetPoint{J}
+ \tkzGetLength{rJ}
+ \tkzDefCircle[ex](B,C,A) \tkzGetPoint{K}
+ \tkzGetLength{rK}
+ \tkzDefCircle[in](B,C,A) \tkzGetPoint{O}
+ \tkzGetLength{rO}
+ \tkzDrawLines[add=1.5 and 1.5](A,B A,C B,C)
+ \tkzDrawPoints(I,J,K)
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPolygon[dashed](I,J,K)
+ \tkzDrawCircle[R,blue!50!black](O,\rO)
+ \tkzDrawSegments[dashed](A,K B,J C,I)
+ \tkzDrawPoints(A,B,C)
+ \tkzDrawCircles[R](J,{\rJ} I,{\rI} K,{\rK})
+ \tkzLabelPoints(A,B,C,I,J,K)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-5.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-5.tex
new file mode 100644
index 0000000000..bce823f482
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-5.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoint(5,3.5){A}
+ \tkzDefPoint(0,0){B} \tkzDefPoint(7,0){C}
+ \tkzDefCircle[euler](A,B,C)
+ \tkzGetPoint{E} \tkzGetLength{rEuler}
+ \tkzDrawPoints(A,B,C,E)
+ \tkzDrawCircle[R,blue](E,\rEuler pt)
+ \tkzDrawPolygon(A,B,C)
+ \tkzLabelPoints[below](B,C)
+ \tkzLabelPoints[left](A,E)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-6.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-6.tex
new file mode 100644
index 0000000000..0ff0838882
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-6.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(1,0){A}
+ \tkzDrawCircle(O,A)
+ \tkzDefPoint(-1.5,-1.5){z1}
+ \tkzDefPoint(1.5,-1.25){z2}
+ \tkzDefCircle[orthogonal through=z1 and z2](O,A)
+ \tkzGetPoint{c}
+ \tkzDrawCircle[thick,color=red](tkzPointResult,z1)
+ \tkzDrawPoints[fill=red,color=black,
+ size=4](O,A,z1,z2,c)
+ \tkzLabelPoints(O,A,z1,z2,c)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-7.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-7.tex
new file mode 100644
index 0000000000..e7b34c99f3
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-1-7.tex
@@ -0,0 +1,14 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoints{0/0/O,1/0/A}
+ \tkzDefPoints{1.5/1.25/B,-2/-3/C}
+ \tkzDefCircle[orthogonal from=B](O,A)
+ \tkzGetPoints{z1}{z2}
+ \tkzDefCircle[orthogonal from=C](O,A)
+ \tkzGetPoints{t1}{t2}
+ \tkzDrawCircle(O,A)
+ \tkzDrawCircle[thick,color=red](B,z1)
+ \tkzDrawCircle[thick,color=red](C,t1)
+ \tkzDrawPoints(t1,t2,C)
+ \tkzDrawPoints(z1,z2,O,A,B)
+ \tkzLabelPoints(O,A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-2-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-2-1.tex
new file mode 100644
index 0000000000..ee96507851
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-2-1.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(6,6){E}
+ \tkzDefRandPointOn[circle=center O radius 4cm]
+ \tkzGetPoint{A}
+ \tkzDrawSegment(O,A)
+ \tkzDrawCircle(O,A)
+ \tkzDefTangent[at=A](O)
+ \tkzGetPoint{h}
+ \tkzDrawLine[add = 4 and 3](A,h)
+ \tkzMarkRightAngle[fill=red!30](O,A,h)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-2-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-2-2.tex
new file mode 100644
index 0000000000..adf7aee1df
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-2-2.tex
@@ -0,0 +1,14 @@
+\begin{tikzpicture}[scale=0.75]
+ \tkzDefPoint(3,3){c}
+ \tkzDefPoint(6,3){a0}
+ \tkzRadius=1 cm
+ \tkzDrawCircle[R](c,\tkzRadius)
+ \foreach \an in {0,10,...,350}{
+ \tkzDefPointBy[rotation=center c angle \an](a0)
+ \tkzGetPoint{a}
+ \tkzDefTangent[from with R = a](c,\tkzRadius)
+ \tkzGetPoints{e}{f}
+ \tkzDrawLines[color=magenta](a,f a,e)
+ \tkzDrawSegments(c,e c,f)
+ }%
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-2-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-2-3.tex
new file mode 100644
index 0000000000..a39c9a1f22
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-21-2-3.tex
@@ -0,0 +1,11 @@
+ \begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(100:8){A}\tkzDefPoint(50:8){B}
+ \tkzDefPoint(0,0){C} \tkzDefPoint(0,4){R}
+ \tkzDrawCircle(C,R)
+ \tkzDefTangent[from = A](C,R) \tkzGetPoints{D}{E}
+ \tkzDefTangent[from = B](C,R) \tkzGetPoints{F}{G}
+ \tkzDrawSector[fill=blue!80!black,opacity=0.5](A,D)(E)
+ \tkzFillSector[color=red!80!black,opacity=0.5](B,F)(G)
+ \tkzInterCC(A,D)(B,F) \tkzGetSecondPoint{I}
+ \tkzDrawPoint[color=black](I)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-1-1.tex
new file mode 100644
index 0000000000..43155310bf
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-1-1.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(3,0){A}
+ % cercle de centre O et passant par A
+ \tkzDrawCircle[color=blue,style=dashed](O,A)
+ % cercle de diamètre $[OA]$
+ \tkzDrawCircle[diameter,color=red,%
+ line width=2pt,fill=red!40,%
+ opacity=.5](O,A)
+ % cercle de centre O et de rayon = exp(1) cm
+ \edef\rayon{\fpeval{exp(1)}}
+ \tkzDrawCircle[R,color=orange](O,\rayon cm)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-1.tex
new file mode 100644
index 0000000000..70022aba09
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-1.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(2,0){B}
+ \tkzDefPoint(3,2){C}
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawCircles(A,B B,C C,A)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-2.tex
new file mode 100644
index 0000000000..baa5197b8d
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-2.tex
@@ -0,0 +1,6 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDrawCircles[R](A,1cm A,2cm A,3cm)
+ \tkzDrawPoint(A)
+ \tkzLabelPoints(A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-3.tex
new file mode 100644
index 0000000000..1cdae93240
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-3.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}[scale=1]
+\tkzDefPoints{0/0/A,4/0/B,1/2.5/C}
+\tkzDrawPolygon(A,B,C)
+\tkzDefCircle[ex](B,C,A)
+\tkzGetPoint{Jc} \tkzGetSecondPoint{Tc}
+\tkzGetLength{rJc}
+\tkzDrawCircle[R](Jc,{\rJc pt})
+\tkzDrawLines[add=0 and 1](C,A C,B)
+\tkzDrawSegment(Jc,Tc)
+\tkzMarkRightAngle(Jc,Tc,B)
+\tkzDrawPoints(A,B,C,Jc,Tc)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-4.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-4.tex
new file mode 100644
index 0000000000..8949866765
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-2-4.tex
@@ -0,0 +1,8 @@
+ \begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(2,0){A}
+ \foreach \ang in {5,10,...,360}{%
+ \tkzDefPoint(\ang:2){M}
+ \tkzDrawCircle(M,A)
+ }
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-4-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-4-1.tex
new file mode 100644
index 0000000000..19d2ee8b32
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-4-1.tex
@@ -0,0 +1,19 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=0,xmax = 6,ymin=0,ymax=6]
+ \tkzDefPoint(0,0){B} \tkzDefPoint(6,0){C}%
+ \tkzDefSquare(B,C) \tkzGetPoints{D}{A}
+ \tkzClipPolygon(B,C,D,A)
+ \tkzDefMidPoint(A,D) \tkzGetPoint{F}
+ \tkzDefMidPoint(B,C) \tkzGetPoint{E}
+ \tkzDefMidPoint(B,D) \tkzGetPoint{Q}
+ \tkzDefTangent[from = B](F,A) \tkzGetPoints{G}{H}
+ \tkzInterLL(F,G)(C,D) \tkzGetPoint{J}
+ \tkzInterLL(A,J)(F,E) \tkzGetPoint{K}
+ \tkzDefPointBy[projection=onto B--A](K)
+ \tkzGetPoint{M}
+ \tkzFillPolygon[color = green](A,B,C,D)
+ \tkzFillCircle[color = orange](B,A)
+ \tkzFillCircle[color = blue!50!black](M,A)
+ \tkzFillCircle[color = purple](E,B)
+ \tkzFillCircle[color = yellow](K,Q)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-5-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-5-1.tex
new file mode 100644
index 0000000000..693ccd8b0a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-5-1.tex
@@ -0,0 +1,14 @@
+ \begin{tikzpicture}
+ \tkzInit[xmax=5,ymax=5]
+ \tkzGrid \tkzClip
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(2,2){O}
+ \tkzDefPoint(4,4){B}
+ \tkzDefPoint(6,6){C}
+ \tkzDrawPoints(O,A,B,C)
+ \tkzLabelPoints(O,A,B,C)
+ \tkzDrawCircle(O,A)
+ \tkzClipCircle(O,A)
+ \tkzDrawLine(A,C)
+ \tkzDrawCircle[fill=red!20,opacity=.5](C,O)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-6-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-6-1.tex
new file mode 100644
index 0000000000..439677fb19
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-22-6-1.tex
@@ -0,0 +1,16 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){O} \tkzDefPoint(2,0){N}
+ \tkzDefPointBy[rotation=center O angle 50](N)
+ \tkzGetPoint{M}
+ \tkzDefPointBy[rotation=center O angle -20](N)
+ \tkzGetPoint{P}
+ \tkzDefPointBy[rotation=center O angle 125](N)
+ \tkzGetPoint{P'}
+ \tkzLabelCircle[above=4pt](O,N)(120){$\mathcal{C}$}
+ \tkzDrawCircle(O,M)
+ \tkzFillCircle[color=blue!20,opacity=.4](O,M)
+ \tkzLabelCircle[R,draw,fill=Gold,%
+ text width=2cm,text centered](O,3 cm)(-60)%
+ {Le cercle\\ $\mathcal{C}$}
+ \tkzDrawPoints(M,P)\tkzLabelPoints[right](M,P)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-1-1.tex
new file mode 100644
index 0000000000..1b3105765a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-1-1.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[rotate=-45,scale=.75]
+ \tkzDefPoint(2,1){A}
+ \tkzDefPoint(6,5){B}
+ \tkzDefPoint(3,6){C}
+ \tkzDefPoint(5,2){D}
+ \tkzDrawLines(A,B C,D)
+ \tkzInterLL(A,B)(C,D)
+ \tkzGetPoint{I}
+ \tkzDrawPoints[color=blue](A,B,C,D)
+ \tkzDrawPoint[color=red](I)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-1.tex
new file mode 100644
index 0000000000..98b596114f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-1.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzInit[xmax=5,ymax=4]
+ \tkzDefPoint(1,1){O}
+ \tkzDefPoint(0,4){A}
+ \tkzDefPoint(5,0){B}
+ \tkzDefPoint(3,3){C}
+ \tkzInterLC(A,B)(O,C) \tkzGetPoints{D}{E}
+ \tkzDrawCircle(O,C)
+ \tkzDrawPoints[color=blue](O,A,B,C)
+ \tkzDrawPoints[color=red](D,E)
+ \tkzDrawLine(A,B)
+ \tkzLabelPoints[above right](O,A,B,C,D,E)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-2.tex
new file mode 100644
index 0000000000..6983d24ed0
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-2.tex
@@ -0,0 +1,22 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(8,0){B}
+ \tkzDefMidPoint(A,B)
+ \tkzGetPoint{O}
+ \tkzDrawCircle(O,B)
+ \tkzDefMidPoint(O,B)
+ \tkzGetPoint{O'}
+ \tkzDrawCircle(O',B)
+ \tkzDefTangent[from=A](O',B)
+ \tkzGetSecondPoint{E}
+ \tkzInterLC(A,E)(O,B)
+ \tkzGetSecondPoint{D}
+ \tkzDefPointBy[projection=onto A--B](D)
+ \tkzGetPoint{F}
+ \tkzMarkRightAngle(D,F,B)
+ \tkzDrawSegments(A,D A,B D,F)
+ \tkzDrawSegments[color=red,line width=1pt,
+ opacity=.4](A,O F,B)
+ \tkzDrawPoints(A,B,O,O',E,D)
+ \tkzLabelPoints(A,B,O,O',E,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-3.tex
new file mode 100644
index 0000000000..2f4e52bac0
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-3.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(0,8){A} \tkzDefPoint(8,0){B}
+ \tkzDefPoint(8,8){C} \tkzDefPoint(4,4){I}
+ \tkzDefPoint(2,7){E} \tkzDefPoint(6,4){F}
+ \tkzDrawCircle[R](I,4 cm)
+ \tkzInterLC[R](A,C)(I,4 cm) \tkzGetPoints{I1}{I2}
+ \tkzInterLC[R](B,C)(I,4 cm) \tkzGetPoints{J1}{J2}
+ \tkzInterLC[R](A,B)(I,4 cm) \tkzGetPoints{K1}{K2}
+ \tkzDrawPoints[color=red](I1,J1,K1,K2)
+ \tkzDrawLines(A,B B,C A,C)
+ \tkzInterLC[R](E,F)(I,4 cm) \tkzGetPoints{I2}{J2}
+ \tkzDrawPoints[color=blue](E,F)
+ \tkzDrawPoints[color=red](I2,J2)
+ \tkzDrawLine(I2,J2)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-4.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-4.tex
new file mode 100644
index 0000000000..3d1924a2f3
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-4.tex
@@ -0,0 +1,19 @@
+\begin{tikzpicture}[scale=1.25]
+ \tkzDefPoint(0,1){J}
+ \tkzDefPoint(0,0){O}
+ \tkzDrawArc[R,line width=1pt,color=red](J,2.5 cm)(180,0)
+ \foreach \i in {0,-5,-10,...,-85,-90}{
+ \tkzDefPoint({2.5*cosd(\i)},{1+2.5*sind(\i)}){P}
+ \tkzDrawSegment[color=orange](J,P)
+ \tkzInterLC[R](P,J)(O,1 cm)
+ \tkzGetPoints{M}{N}
+ \tkzDrawPoints[red](N)
+ }
+ \foreach \i in {-90,-95,...,-175,-180}{
+ \tkzDefPoint({2.5*cosd(\i)},{1+2.5*sind(\i)}){P}
+ \tkzDrawSegment[color=orange](J,P)
+ \tkzInterLC[R](P,J)(O,1 cm)
+ \tkzGetPoints{M}{N}
+ \tkzDrawPoints[red](M)
+ }
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-6.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-6.tex
new file mode 100644
index 0000000000..93125ba98f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-6.tex
@@ -0,0 +1,12 @@
+ \begin{tikzpicture}
+ \tkzDefPoint(2,2){A}
+ \tkzDefPoint(5,4){B}
+ \tkzDefPoint(4,4){O}
+ \edef\tkzLen{\fpeval{0.0002/0.0001}}
+ \tkzDrawCircle[R](O,\tkzLen cm)
+ \tkzInterLC[R](A,B)(O, \tkzLen cm)
+ \tkzGetPoints{I}{J}
+ \tkzDrawPoints[color=blue](A,B)
+ \tkzDrawPoints[color=red](I,J)
+ \tkzDrawLine(I,J)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-7.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-7.tex
new file mode 100644
index 0000000000..21775947e7
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-7.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}
+ \tkzDefPoints{2/2/A,5/4/B,4/4/0}
+ \tkzLength=2cm
+ \tkzDrawCircle[R](O,\tkzLength pt)
+ \tkzInterLC[R](A,B)(O,\tkzLength pt)
+ \tkzGetPoints{I}{J}
+ \tkzDrawPoints[color=blue](A,B)
+ \tkzDrawPoints[color=red](I,J)
+ \tkzDrawLine(I,J)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-8.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-8.tex
new file mode 100644
index 0000000000..d25d796e12
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-8.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoints{0/0/A,8/0/B,4/0/I}
+ \tkzDefSquare(A,B) \tkzGetPoints{C}{D}
+ \tkzInterLC(I,C)(I,B)\tkzGetPoints{E'}{E}
+ \tkzInterLC(I,D)(I,B)\tkzGetPoints{F'}{F}
+ \tkzDefPointsBy[projection = onto A--B](E,F){H,G}
+ \tkzDefPointsBy[symmetry = center H](I){J}
+ \tkzDefSquare(H,J)\tkzGetPoints{K}{L}
+ \tkzDrawSector[fill=Maroon!30](I,B)(A)
+ \tkzFillPolygon[color=red!40](H,E,F,G)
+ \tkzFillPolygon[color=blue!40](H,J,K,L)
+ \tkzDrawPolySeg[color=red](H,E,F,G)
+ \tkzDrawPolySeg[color=red](J,K,L)
+ \tkzDrawPoints(E,G,H,F,J,K,L)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-9.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-9.tex
new file mode 100644
index 0000000000..4312b4957a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-2-9.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[scale=.75]
+\tkzDefPoints{0/0/A,4/0/B,1/1/D,2/0/E}
+\tkzDefTriangle[equilateral](A,B)
+\tkzGetPoint{C}
+\tkzDrawCircle(C,A)
+\tkzInterLC[with nodes](D,E)(C,A,B)
+\tkzGetPoints{F}{G}
+\tkzDrawPolygon(A,B,C)
+\tkzDrawPoints(A,...,G)
+\tkzDrawLine(F,G)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-1.tex
new file mode 100644
index 0000000000..4b7811624a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-1.tex
@@ -0,0 +1,14 @@
+\begin{tikzpicture}[trim left=-1cm,scale=.5]
+ \tkzDefPoint(1,1){A}
+ \tkzDefPoint(5,1){B}
+ \tkzInterCC(A,B)(B,A)\tkzGetPoints{C}{D}
+ \tkzDrawPoint[color=black](C)
+ \tkzDrawCircle[dashed](A,B)
+ \tkzDrawCircle[dashed](B,A)
+ \tkzCompass[color=red](A,C)
+ \tkzCompass[color=red](B,C)
+ \tkzDrawPolygon(A,B,C)
+ \tkzMarkSegments[mark=s|](A,C B,C)
+ \tkzLabelPoints[](A,B)
+ \tkzLabelPoint[above](C){$C$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-2.tex
new file mode 100644
index 0000000000..92788e4448
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-2.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(2,2){B}
+ \tkzDrawCircle[color=blue](B,A)
+ \tkzDrawCircle[color=blue](A,B)
+ \tkzInterCC(B,A)(A,B)\tkzGetPoints{M}{N}
+ \tkzDrawLine(A,B)
+ \tkzDrawPoints(M,N)
+ \tkzDrawLine[color=red](M,N)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-3.tex
new file mode 100644
index 0000000000..af783dc912
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-3.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}[rotate=120,scale=.75]
+ \tkzDefPoint(1,2){A}
+ \tkzDefPoint(4,0){B}
+ \tkzInterCC[R](A,4cm)(B,4cm)
+ \tkzGetPoints{C}{D}
+ \tkzDrawCircle[R,dashed](A,4 cm)
+ \tkzDrawCircle[R,dashed](B,4 cm)
+ \tkzCompass[color=red](A,C)
+ \tkzCompass[color=red](B,C)
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints[color=blue](A,B,C)
+ \tkzMarkSegments[mark=s|](A,C B,C)
+ \tkzLabelPoints[](A,B)
+ \tkzLabelPoint[above](C){$C$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-4.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-4.tex
new file mode 100644
index 0000000000..0a4fbabee6
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-23-3-4.tex
@@ -0,0 +1,29 @@
+\begin{tikzpicture}[scale=.8]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(3,2){B}
+ \tkzInterCC(A,B)(B,A)
+ \tkzGetPoints{C}{D}
+ \tkzInterCC(D,B)(B,A)
+ \tkzGetPoints{A}{E}
+ \tkzInterCC(D,B)(A,B)
+ \tkzGetPoints{F}{B}
+ \tkzInterLC(E,F)(F,A)
+ \tkzGetPoints{D}{G}
+ \tkzInterLL(A,G)(B,E)
+ \tkzGetPoint{O}
+ \tkzInterLL(O,D)(A,B)
+ \tkzGetPoint{J}
+ \tkzInterLL(O,F)(A,B)
+ \tkzGetPoint{I}
+ \tkzDrawCircle(D,A)
+ \tkzDrawCircle(A,B)
+ \tkzDrawCircle(B,A)
+ \tkzDrawCircle(F,A)
+ \tkzDrawSegments[color=red](O,G
+ O,B O,D O,F)
+ \tkzDrawPoints(A,B,D,E,F,G,I,J)
+ \tkzLabelPoints(A,B,D,E,F,G,I,J)
+ \tkzDrawSegments[blue](A,B B,D A,D%
+ A,F F,G E,G B,E)
+ \tkzMarkSegments[mark=s|](A,I I,J J,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-1-1.tex
new file mode 100644
index 0000000000..d540c6cfde
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-1-1.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}
+ \tkzInit
+ \tkzDefPoints{0/0/O,2.5/0/A,1.5/2/B}
+ \tkzFillAngle[size=2cm, fill=gray!10](A,O,B)
+ \tkzDrawLines(O,A O,B)
+ \tkzDrawPoints(O,A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-1-2.tex
new file mode 100644
index 0000000000..06c1ef5916
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-1-2.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}
+ \tkzInit
+ \tkzDefPoints{0/0/O,5/0/A,3/4/B}
+ % Don't forget {} to get, () to use
+ \tkzFillAngle[size=4cm,left color=white,
+ right color=red!50](A,O,B)
+ \tkzDrawLines(O,A O,B)
+ \tkzDrawPoints(O,A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-1-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-1-3.tex
new file mode 100644
index 0000000000..9a3b074d55
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-1-3.tex
@@ -0,0 +1,23 @@
+\begin{tikzpicture}[scale=0.75]
+ \tkzDefPoint(0,0){B}
+ \tkzDefPoint(8,0){C}
+ \tkzDefPoint(0,8){A}
+ \tkzDefPoint(8,8){D}
+ \tkzDrawPolygon(B,C,D,A)
+ \tkzDefTriangle[equilateral](B,C)
+ \tkzGetPoint{M}
+ \tkzInterLL(D,M)(A,B) \tkzGetPoint{N}
+ \tkzDefPointBy[rotation=center N angle -60](D)
+ \tkzGetPoint{L}
+ \tkzInterLL(N,L)(M,B) \tkzGetPoint{P}
+ \tkzInterLL(M,C)(D,L) \tkzGetPoint{Q}
+ \tkzDrawSegments(D,N N,L L,D B,M M,C)
+ \tkzDrawPoints(L,N,P,Q,M,A,D)
+ \tkzLabelPoints[left](N,P,Q)
+ \tkzLabelPoints[above](M,A,D)
+ \tkzLabelPoints(L,B,C)
+ \tkzMarkAngles(C,B,M B,M,C M,C,B%
+ D,L,N L,N,D N,D,L)
+ \tkzFillAngles[fill=red!20,opacity=.2](C,B,M%
+ B,M,C M,C,B D,L,N L,N,D N,D,L)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-2-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-2-1.tex
new file mode 100644
index 0000000000..974edf526d
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-2-1.tex
@@ -0,0 +1,7 @@
+ \begin{tikzpicture}[scale=.75]
+ \tkzDefPoints{0/0/O,5/0/A,3/4/B}
+ \tkzMarkAngle[size = 4cm,mark = x,
+ arc=ll,mkcolor = red](A,O,B)
+ \tkzDrawLines(O,A O,B)
+ \tkzDrawPoints(O,A,B)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-2-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-2-2.tex
new file mode 100644
index 0000000000..9d63fd90ec
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-2-2.tex
@@ -0,0 +1,7 @@
+ \begin{tikzpicture}[scale=.75]
+ \tkzDefPoints{0/0/O,5/0/A,3/4/B}
+ \tkzMarkAngle[size = 4cm,mark = ||,
+ arc=ll,mkcolor = red](A,O,B)
+ \tkzDrawLines(O,A O,B)
+ \tkzDrawPoints(O,A,B)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-3-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-3-1.tex
new file mode 100644
index 0000000000..f29510f187
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-3-1.tex
@@ -0,0 +1,21 @@
+\begin{tikzpicture}[rotate=30]
+ \tkzDefPoint(2,1){S}
+ \tkzDefPoint(7,3){T}
+ \tkzDefPointBy[rotation=center S angle 60](T)
+ \tkzGetPoint{P}
+ \tkzDefLine[bisector,normed](T,S,P)
+ \tkzGetPoint{s}
+ \tkzDrawPoints(S,T,P)
+ \tkzDrawPolygon[color=blue](S,T,P)
+ \tkzDrawLine[dashed,color=blue,add=0 and 3](S,s)
+ \tkzLabelPoint[above right](P){$P$}
+ \tkzLabelPoints(S,T)
+ \tkzMarkAngle[size = 1.8cm,mark = |,arc=ll,
+ color = blue](T,S,P)
+ \tkzMarkAngle[size = 2.1cm,mark = |,arc=l,
+ color = blue](T,S,s)
+ \tkzMarkAngle[size = 2.3cm,mark = |,arc=l,
+ color = blue](s,S,P)
+ \tkzLabelAngle[pos = 1.5](T,S,P){$60^{\circ}$}%
+ \tkzLabelAngles[pos = 2.7](T,S,s s,S,P){$30^{\circ}$}%
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-1.tex
new file mode 100644
index 0000000000..e1d4e7a667
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-1.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,3/1/B,0.9/-1.2/P}
+ \tkzDefPointBy[projection = onto B--A](P) \tkzGetPoint{H}
+ \tkzDrawLines[add=.5 and .5](P,H)
+ \tkzMarkRightAngle[fill=blue!20,size=.5,draw](A,H,P)
+ \tkzDrawPoints[](A,B,P,H)
+ \tkzDrawLines[add=.5 and .5](A,B)
+ \tkzMarkRightAngle[fill=red!20,size=.8](B,H,P)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-2.tex
new file mode 100644
index 0000000000..1592570ec3
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-2.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,3/1/B,0.9/-1.2/P}
+ \tkzDefPointBy[projection = onto B--A](P) \tkzGetPoint{H}
+ \pgfresetboundingbox
+ \tkzDrawLines[add=.5 and .5](P,H)
+ \tkzMarkRightAngle[german,size=.5,draw](A,H,P)
+ \tkzDrawPoints[](A,B,P,H)
+ \tkzDrawLines[add=.5 and .5,fill=blue!20](A,B)
+ \tkzMarkRightAngle[german,size=.8](P,H,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-3.tex
new file mode 100644
index 0000000000..c916444fa5
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-3.tex
@@ -0,0 +1,14 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(4,1){B}
+ \tkzDefPoint(2,5){C}
+ \tkzDefPointBy[projection=onto B--A](C)
+ \tkzGetPoint{H}
+ \tkzDrawLine(A,B)
+ \tkzDrawLine[add = .5 and .2,color=red](C,H)
+ \tkzMarkRightAngle[,size=1,color=red](C,H,A)
+ \tkzMarkRightAngle[german,size=.8,color=blue](B,H,C)
+ \tkzFillAngle[opacity=.2,fill=blue!20,size=.8](B,H,C)
+ \tkzLabelPoints(A,B,C,H)
+ \tkzDrawPoints(A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-4.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-4.tex
new file mode 100644
index 0000000000..79de801c37
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-4-4.tex
@@ -0,0 +1,24 @@
+\begin{tikzpicture}[rotate=-90]
+\tkzDefPoint(0,1){A}
+\tkzDefPoint(2,4){C}
+\tkzDefPointWith[orthogonal normed,K=7](C,A)
+\tkzGetPoint{B}
+\tkzDrawSegment[green!60!black](A,C)
+\tkzDrawSegment[green!60!black](C,B)
+\tkzDrawSegment[green!60!black](B,A)
+\tkzDrawLine[altitude,dashed,color=magenta](B,C,A)
+\tkzGetPoint{P}
+\tkzLabelPoint[left](A){$A$}
+\tkzLabelPoint[right](B){$B$}
+\tkzLabelPoint[above](C){$C$}
+\tkzLabelPoint[left](P){$P$}
+\tkzLabelSegment[auto](B,A){$c$}
+\tkzLabelSegment[auto,swap](B,C){$a$}
+\tkzLabelSegment[auto,swap](C,A){$b$}
+\tkzMarkAngle[size=1cm,color=cyan,mark=|](C,B,A)
+\tkzMarkAngle[size=1cm,color=cyan,mark=|](A,C,P)
+\tkzMarkAngle[size=0.75cm,color=orange,mark=||](P,C,B)
+\tkzMarkAngle[size=0.75cm,color=orange,mark=||](B,A,C)
+\tkzMarkRightAngle[german](A,C,B)
+\tkzMarkRightAngle[german](B,P,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-7-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-7-1.tex
new file mode 100644
index 0000000000..bfeee8fcd3
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-7-1.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoint(-1,1){A}
+ \tkzDefPoint(5,2){B}
+ \tkzDefEquilateral(A,B)
+ \tkzGetPoint{C}
+ \tkzDrawPolygon(A,B,C)
+ \tkzFindAngle(B,A,C)
+ \tkzGetAngle{angleBAC}
+ \edef\angleBAC{\fpeval{round(\angleBAC)}}
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoint[right](C){$C$}
+ \tkzLabelAngle(B,A,C){\angleBAC$^\circ$}
+ \tkzMarkAngle[size=1.5cm](B,A,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-7-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-7-2.tex
new file mode 100644
index 0000000000..f85ea68b91
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-7-2.tex
@@ -0,0 +1,23 @@
+ \begin{tikzpicture}[scale=1.25,rotate=30]
+ \tkzDefPoints{0.5/1.5/A, 3.5/4/B, 6/2.5/C}
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints[below](A,C)
+ \tkzLabelPoints[above](B)
+ \tkzMarkAngle[size=1cm](B,C,A)
+ \tkzFindAngle(B,C,A)
+ \tkzGetAngle{angleBCA}
+ \edef\angleBCA{\fpeval{round(\angleBCA,2)}}
+ \tkzLabelAngle[pos = 1](B,C,A){$\angleBCA^{\circ}$}
+ \tkzMarkAngle[size=1cm](C,A,B)
+ \tkzFindAngle(C,A,B)
+ \tkzGetAngle{angleBAC}
+ \edef\angleBAC{\fpeval{round(\angleBAC,2)}}
+ \tkzLabelAngle[pos = 1.8](C,A,B){%
+ $\angleBAC^{\circ}$}
+ \tkzMarkAngle[size=1cm](A,B,C)
+ \tkzFindAngle(A,B,C)
+ \tkzGetAngle{angleABC}
+ \edef\angleABC{\fpeval{round(\angleABC,2)}}
+ \tkzLabelAngle[pos = 1](A,B,C){$\angleABC^{\circ}$}
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-8-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-8-1.tex
new file mode 100644
index 0000000000..d2a8bf4e78
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-24-8-1.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}
+ \tkzDefPoint(1,5){A}
+ \tkzDefPoint(5,2){B} \tkzDrawSegment(A,B)
+ \tkzFindSlopeAngle(A,B)\tkzGetAngle{tkzang}
+ \tkzDefPointBy[rotation= center A angle \tkzang ](B)
+ \tkzGetPoint{C}
+ \tkzDefPointBy[rotation= center A angle -\tkzang ](B)
+ \tkzGetPoint{D}
+ \tkzCompass[length=1](A,C)
+ \tkzCompass[delta=10](B,C) \tkzDrawPoints(A,B,C,D)
+ \tkzLabelPoints(B,C,D) \tkzLabelPoints[above left](A)
+ \tkzDrawSegments[style=dashed,color=bistre](A,C A,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-1.tex
new file mode 100644
index 0000000000..bfe7933081
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-1.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(-30:3){A}
+ \tkzDefPointBy[rotation = center O angle -60](A)
+ \tkzDrawSector[fill=red!50](O,A)(tkzPointResult)
+ \begin{scope}[shift={(-60:1cm)}]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(-30:3){A}
+ \tkzDefPointBy[rotation = center O angle -60](A)
+ \tkzDrawSector[fill=blue!50](O,tkzPointResult)(A)
+ \end{scope}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-2.tex
new file mode 100644
index 0000000000..a79b62bb96
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-2.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}[scale=2]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(2,2){A}
+ \tkzDrawSector[rotate,draw=red!50!black,%
+ fill=red!20](O,A)(30)
+ \tkzDrawSector[rotate,draw=blue!50!black,%
+ fill=blue!20](O,A)(-30)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-3.tex
new file mode 100644
index 0000000000..4347159406
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-3.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}[scale=1.25]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(2,-1){A}
+ \tkzDrawSector[R,draw=white,%
+ fill=red!50](O,2cm)(30,90)
+ \tkzDrawSector[R,draw=white,%
+ fill=red!60](O,2cm)(90,180)
+ \tkzDrawSector[R,draw=white,%
+ fill=red!70](O,2cm)(180,270)
+ \tkzDrawSector[R,draw=white,%
+ fill=red!90](O,2cm)(270,360)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-4.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-4.tex
new file mode 100644
index 0000000000..5d9c7cfa55
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-4.tex
@@ -0,0 +1,14 @@
+\begin{tikzpicture}[scale=1.25]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(4,-2){A}
+ \tkzDefPoint(4,1){B}
+ \tkzDefPoint(3,3){C}
+ \tkzDrawSector[R with nodes,%
+ fill=blue!20](O,1 cm)(B,C)
+ \tkzDrawSector[R with nodes,%
+ fill=red!20](O,1.25 cm)(A,B)
+\tkzDrawSegments(O,A O,B O,C)
+\tkzDrawPoints(O,A,B,C)
+\tkzLabelPoints(A,B,C)
+\tkzLabelPoints[left](O)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-5.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-5.tex
new file mode 100644
index 0000000000..f5368e5d18
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-1-5.tex
@@ -0,0 +1,24 @@
+\begin{tikzpicture} [scale=.5]
+ \tkzDefPoint(-1,-2){A}
+ \tkzDefPoint(1,3){B}
+ \tkzDefRegPolygon[side,sides=6](A,B)
+ \tkzGetPoint{O}
+ \tkzDrawPolygon[fill=black!10,
+ draw=blue](P1,P...,P6)
+ \tkzLabelRegPolygon[sep=1.05](O){A,...,F}
+ \tkzDrawCircle[dashed](O,A)
+ \tkzLabelSegment[above,sloped,
+ midway](A,B){\(A B = 16m\)}
+ \foreach \i [count=\xi from 1] in {2,...,6,1}
+ {%
+ \tkzDefMidPoint(P\xi,P\i)
+ \path (O) to [pos=1.1] node {\xi} (tkzPointResult) ;
+ }
+ \tkzDefRandPointOn[segment = P3--P5]
+ \tkzGetPoint{S}
+ \tkzDrawSegments[thick,dashed,red](A,S S,B)
+ \tkzDrawPoints(P1,P...,P6,S)
+ \tkzLabelPoint[left,above](S){$S$}
+ \tkzDrawSector[R with nodes,fill=red!20](S,2 cm)(A,B)
+ \tkzLabelAngle[pos=1.5](A,S,B){$\alpha$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-2-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-2-1.tex
new file mode 100644
index 0000000000..e4b3651497
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-2-1.tex
@@ -0,0 +1,12 @@
+\begin{tikzpicture}[scale=.6]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(-30:3){A}
+ \tkzDefPointBy[rotation = center O angle -60](A)
+ \tkzFillSector[fill=red!50](O,A)(tkzPointResult)
+ \begin{scope}[shift={(-60:1cm)}]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(-30:3){A}
+ \tkzDefPointBy[rotation = center O angle -60](A)
+ \tkzFillSector[color=blue!50](O,tkzPointResult)(A)
+ \end{scope}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-2-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-2-2.tex
new file mode 100644
index 0000000000..037db1d490
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-2-2.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}[scale=1.5]
+ \tkzDefPoint(0,0){O} \tkzDefPoint(2,2){A}
+ \tkzFillSector[rotate,color=red!20](O,A)(30)
+ \tkzFillSector[rotate,color=blue!20](O,A)(-30)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-3-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-3-1.tex
new file mode 100644
index 0000000000..4573f7dd11
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-25-3-1.tex
@@ -0,0 +1,13 @@
+\begin{tikzpicture}[scale=1.5]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(2,-1){A}
+ \tkzDefPoint(1,1){B}
+ \tkzDrawSector[color=blue,dashed](O,A)(B)
+ \tkzDrawSector[color=blue](O,B)(A)
+ \tkzClipBB
+ \begin{scope}
+ \tkzClipSector(O,B)(A)
+ \draw[fill=gray!20] (-1,0) rectangle (3,3);
+ \end{scope}
+ \tkzDrawPoints(A,B,O)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-1-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-1-0.tex
new file mode 100644
index 0000000000..0c53e42379
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-1-0.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(2,-1){A}
+ \tkzDefPointBy[rotation= center O angle 90](A)
+ \tkzGetPoint{B}
+ \tkzDrawArc[color=blue,<->](O,A)(B)
+ \tkzDrawArc(O,B)(A)
+ \tkzDrawLines[add = 0 and .5](O,A O,B)
+ \tkzDrawPoints(O,A,B)
+ \tkzLabelPoints[below](O,A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-2-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-2-0.tex
new file mode 100644
index 0000000000..0460c12fa2
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-2-0.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[scale=1.5]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(2,-1){A}
+ \tkzDefPoint(1,1){B}
+ \tkzDrawArc[color=blue,->](O,A)(B)
+ \tkzDrawArc[color=gray](O,B)(A)
+ \tkzDrawArc(O,B)(A)
+ \tkzDrawLines[add = 0 and .5](O,A O,B)
+ \tkzDrawPoints(O,A,B)
+ \tkzLabelPoints[below](O,A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-3-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-3-0.tex
new file mode 100644
index 0000000000..bb198c5f80
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-3-0.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(2,-2){A}
+ \tkzDefPoint(60:2){B}
+ \tkzDrawLines[add = 0 and .5](O,A O,B)
+ \tkzDrawArc[rotate,color=red](O,A)(180)
+ \tkzDrawPoints(O,A,B)
+ \tkzLabelPoints[below](O,A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-4-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-4-0.tex
new file mode 100644
index 0000000000..670c9005c6
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-4-0.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/O}
+ \tikzset{compass style/.append style={<->}}
+ \tkzDrawArc[R,color=orange,double](O,3cm)(270,360)
+ \tkzDrawArc[R,color=blue,double](O,2cm)(0,270)
+ \tkzDrawPoint(O)
+ \tkzLabelPoint[below](O){$O$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-5-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-5-0.tex
new file mode 100644
index 0000000000..6502588b88
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-5-0.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(2,-1){A}
+ \tkzDefPoint(1,1){B}
+ \tkzCalcLength(B,A)\tkzGetLength{radius}
+ \tkzDrawArc[R with nodes](B,\radius pt)(A,O)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-6-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-6-0.tex
new file mode 100644
index 0000000000..97d9c8c473
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-26-6-0.tex
@@ -0,0 +1,19 @@
+\begin{tikzpicture}
+ \tkzInit
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(5,0){B}
+ \tkzDefPointBy[rotation= center A angle 60](B)
+ \tkzGetPoint{C}
+ \tkzSetUpLine[color=gray]
+ \tkzDefPointBy[symmetry= center C](A)
+ \tkzGetPoint{D}
+ \tkzDrawSegments(A,B A,D)
+ \tkzDrawLine(B,D)
+ \tkzSetUpCompass[color=orange]
+ \tkzDrawArc[delta=10](A,B)(C)
+ \tkzDrawArc[delta=10](B,C)(A)
+ \tkzDrawArc[delta=10](C,D)(D)
+ \tkzDrawPoints(A,B,C,D)
+ \tkzLabelPoints(A,B,C,D)
+ \tkzMarkRightAngle(D,B,A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-1-1.tex
new file mode 100644
index 0000000000..963751ee6c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-1-1.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}
+ \tkzDefPoint(1,1){A}
+ \tkzDefPoint(6,1){B}
+ \tkzInterCC[R](A,4cm)(B,3cm)
+ \tkzGetPoints{C}{D}
+ \tkzDrawPoint(C)
+ \tkzCompass[color=red,length=1.5](A,C)
+ \tkzCompass[color=red](B,C)
+ \tkzDrawSegments(A,B A,C B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-1-2.tex
new file mode 100644
index 0000000000..a1fa345499
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-1-2.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(5,0){B}
+ \tkzInterCC[R](A,4cm)(B,3cm)
+ \tkzGetPoints{C}{D}
+ \tkzDrawPoints(A,B,C)
+ \tkzCompass[color=red,delta=20](A,C)
+ \tkzCompass[color=red,delta=20](B,C)
+ \tkzDrawPolygon(A,B,C)
+ \tkzMarkAngle(A,C,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-2-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-2-0.tex
new file mode 100644
index 0000000000..d482cd74d3
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-2-0.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoint(2,2){A} \tkzDefPoint(5,-2){B}
+ \tkzDefPoint(3,4){C} \tkzDrawPoints(A,B)
+ \tkzDrawPoint[color=red,shape=cross out](C)
+ \tkzCompasss[color=orange](A,B A,C B,C C,B)
+ \tkzShowLine[mediator,color=red,
+ dashed,length = 2](A,B)
+ \tkzShowLine[parallel = through C,
+ color=blue,length=2](A,B)
+ \tkzDefLine[mediator](A,B) \tkzGetPoints{i}{j}
+ \tkzDefLine[parallel=through C](A,B) \tkzGetPoint{D}
+ \tkzDrawLines[add=.6 and .6](C,D A,C B,D)
+ \tkzDrawLines(i,j) \tkzDrawPoints(A,B,C,i,j,D)
+ \tkzLabelPoints(A,B,C,i,j,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-3-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-3-0.tex
new file mode 100644
index 0000000000..a5f54ae66d
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-27-3-0.tex
@@ -0,0 +1,17 @@
+\begin{tikzpicture}[scale=.75,
+ showbi/.style={bisector,size=2,gap=3}]
+ \tkzSetUpCompass[color=blue,line width=.3 pt]
+ \tkzDefPoints{0/1/A, 8/3/B, 3/6/C}
+ \tkzDrawPolygon(A,B,C)
+ \tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
+ \tkzDefLine[bisector](C,B,A) \tkzGetPoint{b}
+ \tkzShowLine[showbi](B,A,C)
+ \tkzShowLine[showbi](C,B,A)
+ \tkzInterLL(A,a)(B,b) \tkzGetPoint{I}
+ \tkzDefPointBy[projection= onto A--B](I)
+ \tkzGetPoint{H}
+ \tkzDrawCircle[radius,color=gray](I,H)
+ \tkzDrawSegments[color=gray!50](I,H)
+ \tkzDrawLines[add=0 and -.2,color=blue!50 ](A,a B,b)
+ \tkzShowBB
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-1.tex
new file mode 100644
index 0000000000..d811ea5e81
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-1.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}
+ \tkzDefPoints{-1.5/-0.25/A,1/-0.75/B,-1.5/2/C}
+ \tkzDrawLine(A,B)
+ \tkzDefLine[parallel=through C](A,B) \tkzGetPoint{c}
+ \tkzShowLine[parallel=through C](A,B)
+ \tkzDrawLine(C,c) \tkzDrawPoints(A,B,C,c)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-2.tex
new file mode 100644
index 0000000000..f65806086e
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-2.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}
+\tkzDefPoints{0/0/A, 3/2/B, 2/2/C}
+\tkzDefLine[perpendicular=through C,K=-.5](A,B) \tkzGetPoint{c}
+\tkzShowLine[perpendicular=through C,K=-.5,gap=3](A,B)
+\tkzDefPointBy[projection=onto A--B](c)\tkzGetPoint{h}
+\tkzMarkRightAngle[fill=lightgray](A,h,C)
+\tkzDrawLines[add=1 and 1](A,B C,c)
+\tkzDrawPoints(A,B,C,h,c)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-3.tex
new file mode 100644
index 0000000000..53a63eeed5
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-3.tex
@@ -0,0 +1,16 @@
+\begin{tikzpicture}[scale=1.25]
+ \tkzDefPoints{0/0/A, 4/2/B, 1/4/C}
+ \tkzDrawPolygon(A,B,C)
+ \tkzSetUpCompass[color=brown,line width=.1 pt]
+ \tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
+ \tkzDefLine[bisector](C,B,A) \tkzGetPoint{b}
+ \tkzInterLL(A,a)(B,b) \tkzGetPoint{I}
+ \tkzDefPointBy[projection = onto A--B](I)
+ \tkzGetPoint{H}
+ \tkzShowLine[bisector,size=2,gap=3,blue](B,A,C)
+ \tkzShowLine[bisector,size=2,gap=3,blue](C,B,A)
+ \tkzDrawCircle[radius,color=blue,%
+ line width=.2pt](I,H)
+ \tkzDrawSegments[color=red!50](I,tkzPointResult)
+ \tkzDrawLines[add=0 and -0.3,color=red!50](A,a B,b)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-4.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-4.tex
new file mode 100644
index 0000000000..45e5e8bb47
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-1-4.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}
+\tkzDefPoint(2,2){A}
+\tkzDefPoint(5,4){B}
+\tkzDrawPoints(A,B)
+\tkzShowLine[mediator,color=orange,length=1](A,B)
+\tkzGetPoints{i}{j}
+\tkzDrawLines[add=-0.1 and -0.1](i,j)
+\tkzDrawLines(A,B)
+\tkzLabelPoints[below =3pt](A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-2-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-2-1.tex
new file mode 100644
index 0000000000..9b1a67fe58
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-2-1.tex
@@ -0,0 +1,27 @@
+\begin{tikzpicture}[scale=.6]
+ \tkzDefPoint(0,0){O} \tkzDefPoint(2,-2){A}
+ \tkzDefPoint(70:4){B} \tkzDrawPoints(A,O,B)
+ \tkzLabelPoints(A,O,B)
+ \tkzDrawLine[add= 2 and 2](O,A)
+ \tkzDefPointBy[translation=from O to A](B)
+ \tkzGetPoint{C}
+ \tkzDrawPoint[color=orange](C) \tkzLabelPoints(C)
+ \tkzShowTransformation[translation=from O to A,%
+ length=2](B)
+ \tkzDrawSegments[->,color=orange](O,A B,C)
+ \tkzDefPointBy[reflection=over O--A](B) \tkzGetPoint{E}
+ \tkzDrawSegment[blue](B,E)
+ \tkzDrawPoint[color=blue](E)\tkzLabelPoints(E)
+ \tkzShowTransformation[reflection=over O--A,size=2](B)
+ \tkzDefPointBy[symmetry=center O](B) \tkzGetPoint{F}
+ \tkzDrawSegment[color=green](B,F)
+ \tkzDrawPoint[color=green](F)\tkzLabelPoints(F)
+ \tkzShowTransformation[symmetry=center O,%
+ length=2](B)
+ \tkzDefPointBy[projection=onto O--A](C)
+ \tkzGetPoint{H}
+ \tkzDrawSegments[color=magenta](C,H)
+ \tkzDrawPoint[color=magenta](H)\tkzLabelPoints(H)
+ \tkzShowTransformation[projection=onto O--A,%
+ color=red,size=3,gap=-2](C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-2-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-2-2.tex
new file mode 100644
index 0000000000..4190880fc9
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-28-2-2.tex
@@ -0,0 +1,19 @@
+\begin{tikzpicture}[scale=.6]
+ \tkzDefPoints{0/0/A,8/0/B,3.5/10/I}
+ \tkzDefMidPoint(A,B) \tkzGetPoint{O}
+ \tkzDefPointBy[projection=onto A--B](I)
+ \tkzGetPoint{J}
+ \tkzInterLC(I,A)(O,A) \tkzGetPoints{M'}{M}
+ \tkzInterLC(I,B)(O,A) \tkzGetPoints{N}{N'}
+ \tkzDrawSemiCircle[diameter](A,B)
+ \tkzDrawSegments(I,A I,B A,B B,M A,N)
+ \tkzMarkRightAngles(A,M,B A,N,B)
+ \tkzDrawSegment[style=dashed,color=blue](I,J)
+ \tkzShowTransformation[projection=onto A--B,
+ color=red,size=3,gap=-3](I)
+ \tkzDrawPoints[color=red](M,N)
+ \tkzDrawPoints[color=blue](O,A,B,I)
+ \tkzLabelPoints(O)
+ \tkzLabelPoints[above right](N,I)
+ \tkzLabelPoints[below left](M,A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-29-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-29-1-1.tex
new file mode 100644
index 0000000000..8d6f266286
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-29-1-1.tex
@@ -0,0 +1,14 @@
+\begin{tikzpicture}
+ \tkzSetUpCompass[color=purple,line width=1pt]
+ \tkzDefPoint(0,1){A}
+ \tkzDefPoint(5,2){B}
+ \tkzDefPoint(3,4){C}
+ \tkzDefEquiPoints[from=C,dist=1,show,
+ /compass/delta=20](A,B)
+ \tkzGetPoints{E}{H}
+ \tkzDrawLines[color=blue](C,E C,H A,B)
+ \tkzDrawPoints[color=blue](A,B,C)
+ \tkzDrawPoints[color=red](E,H)
+ \tkzLabelPoints(E,H)
+ \tkzLabelPoints[color=blue](A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-30-1-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-30-1-0.tex
new file mode 100644
index 0000000000..2d6d85ca2d
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-30-1-0.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[scale=.5]
+\tkzDefPoint(2,0){A}\tkzDefPoint(0,0){O}
+\tkzDefShiftPoint[A](31:5){B}
+\tkzDefShiftPoint[A](158:5){C}
+\tkzDrawPoints(A,B,C)
+\tkzDrawSegments[color = red,
+ line width = 1pt](A,B A,C)
+ \tkzProtractor[scale = 1](A,B)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-30-2-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-30-2-0.tex
new file mode 100644
index 0000000000..e5a2083e53
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-30-2-0.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(2,3){A}
+ \tkzDefShiftPoint[A](31:5){B}
+ \tkzDefShiftPoint[A](158:5){C}
+ \tkzDrawSegments[color=red,line width=1pt](A,B A,C)
+ \tkzProtractor[return](A,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-2.tex
new file mode 100644
index 0000000000..cca399bbfe
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-2.tex
@@ -0,0 +1,17 @@
+\begin{tikzpicture}[scale=.8,rotate=60]
+ \tkzDefPoint(6,0){X} \tkzDefPoint(3,3){Y}
+ \tkzDefShiftPoint[X](-110:6){A} \tkzDefShiftPoint[X](-70:6){B}
+ \tkzDefShiftPoint[Y](-110:4.2){A'} \tkzDefShiftPoint[Y](-70:4.2){B'}
+ \tkzDefPointBy[translation= from A' to B ](Y) \tkzGetPoint{Y}
+ \tkzDefPointBy[translation= from A' to B ](B') \tkzGetPoint{C}
+ \tkzInterLL(A,B)(X,Y) \tkzGetPoint{O}
+ \tkzDefMidPoint(X,Y) \tkzGetPoint{I}
+ \tkzDefPointWith[orthogonal](I,Y)
+ \tkzInterLL(I,tkzPointResult)(A,B) \tkzGetPoint{Z}
+ \tkzDefCircle[circum](X,Y,B) \tkzGetPoint{O}
+ \tkzDrawCircle(O,X)
+ \tkzDrawLines[add = 0 and 1.5](A,C) \tkzDrawLines[add = 0 and 3](X,Y)
+ \tkzDrawSegments(A,X B,X B,Y C,Y) \tkzDrawSegments[color=red](X,Z Y,Z)
+ \tkzDrawPoints(A,B,C,X,Y,O,Z)
+ \tkzLabelPoints(A,B,C,Z) \tkzLabelPoints[above right](X,Y,O)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-3.tex
new file mode 100644
index 0000000000..a48aeff702
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-3.tex
@@ -0,0 +1,21 @@
+\begin{tikzpicture}[scale=1.25]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(3,0){B}
+ \tkzDefPoint(9,0){C}
+ \tkzDefPoint(1.5,2){X}
+ \tkzDefPoint(6,4){Y}
+ \tkzDefCircle[circum](X,Y,B) \tkzGetPoint{O}
+ \tkzDefMidPoint(X,Y) \tkzGetPoint{I}
+ \tkzDefPointWith[orthogonal](I,Y) \tkzGetPoint{i}
+ \tkzDrawLines[add = 2 and 1,color=orange](I,i)
+ \tkzInterLL(I,i)(A,B) \tkzGetPoint{Z}
+ \tkzInterLC(I,i)(O,B) \tkzGetSecondPoint{M}
+ \tkzDefPointWith[orthogonal](B,Z) \tkzGetPoint{b}
+ \tkzDrawCircle(O,B)
+ \tkzDrawLines[add = 0 and 2,color=orange](B,b)
+ \tkzDrawSegments(A,X B,X B,Y C,Y A,C X,Y)
+ \tkzDrawSegments[color=red](X,Z Y,Z)
+ \tkzDrawPoints(A,B,C,X,Y,Z,M,I)
+ \tkzLabelPoints(A,B,C,Z)
+ \tkzLabelPoints[above right](X,Y,M,I)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-4.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-4.tex
new file mode 100644
index 0000000000..efb277291e
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-4.tex
@@ -0,0 +1,24 @@
+\begin{tikzpicture}[scale=.8]
+ \tkzDefPoint(0,0){C}
+ \tkzDefPoint(7,0){B}
+ \tkzDefPoint(5,6){A}
+ \tkzDrawPolygon(A,B,C)
+ \tkzDefMidPoint(C,B)
+ \tkzGetPoint{I}
+ \tkzDrawArc(I,B)(C)
+ \tkzInterLC(A,C)(I,B)
+ \tkzGetSecondPoint{B'}
+ \tkzInterLC(A,B)(I,B)
+ \tkzGetFirstPoint{C'}
+ \tkzInterLL(B,B')(C,C')
+ \tkzGetPoint{H}
+ \tkzInterLL(A,H)(C,B)
+ \tkzGetPoint{A'}
+ \tkzDefCircle[circum](A,B',C')
+ \tkzGetPoint{O}
+ \tkzDrawCircle[color=red](O,A)
+ \tkzDrawSegments[color=orange](B,B' C,C' A,A')
+ \tkzMarkRightAngles(C,B',B B,C',C C,A',A)
+ \tkzDrawPoints(A,B,C,A',B',C',H)
+ \tkzLabelPoints(A,B,C,A',B',C',H)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-5.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-5.tex
new file mode 100644
index 0000000000..9aa39ec374
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-1-5.tex
@@ -0,0 +1,26 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(8,0){B}
+ \tkzDefPoint(3.5,10){C}
+ \tkzDefMidPoint(A,B)
+ \tkzGetPoint{O}
+ \tkzDefPointBy[projection=onto A--B](C)
+ \tkzGetPoint{P}
+ \tkzInterLC(C,A)(O,A)
+ \tkzGetSecondPoint{M}
+ \tkzInterLC(C,B)(O,A)
+ \tkzGetFirstPoint{N}
+ \tkzInterLL(B,M)(A,N)
+ \tkzGetPoint{I}
+ \tkzDrawCircle[diameter](A,B)
+ \tkzDrawSegments(C,A C,B A,B B,M A,N)
+ \tkzMarkRightAngles[fill=Maroon!20](A,M,B A,N,B A,P,C)
+ \tkzDrawSegment[style=dashed,color=orange](C,P)
+ \tkzLabelPoints(O,A,B,P)
+ \tkzLabelPoint[left](M){$M$}
+ \tkzLabelPoint[right](N){$N$}
+ \tkzLabelPoint[above](C){$C$}
+ \tkzLabelPoint[fill=fondpaille,above right](I){$I$}
+ \tkzDrawPoints[color=red](M,N,P,I)
+ \tkzDrawPoints[color=Maroon](O,A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-1.tex
new file mode 100644
index 0000000000..1c473fcdfb
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-1.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[scale=1.5]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(1,0){a0}
+ \tkzDrawSegment[blue](O,a0)
+ \foreach \i [count=\j] in {0,...,10}{%
+ \tkzDefPointWith[orthogonal normed](a\i,O)
+ \tkzGetPoint{a\j}
+ \tkzDrawPolySeg[color=blue](a\i,a\j,O)}
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-10.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-10.tex
new file mode 100644
index 0000000000..e01dd07d0f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-10.tex
@@ -0,0 +1,16 @@
+\begin{tikzpicture}[scale=3]
+ \tkzDefPoints{0/0/A,2/0/B}
+ \tkzDefSquare(A,B) \tkzGetPoints{C}{D}
+ \tkzDefPointBy[rotation=center D angle 45](C)\tkzGetPoint{G}
+ \tkzDefSquare(G,D)\tkzGetPoints{E}{F}
+ \tkzInterLL(B,C)(E,F)\tkzGetPoint{H}
+ \tkzFillPolygon[gray!10](D,E,H,C,D)
+ \tkzDrawPolygon(A,...,D)\tkzDrawPolygon(D,...,G)
+ \tkzDrawSegment(B,E)
+ \tkzMarkSegments[mark=|,size=3pt,color=gray](A,B B,C C,D D,A E,F F,G G,D D,E)
+ \tkzMarkSegments[mark=||,size=3pt,color=gray](B,E E,H)
+ \tkzLabelPoints[left](A,D)
+ \tkzLabelPoints[right](B,C,F,H)
+ \tkzLabelPoints[above](G)\tkzLabelPoints[below](E)
+ \tkzMarkRightAngles(D,A,B D,G,F)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-11.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-11.tex
new file mode 100644
index 0000000000..0e564d3ccb
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-11.tex
@@ -0,0 +1,32 @@
+\begin{tikzpicture}[scale=1.5]
+ \tkzDefPoints{0/0/A,8/0/B,0/4/a,8/4/b,8/8/c}
+ \tkzDefTriangle[equilateral](A,B) \tkzGetPoint{C}
+ \tkzDrawPolygon(A,B,C)
+ \tkzDefSquare(A,B) \tkzGetPoints{D}{E}
+ \tkzClipBB
+ \tkzDefMidPoint(A,B) \tkzGetPoint{M}
+ \tkzDefMidPoint(B,C) \tkzGetPoint{N}
+ \tkzDefMidPoint(A,C) \tkzGetPoint{P}
+ \tkzDrawSemiCircle[gray,dashed](M,B)
+ \tkzDrawSemiCircle[gray,dashed](A,M)
+ \tkzDrawSemiCircle[gray,dashed](A,B)
+ \tkzDrawCircle[gray,dashed](B,A)
+ \tkzInterLL(A,N)(M,a) \tkzGetPoint{Ia}
+ \tkzDefPointBy[projection = onto A--B](Ia)
+ \tkzGetPoint{ha}
+ \tkzDrawCircle[gray](Ia,ha)
+ \tkzInterLL(B,P)(M,b) \tkzGetPoint{Ib}
+ \tkzDefPointBy[projection = onto A--B](Ib)
+ \tkzGetPoint{hb}
+ \tkzDrawCircle[gray](Ib,hb)
+ \tkzInterLL(A,c)(M,C) \tkzGetPoint{Ic}
+ \tkzDefPointBy[projection = onto A--C](Ic)
+ \tkzGetPoint{hc}
+ \tkzDrawCircle[gray](Ic,hc)
+ \tkzInterLL(A,Ia)(B,Ib) \tkzGetPoint{G}
+ \tkzDrawCircle[gray,dashed](G,Ia)
+ \tkzDrawPolySeg(A,E,D,B)
+ \tkzDrawPoints(A,B,C)
+ \tkzDrawPoints(G,Ia,Ib,Ic)
+ \tkzDrawSegments[gray,dashed](C,M A,N B,P M,a M,b A,a a,b b,B A,D Ia,ha)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-12.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-12.tex
new file mode 100644
index 0000000000..7034319c4f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-12.tex
@@ -0,0 +1,43 @@
+ \begin{tikzpicture}[scale=.5]
+ \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
+ \tkzDefTriangleCenter[euler](A,B,C) \tkzGetPoint{N}
+ \tkzDefTriangleCenter[circum](A,B,C) \tkzGetPoint{O}
+ \tkzDefTriangleCenter[lemoine](A,B,C) \tkzGetPoint{K}
+ \tkzDefTriangleCenter[spieker](A,B,C) \tkzGetPoint{Sp}
+ \tkzDefExCircle(A,B,C) \tkzGetPoint{Jb}
+ \tkzDefExCircle(C,A,B) \tkzGetPoint{Ja}
+ \tkzDefExCircle(B,C,A) \tkzGetPoint{Jc}
+ \tkzDefPointBy[projection=onto B--C ](Jc) \tkzGetPoint{Xc}
+ \tkzDefPointBy[projection=onto B--C ](Jb) \tkzGetPoint{Xb}
+ \tkzDefPointBy[projection=onto A--B ](Ja) \tkzGetPoint{Za}
+ \tkzDefPointBy[projection=onto A--B ](Jb) \tkzGetPoint{Zb}
+ \tkzDefLine[parallel=through Xc](A,C) \tkzGetPoint{X'c}
+ \tkzDefLine[parallel=through Xb](A,B) \tkzGetPoint{X'b}
+ \tkzDefLine[parallel=through Za](C,A) \tkzGetPoint{Z'a}
+ \tkzDefLine[parallel=through Zb](C,B) \tkzGetPoint{Z'b}
+ \tkzInterLL(Xc,X'c)(A,B) \tkzGetPoint{B'}
+ \tkzInterLL(Xb,X'b)(A,C) \tkzGetPoint{C'}
+ \tkzInterLL(Za,Z'a)(C,B) \tkzGetPoint{A''}
+ \tkzInterLL(Zb,Z'b)(C,A) \tkzGetPoint{B''}
+ \tkzDefPointBy[reflection= over Jc--Jb](B') \tkzGetPoint{Ca}
+ \tkzDefPointBy[reflection= over Jc--Jb](C') \tkzGetPoint{Ba}
+ \tkzDefPointBy[reflection= over Ja--Jb](A'')\tkzGetPoint{Bc}
+ \tkzDefPointBy[reflection= over Ja--Jb](B'')\tkzGetPoint{Ac}
+ \tkzDefCircle[circum](Ac,Ca,Ba) \tkzGetPoint{Q}
+ \tkzDrawCircle[circum](Ac,Ca,Ba)
+ \tkzDefPointWith[linear,K=1.1](Q,Ac) \tkzGetPoint{nAc}
+ \tkzClipCircle[through](Q,nAc)
+ \tkzDrawLines[add=1.5 and 1.5,dashed](A,B B,C A,C)
+ \tkzDrawPolygon[color=blue](A,B,C)
+ \tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc)
+ \tkzDrawCircles[ex](A,B,C B,C,A C,A,B)
+ \tkzDrawLines[add=0 and 0,dashed](Ca,Bc B,Za A,Ba B',C')
+ \tkzDrawLine[add=1 and 1,dashed](Xb,Xc)
+ \tkzDrawLine[add=7 and 3,blue](O,K)
+ \tkzDrawLine[add=8 and 15,red](N,Sp)
+ \tkzDrawLines[add=10 and 10](K,O N,Sp)
+ \tkzDrawSegments(Ba,Ca Bc,Ac)
+ \tkzDrawPoints(A,B,C,N,Ja,Jb,Jc,Xb,Xc,B',C',Za,Zb,Ba,Ca,Bc,Ac,Q,Sp,K,O)
+ \tkzLabelPoints(A,B,C,N,Ja,Jb,Jc,Xb,Xc,B',C',Za,Zb,Ba,Ca,Bc,Ac,Q,Sp)
+ \tkzLabelPoints[above](K,O)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-2.tex
new file mode 100644
index 0000000000..47c8f5aa9c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-2.tex
@@ -0,0 +1,17 @@
+\begin{tikzpicture}
+ \edef\alphaR{\fpeval{asin(2/3)}}
+ \edef\xB{8-3*cos(\alphaR)}
+ \tkzDrawX[noticks,label=$(d)$]
+ \tkzDefPoint["$A$" above right](8,2){A}
+ \tkzDefPoint[color=red,"$O$" above right](0,0){O}
+ \tkzDefPoint["$B$" above left](\xB,4){B}
+ \tkzDefLine[orthogonal=through B](A,B) \tkzGetPoint{b}
+ \tkzDefPoint(1,0){i}
+ \tkzInterLL(B,b)(O,i) \tkzGetPoint{B'}
+ \tkzDrawSegment[line width=1pt](A,B)
+ \tkzHLine[color=red,style=dashed]{4}
+ \tkzText[above](12,4){$\delta$}
+ \tkzDrawCircle[R,color=blue,line width=.8pt](A,3 cm)
+ \tkzDrawPoint(B')
+ \tkzDrawLine(B,B')
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-3.tex
new file mode 100644
index 0000000000..1ce86d3030
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-3.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}
+ \tkzDefPoint["$A$" left](2,1){A}
+ \tkzDefPoint(6,4){B}
+ \tkzDrawSegment(A,B)
+ \tkzDrawPoint[color=red](A)
+ \tkzDrawPoint[color=red](B)
+ \tkzDefPointWith[orthogonal,K=-1](B,A)
+ \tkzDrawLine[add = .5 and .5](B,tkzPointResult)
+ \tkzInterLC[R](B,tkzPointResult)(A,8 cm)
+ \tkzGetPoints{C}{J}
+ \tkzDrawPoint[color=red](C)
+ \tkzCompass(A,C)
+ \tkzMarkRightAngle(A,B,C)
+ \tkzDrawLine[color=gray,style=dashed](A,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-4.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-4.tex
new file mode 100644
index 0000000000..776f45de17
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-4.tex
@@ -0,0 +1,17 @@
+\begin{tikzpicture}[scale=1.25]
+ \tkzDefPoint(0,0){A}\tkzDefPoint(6,0){D}
+ \tkzDefPoint(8,0){B}\tkzDefPoint(4,0){I}
+ \tkzDefLine[orthogonal=through D](A,D)
+ \tkzInterLC[R](D,tkzPointResult)(I,4 cm) \tkzGetFirstPoint{C}
+ \tkzDefLine[orthogonal=through C](I,C) \tkzGetPoint{c}
+ \tkzDefLine[orthogonal=through B](A,B) \tkzGetPoint{b}
+ \tkzInterLL(C,c)(B,b) \tkzGetPoint{T}
+ \tkzInterLL(A,T)(C,D) \tkzGetPoint{P}
+ \tkzDrawArc(I,B)(A)
+ \tkzDrawSegments(A,B A,T C,D I,C) \tkzDrawSegment[color=orange](I,C)
+ \tkzDrawLine[add = 1 and 0](C,T) \tkzDrawLine[add = 0 and 1](B,T)
+ \tkzMarkRightAngle(I,C,T)
+ \tkzDrawPoints(A,B,I,D,C,T)
+ \tkzLabelPoints(A,B,I,D) \tkzLabelPoints[above right](C,T)
+ \tkzMarkSegment[pos=.25,mark=s|](C,D) \tkzMarkSegment[pos=.75,mark=s|](C,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-5.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-5.tex
new file mode 100644
index 0000000000..7018e92f9b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-5.tex
@@ -0,0 +1,21 @@
+\begin{tikzpicture}[scale=1.25]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(2.5,0){N}
+ \tkzDefPoint(-4.2,0.5){M}
+ \tkzDefPointBy[rotation=center O angle 30](N)
+ \tkzGetPoint{B}
+ \tkzDefPointBy[rotation=center O angle -50](N)
+ \tkzGetPoint{A}
+ \tkzInterLC(M,B)(O,N) \tkzGetFirstPoint{C}
+ \tkzInterLC(M,A)(O,N) \tkzGetSecondPoint{A'}
+ \tkzMarkAngle[mkpos=.2, size=0.5](A,C,B)
+ \tkzMarkAngle[mkpos=.2, size=0.5](A,M,C)
+ \tkzDrawSegments(A,C M,A M,B)
+ \tkzDrawCircle(O,N)
+ \tkzLabelCircle[above left](O,N)(120){$\mathcal{C}$}
+ \tkzMarkAngle[mkpos=.2, size=1.2](C,A,M)
+ \tkzDrawPoints(O, A, B, M, B, C)
+ \tkzLabelPoints[right](O,A,B)
+ \tkzLabelPoints[above left](M,C)
+ \tkzLabelPoint[below left](A'){$A'$}
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-6.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-6.tex
new file mode 100644
index 0000000000..4679a43741
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-6.tex
@@ -0,0 +1,26 @@
+\begin{tikzpicture}[scale=2]
+ \tkzDefPoint[label=below left:A](0,0){A}
+ \tkzDefPoint[label=below right:B](6,0){B}
+ \tkzDefTriangle[equilateral](A,B) \tkzGetPoint{C}
+ \tkzMarkSegments[mark=|](A,B A,C B,C)
+ \tkzDefBarycentricPoint(A=1,B=2) \tkzGetPoint{C'}
+ \tkzDefBarycentricPoint(A=2,C=1) \tkzGetPoint{B'}
+ \tkzDefBarycentricPoint(C=2,B=1) \tkzGetPoint{A'}
+ \tkzInterLL(A,A')(C,C') \tkzGetPoint{J}
+ \tkzInterLL(C,C')(B,B') \tkzGetPoint{K}
+ \tkzInterLL(B,B')(A,A') \tkzGetPoint{L}
+ \tkzLabelPoint[above](C){C}
+ \tkzDrawPolygon(A,B,C) \tkzDrawSegments(A,J B,L C,K)
+ \tkzMarkAngles[fill= orange,size=1cm,opacity=.3](J,A,C K,C,B L,B,A)
+ \tkzLabelPoint[right](J){J}
+ \tkzLabelPoint[below](K){K}
+ \tkzLabelPoint[above left](L){L}
+ \tkzMarkAngles[fill=orange, opacity=.3,thick,size=1,](A,C,J C,B,K B,A,L)
+ \tkzMarkAngles[fill=green, size=1, opacity=.5](A,C,J C,B,K B,A,L)
+ \tkzFillPolygon[color=yellow, opacity=.2](J,A,C)
+ \tkzFillPolygon[color=yellow, opacity=.2](K,B,C)
+ \tkzFillPolygon[color=yellow, opacity=.2](L,A,B)
+ \tkzDrawSegments[line width=3pt,color=cyan,opacity=0.4](A,J C,K B,L)
+ \tkzDrawSegments[line width=3pt,color=red,opacity=0.4](A,L B,K C,J)
+ \tkzMarkSegments[mark=o](J,K K,L L,J)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-7.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-7.tex
new file mode 100644
index 0000000000..f83abadd82
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-7.tex
@@ -0,0 +1,19 @@
+\begin{tikzpicture}[scale=2,decoration={markings,
+ mark=at position 3cm with {\arrow[scale=2]{>}}}]
+ \tkzDefPoints{0/0/E, 6/0/F, 0/1.8/P, 6/1.8/Q, 0/3/R, 6/3/S}
+ \tkzDrawLines[postaction={decorate}](E,F P,Q R,S)
+ \tkzDefPoints{3.5/3/A, 5/3/B}
+ \tkzDrawSegments(E,A F,B)
+ \tkzInterLL(E,A)(P,Q) \tkzGetPoint{C}
+ \tkzInterLL(B,F)(P,Q) \tkzGetPoint{D}
+ \tkzLabelPoints[above right](A,B)
+ \tkzLabelPoints[below](E,F)
+ \tkzLabelPoints[above left](C)
+ \tkzDrawSegments[style=dashed](A,F)
+ \tkzInterLL(A,F)(P,Q) \tkzGetPoint{G}
+ \tkzLabelPoints[above right](D,G)
+ \tkzDrawSegments[color=teal, line width=3pt, opacity=0.4](A,C A,G)
+ \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](C,E G,F)
+ \tkzDrawSegments[color=teal, line width=3pt, opacity=0.4](B,D)
+ \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](D,F)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-8.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-8.tex
new file mode 100644
index 0000000000..f7e05f7c8b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-8.tex
@@ -0,0 +1,24 @@
+\begin{tikzpicture}[scale=2]
+ \tkzDefPoints{0/0/B, 5/0/D} \tkzDefPoint(70:3){A}
+ \tkzDrawPolygon(B,D,A)
+ \tkzDefLine[bisector](B,A,D) \tkzGetPoint{a}
+ \tkzInterLL(A,a)(B,D) \tkzGetPoint{C}
+ \tkzDefLine[parallel=through B](A,C) \tkzGetPoint{b}
+ \tkzInterLL(A,D)(B,b) \tkzGetPoint{P}
+ \begin{scope}[decoration={markings,
+ mark=at position .5 with {\arrow[scale=2]{>}}}]
+ \tkzDrawSegments[postaction={decorate},dashed](C,A P,B)
+ \end{scope}
+ \tkzDrawSegment(A,C) \tkzDrawSegment[style=dashed](A,P)
+ \tkzLabelPoints[below](B,C,D) \tkzLabelPoints[above](A,P)
+ \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](B,C P,A)
+ \tkzDrawSegments[color=teal, line width=3pt, opacity=0.4](C,D A,D)
+ \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](A,B)
+ \tkzMarkAngles[size=0.7](B,A,C C,A,D)
+ \tkzMarkAngles[size=0.7, fill=green, opacity=0.5](B,A,C A,B,P)
+ \tkzMarkAngles[size=0.7, fill=yellow, opacity=0.3](B,P,A C,A,D)
+ \tkzMarkAngles[size=0.7, fill=green, opacity=0.6](B,A,C A,B,P B,P,A C,A,D)
+ \tkzLabelAngle[pos=1](B,A,C){1} \tkzLabelAngle[pos=1](C,A,D){2}
+ \tkzLabelAngle[pos=1](A,B,P){3} \tkzLabelAngle[pos=1](B,P,A){4}
+ \tkzMarkSegments[mark=|](A,B A,P)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-9.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-9.tex
new file mode 100644
index 0000000000..7c340929a9
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-31-2-9.tex
@@ -0,0 +1,19 @@
+\begin{tikzpicture}[scale=2]
+ \tkzDefPoint(0,3){A} \tkzDefPoint(6,3){E} \tkzDefPoint(1.35,3){B}
+ \tkzDefPoint(4.65,3){D} \tkzDefPoint(1,1){G} \tkzDefPoint(5,5){F}
+ \tkzDefMidPoint(A,E) \tkzGetPoint{C}
+ \tkzFillPolygon[yellow, opacity=0.4](B,G,C)
+ \tkzFillPolygon[yellow, opacity=0.4](D,F,C)
+ \tkzFillPolygon[blue, opacity=0.3](A,B,G)
+ \tkzFillPolygon[blue, opacity=0.3](E,D,F)
+ \tkzMarkAngles[size=0.6,fill=green](B,G,A D,F,E)
+ \tkzMarkAngles[size=0.6,fill=orange](B,C,G D,C,F)
+ \tkzMarkAngles[size=0.6,fill=yellow](G,B,C F,D,C)
+ \tkzMarkAngles[size=0.6,fill=red](A,B,G E,D,F)
+ \tkzMarkSegments[mark=|](B,C D,C) \tkzMarkSegments[mark=s||](G,C F,C)
+ \tkzMarkSegments[mark=o](A,G E,F) \tkzMarkSegments[mark=s](B,G D,F)
+ \tkzDrawSegment[color=red](A,E)
+ \tkzDrawSegment[color=blue](F,G)
+ \tkzDrawSegments(A,G G,B E,F F,D)
+ \tkzLabelPoints[below](C,D,E,G) \tkzLabelPoints[above](A,B,F)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-5-0-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-5-0-0.tex
new file mode 100644
index 0000000000..d1ec248e52
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-5-0-0.tex
@@ -0,0 +1,23 @@
+ \begin{tikzpicture}[scale=1,ra/.style={fill=gray!20}]
+ % fixed points
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(1,0){I}
+ % calculation
+ \tkzDefPointBy[homothety=center A ratio 10 ](I) \tkzGetPoint{B}
+ \tkzDefMidPoint(A,B) \tkzGetPoint{M}
+ \tkzDefPointWith[orthogonal](I,M) \tkzGetPoint{i}
+ \tkzInterLC(I,i)(M,B) \tkzGetSecondPoint{C}
+
+ \tkzDrawSegment[style=orange](I,C)
+ \tkzDrawArc(M,B)(A)
+ \tkzDrawSegment[dim={$1$,-16pt,}](A,I)
+ \tkzDrawSegment[dim={$a/2$,-10pt,}](I,M)
+ \tkzDrawSegment[dim={$a/2$,-16pt,}](M,B)
+ \tkzMarkRightAngle[ra](A,I,C)
+ \tkzDrawPoints(I,A,B,C,M)
+ \tkzLabelPoint[left](A){$A(0,0)$}
+ \tkzLabelPoints[above right](I,M)
+ \tkzLabelPoints[above left](C)
+ \tkzLabelPoint[right](B){$B(10,0)$}
+ \tkzLabelSegment[right=4pt](I,C){$IC=\sqrt{a}$}
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-6-2-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-6-2-0.tex
new file mode 100644
index 0000000000..b113d42898
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-6-2-0.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}
+ \tkzInit[xmin=-1,xmax=3,ymin=-1, ymax=3]
+ \tkzGrid
+ \tkzShowBB[red,line width=2pt]
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-6-3-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-6-3-0.tex
new file mode 100644
index 0000000000..c80a756aaa
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-6-3-0.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=4, ymax=3]
+ \tkzAxeXY
+ \tkzGrid
+ \tkzClip
+ \draw[red] (-1,-1)--(5,2);
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-6-4-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-6-4-0.tex
new file mode 100644
index 0000000000..2a0df0756e
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-6-4-0.tex
@@ -0,0 +1,7 @@
+\begin{tikzpicture}
+ \tkzInit[xmax=4, ymax=3]
+ \tkzAxeXY
+ \tkzGrid
+ \tkzClip[space=1]
+ \draw[red] (-1,-1)--(5,2);
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-1-1.tex
new file mode 100644
index 0000000000..99a4a10e09
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-1-1.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}[rotate=90]
+ \tkzDefPoint[label=right:$A_n$](2,3){A}
+ \begin{scope}[shift={(A)}]
+ \tkzDefPoint[label= right:$B_n$](31:3){B}
+ \tkzDefPoint[label= right:$C_n$](158:3){C}
+ \end{scope}
+ \tkzDrawSegments[color=red,%
+ line width=1pt](A,B A,C)
+ \tkzDrawPoints[color=red](A,B,C)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-1-2.tex
new file mode 100644
index 0000000000..0180cdf0c0
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-1-2.tex
@@ -0,0 +1,16 @@
+\begin{tikzpicture}[scale=1]
+ \tkzInit[xmax=6,ymax=6]
+ \tkzGrid
+ \tkzDefPoint(-1+1,-1+4){O}
+ \tkzDefPoint({3*ln(exp(1))},{exp(1)}){A}
+ \tkzDefPoint({4*sin(pi/6)},{4*cos(pi/6)}){B}
+ \tkzDefPoint({4*sin(pi/3)},{4*cos(pi/3)}){B'}
+ \tkzDefPoint(30:5){C}
+ \tkzDefPoint[shift={(1,3)}](45:4){A'}
+ \begin{scope}[shift=(A)]
+ \tkzDefPoint(30:3){C'}
+ \end{scope}
+ \tkzDrawPoints[color=blue](O,B,C)
+ \tkzDrawPoints[color=red](B',A,A',C')
+ \tkzLabelPoints(A,O,B,B',A',C,C')
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-1-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-1-3.tex
new file mode 100644
index 0000000000..fb4de23048
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-1-3.tex
@@ -0,0 +1,14 @@
+\begin{tikzpicture}[scale=1]
+ \tkzSetUpLine[color=blue!60]
+ \begin{scope}[rotate=30]
+ \tkzDefPoint(2,3){A}
+ \begin{scope}[shift=(A)]
+ \tkzDefPoint(90:5){B}
+ \tkzDefPoint(30:5){C}
+ \end{scope}
+ \end{scope}
+ \tkzDrawPolygon(A,B,C)
+\tkzLabelPoints[above](B,C)
+\tkzLabelPoints[below](A)
+\tkzDrawPoints(A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-3-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-3-0.tex
new file mode 100644
index 0000000000..7baa5d2f80
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-3-0.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoints{0/0/A,4/0/B,4/3/C}
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-4-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-4-0.tex
new file mode 100644
index 0000000000..49b9008cad
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-4-0.tex
@@ -0,0 +1,5 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoints{0/0/A,2/0/B,2/2/C,0/2/D}
+ \tkzDrawPolygon(A,...,D)
+ \tkzDrawPoints(A,B,C,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-5-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-5-1.tex
new file mode 100644
index 0000000000..fee838752a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-5-1.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[rotate=-30]
+ \tkzDefPoint(2,3){A}
+ \tkzDefShiftPoint[A](0:4){B}
+ \tkzDefShiftPoint[A](30:4){C}
+ \tkzDrawSegments(A,B B,C C,A)
+ \tkzMarkSegments[mark=|,
+ color=red](A,B A,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(B,C)
+ \tkzLabelPoints[above left](A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-5-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-5-2.tex
new file mode 100644
index 0000000000..8e18b9319c
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-5-2.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoint(2,3){A}
+ \tkzDefShiftPoint[A](30:4){B}
+ \tkzDefShiftPoint[A](-30:4){C}
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(B,C)
+ \tkzLabelPoints[above left](A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-5-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-5-3.tex
new file mode 100644
index 0000000000..d6b6aba0f9
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-7-5-3.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(60:3){B}
+ \tkzDefShiftPointCoord[B](30:4){C}
+ \tkzDefShiftPointCoord[A](30:4){D}
+ \tkzDrawPolygon(A,...,D)
+ \tkzDrawPoints(A,...,D)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-1-1.tex
new file mode 100644
index 0000000000..2de647b249
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-1-1.tex
@@ -0,0 +1,8 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoint(2,3){A}
+ \tkzDefPoint(4,0){B}
+ \tkzDefMidPoint(A,B) \tkzGetPoint{C}
+ \tkzDrawSegment(A,B)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints[right](A,B,C)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-2-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-2-1.tex
new file mode 100644
index 0000000000..e44974aee6
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-2-1.tex
@@ -0,0 +1,9 @@
+\begin{tikzpicture}
+ \tkzDefPoint(2,3){A}
+ \tkzDefShiftPointCoord[2,3](30:4){B}
+ \tkzDefBarycentricPoint(A=1,B=2)
+ \tkzGetPoint{I}
+ \tkzDrawPoints(A,B,I)
+ \tkzDrawLine(A,B)
+ \tkzLabelPoints(A,B,I)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-2-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-2-2.tex
new file mode 100644
index 0000000000..60178e199e
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-2-2.tex
@@ -0,0 +1,17 @@
+\begin{tikzpicture}[scale=.8]
+ \tkzDefPoint(2,1){A}
+ \tkzDefPoint(5,3){B}
+ \tkzDefPoint(0,6){C}
+ \tkzDefBarycentricPoint(A=1,B=1,C=1)
+ \tkzGetPoint{M}
+ \tkzDefMidPoint(A,B) \tkzGetPoint{C'}
+ \tkzDefMidPoint(A,C) \tkzGetPoint{B'}
+ \tkzDefMidPoint(C,B) \tkzGetPoint{A'}
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A',B',C')
+ \tkzDrawPoints(A,B,C,M)
+ \tkzDrawLines[add=0 and 1](A,M B,M C,M)
+ \tkzLabelPoint(M){$M$}
+ \tkzAutoLabelPoints[center=M](A,B,C)
+ \tkzAutoLabelPoints[center=M,above right](A',B',C')
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-3-0.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-3-0.tex
new file mode 100644
index 0000000000..5c7e97e8df
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-8-3-0.tex
@@ -0,0 +1,16 @@
+\begin{tikzpicture}[scale=.75,rotate=-30]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(4,-5){A}
+ \tkzDefIntSimilitudeCenter(O,3)(A,1) \tkzGetPoint{I}
+ \tkzExtSimilitudeCenter(O,3)(A,1) \tkzGetPoint{J}
+ \tkzDefTangent[from with R= I](O,3 cm) \tkzGetPoints{D}{E}
+ \tkzDefTangent[from with R= I](A,1 cm) \tkzGetPoints{D'}{E'}
+ \tkzDefTangent[from with R= J](O,3 cm) \tkzGetPoints{F}{G}
+ \tkzDefTangent[from with R= J](A,1 cm) \tkzGetPoints{F'}{G'}
+ \tkzDrawCircle[R,fill=red!50,opacity=.3](O,3 cm)
+ \tkzDrawCircle[R,fill=blue!50,opacity=.3](A,1 cm)
+ \tkzDrawSegments[add = .5 and .5,color=red](D,D' E,E')
+ \tkzDrawSegments[add= 0 and 0.25,color=blue](J,F J,G)
+ \tkzDrawPoints(O,A,I,J,D,E,F,G,D',E',F',G')
+ \tkzLabelPoints[font=\scriptsize](O,A,I,J,D,E,F,G,D',E',F',G')
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-1.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-1.tex
new file mode 100644
index 0000000000..4c61a52db4
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-1.tex
@@ -0,0 +1,15 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(5,1){B}
+ \tkzDefPoint(1,4){C}
+ \tkzClipPolygon(A,B,C)
+ \tkzDefTriangleCenter[ortho](B,C,A)
+ \tkzGetPoint{H}
+ \tkzDefSpcTriangle[orthic,name=H](A,B,C){a,b,c}
+ \tkzDrawPolygon[color=blue](A,B,C)
+ \tkzDrawPoints(A,B,C,H)
+ \tkzDrawLines[add=0 and 1](A,Ha B,Hb C,Hc)
+ \tkzLabelPoint(M){$M$}
+ \tkzAutoLabelPoints[center=H](A,B,C)
+ \tkzMarkRightAngles(A,Ha,B B,Hb,C C,Hc,A)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-2.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-2.tex
new file mode 100644
index 0000000000..1bc90b5f4f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-2.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoints{-1/1/A,5/1/B}
+ \tkzDefEquilateral(A,B)
+ \tkzGetPoint{C}
+ \tkzDefTriangleCenter[centroid](A,B,C)
+ \tkzGetPoint{G}
+ \tkzDrawPolygon[color=Maroon](A,B,C)
+ \tkzDrawPoints(A,B,C,G)
+ \tkzDrawLines[add = 0 and 2/3](A,G B,G C,G)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-3.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-3.tex
new file mode 100644
index 0000000000..ed4b53eb0f
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-3.tex
@@ -0,0 +1,8 @@
+ \begin{tikzpicture}
+ \tkzDefPoints{0/1/A,3/2/B,1/4/C}
+ \tkzDefTriangleCenter[circum](A,B,C)
+ \tkzGetPoint{G}
+ \tkzDrawPolygon[color=Maroon](A,B,C)
+ \tkzDrawCircle(G,A)
+ \tkzDrawPoints(A,B,C,G)
+ \end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-4.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-4.tex
new file mode 100644
index 0000000000..1a6cd619bc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-4.tex
@@ -0,0 +1,10 @@
+\begin{tikzpicture}
+ \tkzDefPoints{0/1/A,3/2/B,1/4/C}
+ \tkzDefTriangleCenter[in](A,B,C)\tkzGetPoint{I}
+ \tkzDefPointBy[projection=onto A--C](I)
+ \tkzGetPoint{Ib}
+ \tkzDrawPolygon[color=blue](A,B,C)
+ \tkzDrawPoints(A,B,C,I)
+ \tkzDrawLines[add = 0 and 2/3](A,I B,I C,I)
+ \tkzDrawCircle(I,Ib)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-5.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-5.tex
new file mode 100644
index 0000000000..ca30906a40
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-5.tex
@@ -0,0 +1,11 @@
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoints{0/1/A,3/2/B,1/4/C}
+ \tkzDefCircle[ex](B,C,A)
+ \tkzGetFirstPoint{J_c}
+ \tkzGetSecondPoint{Tc}
+ \tkzDrawPolygon[color=blue](A,B,C)
+ \tkzDrawPoints(A,B,C,J_c)
+ \tkzDrawCircle[red](J_c,Tc)
+ \tkzDrawLines[add=1.5 and 0](A,C B,C)
+ \tkzLabelPoints(J_c)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-6.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-6.tex
new file mode 100644
index 0000000000..d03e41f164
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-6.tex
@@ -0,0 +1,28 @@
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
+ \tkzDefSpcTriangle[medial,
+ name=M](A,B,C){_A,_B,_C}
+ \tkzDefTriangleCenter[euler](A,B,C)
+ \tkzGetPoint{N} % I= N nine points
+ \tkzDefTriangleCenter[ortho](A,B,C)
+ \tkzGetPoint{H}
+ \tkzDefMidPoint(A,H) \tkzGetPoint{E_A}
+ \tkzDefMidPoint(C,H) \tkzGetPoint{E_C}
+ \tkzDefMidPoint(B,H) \tkzGetPoint{E_B}
+ \tkzDefSpcTriangle[ortho,name=H](A,B,C){_A,_B,_C}
+ \tkzDrawPolygon[color=blue](A,B,C)
+ \tkzDrawCircle(N,E_A)
+ \tkzDrawSegments[blue](A,H_A B,H_B C,H_C)
+ \tkzDrawPoints(A,B,C,N,H)
+ \tkzDrawPoints[red](M_A,M_B,M_C)
+ \tkzDrawPoints[blue]( H_A,H_B,H_C)
+ \tkzDrawPoints[green](E_A,E_B,E_C)
+ \tkzAutoLabelPoints[center=N,
+ font=\scriptsize](A,B,C,%
+ M_A,M_B,M_C,%
+ H_A,H_B,H_C,%
+ E_A,E_B,E_C)
+ \tkzLabelPoints[font=\scriptsize](H,N)
+ \tkzMarkSegments[mark=s|,size=3pt,
+ color=blue,line width=1pt](B,E_B E_B,H)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-7.tex b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-7.tex
new file mode 100644
index 0000000000..1ba2517fdc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclide-9-1-7.tex
@@ -0,0 +1,16 @@
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(5,0){B}
+ \tkzDefPoint(1,4){C}
+ \tkzDefTriangleCenter[symmedian](A,B,C)\tkzGetPoint{K}
+ \tkzDefTriangleCenter[median](A,B,C)\tkzGetPoint{G}
+ \tkzDefTriangleCenter[in](A,B,C)\tkzGetPoint{I}
+ \tkzDefSpcTriangle[centroid,name=M](A,B,C){a,b,c}
+ \tkzDefSpcTriangle[incentral,name=I](A,B,C){a,b,c}
+ \tkzDrawPolygon[color=blue](A,B,C)
+ \tkzDrawPoints(A,B,C,K)
+ \tkzDrawLines[add = 0 and 2/3,blue](A,K B,K C,K)
+ \tkzDrawSegments[red,dashed](A,Ma B,Mb C,Mc)
+ \tkzDrawSegments[orange,dashed](A,Ia B,Ib C,Ic)
+ \tkzDrawLine(G,I)
+\end{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclpreamble.ltx b/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclpreamble.ltx
deleted file mode 100644
index 0ffde87a9c..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/examples/tkzeuclpreamble.ltx
+++ /dev/null
@@ -1,18 +0,0 @@
-%
-% tkzfctpreamble (juin 2011)
-%
-% Coding (utf8) Creator (TeX) Producer (pdfeTeX)
-% Copyright (C) 2010 Alain Matthes
-%
-\documentclass{scrartcl}
-\usepackage[usenames,dvipsnames,svgnames]{xcolor}
-\usepackage{amsmath,tkz-euclide}
-\usetkzobj{all}
-
-\definecolor{bistre}{rgb}{.75,.50,.30}
-\definecolor{Maroon}{rgb}{0.5,0.0,0.0}
-\definecolor{fondpaille}{cmyk}{0,0,0.1,0}
-\pagecolor{fondpaille}
-\color{Maroon}
-\tkzSetUpColors[background=fondpaille,text=Maroon]
-
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
new file mode 100644
index 0000000000..9a611c9943
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
@@ -0,0 +1,23 @@
+% tkz-euclide.sty
+% Copyright 2011 by Alain Matthes
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%<------------------------------------------------------------–>
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-euclide.sty}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tkz-euclide}[2020/01/23 3.01c for euclidan geometry ]
+\RequirePackage{tkz-base}
+\DeclareOption*{}%% Ne rien faire quand une option est inconnue
+\ProcessOptions
+%<----------------------------------------------------------–>
+% Initialisation
+%<----------------------------------------------------------–>
+\input{tkz-tools-intersections}
+\input{tkz-tools-angles}
+\usetkzobj{eu-angles,eu-arcs,eu-compass,eu-circles,eu-draw-circles,eu-lines,eu-draw-lines,eu-points,eu-points-by,eu-points-rnd,eu-points-with,eu-draw-polygons,eu-polygons,eu-protractor,eu-sectors,eu-show,eu-triangles}
+\endinput
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-angles.tex
new file mode 100644
index 0000000000..caa19116be
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-angles.tex
@@ -0,0 +1,289 @@
+% tkz-tool-eu-angles.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-tool-eu-angles.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+\newdimen\tkz@arcsize% from julian julian@d-and-j.net
+\newdimen\tkz@fillsize
+%<-------------------------------------------------------------------------–>
+
+%<--------------------------------------------------------------------------–>
+% tkzDrawArcRAN >
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawArcRAN[#1](#2,#3)(#4,#5){%
+\begingroup
+ \draw[shift = {(#2)},/drawarc/.cd,#1] (#4:#3) arc (#4:#5:#3);
+\endgroup
+}
+%<--------------- tkzPathArcRAN ----------------------------------
+\def\tkzPathArcRAN[#1](#2,#3)(#4,#5){%
+\begingroup
+ \path[shift = {(#2)},/drawarc/.cd,#1] (#4:#3) arc (#4:#5:#3);
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Mark an angle
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% \tkzMarkAngle(B, A, C)
+%
+% Marque d'angle
+% arc de cercle (simple/double/triple) et marque d'églité.
+%
+% Par défaut:
+% arc = simple
+% size = 1cm (rayon de l'arc)
+% style traits pleins
+% mkpos ? position: 0.5 (position de la marque)
+% mark rien du tout (ignoré si type est utilisé)
+%
+% Paramètres (optionnels)
+% arc : l, ll, lll
+% mksize : 1cm
+% gap : 3pt
+% dist ?
+% style : type de traits
+% type : none, |, ||,|||, z, s, x, o, oo
+% position: 0.5
+% mark : none , |, ||,|||, z, s, x, o, oo mais tous les
+% % symboles de tikz sont permis
+%<------------------------- Label on angle -------------------------------–>
+\def\tkz@arcsimple{l}
+\def\tkz@arcdouble{ll}
+\def\tkz@arctriple{lll}
+
+%\tikzset{lbstyle/.style = {color=\tkz@mainlinecolor}}
+
+\pgfkeys{/tkzmkangle/.cd,
+ arc/.estore in = \tkz@arc,
+ size/.store in = \tkz@size,
+ mark/.store in = \tkz@markang,
+ mkpos/.estore in = \tkz@mkpos,
+ mksize/.store in = \tkz@mksize,
+ mkcolor/.store in = \tkz@mkcolor,
+ arc = l,
+ size = 1 cm,
+ mark = |,
+ mksize = 4pt,
+ mkcolor = black,
+ mkpos = 0.5,
+ /tkzmkangle/.search also={/tikz}
+} \def\tkzMarkAngle{\pgfutil@ifnextchar[{\tkz@MarkAngle}{\tkz@MarkAngle[]}}
+\def\tkz@MarkAngle[#1](#2,#3,#4){%
+\begingroup
+\pgfqkeys{/tkzmkangle}{#1}
+
+\tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz@dirOne}
+\tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz@dirTwo}
+\tkzNormalizeAngle(\tkz@dirOne,\tkz@dirTwo)
+
+% les marques, aucune si mktype = none
+\def\tkz@mymark{\pgfsetplotmarksize{\tkz@mksize}\pgfuseplotmark{\tkz@markang}}
+% draw the arcs
+\begin{scope}[decoration= {markings,
+ mark=at position \tkz@mkpos with {\tkz@mymark}}]
+ \ifx\tkz@arc\tkz@arcsimple
+ \tkzDrawArcRAN[#1,fill=none,postaction={decorate}]%
+ (#3,\tkz@size)(\tkz@FirstAngle,\tkz@SecondAngle)
+ \else
+ \ifx\tkz@arc\tkz@arcdouble
+
+ \tkzDrawArcRAN[#1,fill=none](#3,\tkz@size-1.5\pgflinewidth)%
+ (\tkz@FirstAngle,\tkz@SecondAngle)
+ \tkzPathArcRAN[#1,fill=none,postaction={decorate}]%
+ (#3,\tkz@size)(\tkz@FirstAngle,\tkz@SecondAngle)%
+ \tkzDrawArcRAN[#1,fill=none](#3,\tkz@size+1.5\pgflinewidth)%
+ (\tkz@FirstAngle,\tkz@SecondAngle)%
+ \else
+ \ifx\tkz@arc\tkz@arctriple
+ \tkzDrawArcRAN[#1,fill=none,postaction={decorate}]%
+ (#3,\tkz@size)(\tkz@FirstAngle,\tkz@SecondAngle)%
+ \tkzDrawArcRAN[#1,fill=none](#3,\tkz@size-2.5\pgflinewidth)%
+ (\tkz@FirstAngle,\tkz@SecondAngle)%
+ \tkzDrawArcRAN[#1,fill=none](#3,\tkz@size+2.5\pgflinewidth)%
+ (\tkz@FirstAngle,\tkz@SecondAngle)%
+ \fi
+ \fi
+ \fi
+\end{scope}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% multiple
+\def\tkz@multiMA#1 #2\@nil{%
+ \protected@edef\tkz@temp{
+ \noexpand \tkzMarkAngle[\tkz@optma](#1)}\tkz@temp%
+ \def\tkz@nextArg{#2}%
+ \ifx\tkzutil@empty\tkz@nextArg
+ \let\next\@gobble
+ \fi
+ \next#2\@nil
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzMarkAngles{\pgfutil@ifnextchar[{\tkz@MarkAngles}{\tkz@MarkAngles[]}}
+\def\tkz@MarkAngles[#1](#2){%
+\xdef\tkz@optma{#1}
+ \begingroup
+ \let\next\tkz@multiMA
+ \next#2 \@nil %
+\endgroup
+}
+% fin de \tkzMarkAngle
+%<--------------------------------------------------------------------------–>
+% FillAngle
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/tkzFill/.cd,
+ size/.store in = \tkz@size,
+ size = 1 cm,
+ /tkzFill/.search also={/tikz}
+ }
+
+\def\tkzFillAngle{\pgfutil@ifnextchar[{\tkz@FillAngle}{\tkz@FillAngle[]}}
+\def\tkz@FillAngle[#1](#2,#3,#4){%
+\begingroup
+\pgfqkeys{/tkzFill}{#1}
+ \tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz@dirOne}
+ \tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz@dirTwo}
+ \tkzNormalizeAngle(\tkz@dirOne,\tkz@dirTwo)
+ \path[shift = {(#3)},/tkzFill/.cd,#1]%
+ (#3) -- (\tkz@FirstAngle:\tkz@size) arc%
+ (\tkz@FirstAngle:\tkz@SecondAngle:\tkz@size)--cycle;
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% multiple
+\def\tkz@multiFA#1 #2\@nil{\protected@edef\tkz@temp{%
+ \noexpand \tkzFillAngle[\tkz@optfa](#1)}%
+ \tkz@temp%
+ \def\tkz@nextArg{#2}%
+ \ifx\tkzutil@empty\tkz@nextArg
+ \let\next\@gobble
+ \fi
+ \next#2\@nil
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzFillAngles{\pgfutil@ifnextchar[{\tkz@MFillAngles}{\tkz@MFillAngles[]}}
+\def\tkz@MFillAngles[#1](#2){%
+\xdef\tkz@optfa{#1}
+\begingroup
+ \let\next\tkz@multiFA
+ \next#2 \@nil %
+\endgroup
+}
+%<------------------------- Label on angle -------------------------------–>
+\pgfkeys{/tkzlabelangle/.cd,
+ dist/.store in = \tkzlabeldist,
+ angle/.store in = \tkzlabelangle,
+ dist = 1,
+ angle = {},
+ /tkzlabelangle/.search also={/tikz}
+}
+\def\tkzLabelAngle{\pgfutil@ifnextchar[{\tkz@LabelAngle}{\tkz@LabelAngle[]}}
+\def\tkz@LabelAngle[#1](#2,#3,#4)#5{%2016 added normalize from karu's code
+\begingroup
+ \pgfqkeys{/tkzlabelangle}{#1}
+ \ifx\tkzutil@empty\tkzlabelangle% no value so calc angle of bisector
+ \tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz@dirOne}
+ \tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz@dirTwo}
+ \tkzNormalizeAngle(\tkz@dirOne,\tkz@dirTwo)
+ \edef\tkzlabelAngle{\fpeval{(\tkz@SecondAngle+\tkz@FirstAngle)/2}}
+ \fi
+ \path (#3) --+(\tkzlabelAngle:\tkzlabeldist) node[/tkzlabelangle/.cd,#1] {#5};
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% multiple labels
+\def\tkz@multiLBA#1 #2\@nil{%
+ \protected@edef\tkz@temp{
+ \noexpand \tkzLabelAngle[\tkz@optlba](#1){\tkz@labelangle}}\tkz@temp%
+ \def\tkz@nextArg{#2}%
+ \ifx\tkzutil@empty\tkz@nextArg
+ \let\next\@gobble
+ \fi
+ \next#2\@nil
+}
+% %<---------------------------------------------------------------------
+\def\tkzLabelAngles{\pgfutil@ifnextchar[{\tkz@LabelAngles}{%
+ \tkz@LabelAngles[]}}
+\def\tkz@LabelAngles[#1](#2)#3{%
+ \def\tkz@optlba{#1}
+ \def\tkz@labelangle{#3}
+ \begingroup
+ \let\next\tkz@multiLBA
+ \next#2 \@nil %
+ \endgroup
+}
+%<-----------------------------------------------------------------------
+% Symbole droites perpendiculaires
+%<----------------------------------------------------------------------
+\pgfkeys{/tkzrightangle/.cd,
+ norm tkz code/.is if = normtkzcode@execute,
+ german/.code = \normtkzcode@executefalse,
+ size/.store in = \tkz@ra@size,
+ dotsize/.store in = \tkz@dotsize,
+ size = .25,
+ dotsize = 3 pt,
+ /tkzrightangle/.search also={/tikz},
+}
+\newcommand*{\tkzMarkRightAngle}[1][]{\tkz@RightAngle[#1]}
+\def\tkz@RightAngle[#1](#2,#3,#4){%
+\begingroup
+\normtkzcode@executetrue
+\pgfqkeys{/tkzrightangle}{#1}
+ \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#3}{center}}{%
+ \pgfpointanchor{#2}{center}}}
+ \tkz@ax=\pgf@x\relax%
+ \tkz@ay=\pgf@y\relax%
+ \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#3}{center}}{%
+ \pgfpointanchor{#4}{center}}}
+ \tkz@bx=\pgf@x\relax%
+ \tkz@by=\pgf@y\relax%
+ \ifnormtkzcode@execute%
+ \draw[/tkzrightangle/.cd,#1]
+ (#3) --++( 28.45274*\tkz@ra@size\tkz@ax , 28.45274*\tkz@ra@size\tkz@ay)
+ --++( 28.45274*\tkz@ra@size\tkz@bx , 28.45274*\tkz@ra@size\tkz@by)
+ --++(-28.45274*\tkz@ra@size\tkz@ax ,-28.45274*\tkz@ra@size\tkz@ay)
+ -- (#3);
+ \else%
+ % find angles
+ \tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz@dirOne}
+ \tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz@dirTwo}
+ \tkzNormalizeAngle(\tkz@dirOne,\tkz@dirTwo)
+ \edef\tkzCircleAngle{\fpeval{(\tkz@SecondAngle+\tkz@FirstAngle)/2}}
+ \tkzDrawArcRAN[/tkzrightangle/.cd,#1](#3,\tkz@ra@size)%
+ (\tkz@FirstAngle,\tkz@SecondAngle)
+ \path (#3) --+ (\tkzCircleAngle:\tkz@ra@size/2)
+ node[fill,circle,minimum size=\tkz@dotsize,inner sep=0 pt] {};
+\fi%
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkz@multiRA#1 #2\@nil{%
+\protected@edef\tkz@temp{
+ \noexpand \tkzMarkRightAngle[\tkz@optRA](#1)}\tkz@temp%
+\def\tkz@nextArg{#2}%
+ \ifx\tkzutil@empty\tkz@nextArg
+ \let\next\@gobble
+ \fi
+\next#2\@nil
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzMarkRightAngles{\pgfutil@ifnextchar[{\tkz@RightAngles}{%
+ \tkz@RightAngles[]}}
+\def\tkz@RightAngles[#1](#2){%
+\xdef\tkz@optRA{#1}
+\begingroup
+ \let\next\tkz@multiRA
+ \next#2 \@nil %
+\endgroup
+}
+
+\makeatother
+\endinput
+ \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-arcs.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-arcs.tex
new file mode 100644
index 0000000000..7c0584c8f0
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-arcs.tex
@@ -0,0 +1,167 @@
+% tkz-obj-eu-arcs.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-arcs.tex}
+\makeatletter
+%<------------------------------ Arcs -------------------------------------–
+% options : delta
+% \def\tkz@delta{0}
+% \tikzset{arc style/.style={#1}}
+% \pgfkeys{/tikz/.cd,delta/.code={\def\tkz@delta{#1}}}
+
+\gdef\tkz@numa{0}
+\pgfkeys{/drawarc/.cd,
+ type/.is choice,
+ type/towards/.code = \def\tkz@numa{0},
+ type/rotate/.code = \def\tkz@numa{1},
+ type/angles/.code = \def\tkz@numa{2},
+ type/R/.code = \def\tkz@numa{3},
+ type/R with nodes/.code = \def\tkz@numa{4},
+ towards/.style = {type=towards},
+ rotate/.style = {type=rotate},
+ R/.style = {type=R},
+ angles/.style = {type=angles},
+ R with nodes/.style = {type=R with nodes},
+ diameter/.code = {},
+ arc/.code = {},
+ size/.code = {},
+ mark/.code = {},
+ mkpos/.code = {},
+ mksize/.code = {},
+ mkcolor/.code = {},
+ type/.default = towards,
+ delta/.store in = \tkz@delta,
+ delta = 0,
+ /drawarc/.search also = {/tikz}
+}
+\def\tkzDrawArc{\pgfutil@ifnextchar[{\tkz@DrawArc}{\tkz@DrawArc[]}}
+\def\tkz@DrawArc[#1](#2,#3)(#4){%
+\begingroup
+\pgfqkeys{/drawarc}{#1}
+\ifcase\tkz@numa%
+ \tkzDrawArcTowards[#1](#2,#3)(#4)
+\or% 1
+ \tkzDrawArcRotate[#1](#2,#3)(#4)
+\or% 2
+ \tkzDrawArcAngles[#1](#2,#3)(#4)
+\or% 3
+ \tkzDrawArcRAngles[#1](#2,#3)(#4)
+ \or% 4
+ \tkzDrawArcR[#1](#2,#3)(#4)
+\fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% ARC nodes #2 center #3 first point last point #4
+% delta un peu plus à chaque extrémité
+% example : \tkzDrawArc(A,B)(C)
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawArcTowards{\pgfutil@ifnextchar[{\tkz@DrawArcN}{\tkz@DrawArcN[]}}
+\def\tkz@DrawArcN[#1](#2,#3)(#4){%
+\begingroup
+ \tkzCalcLength(#2,#3)\tkzGetLength{tkz@radius}
+ \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@FirstAngle}
+ \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@SecondAngle}
+ \tkz@DrawArcRAngles[#1](#2,\tkz@radius pt)(\tkz@FirstAngle,\tkz@SecondAngle)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% nodes #2 center #3 first point rotate #4 with Angle
+% delta un peu plus à chaque extrémité
+% tkzDrawArcRotate(O,A)(60)
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawArcRotate{\pgfutil@ifnextchar[{\tkz@DrawArcRotate}{%
+ \tkz@DrawArcRotate[]}}
+\def\tkz@DrawArcRotate[#1](#2,#3)(#4){%
+\begingroup
+ \tkzCalcLength(#2,#3) \tkzGetLength{tkz@radius}
+ \tkzFindSlopeAngle(#2,#3) \tkzGetAngle{tkz@FirstA}
+ \pgfmathadd{\tkz@FirstA}{#4}
+ \edef\tkz@SecondA{\pgfmathresult}
+ \pgfmathgreaterthan{#4}{0}
+ \ifdim\pgfmathresult pt=1 pt\relax%
+ \tkz@DrawArcRAngles[#1](#2,\tkz@radius pt)(\tkz@FirstA,\tkz@SecondA)
+ \else
+ \tkz@DrawArcRAngles[#1](#2,\tkz@radius pt)(\tkz@SecondA,\tkz@FirstA)
+ \fi
+ \endgroup
+}
+%<--------------------------------------------------------------------------–>
+% deux angles
+% \tkzDrawArcAngles(O,A)(0,60)
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawArcAngles{\pgfutil@ifnextchar[{\tkz@DrawArcAngles}{%
+ \tkz@DrawArcAngles[]}}
+\def\tkz@DrawArcAngles[#1](#2,#3)(#4,#5){%
+\begingroup
+ \tkzCalcLength(#2,#3)
+ \tkz@DrawArcRAngles[#1](#2,\tkzLengthResult pt)(#4,#5)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% #1 center #2 radius #4 first angle (degree) #5 second angle (degree)
+% angles 0 .. 180 or -180 .. 0
+%<--------------------------------------------------------------------------–>
+% example : \tkzDrawArc(A,2 cm)(30,90)
+\def\tkzDrawArcRAngles{\pgfutil@ifnextchar[{\tkz@DrawArcRAngles}{%
+ \tkz@DrawArcRAngles[]}}
+\def\tkz@DrawArcRAngles[#1](#2,#3)(#4,#5){%
+ \begingroup
+ \pgfmathparse{#4}\edef\tkz@FirstAngle{\pgfmathresult}%
+ \pgfmathparse{#5}\edef\tkz@SecondAngle{\pgfmathresult}%
+ \pgfmathgreaterthan{\tkz@FirstAngle}{0}
+ \ifdim\pgfmathresult pt=1 pt\relax%
+ \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
+ \ifdim\pgfmathresult pt=1 pt\relax%
+ \pgfmathsubtract{\tkz@FirstAngle}{360}
+ \edef\tkz@FirstAngle{\pgfmathresult}%
+ \fi
+ \else
+ \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
+ \ifdim\pgfmathresult pt=1 pt\relax%
+ \pgfmathadd{\tkz@SecondAngle}{360}
+ \edef\tkz@SecondAngle{\pgfmathresult}%
+ \fi
+ \fi
+ \pgfmathsubtract{\tkz@FirstAngle}{\tkz@delta}
+ \edef\tkz@FirstAngle{\pgfmathresult}%
+ \pgfmathadd{\tkz@SecondAngle}{\tkz@delta}
+ \edef\tkz@SecondAngle{\pgfmathresult}
+ \draw[shift = {(#2)},compass style,/drawarc/.cd,#1]%
+ (\tkz@FirstAngle:#3) arc (\tkz@FirstAngle:\tkz@SecondAngle:#3);
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Degree #2 center #4 - #3 radius from #5 (degree) to #6(degree)
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawArcRwithNodes{\pgfutil@ifnextchar[{\tkz@DrawArcRwithNodes}{%
+ \tkz@DrawArcRwithNodes[]}}
+\def\tkz@DrawArcRwithNodes[#1](#2,#3,#4)(#5,#6){%
+\begingroup
+ \tkzCalcLength(#3,#4)
+ \tkzFindSlopeAngle(#2,#5)\tkzGetAngle{tkz@FirstAngle}
+ \tkzFindSlopeAngle(#2,#6)\tkzGetAngle{tkz@SecondAngle}
+ \tkz@DrawArcRAngles[#1](#2,\tkzLengthResult)%
+ (\tkz@FirstAngle,\tkz@SecondAngle)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Nodes R #2 center #3 radius en cm from #4(node) to #5(node)
+% \tkzDrawArcR(O,2 cm)(A,B)
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawArcR{\pgfutil@ifnextchar[{\tkz@DrawArcR}{\tkz@DrawArcR[]}}
+\def\tkz@DrawArcR[#1](#2,#3)(#4,#5){%
+\begingroup
+ \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@FirstAngle}
+ \tkzFindSlopeAngle(#2,#5)\tkzGetAngle{tkz@SecondAngle}
+ \tkz@DrawArcRAngles[#1](#2,#3)(\tkz@FirstAngle,\tkz@SecondAngle)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\makeatother
+\endinput
+ \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex
new file mode 100644
index 0000000000..aa1b259d8a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex
@@ -0,0 +1,237 @@
+% tkz-obj-eu-circles.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-circles.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% tkzCircle center and one point
+%<--------------------------------------------------------------------------–>
+% attention radius circle is defined by center and a point on the circle
+% R defined by center and the value of the radius
+% no need to define a circle with R tikz uses this method.
+% through instead of radius
+\def\tkz@numc{0}
+\pgfkeys{/tkzDefCircle/.cd,
+ through/.code = \def\tkz@numc{0},
+ radius/.code = \def\tkz@numc{0},
+ diameter/.code = \def\tkz@numc{1},
+ circum/.code = \def\tkz@numc{2},
+ in/.code = \def\tkz@numc{3},
+ ex/.code = \def\tkz@numc{4},% new
+ euler/.code = \def\tkz@numc{5},
+ nine/.code = \def\tkz@numc{5},
+ apollonius/.code = \def\tkz@numc{6},
+ orthogonal from/.code args = {#1}{\def\tkz@ptfrom{#1},
+ \def\tkz@numc{7}},
+ orthogonal through/.code args = {#1 and #2}{\def\tkz@ptone{#1}
+ \def\tkz@pttwo{#2}
+ \def\tkz@numc{8}},
+ spieker/.code = \def\tkz@numc{9},
+ K/.code = \def\tkz@koeff{#1},% apollonius
+ K = 1,
+ through
+ }
+\def\tkzDefCircle{\pgfutil@ifnextchar[{\tkz@DefCircle}{\tkz@DefCircle[]}}
+\def\tkz@DefCircle[#1](#2){%
+\begingroup
+\pgfqkeys{/tkzDefCircle}{#1}
+\ifcase\tkz@numc%
+ \tkzDefCircleThrough(#2)%
+ \or% 1
+ \tkzDefCircleD(#2)
+ \or% 2
+ \tkzDefCircumCircle(#2)
+ \or% 3
+ \tkzDefInCircle(#2)
+ \or% 4
+ \tkzDefExCircle(#2)
+ \or% 5
+ \tkzDefEulerCircle(#2)
+ \or% 6
+ \tkzDefApolloniusCircle(#2)
+ \or% 7
+ \tkzDefOrthogonalCircle(#2,\tkz@ptfrom)
+ \or% 8
+ \tkzDefOrthoThroughCircle(#2,\tkz@ptone,\tkz@pttwo)
+ \or% 9
+ \tkzDefSpiekerCircle(#2)
+ \fi
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+% Circum Circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircumCircle(#1,#2,#3){%
+\begingroup
+ \tkzCircumCenter(#1,#2,#3)
+ \tkzCalcLength(#1,tkzPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% In(scribe) Circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefInCircle(#1,#2,#3){%
+\begingroup
+ \tkzInCenter(#1,#2,#3)
+ \pgfnodealias{tkz@incenter}{tkzPointResult}
+ \tkzUProjection(#1,#3)(tkz@incenter)
+ \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+ \tkzCalcLength(tkzPointResult,tkz@incenter)
+ \pgfnodealias{tkzPointResult}{tkz@incenter}
+ \pgfnodealias{tkzFirstPointResult}{tkz@incenter}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Ex(scribe) Circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefExCircle(#1,#2,#3){%
+\begingroup
+ \tkzExCenter(#1,#2,#3)
+ \pgfnodealias{tkz@excenter}{tkzPointResult}
+ \tkzUProjection(#1,#3)(tkz@excenter)
+ \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+ \tkzCalcLength(tkzPointResult,tkz@excenter)% for tkzGetLength
+ \pgfnodealias{tkzPointResult}{tkz@excenter}
+ \pgfnodealias{tkzFirstPointResult}{tkz@excenter}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Radius Ex Circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefExRadius(#1,#2,#3){%
+\begingroup
+ \tkzExCenter(#1,#2,#3)
+ \tkzUProjection(#1,#3)(tkzPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% The nine-point circle, also called Euler's circle or the Feuerbach circle
+% best way Ma,Mb,Mc circum center 2020
+%<--------------------------------------------------------------------------–>
+\def\tkzDefEulerCircle(#1,#2,#3){%
+\begingroup
+ \tkzDefMidPoint(#1,#2) \pgfnodealias{tkz@e1}{tkzPointResult}
+ \tkzDefMidPoint(#2,#3) \pgfnodealias{tkz@e2}{tkzPointResult}
+ \tkzDefMidPoint(#1,#3) \pgfnodealias{tkz@e3}{tkzPointResult}
+ \tkzCircumCenter(tkz@e1,tkz@e2,tkz@e3)
+ \tkzCalcLength(tkzPointResult,tkz@e1)
+\endgroup
+}
+\let\tkzDefNinePointsCircle\tkzEulerCircle%
+\let\tkzFeuerBachCircle\tkzEulerCircle%
+
+\def\tkzDefEulerRadius(#1,#2,#3){%
+\begingroup
+ \tkzEulerCenter(#1,#2,#3)
+ \pgfnodealias{eur@pta}{tkzPointResult}
+ \tkzDefMidPoint(#1,#2)
+ \tkzCalcLength(eur@pta,tkzPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Apollonius circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefApolloniusCircle(#1,#2){%
+\begingroup
+ \tkz@VecK[\tkz@koeff/(1+\tkz@koeff)](#1,#2)
+ \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+ \tkz@VecK[\tkz@koeff/(\tkz@koeff-1)](#1,#2)
+ \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+ \tkzDefMidPoint(tkzFirstPointResult,tkzSecondPointResult)
+ \tkzCalcLength(tkzPointResult,tkzFirstPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Apollonius radius
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/tkzApolloniusR/.cd,
+ K/.code = \def\tkz@koeff{#1},% apollonius
+ K = 1
+ }
+\def\tkzDefApolloniusRadius{\pgfutil@ifnextchar[{%
+ \tkz@DefApolloniusRadius}{\tkz@DefApolloniusRadius[]}}
+\def\tkz@DefApolloniusRadius[#1](#2,#3){%
+\begingroup
+ \pgfqkeys{/tkzApolloniusR}{#1}
+ \tkz@VecK[\tkz@koeff/(1+\tkz@koeff)](#2,#3)
+ \pgfnodealias{apo@pta}{tkzPointResult}
+ \tkz@VecK[\tkz@koeff/(\tkz@koeff-1)](#2,#3)
+ \pgfnodealias{apo@ptb}{tkzPointResult}
+ \tkzDefMidPoint(apo@pta,apo@ptb)
+ \tkzCalcLength(tkzPointResult,apo@pta)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Apollonius point
+%<--------------------------------------------------------------------------–>
+
+\pgfkeys{/tkzApolloniusP/.cd,
+ K/.code = \def\tkz@koeff{#1},% apollonius
+ K = 1
+ }
+\def\tkzDefApolloniusPoint{\pgfutil@ifnextchar[{\tkz@DefApolloniusPoint}{\tkz@DefApolloniusPoint[]}}
+\def\tkz@DefApolloniusPoint[#1](#2,#3){%
+\begingroup
+ \pgfqkeys{/tkzApolloniusP}{#1}
+ \tkzDefBarycentricPoint(#2=1,#3=\tkz@koeff)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Apollonius center
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/tkzApolloniusC/.cd,
+ K/.code = \def\tkz@koeff{#1},% apollonius
+ K = 1
+ }
+\def\tkzApolloniusCenter{\pgfutil@ifnextchar[{\tkz@ApolloniusCenter}{\tkz@ApolloniusCenter[]}}
+\def\tkz@ApolloniusCenter[#1](#2,#3){%
+\begingroup
+ \pgfqkeys{/tkzApolloniusC}{#1}
+ \tkz@VecK[\tkz@koeff/(1+\tkz@koeff)](#2,#3)
+ \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+ \tkz@VecK[\tkz@koeff/(\tkz@koeff-1)](#2,#3)
+ \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+ \tkzDefMidPoint(tkzFirstPointResult,tkzSecondPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDefOrthogonalCircle(#1,#2,#3){%
+\begingroup
+ \tkzTgtFromP(#1,#2)(#3)
+ \tkzCalcLength[cm](#1,tkzFirstPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDefOrthoThroughCircle(#1,#2,#3,#4){%
+\begingroup
+ \tkzCalcLength[cm](#1,#3)\tkzGetLength{tkz@lnb}%
+ \edef\tkz@lnc{\fpeval{1/\tkz@lnb}}
+ \tkzVecKNorm[\tkz@lnc](#1,#3)
+ \pgfnodealias{tkz@PointResult}{tkzPointResult}
+ \tkzCircumCenter(tkz@PointResult,#3,#4)
+ \tkzCalcLength(tkzPointResult,#3)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Spieker Circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefSpiekerCircle(#1,#2,#3){%
+\begingroup
+ \tkzSpiekerCenter(#1,#2,#3)
+ \pgfnodealias{tkz@spka}{tkzPointResult}
+ \tkzDefMidPoint(#1,#2)
+ \tkzUProjection(#1,#2)(tkzPointResult)
+ \tkzCalcLength(tkz@spka,tkzPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% End Def Circle
+%<--------------------------------------------------------------------------–>
+ \makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex
new file mode 100644
index 0000000000..e0f00f678d
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex
@@ -0,0 +1,105 @@
+% tkz-obj-eu-compass.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-compass.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% Author Alain Matthes
+% idea from Y. Combe
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% Utilisation du Compas : Compass
+%<--------------------------------------------------------------------------–>
+% Setup Compass
+%<--------------------------------------------------------------------------–>
+\pgfkeys{%
+ setupcompass/.cd,
+ line width/.code = {\global\edef\tkz@compass@lw{#1}},
+ color/.code = {\global\edef\tkz@compass@color{#1}},
+ style/.code = {\global\edef\tkz@compass@style{#1}},
+ }
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzSetUpCompass{\pgfutil@ifnextchar[{\tkzActivOff\tkz@SetUpCompass}{%
+ \tkzActivOff\tkz@SetUpCompass[]}}
+%<--------------------------------------------------------------------------–>
+\def\tkz@SetUpCompass[#1]{%
+\pgfkeys{%
+ setupcompass/.cd,
+ line width = \tkz@euc@compasswidth,
+ color = \tkz@euc@compasscolor,
+ style = \tkz@euc@compassstyle
+ }
+\pgfqkeys{/setupcompass}{#1}
+\tikzset{compass style/.style={color = \tkz@compass@color,
+ line width = \tkz@compass@lw,
+ style = \tkz@compass@style
+ }}
+}
+%<--------------------------------------------------------------------------–>
+% \tkzCompass(A, B)
+%
+% Marque de compas auto-ajustée en longueur
+% #2 center #3 le point
+% Par défaut:
+% longueur : 1cm, mais avec un maximum d'un angle de 180°
+% angle calculé pour la longueur
+% style traits pleins
+
+%<--------------------------------------------------------------------------–>
+ \pgfkeys{
+ /compass/delta/.code = {\def\tkz@delta{#1}},
+ /compass/length/.code = {\def\tkz@length{#1}},
+ /compass/ratio/.code = {\def\tkz@ratio{#1}},
+ /compass/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
+ \pgfkeysalso{\searchname/.try=#1,
+ /tikz/\searchname/.retry=#1}}
+}
+
+\def\tkzCompass{\pgfutil@ifnextchar[{\tkz@Compass}{\tkz@Compass[]}}
+\def\tkz@Compass[#1](#2,#3){%
+\begingroup
+\pgfkeys{%
+ compass/.cd,
+ length = 1,
+ delta = 0,
+ ratio = .5
+ }
+\pgfkeys{compass/.cd,#1}
+ \tkzCalcLength(#2,#3)\tkzGetLength{tkz@tempLen}
+\ifnum\tkz@delta=0 %
+ \pgfmathsetmacro{\tkz@delta}{min(deg(\tkz@length cm/ \tkz@tempLen pt),180)/2}
+\fi
+ \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@angle}%
+ \draw[shift ={(#2)},/compass/.cd,compass style,#1]%
+ (\tkz@angle-\tkz@delta:\tkz@tempLen pt)%
+ arc (\tkz@angle-\tkz@delta:\tkz@angle+\tkz@delta:\tkz@tempLen pt);
+ %};
+\endgroup}
+%<--------------------------------------------------------------------------–>
+\def\tkz@multiCompass#1 #2\@nil{%
+ \protected@edef\tkz@temp{
+ \noexpand \tkzCompass[\tkz@optcompass](#1)}\tkz@temp%
+ \def\tkz@nextArg{#2}%
+ \ifx\tkzutil@empty\tkz@nextArg
+ \let\next\@gobble
+ \fi
+ \next#2\@nil
+}
+\def\tkzCompasss{\pgfutil@ifnextchar[{\tkz@Compasss}{\tkz@Compasss[]}}
+
+\def\tkz@Compasss[#1](#2){%
+\global\edef\tkz@optcompass{#1}
+\begingroup
+ \let\next\tkz@multiCompass
+ \next#2 \@nil %
+\endgroup
+}%
+
+\makeatother
+\endinput
+ \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex
new file mode 100644
index 0000000000..20a07f6fa6
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex
@@ -0,0 +1,251 @@
+% tkz-obj-eu-draw-circles.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-draw-circles.tex}
+\makeatletter
+%for compatibility
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircleR(#1,#2){%
+\begingroup
+ \edef\tkzLengthResult{\fpeval{round(#2,5)}}
+ \global\let\tkzLengthResult\tkzLengthResult
+ \tkzRenamePoint(#1){tkzPointResult}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Through Circle center and point
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircleThrough(#1,#2){%
+\begingroup
+ \tkzCalcLength(#1,#2)
+ \tkzRenamePoint(#1){tkzPointResult}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Diameter Circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircleD(#1,#2){%
+\begingroup
+ \tkzDefMidPoint(#1,#2)
+ \tkzCalcLength(#1,tkzPointResult)
+\endgroup
+}
+
+\def\tkz@numdc{0}
+\pgfkeys{/DrawCircle/.cd,
+ through/.code = \def\tkz@numdc{0},
+ R/.code = \def\tkz@numdc{1},
+ diameter/.code = \def\tkz@numdc{2},
+ circum/.code = \def\tkz@numdc{3},
+ in/.code = \def\tkz@numdc{4},
+ ex/.code = \def\tkz@numdc{5},
+ euler/.code = \def\tkz@numdc{6},
+ nine/.code = \def\tkz@numdc{6},
+ apollonius/.code = \def\tkz@numdc{7},
+ orthogonal from/.code args = {#1}{\def\tkz@ptfrom{#1},
+ \def\tkz@numdc{8}},
+ orthogonal through/.code args = {#1 and #2}{\def\tkz@ptone{#1}
+ \def\tkz@pttwo{#2}
+ \def\tkz@numdc{9}},
+ K/.store in = \tkz@koeff,% apollonius
+ through,
+ K = 1,
+ /DrawCircle/.search also={/tikz}
+}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% Drawing a circle >
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawCircle{\pgfutil@ifnextchar[{\tkz@DrawCircle}{\tkz@DrawCircle[]}}
+\def\tkz@DrawCircle[#1](#2){%
+\begingroup
+\pgfqkeys{/DrawCircle}{#1}
+\ifcase\tkz@numdc%
+ \tkzDefCircleThrough(#2)
+ \or% 1
+ \tkzDefCircleR(#2)
+ \or% 2
+ \tkzDefCircleD(#2)
+ \or% 3
+ \tkzDefCircumCircle(#2)
+ \or% 4
+ \tkzDefInCircle(#2)
+ \or% 4
+ \tkzDefExCircle(#2)
+ \or% 5
+ \tkzDefEulerCircle(#2)
+ \or% 6
+ \tkzDefApolloniusCircle(#2)
+ \or% 7
+ \tkzDefOrthogonalCircle(#2,\tkz@ptfrom)
+ \or% 8
+ \tkzDefOrthoThroughCircle(#2,\tkz@ptone,\tkz@pttwo)
+ \fi
+ \draw[line style,/DrawCircle/.cd,#1]
+ (tkzPointResult) circle (\tkzLengthResult pt);
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+\def\tkz@multicircles#1 #2\@nil{%
+\protected@edef\tkz@temp{
+\noexpand \tkzDrawCircle[\tkz@optcircle](#1)}\tkz@temp%
+\def\tkz@nextArg{#2}%
+\ifx\tkzutil@empty\tkz@nextArg
+ \let\next\@gobble
+\fi
+\next#2\@nil
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawCircles{\pgfutil@ifnextchar[{\tkz@DrawCircles}{\tkz@DrawCircles[]}}
+\def\tkz@DrawCircles[#1](#2){%
+\xdef\tkz@optcircle{#1}
+\begingroup
+ \let\next\tkz@multicircles
+ \next#2 \@nil %
+\endgroup
+}%
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% #2 #3 rayon
+\def\tkz@numdsc{0}
+\pgfkeys{/@SemiCircle/.cd,
+ through/.code = \def\tkz@numdsc{0},
+ diameter/.code = \def\tkz@numdsc{1},
+ swap/.is if = tkz@sawp@sc,
+ swap/.default = true,
+ swap = false,
+ through,
+ /@SemiCircle/.search also={/tikz}
+ }
+\def\tkzDrawSemiCircle{\pgfutil@ifnextchar[{\tkz@DrawSemiCircle}{%
+ \tkz@DrawSemiCircle[]}}
+\def\tkz@DrawSemiCircle[#1](#2){%
+\begingroup
+\pgfqkeys{/@SemiCircle}{#1}
+\ifcase\tkz@numdsc%
+ \tkzDrawSemiCircleThrough(#2)
+\or%
+ \tkzDrawSemiCircleDiameter(#2)
+\fi
+ \tkzDrawArc[#1](\tkz@Center,\tkz@FirstPoint)(\tkz@SecondPoint)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawSemiCircleThrough(#1,#2){%
+ \tkzDefPointBy[symmetry=center #1](#2)
+ \pgfnodealias{tkz@pt}{tkzPointResult}
+ \def\tkz@Center{#1}
+ \iftkz@sawp@sc
+ \gdef\tkz@FirstPoint{tkz@pt}
+ \gdef\tkz@SecondPoint{#2}
+ \else
+ \gdef\tkz@FirstPoint{#2}
+ \gdef\tkz@SecondPoint{tkz@pt}
+ \fi
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawSemiCircleDiameter(#1,#2){%
+ \tkzDefMidPoint(#1,#2)
+ \pgfnodealias{tkz@Center}{tkzPointResult}
+ \def\tkz@Center{tkz@Center}
+ \iftkz@sawp@sc
+ \def\tkz@FirstPoint{#1}
+ \def\tkz@SecondPoint{#2}
+ \else
+ \def\tkz@FirstPoint{#2}
+ \def\tkz@SecondPoint{#1}
+ \fi
+}
+
+%<---------------------------- Fill Circle --------------------------------–>
+\def\tkz@numfc{0}
+\pgfkeys{/fillcircle/.cd, radius/.code = \def\tkz@numfc{0},
+ R/.code = \def\tkz@numfc{1},
+ radius,
+ /fillcircle/.search also={/tikz}
+}
+\def\tkzFillCircle{\pgfutil@ifnextchar[{\tkz@FillCircle}{\tkz@FillCircle[]}}
+\def\tkz@FillCircle[#1](#2,#3){%
+\begingroup
+\pgfqkeys{/fillcircle}{#1}
+\ifcase\tkz@numfc%
+ % first case 0
+ \tkzCalcLength(#2,#3)
+ \fill[/fillcircle/.cd,#1] (#2) circle (\tkzLengthResult pt);%
+ \or% 1
+ \fill[/fillcircle/.cd,#1] (#2) circle (#3);%
+ \fi
+\endgroup
+}
+%<----------------------- Out Clip Circle ---------------------------------–>
+\def\tkz@numocc{0}
+\pgfkeys{/clipoutcircle/.cd, radius/.code = \def\tkz@numocc{0},
+ R/.code = \def\tkz@numocc{1},
+ radius}
+%<--------------------------------------------------------------------------–>
+\def\tkzClipOutCircle{\pgfutil@ifnextchar[{\tkz@ClipOutCircle}{%
+ \tkz@ClipOutCircle[]}}
+\def\tkz@ClipOutCircle[#1](#2,#3){%
+\pgfqkeys{/clipoutcircle}{#1}
+\ifcase\tkz@numocc
+ \tkzCalcLength(#2,#3)
+ \clip[tkzreverseclip] (#2) circle (\tkzLengthResult pt);
+ \or% 1
+ \clip[tkzreverseclip] (#2) circle (#3);
+ \fi
+}
+%<--------------------------- Clip Circle ---------------------------------–>
+\def\tkz@numcc{0}
+\pgfkeys{/clipcircle/.cd,
+ through/.code = \def\tkz@numcc{0},
+ R/.code = \def\tkz@numcc{1},
+ through}
+%<--------------------------------------------------------------------------–>
+\def\tkzClipCircle{\pgfutil@ifnextchar[{\tkz@ClipCircle}{\tkz@ClipCircle[]}}
+
+\def\tkz@ClipCircle[#1](#2,#3){%
+\pgfqkeys{/clipcircle}{#1}
+\ifcase\tkz@numcc
+ \tkzCalcLength(#2,#3)
+ \clip (#2) circle (\tkzLengthResult pt);
+ \or% 1
+ \clip (#2) circle (#3);
+ \fi
+}
+%<--------------------------- Label Circle --------------------------------–>
+% attention radius circle is defined by center and a point on the circle
+% R defined by center and the value of the radius
+\def\tkz@numlc{0}
+\pgfkeys{/labelcircle/.cd,
+ through/.code = \def\tkz@numlc{0},
+ R/.code = \def\tkz@numlc{1},
+ through,
+ /labelcircle/.search also={/tikz}
+}
+
+\def\tkzLabelCircle{\pgfutil@ifnextchar[{\tkz@LabelCircle}{%
+ \tkz@LabelCircle[]}}
+% [option] (#2,#3) #2 center #3 soit un point du cercle soit le radius
+% #4 angle #5 the label
+\def\tkz@LabelCircle[#1](#2,#3)(#4)#5{%
+\begingroup
+\pgfqkeys{/labelcircle}{#1}
+\ifcase\tkz@numlc
+ \tkzURotateAngle(#2,#4)(#3)
+ \node[/labelcircle/.cd,#1] at (tkzPointResult) {#5};
+\or% 1
+ \path (#2)--++(#3,0) coordinate (tkzPointResult);
+ \tkzURotateAngle(#2,#4)(tkzPointResult)
+ \node[/labelcircle/.cd,#1] at (tkzPointResult) {#5};
+\fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+ \makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex
new file mode 100644
index 0000000000..76923e844b
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex
@@ -0,0 +1,425 @@
+% tkz-obj-eu-draw-lines.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-draw-lines.tex}
+\makeatletter
+\def\tkz@numdl{0}
+\pgfkeys{/DrawLine/.cd,
+ median/.code = \def\tkz@numdl{0},
+ altitude/.code = \def\tkz@numdl{1},
+ bisector/.code = \def\tkz@numdl{2},
+ none/.code = \def\tkz@numdl{3},
+ none,
+ /DrawLine/.search also={/tikz}
+}
+%<--------------------------------------------------------------------------–>
+% Drawing a line >
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawLine{\pgfutil@ifnextchar[{\tkz@DrawLine}{\tkz@DrawLine[]}}
+\def\tkz@DrawLine[#1](#2){%
+\begingroup
+\pgfqkeys{/DrawLine}{#1}
+\ifcase\tkz@numdl%
+ \tkzDrawMedian[#1](#2)
+ \or% 1
+ \tkzDrawAltitude[#1](#2)
+ \or% 2
+ \tkzDrawBisector[#1](#2)
+ \or% 3
+ \tkzDrawSLine[#1](#2)
+ \fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Droites particulières d'un triangle
+%<--------------------------------------------------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawSLine{\pgfutil@ifnextchar[{\tkz@DrawSLine}{\tkz@DrawSLine[]}}
+\def\tkz@DrawSLine[#1](#2,#3){%
+\begingroup
+\draw[#1] (#2) to (#3);
+\endgroup
+}%
+%<--------------------------------------------------------------------------–>
+% median
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawMedian{\pgfutil@ifnextchar[{\tkz@Median}{\tkz@Median[]}}
+\def\tkz@Median[#1](#2,#3,#4){%
+\begingroup
+ \tkzDefMidPoint(#2,#4)
+ \tkzDrawSLine[add= 0 and 0,/DrawLine/.cd,#1](#3,tkzPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% altitude
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawAltitude{\pgfutil@ifnextchar[{\tkz@Altitude}{\tkz@Altitude[]}}
+\def\tkz@Altitude[#1](#2,#3,#4){%
+\begingroup
+ \tkzUProjection(#2,#4)(#3)
+ \tkzDrawSLine[add= 0 and 0,/DrawLine/.cd,#1](#3,tkzPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% bisector
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawBisector{\pgfutil@ifnextchar[{\tkz@Bisector}{\tkz@Bisector[]}}
+\def\tkz@Bisector[#1](#2,#3,#4){%
+\begingroup
+ \tkzDefBisectorLine(#2,#3,#4)
+ \tkzInterLL(#2,#4)(#3,tkzPointResult)
+ \tkzDrawSLine[add= 0 and 0,/DrawLine/.cd,#1](#3,tkzPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% \def\tkz@recuplast(#1,#2){\def\tkz@last{#1}}
+% \def\tkz@stop{\tkz@stop}
+%<--------------------------------------------------------------------------–>
+% medians
+%<--------------------------------------------------------------------------–>
+\def\tkz@@Medians(#1,#2,#3)(#4,#5){%
+ \def\tkz@tmp{#5}%
+ \ifx\tkz@tmp\tkz@stop\else\tkz@@Medians(#2,#3)(#5)\fi
+ \tkz@recuplast(#3)
+
+ \pgfcoordinate{#4}{\pgfpointscale{0.5}{%
+ \pgfpointadd{\pgfpointanchor{#2}{center}}{%
+ \pgfpointanchor{\tkz@last}{center}}%
+ }}%
+ \protected@edef\tkz@temp{\noexpand
+ \tkzDrawLine[add= 0 and 0,/DrawTLines/.cd,\tkz@opttline](#4,#1)}\tkz@temp%
+ \ifx\tkzutil@empty\tkz@newpoint@name
+ \else
+ \coordinate (\tkz@newpoint@name#4) at (#4);
+ \fi
+}
+\def\tkzDrawMedians{\pgfutil@ifnextchar[{\tkz@Medians}{\tkz@Medians[]}}
+\def\tkz@Medians[#1](#2)#3{%
+\begingroup
+ \xdef\tkz@opttline{#1}
+ \tkz@@Medians(#2,#2)(#3,\tkz@stop)
+ \endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+% Altitudes
+%<--------------------------------------------------------------------------–>
+\def\tkz@@Altitudes(#1,#2,#3)(#4,#5){%
+ \def\tkz@tmp{#5}%
+ \ifx\tkz@tmp\tkz@stop\else\tkz@@Altitudes(#2,#3)(#5)\fi
+ \tkz@recuplast(#3)
+ \tkzUProjection(#2,\tkz@last)(#1)
+ \pgfnodealias{tkz@tmp@pt}{tkzPointResult}
+ \protected@edef\tkz@temp{%
+ \noexpand
+ \tkzDrawLine[add= 0 and 0,/DrawTLines/.cd,\tkz@opttline](#1,tkz@tmp@pt)}\tkz@temp%
+ \ifx\tkzutil@empty\tkz@newpoint@name
+ \else
+ \coordinate (\tkz@newpoint@name#4) at (tkz@tmp@pt);
+ \fi
+}
+\def\tkzDrawAltitudes{\pgfutil@ifnextchar[{\tkz@DrawAltitudes}{\tkz@DrawAltitudes[]}}
+\def\tkz@DrawAltitudes[#1](#2)#3{%
+\begingroup
+ \xdef\tkz@opttline{#1}
+ \tkz@@Altitudes(#2,#2)(#3,\tkz@stop)
+ \endgroup
+ }
+%<--------------------------------------------------------------------------–>
+% bisectors
+%<--------------------------------------------------------------------------–>
+\def\tkz@@Bisectors(#1,#2,#3)(#4,#5){%
+\def\tkz@tmp{#5}%
+\ifx\tkz@tmp\tkz@stop\else\tkz@@Bisectors(#2,#3)(#5)\fi
+ \tkz@recuplast(#3)
+ \tkzDefBisectorLine(\tkz@last,#1,#2)
+ \tkzInterLL(#2,\tkz@last)(#1,tkzPointResult)
+ \pgfnodealias{tkz@tmp@pt}{tkzPointResult}
+ \protected@edef\tkz@temp{
+ \noexpand \tkzDrawLine[add= 0 and 0,
+ /DrawTLines/.cd,
+ \tkz@opttline](#1,tkz@tmp@pt)}\tkz@temp
+ \ifx\tkzutil@empty\tkz@newpoint@name
+ \else
+ \coordinate (\tkz@newpoint@name#4) at (tkz@tmp@pt);
+ \fi
+}
+\def\tkzDrawBisectors{\pgfutil@ifnextchar[{\tkz@DrawBisectors}{\tkz@DrawBisectors[]}}
+
+\def\tkz@DrawBisectors[#1](#2)#3{%
+\begingroup
+ \xdef\tkz@opttline{#1}
+ \tkz@@Bisectors(#2,#2)(#3,\tkz@stop)
+\endgroup
+}
+%<-------------------------------------------------------------------------–
+%<-------------------------------------------------------------------------–
+%<-------------------------------------------------------------------------–
+\def\tkz@numdtls{0}
+\pgfkeys{/DrawTLines/.cd,
+ median/.code = \def\tkz@numdtls{0},
+ altitude/.code = \def\tkz@numdtls{1},
+ bisector/.code = \def\tkz@numdtls{2},
+ median,
+ name/.store in = \tkz@newpoint@name,
+ name/.initial = {},
+ name = {},
+ /DrawTLines/.search also={/tikz}
+}
+%<--------------------------------------------------------------------------–>
+% Drawing tr lines >
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawTLines{\pgfutil@ifnextchar[{\tkz@DrawTLines}{\tkz@DrawTLines[]}}
+\def\tkz@DrawTLines[#1](#2)#3{%
+\begingroup
+\pgfqkeys{/DrawTLines}{#1}
+\ifcase\tkz@numdtls%
+ \tkzDrawMedians[#1](#2){#3}
+ \or% 1
+ \tkzDrawAltitudes[#1](#2){#3}
+ \or% 2
+ \tkzDrawBisectors[#1](#2){#3}
+ \fi
+\endgroup
+}
+%<-------------------------------------------------------------------------–
+% tkzDrawLines
+%<-------------------------------------------------------------------------–
+\def\tkz@@multiLines#1 #2\@nil{%
+ \protected@edef\tkz@temp{
+ \noexpand \tkzDrawLine[\tkz@optline](#1)}\tkz@temp%
+ \def\tkz@nextArg{#2}%
+ \ifx\tkzutil@empty\tkz@nextArg
+ \let\next\@gobble
+ \fi
+ \next#2\@nil
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawLines{\pgfutil@ifnextchar[{\tkz@DrawLines}{%
+ \tkz@DrawLines[]}}
+\def\tkz@DrawLines[#1](#2){%
+\xdef\tkz@optline{#1}
+\begingroup
+ \let\next\tkz@@multiLines
+ \next#2 \@nil %
+\endgroup
+}%
+%<-------------------------------------------------------------------------–>
+% Label
+%<-------------------------------------------------------------------------–>
+\def\tkzLabelLine{\pgfutil@ifnextchar[{\tkz@AddLabelLine}{\tkz@AddLabelLine[]}}
+\def\tkz@AddLabelLine[#1](#2,#3)#4{\path (#2) to node[#1]{#4}(#3);}
+
+%<--------------------------------------------------------------------------–>
+% Setup Line
+%<--------------------------------------------------------------------------–>
+\pgfkeys{%
+ setupline/.cd,
+ line width/.code = {\xdef\tkz@line@lw{#1}},
+ color/.code = {\xdef\tkz@line@color{#1}},
+ style/.code = {\xdef\tkz@line@style{#1}},
+ add/.code args = {#1 and #2} {\xdef\tkz@line@left{#1}%
+ \xdef\tkz@line@right{#2}%
+ }
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzSetUpLine{\pgfutil@ifnextchar[{\tkzActivOff\tkz@SetUpLine}{%
+ \tkzActivOff\tkz@SetUpLine[]}}
+\def\tkz@SetUpLine[#1]{%
+\pgfkeys{%
+ setupline/.cd,
+ line width = \tkz@euc@linewidth,
+ color = \tkz@euc@linecolor,
+ style = \tkz@euc@linestyle,
+ add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}}
+\pgfqkeys{/setupline}{#1}
+%<--------------------------------------------------------------------------–>
+% Line style
+%<--------------------------------------------------------------------------–>
+\tikzset{%
+ line style/.style ={%
+ color = \tkz@line@color,
+ line width = \tkz@line@lw,
+ style = \tkz@line@style,
+ add = {\tkz@line@left} and {\tkz@line@right}
+}}}% end setup
+%<--------------------------------------------------------------------------–>
+% draw segment (s)
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/@tkzsegoptions/.cd,
+ /@tkzsegoptions/.search also={/tikz},
+}
+\def\tkzDrawSegment{\pgfutil@ifnextchar[{\tkz@DrawSegment}{%
+ \tkz@DrawSegment[]}}
+\def\tkz@DrawSegment[#1](#2,#3){%
+\begingroup
+ \pgfqkeys{/@tkzsegoptions}{#1}
+ \draw[line style,add=0 and 0,#1] (#2) to (#3);
+\endgroup
+}%
+
+\def\tkz@multiDrawSeg#1 #2\@nil{%
+ \protected@edef\tkz@temp{
+ \noexpand \tkzDrawSegment[\tkz@optseg](#1)}\tkz@temp%
+ \def\tkz@nextArg{#2}%
+ \ifx\tkzutil@empty\tkz@nextArg
+ \let\next\@gobble
+ \fi
+ \next#2\@nil
+}
+\def\tkzDrawSegments{\pgfutil@ifnextchar[{\tkz@DrawSegments}{%
+ \tkz@DrawSegments[]}}
+\def\tkz@DrawSegments[#1](#2){%
+\def\tkz@optseg{#1}
+\begingroup
+ \let\next\tkz@multiDrawSeg
+ \next#2 \@nil %
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Mark Segment
+%<--------------------------------------------------------------------------–>
+\pgfkeys{
+ /@tkzmarkoptions/.cd,
+ pos/.store in = \tkz@mkpos,
+ color/.store in = \tkz@mkcolor,
+ mark/.store in = \tkz@markseg,
+ size/.store in = \tkz@mksize,
+ size = 4pt,
+ color = \tkz@mk@color,
+ pos = .5,
+ mark = |,
+ /@tkzmarkoptions/.search also={/tikz},
+}
+\def\tkzMarkSegment{\pgfutil@ifnextchar[{\tkz@MarkSegment}{\tkz@MarkSegment[]}}
+\def\tkz@MarkSegment[#1](#2,#3){%
+\begingroup
+ \pgfqkeys{/@tkzmarkoptions}{#1}
+\def\tkz@mymark{\pgfsetplotmarksize{\tkz@mksize}\pgfuseplotmark{\tkz@markseg}}
+\begin{scope}
+ [decoration={markings,mark=at position \tkz@mkpos with {\tkz@mymark}}]
+ \path [\tkz@mkcolor,/@tkzmarkoptions/.cd,#1,postaction={decorate}] (#2) -- (#3);
+\end{scope}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% multiple
+\def\tkz@multiMS#1 #2\@nil{%
+ \protected@edef\tkz@temp{
+ \noexpand \tkzMarkSegment[\tkz@optsg](#1)}\tkz@temp%
+ \def\tkz@nextArg{#2}%
+ \ifx\tkzutil@empty\tkz@nextArg
+ \let\next\@gobble
+ \fi
+ \next#2\@nil
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzMarkSegments{\pgfutil@ifnextchar[{\tkz@MarkSegments}{\tkz@MarkSegments[]}}
+\def\tkz@MarkSegments[#1](#2){%
+\def\tkz@optsg{#1}
+ \begingroup
+ \let\next\tkz@multiMS
+ \next#2 \@nil %
+\endgroup
+}
+%<-------------------------------------------------------------------------–>
+% Label on segment
+%<-------------------------------------------------------------------------–>
+\def\tkzLabelSegment{\pgfutil@ifnextchar[{\tkz@LabelSegment}%
+ {\tkz@LabelSegment[]}}
+\def\tkz@LabelSegment[#1](#2,#3)#4{%
+\begingroup
+ \path (#2) to node[label seg style,#1]{#4} (#3) ;
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% multiple
+\def\tkz@multiLS#1 #2\@nil{%
+ \protected@edef\tkz@temp{
+ \noexpand \tkzLabelSegment[\tkz@optls](#1){\tkz@labelseg}}\tkz@temp%
+ \def\tkz@nextArg{#2}%
+ \ifx\tkzutil@empty\tkz@nextArg
+ \let\next\@gobble
+ \fi
+ \next#2\@nil
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzLabelSegments{\pgfutil@ifnextchar[{\tkz@LabelSegments}{%
+ \tkz@LabelSegments[]}}
+\def\tkz@LabelSegments[#1](#2)#3{%
+\def\tkz@optls{#1}
+\def\tkz@labelseg{#3}
+ \begingroup
+ \let\next\tkz@multiLS
+ \next#2 \@nil %
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% PolySeg
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawPolySeg{\pgfutil@ifnextchar[{\tkz@DrawPolySeg}{%
+ \tkz@DrawPolySeg[]}}
+\def\tkz@DrawPolySeg[#1](#2,#3){%
+\begingroup
+\draw[line style,#1] (#2)
+ \foreach \po in {#3}{--(\po)};%
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% add dim
+ % \draw[dim={5cm,7pt,}] (A) -- (B);
+ % \draw[dim={7cm,10pt,transform shape}] (B) -- (C);
+ % \draw[dim={X,,}] (A) -- (C);
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/pgf/decoration/.cd, distance/.initial = 10pt}
+
+\pgfdeclaredecoration{add dim}{final}{
+\state{final}{%
+\pgfmathsetmacro{\dist}{\pgfkeysvalueof{/pgf/decoration/distance}}
+ \pgfpathmoveto{\pgfpoint{0pt}{0pt}}
+ \pgfpathlineto{\pgfpoint{0pt}{1.2*\dist}}
+ \pgfpathmoveto{\pgfpoint{\pgfdecoratedpathlength}{0pt}}
+ \pgfpathlineto{\pgfpoint{(\pgfdecoratedpathlength}{1.2*\dist}}
+ \pgfsetarrowsstart{latex}
+ \pgfsetarrowsend{latex}
+ \pgfpathmoveto{\pgfpoint{0pt}{\dist}}
+ \pgfpathlineto{\pgfpoint{\pgfdecoratedpathlength}{\dist}}
+ \pgfusepath{stroke}
+ \pgfpathmoveto{\pgfpoint{0pt}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgfdecoratedpathlength}{0pt}}
+}}
+
+\tikzset{
+ dim/.style args={#1,#2,#3}{%
+ decoration = {add dim,distance=\ifx&#2&0pt\else#2\fi},
+ decorate,
+ postaction = {%
+ decorate,
+ decoration={%
+ raise=#2,
+ markings,
+ mark=at position .5 with {%
+ \node[inner sep=0pt,
+ font=\footnotesize,
+ fill=\tkz@fillcolor,
+ #3] at (0,0) {#1};}
+ }
+ }
+ },
+ dim/.default={,0pt,}
+}
+
+%<--------------------------- style line --------------------------------->
+\tikzset{add/.style args={#1 and #2}{to path={%
+ ($(\tikztostart)!-#1!(\tikztotarget)$)--($(\tikztotarget)!-#2!(\tikztostart)$)%
+ \tikztonodes}}
+}
+%<--------------------------------------------------------------------------–>
+\makeatother
+\endinput
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex
new file mode 100644
index 0000000000..49ce0c7021
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex
@@ -0,0 +1,83 @@
+% tkz-obj-eu-polygons.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-polygons.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% Polygon
+%<--------------------------------------------------------------------------–>
+%<---------------------------- Draw --------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawPolygon{\pgfutil@ifnextchar[{\tkz@DrawPolygon}{%
+ \tkz@DrawPolygon[]}}
+\def\tkz@DrawPolygon[#1](#2,#3){%
+ \begingroup
+ \draw[line style,#1] (#2)
+ \foreach \pt in {#2,#3}{--(\pt)}--cycle;%
+ \endgroup
+}
+%<---------------------------- FILL --------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+\def\tkzFillPolygon{\pgfutil@ifnextchar[{\tkz@FillPolygon}{%
+ \tkz@FillPolygon[]}}
+\def\tkz@FillPolygon[#1](#2,#3){%
+ \begingroup
+ \fill[#1] (#2)
+ \foreach \pt in {#2,#3}{--(\pt)}--cycle;%
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawSquare{\pgfutil@ifnextchar[{\tkz@DrawSquare}{\tkz@DrawSquare[]}}
+\def\tkz@DrawSquare[#1](#2,#3){%
+\begingroup
+ \tkzDefSquare(#2,#3)
+ \tkzDrawPolygon[#1](#2,#3,tkzFirstPointResult,tkzSecondPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawRectangle{\pgfutil@ifnextchar[{\tkz@DrawRectangle}%
+ {\tkz@DrawRectangle[]}}
+\def\tkz@DrawRectangle[#1](#2,#3){%
+\begingroup
+ \draw[#1](#2) -| (#3) -| (#2);
+\endgroup
+}
+%<-------------------------- gold rectangle -------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+\def\tkz@DrawGoldRectangle[#1](#2,#3){
+\begingroup
+ \tkzDefGoldRectangle(#2,#3)
+ \tkzDrawPolygon[#1](#2,#3,tkzFirstPointResult,tkzSecondPointResult)
+\endgroup
+}
+%<-------------- Labels for Regular Polygon -------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/deflabelregpoly/.cd,
+ name/.store in = \tkz@regpolname,
+ sep/.store in = \tkz@regpolsep,
+ name = P,
+ sep = 1.1
+}
+
+\def\tkzLabelRegPolygon{\pgfutil@ifnextchar[{\tkz@labelPolygon}{%
+ \tkz@labelPolygon[]}}
+\def\tkz@labelPolygon[#1](#2)#3{%
+\begingroup
+\pgfqkeys{/deflabelregpoly}{#1}
+ \foreach \v [count=\vi from 1] in {#3} {%
+ \path (#2) to [pos=1.1] node {$\v$} (\tkz@regpolname\vi) ;
+ \pgfnodealias{\v}{\tkz@regpolname\vi}
+ }
+\endgroup
+}
+
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex
new file mode 100644
index 0000000000..ee12e06d8a
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex
@@ -0,0 +1,207 @@
+% tkz-obj-eu-lines.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-lines.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% les lignes
+%<--------------------------------------------------------------------------–>
+\def\tkz@numl{0}
+\pgfkeys{/tkzDefLine/.cd,
+ mediator/.code = \def\tkz@numl{0},
+ perpendicular/.code args = {through #1} {\def\tkz@numl{1}%
+ \def\tkz@through{#1}},
+ orthogonal/.code args = {through #1} {\def\tkz@numl{1}%
+ \def\tkz@through{#1}},
+ parallel/.code args = {through #1}{\def\tkz@numl{2}%
+ \def\tkz@through{#1}},
+ bisector/.code = \def\tkz@numl{3},
+ bisector out/.code = \def\tkz@numl{4},
+ symmedian/.code = \def\tkz@numl{5},
+ K/.code = \def\tkz@koeff{#1},
+ K = 1,
+ normed/.is if = tkz@line@normed,
+ normed/.default = true,
+ normed = false
+}
+
+\def\tkzDefLine{\pgfutil@ifnextchar[{\tkz@DefLine}{\tkz@DefLine[]}}
+\def\tkz@DefLine[#1](#2){%
+\begingroup
+\pgfkeys{/tkzDefLine/.cd,K=1}
+\pgfqkeys{/tkzDefLine}{#1}
+\ifcase\tkz@numl%
+ % first case 0
+ \tkzDefMediatorLine(#2)
+ \or% 1
+ \tkzDefOrthLine[\tkz@koeff](#2)(\tkz@through)
+ \or% 2
+ \tkzDefLineLL(#2)
+ \or% 3
+ \tkzDefBisectorLine(#2)
+ \or% 4
+ \tkzDefBisectorOutLine(#2)
+ \or% 5
+ \tkzDefSymmedianLine(#2)
+ \fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% tkzLineLL revoir out !!
+%<--------------------------------------------------------------------------–>
+\def\tkzDefLineLL(#1,#2){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#1}{center}}{\pgfpointanchor{#2}{center}}%
+ \pgf@xa=\pgf@x\relax%%
+ \pgf@ya=\pgf@y\relax%%
+ \pgfinterruptboundingbox
+ \path[coordinate](\tkz@through)--++(\pgf@xa,\pgf@ya)%
+ coordinate (tkzPointResult);
+ \endpgfinterruptboundingbox
+ \iftkz@line@normed
+ \tkzVecKNorm(\tkz@through,tkzPointResult)
+ \fi
+\endgroup}%
+%<--------------------------------------------------------------------------–>
+% tkzOrthLine
+%<--------------------------------------------------------------------------–>
+\def\tkzDefOrthLine{\pgfutil@ifnextchar[{\tkz@DefOrthLine}{%
+ \tkz@DefOrthLine[1]}}
+\def\tkz@DefOrthLine[#1](#2,#3)(#4){%
+\begingroup
+ \tkzVecKOrth(#2,#3)
+ \pgfnodealias{tkz@OLtmp}{tkzPointResult}
+ \tkz@VecKCoLinear[#1](#2,tkz@OLtmp,#4)
+ \iftkz@line@normed
+ \pgfinterruptboundingbox
+ \tkzVecKNorm(\tkz@through,tkzPointResult)
+ \endpgfinterruptboundingbox
+ \fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% tkzMediatorLine
+%<--------------------------------------------------------------------------–>
+\def\tkzDefMediatorLine(#1,#2){% new 2020
+\begingroup
+ \tkzDefEquilateral(#1,#2)
+ \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+ \tkzDefEquilateral(#2,#1)
+ \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+ \iftkz@line@normed
+ \tkzDefMidPoint(#1,#2)
+ \pgfnodealias{tkz@mid}{tkzPointResult}
+ \pgfinterruptboundingbox
+ \tkzVecKNorm(tkz@mid,tkzFirstPointResult)
+ \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+ \tkzVecKNorm(tkz@mid,tkzSecondPointResult)
+ \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+ \endpgfinterruptboundingbox
+\fi
+\endgroup
+}
+% autre possibilité
+
+%<--------------------------------------------------------------------------–>
+% BisectorLine % pb avec un angle plat
+%<--------------------------------------------------------------------------–>
+\def\tkzDefBisectorLine(#1,#2,#3){%
+\begingroup
+ \pgfinterruptboundingbox
+ \tkzDuplicateLength(#2,#1)(#2,#3)
+ \pgfnodealias{bi@tmp}{tkzPointResult}
+ \tkzDefEquilateral(bi@tmp,#1)
+ \iftkz@line@normed
+ \tkzVecKNorm(#2,tkzPointResult)
+ \fi
+ \endpgfinterruptboundingbox
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Out BisectorLine
+%<--------------------------------------------------------------------------–>
+\def\tkzDefBisectorOutLine(#1,#2,#3){%
+\begingroup
+ \pgfinterruptboundingbox
+ \tkzDuplicateLength(#2,#1)(#2,#3)
+ \pgfnodealias{out@tmp}{tkzPointResult}
+ \tkzDefMidPoint(#1,out@tmp)
+ \pgfnodealias{out@pt1}{tkzPointResult}
+ \tkzURotateAngle(#2,90)(out@pt1)
+ \iftkz@line@normed
+ \tkzVecKNorm(#2,tkzPointResult)
+ \fi
+ \endpgfinterruptboundingbox
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Symmedian line
+%<--------------------------------------------------------------------------–>
+\def\tkzDefSymmedianLine(#1,#2,#3){%
+\begingroup
+ \tkzDefBisectorLine(#1,#2,#3)
+ \pgfnodealias{sym@pt1}{tkzPointResult}
+ \tkzDefMidPoint(#1,#3)
+ \pgfnodealias{sym@pt2}{tkzPointResult}
+ \tkzUSymOrth(#2,sym@pt1)(sym@pt2)
+\endgroup
+}
+%<-------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% tangente à cercle passant par un point donné
+%<--------------------------------------------------------------------------–>
+\def\tkzTgtFromPR(#1,#2)(#3){%
+ \begingroup
+ \tkzDefMidPoint(#1,#3)
+ \tkzCalcLength(tkzPointResult,#1)
+ \tkzInterCCR(#1,#2)(tkzPointResult,\tkzLengthResult pt){%
+ tkzFirstPointResult}{%
+ tkzSecondPointResult}%
+ \endgroup
+}
+
+\def\tkzTgtFromP(#1,#2)(#3){%
+ \begingroup
+ \tkzDefMidPoint(#1,#3)
+ \tkzCalcLength(#1,#2)
+ \tkzGetLength{tkz@radone}%
+ \tkzCalcLength(tkzPointResult,#1)
+ \tkzGetLength{tkz@radtwo}%
+ \tkzInterCCR(#1,\tkz@radone pt)(tkzPointResult,\tkz@radtwo pt){%
+ tkzFirstPointResult}{%
+ tkzSecondPointResult}%
+ \endgroup
+}
+\def\tkzTgtAt(#1)(#2){%
+\begingroup
+ \tkz@VecKOrthNorm[-1](#2,#1)
+ \endgroup
+} %<--------------------------------------------------------------------------–> %<--------------------------------------------------------------------------–>
+\def\tkz@numtang{0}
+\pgfkeys{/tkz@tang/.cd,
+ at/.code = {\def\tkz@numtang{0}\def\tkz@ptat{#1}},
+ from/.code = {\def\tkz@numtang{1}\def\tkz@ptfrom{#1}},
+ from with R/.code = {\def\tkz@numtang{2}\def\tkz@ptfrom{#1}}
+ }
+%<--------------------------------------------------------------------------–>
+\def\tkzDefTangent{\pgfutil@ifnextchar[{\tkz@Tangent}{\tkz@Tangent[]}}
+
+\def\tkz@Tangent[#1](#2){%
+\begingroup
+\pgfkeys{tkz@tang/.cd}
+\pgfqkeys{/tkz@tang}{#1}
+\ifcase\tkz@numtang
+ \tkzTgtAt(#2)(\tkz@ptat)
+\or
+ \tkzTgtFromP(#2)(\tkz@ptfrom)
+ \or
+ \tkzTgtFromPR(#2)(\tkz@ptfrom)
+\fi
+\endgroup
+}
+\makeatother
+\endinput
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex
new file mode 100644
index 0000000000..bf8793ad09
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex
@@ -0,0 +1,402 @@
+% tkz-tools-eu-points-by.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-tools-eu-points-by.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% Transformations Géométriques
+%<--------------------------------------------------------------------------–>
+\def\tkz@numtrsf{0}
+\pgfkeys{/tkzDefPointBy/.cd,
+translation/.code args={from #1 to #2}{%
+ \def\tkzfrom{#1}%
+ \def\tkzto{#2}%
+ \def\tkz@numtrsf{0}},
+ homothety/.code args={center #1 ratio #2}{%
+ \def\tkzcenter{#1}%
+ \def\tkzratio{#2}%
+ \def\tkz@numtrsf{1}},
+ reflection/.code args={over #1--#2}{%
+ \def\tkzdeb{#1}%
+ \def\tkzfin{#2}%
+ \def\tkz@numtrsf{2}},
+ symmetry/.code args={center #1}{%
+ \def\tkzcenter{#1}%
+ \def\tkz@numtrsf{3}},
+ projection/.code args={onto #1--#2}{%
+ \def\tkzdeb{#1}%
+ \def\tkzfin{#2}%
+ \def\tkz@numtrsf{4}},
+ rotation/.code args={center #1 angle #2}{%
+ \def\tkzcenter{#1}%
+ \def\tkzangle{#2}%
+ \def\tkz@numtrsf{5}},
+ rotation in rad/.code args={center #1 angle #2}{%
+ \def\tkzcenter{#1}%
+ \def\tkzangle{#2}%
+ \def\tkz@numtrsf{6}},
+inversion/.code args={center #1 through #2}{%
+ \def\tkzcenter{#1}%
+ \def\tkzpoint{#2}%
+ \def\tkz@numtrsf{7}}
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDefPointBy{\pgfutil@ifnextchar[{\tkz@DefPointBy}{\tkz@DefPointBy[]}}
+\def\tkz@DefPointBy[#1](#2){%
+\begingroup
+\pgfqkeys{/tkzDefPointBy}{#1}
+ \ifcase\tkz@numtrsf%
+% % first case 0
+ \tkzUTranslation(\tkzfrom,\tkzto)(#2)
+\or% 1
+ \tkzUHomo(\tkzcenter,\tkzratio)(#2)
+\or% 2
+ \tkzUSymOrth(\tkzdeb,\tkzfin)(#2)
+\or% 3
+ \tkzUCSym(\tkzcenter)(#2)
+\or% 4
+ \tkzUProjection(\tkzdeb,\tkzfin)(#2)
+\or% 5
+ \tkzURotateAngle(\tkzcenter,\tkzangle)(#2)
+\or% 6
+ \tkzURotateInRad(\tkzcenter,\tkzangle)(#2)
+\or% 7
+ \tkzUInversePoint(\tkzcenter,\tkzpoint)(#2)
+\fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDefPointsBy{\pgfutil@ifnextchar[{\tkz@DefPointsBy}{\tkz@DefPointsBy[]}}
+\def\tkz@DefPointsBy[#1](#2)#3{%
+\begingroup
+\pgfqkeys{/tkzDefPointBy}{#1}
+\ifcase\tkz@numtrsf%
+ % first case 0
+ \tkzTranslation(\tkzfrom,\tkzto)(#2){#3}
+ \or% 1
+ \tkzHomo(\tkzcenter,\tkzratio)(#2){#3}
+ \or% 2
+ \tkzSymOrth(\tkzdeb,\tkzfin)(#2){#3}
+ \or% 3
+ \tkzCSym(\tkzcenter)(#2){#3}
+ \or% 4
+ \tkzProjection(\tkzdeb,\tkzfin)(#2){#3}
+ \or% 5
+ \tkzRotateAngle(\tkzcenter,\tkzangle)(#2){#3}
+ \or% 6
+ \tkzRotateInRad(\tkzcenter,\tkzangle)(#2){#3}
+ \or% 7
+ \tkzInversePoint(\tkzcenter,\tkzpoint)(#2){#3}
+\fi
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+
+\def\ExtractPoint#1,#2\@nil{%
+\xdef\tkz@LastList{#2}
+\xdef\tkz@FirstPoint{#1}
+}
+\def\FirstPointInList#1{%
+\edef\tkz@templist{#1,}
+\expandafter\ExtractPoint\tkz@templist\@nil
+}
+%<--------------------------------------------------------------------------–>
+% Translation par rapport à un point
+%<--------------------------------------------------------------------------–>
+\def\tkzTranslation(#1,#2)(#3)#4{%
+\begingroup
+\gdef\tkz@LastList{#4}
+\foreach\PT in {#3}{%
+ \FirstPointInList\tkz@LastList
+ \ifx\tkz@FirstPoint\tkzutil@empty
+ \def\tkz@pointtsf{\PT '}
+ \else
+ \def\tkz@pointtsf{\tkz@FirstPoint}
+ \fi
+ \tkz@VecCoLinear(#1,#2,\PT)
+ \pgfnodealias{\tkz@pointtsf}{tkzPointResult}
+ }
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzUTranslation(#1,#2)(#3){%
+\begingroup
+ \tkz@VecCoLinear(#1,#2,#3)%
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+% Symétrie par rapport à un point Homo with (-1)
+% #2 le centre #3 l'antécédent
+%<--------------------------------------------------------------------------–>
+\def\tkzCSym(#1)(#2)#3{%
+\begingroup
+\gdef\tkz@LastList{#3}
+ \foreach\PointCS in {#2}{%
+ \FirstPointInList\tkz@LastList
+ \ifx\tkz@FirstPoint\tkzutil@empty
+ \xdef\tkz@pointtsf{\PointCS '}
+ \else
+ \xdef\tkz@pointtsf{\tkz@FirstPoint}
+ \fi
+ \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{\PointCS}{center}}%
+ \tkz@ax=\pgf@x%
+ \tkz@ay=\pgf@y%
+ \path(#1)--++(-\tkz@ax,-\tkz@ay)coordinate (\tkz@pointtsf);
+}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzUCSym(#1)(#2){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{#2}{center}}%
+ \tkz@ax=\pgf@x%
+ \tkz@ay=\pgf@y%
+ \path(#1)--++(-\tkz@ax,-\tkz@ay)coordinate (tkzPointResult);
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Symétrie orthogonale par rapport à une droite
+%<--------------------------------------------------------------------------–>
+\def\tkzSymOrth(#1,#2)(#3)#4{%
+\begingroup
+\gdef\tkz@LastList{#4}
+ \foreach\PointSO in {#3}{%
+ \FirstPointInList\tkz@LastList
+ \ifx\tkz@FirstPoint\tkzutil@empty
+ \def\tkz@pointtsf{\PointSO '}
+ \else
+ \def\tkz@pointtsf{\tkz@FirstPoint}
+ \fi
+ \tkzUSymOrth(#1,#2)(\PointSO)
+ \pgfnodealias{\tkz@pointtsf}{tkzPointResult}
+ }
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzUSymOrth(#1,#2)(#3){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{#2}{center}}%
+ \tkz@ax =\pgf@y%
+ \tkz@ay =\pgf@x%
+ \path[coordinate]%
+ (#3)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
+ \tkzInterLL(#1,#2)(#3,tkz@point)
+ \pgfnodealias{tkzPointofSym}{tkzPointResult}
+ \tkz@VecK[2](#3,tkzPointofSym)
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+% Projection orthogonale sur une droite
+%<--------------------------------------------------------------------------–>
+\def\tkzProjection(#1,#2)(#3)#4{%
+\begingroup
+\gdef\tkz@LastList{#4}
+ \foreach\PointPJ in {#3}{%
+ \FirstPointInList\tkz@LastList
+ \ifx\tkz@FirstPoint\tkzutil@empty
+ \def\tkz@pointtsf{\PointPJ '}
+ \else
+ \def\tkz@pointtsf{\tkz@FirstPoint}
+ \fi
+ \tkzUProjection(#1,#2)(\PointPJ)
+ \pgfnodealias{\tkz@pointtsf}{tkzPointResult}
+ }
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzUProjection(#1,#2)(#3){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{#2}{center}}%
+ \tkz@ax =\pgf@y%
+ \tkz@ay =\pgf@x%
+ \pgfinterruptboundingbox
+ \path[coordinate](#3)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
+ \tkzInterLL(#1,#2)(#3,tkz@point)% définit tkzPointResult
+ \endpgfinterruptboundingbox
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkz@Projection(#1,#2)(#3)#4{%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{#2}{center}}%
+ \tkz@ax =\pgf@y%
+ \tkz@ay =\pgf@x%
+ \pgfinterruptboundingbox
+ \path[coordinate](#3)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
+ \endpgfinterruptboundingbox
+ \tkz@InterLL(#1,#2)(#3,tkz@point){#4}% définit tkzPointResult
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Homothétie par rapport à un point
+%<--------------------------------------------------------------------------–>
+\def\tkzHomo(#1,#2)(#3)#4{%
+\begingroup
+\gdef\tkz@LastList{#4}
+ \foreach\PointHO in {#3}{%
+ \FirstPointInList\tkz@LastList
+ \ifx\tkz@FirstPoint\tkzutil@empty
+ \xdef\tkz@pointtsf{\PointHO '}
+ \else
+ \xdef\tkz@pointtsf{\tkz@FirstPoint}
+ \fi
+ \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{\PointHO}{center}}%
+ \pgf@xa=\pgf@x%
+ \pgf@ya=\pgf@y%
+ \pgfmathparse{#2}\edef\tkz@coeff{\pgfmathresult}%
+ \path[coordinate](#1)--++(\tkz@coeff\pgf@xa,\tkz@coeff\pgf@ya)%
+ coordinate(\tkz@pointtsf);
+ }
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzUHomo(#1,#2)(#3){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{#3}{center}}%
+ \pgf@xa=\pgf@x%
+ \pgf@ya=\pgf@y%
+ \pgfmathparse{#2}\edef\tkz@coeff{\pgfmathresult}%
+ \path[coordinate](#1)--++(\tkz@coeff\pgf@xa,\tkz@coeff\pgf@ya)%
+ coordinate(tkzPointResult);
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% rotation en degré
+%<--------------------------------------------------------------------------–>
+\def\tkzRotateAngle(#1,#2)(#3)#4{%
+\begingroup
+\gdef\tkz@LastList{#4}
+ \foreach\PointRot in {#3}{%
+ \FirstPointInList\tkz@LastList
+ \ifx\tkz@FirstPoint\tkzutil@empty
+ \def\tkz@pointtsf{\PointRot '}
+ \else
+ \def\tkz@pointtsf{\tkz@FirstPoint}
+ \fi
+ \tkz@@extractxy{\PointRot}
+ \tkz@ax\pgf@x%
+ \tkz@ay\pgf@y%
+ \tkz@@extractxy{#1}
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \pgfmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
+ {\pgfpoint{\tkz@bx}{\tkz@by}}%
+ {#2}
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \path[coordinate](\tkz@bx,\tkz@by)coordinate(\tkz@pointtsf);%
+ }
+ \endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzURotateAngle(#1,#2)(#3){%
+\begingroup
+ \pgf@process{\pgfpointanchor{#3}{center}}%
+ \tkz@ax\pgf@x%
+ \tkz@ay\pgf@y%
+ \pgf@process{\pgfpointanchor{#1}{center}}%
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \pgfmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
+ {\pgfpoint{\tkz@bx}{\tkz@by}}%
+ {#2}
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \path (\tkz@bx,\tkz@by) coordinate (tkzPointResult);%
+ \endgroup
+}
+%<--------------------------------------------------------------------------–>
+% % rotation en radian
+% %<--------------------------------------------------------------------------–>
+\def\tkzRotateInRad(#1,#2)(#3)#4{%
+\begingroup
+\gdef\tkz@LastList{#4}
+ \foreach\PointRot in {#3}{%
+ \FirstPointInList\tkz@LastList
+ \ifx\tkz@FirstPoint\tkzutil@empty
+ \xdef\tkz@pointtsf{\PointRot '}
+ \else
+ \xdef\tkz@pointtsf{\tkz@FirstPoint}
+ \fi
+ \pgfmathparse{#2 r}
+ \let\tkz@Angle\pgfmathresult
+ \tkz@@extractxy{\PointRot}
+ \tkz@ax\pgf@x%
+ \tkz@ay\pgf@y%
+ \tkz@@extractxy{#1}
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \pgfmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
+ {\pgfpoint{\tkz@bx}{\tkz@by}}%
+ {\tkz@Angle}
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \path[coordinate](\tkz@bx,\tkz@by)coordinate(\tkz@pointtsf);
+}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzURotateInRad(#1,#2)(#3){%
+\begingroup
+ \pgfmathparse{#2 r}
+ \let\tkz@Angle\pgfmathresult
+ \tkz@@extractxy{#3}
+ \tkz@ax\pgf@x%
+ \tkz@ay\pgf@y%
+ \tkz@@extractxy{#1}
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \pgfmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
+ {\pgfpoint{\tkz@bx}{\tkz@by}}%
+ {\tkz@Angle}
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \path[coordinate](\tkz@bx,\tkz@by)coordinate(tkzPointResult);
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Inverse of a point
+%<--------------------------------------------------------------------------–>
+\def\tkzInversePoint(#1,#2)(#3)#4{%
+\begingroup
+\gdef\tkz@LastList{#4}
+ \foreach\PointIP in {#3}{%
+ \FirstPointInList\tkz@LastList
+ \ifx\tkz@FirstPoint\tkzutil@empty
+ \xdef\tkz@pointtsf{\PointIP '}
+ \else
+ \xdef\tkz@pointtsf{\tkz@FirstPoint}
+ \fi
+ \tkzCalcLength[cm](#1,\PointIP)\tkzGetLength{tkz@lnb}%
+ \edef\tkz@lnc{\fpeval{1/\tkz@lnb}}
+ \tkzVecKNorm[\tkz@lnb](#1,\PointIP)
+ }
+\endgroup
+}
+\def\tkzUInversePoint(#1,#2)(#3){%
+\begingroup
+ \tkzCalcLength[cm](#1,#3)\tkzGetLength{tkz@lnb}%
+ \edef\tkz@lnc{\fpeval{1/\tkz@lnb}}
+ \tkzVecKNorm[\tkz@lnc](#1,#3)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Fin des transformations
+%<--------------------------------------------------------------------------–>
+
+ \makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex
new file mode 100644
index 0000000000..ca072cd66d
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex
@@ -0,0 +1,114 @@
+% tkz-obj-eu-points-rnd.tex
+% Copyright 2011 by Alain Matthes
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-points-rnd.tex}
+%<--------------------------------------------------------------------------–>
+\makeatletter
+%<-------------------------------------------------------------------------–>
+% Points aléatoires sur un segment, une droite, une demi-droite un cercle
+%<--------------------------------------------------------------------------–>
+% les points aléatoires
+%<--------------------------------------------------------------------------–>
+\def\tkz@numrp{0}
+\pgfkeys{/@tkzDefRandPoint/.cd,
+ rectangle/.code args = {#1 and #2}{\def\tkz@numrp{0}%
+ \def\tkz@infl{#1}%
+ \def\tkz@supr{#2}},
+ segment/.code args = {#1--#2}{\def\tkz@numrp{1}%
+ \def\tkz@start{#1}%
+ \def\tkz@end{#2}},
+ line/.code args = {#1--#2}{\def\tkz@numrp{2}%
+ \def\tkz@start{#1}%
+ \def\tkz@end{#2}},
+ circle/.code args = {center #1 radius #2}{\def\tkz@numrp{3}%
+ \def\tkz@center{#1}
+ \def\tkz@rad{#2}},
+ circle through/.code args = {center #1 through #2}{\def\tkz@numrp{4}%
+ \def\tkz@center{#1}
+ \def\tkz@point{#2}},
+ disk through/.code args = {center #1 through #2}{\def\tkz@numrp{5}%
+ \def\tkz@center{#1}
+ \def\tkz@point{#2}},
+}
+%<------------------------ version 2019 ---------------------------------->
+\def\tkzDefRandPointOn{\pgfutil@ifnextchar[{\tkz@DefRandPointOn}{%
+ \tkz@DefRandPointOn[]}}
+\def\tkz@DefRandPointOn[#1]{%
+\begingroup
+\pgfqkeys{/@tkzDefRandPoint}{#1}
+\ifcase\tkz@numrp%
+ % first case 0
+ \tkzRandPointOnRect(\tkz@infl,\tkz@supr)
+ \or% 1
+ \tkzRandPointOnSegment(\tkz@start,\tkz@end)
+ \or% 2
+ \tkzRandPointOnLine(\tkz@start,\tkz@end)
+ \or% 3
+ \tkzRandPointOnCircle(\tkz@center,\tkz@rad)
+ \or% 4
+ \tkzRandPointOnCircleThrough(\tkz@center,\tkz@point)
+ \or% 5
+ \tkzRandPointOnDisk(\tkz@center,\tkz@point)
+\fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzRandPointOnRect(#1,#2){%
+\tkz@@extractxy{#1}
+ \pgf@xa=\pgf@x\relax%
+ \pgf@ya=\pgf@y\relax%
+ \tkz@@extractxy{#2}
+ \pgf@xb=\pgf@x\relax%
+ \pgf@yb=\pgf@y\relax%
+ \edef\tkz@a{\fpeval{\pgf@xb-\pgf@xa}}
+ \edef\tkz@b{\fpeval{\pgf@yb-\pgf@ya}}
+ \pgfmathparse{rnd}\global\let\tkzrndone\pgfmathresult
+ \pgfmathparse{rnd}\global\let\tkzrndtwo\pgfmathresult
+ \path[coordinate] ($(#1)+(\tkzrndone*\tkz@a pt,\tkzrndtwo*\tkz@b pt)$) coordinate (tkzPointResult);
+ }
+%<--------------------------------------------------------------------------–>
+\def\tkzRandPointOnSegment(#1,#2){%
+ \pgfmathparse{rnd}
+ \let\myrnd\pgfmathresult
+\path[coordinate] ($ (#1)!\myrnd!(#2) $) coordinate (tkzPointResult);
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzRandPointOnLine(#1,#2){%
+ \pgfmathparse{rand}
+ \let\myrnd\pgfmathresult
+\path[coordinate] ($ (#1)!\myrnd!(#2) $) coordinate (tkzPointResult);
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzRandPointOnCircle(#1,#2){%
+\pgfmathrandominteger{\tkzrnd}{0}{360}
+\tkz@ax#2 %
+ \edef\tkz@xa{\fpeval{\tkz@ax*cosd(\tkzrnd)}}
+ \edef\tkz@xb{\fpeval{\tkz@ax*sind(\tkzrnd)}}
+ \path[coordinate]($(#1) + (\tkz@xa pt,\tkz@xb pt) $) coordinate (tkzPointResult);
+}
+\def\tkzRandPointOnCircleThrough(#1,#2){%
+\pgfmathrandominteger{\tkzrnd}{0}{360}
+\tkzCalcLength(#1,#2)
+ \edef\tkz@xa{\fpeval{\tkzLengthResult*cosd(\tkzrnd)}}
+ \edef\tkz@xb{\fpeval{\tkzLengthResult*sind(\tkzrnd)}}
+\path[coordinate]($(#1) + (\tkz@xa pt ,\tkz@xb pt) $) coordinate (tkzPointResult);
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzRandPointOnDisk(#1,#2){%
+ \pgfmathrandominteger{\tkzrnd}{0}{360}
+ \tkzCalcLength(#1,#2)
+ \edef\tkz@xa{\fpeval{\tkzLengthResult*cosd(\tkzrnd)}}
+ \edef\tkz@xb{\fpeval{\tkzLengthResult*sind(\tkzrnd)}}
+ \path[coordinate]($(#1) + (\tkz@xa pt ,\tkz@xb pt) $) coordinate (tkz@tmp);
+ \pgfmathparse{rnd}
+ \let\myrnd\pgfmathresult
+ \path[coordinate] ($ (#1)!\myrnd!(tkz@tmp) $) coordinate (tkzPointResult);
+}
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex
new file mode 100644
index 0000000000..d73a1ce8cb
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex
@@ -0,0 +1,248 @@
+% tkz-obj-eu-points-with.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-points-with.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% Vectors
+%<--------------------------------------------------------------------------–>
+% Objet : outils mathématiques pour la géométrie euclideienne avec pgf/tikz
+% utilisable de préférence avec un repère orthonormé et le cm comme unité
+% utile pour la compatibilité avec pgf 2
+%<--------------------------------------------------------------------------–>
+% Duplicate Length à revoir pas de pt pas de global
+% ||v(CN)||= ||v(AB)|| et v(CN) colineaire à v(CD)
+% A-->#1 B-->#2 C-->#3 D-->#4 N-->#5 ?????
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% Outils pour les vecteurs
+%<--------------------------------------------------------------------------–>
+% ce sont des outils élémentaires qui à partir de deux points en définissent
+% un troisième
+% #1 si c'est une option alors c'est un nombre réel
+% #2 et #3 sont deux points
+% #4 est le nom du point qui résulte de la transformation
+% exemple : \tkzVecKNorm (A,B){C} définit un point C tel que AC = 1 et C est % % un point de la droite (AC). #1 peut être négatif
+
+\def\tkzDuplicateSegment(#1,#2)(#3,#4){%
+\begingroup
+ \tkzCalcLength(#1,#2)\tkzGetLength{tkz@firstlen}%
+ \tkzCalcLength(#3,#4)\tkzGetLength{tkz@secondlen}%
+ \edef\tkz@ratio{\fpeval{\tkz@firstlen/\tkz@secondlen}}
+ \tkz@VecKCoLinear[\tkz@ratio](#3,#4,#3)%
+\endgroup
+}
+\let\tkzDuplicateLength\tkzDuplicateSegment
+%<--------------------------------------------------------------------------–>
+% Coordonnées d'un vecteur (couple de points)
+% Deux points A et B donc un vecteur on récupère les coordonnées de v(AB)
+% en cm
+% tkzGetVecCoord en cm ou en pt ???
+%<--------------------------------------------------------------------------–>
+%result in #3x et #3y #1 et #2 sont les points
+% passage en cm avec fp ?
+% 28.45274 =1 cm
+\def\tkzGetVectxy(#1,#2)#3{%
+\begingroup
+\pgfpointdiff{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{#2}{center}}%
+\pgfmathparse{\pgf@sys@tonumber{\pgf@x}/1cm}%
+\let\tkzresultx\pgfmathresult
+\pgfmathparse{\pgf@sys@tonumber{\pgf@y}/1cm}%
+\let\tkzresulty\pgfmathresult
+\global\expandafter\edef\csname #3x\endcsname{\tkzresultx}%
+\global\expandafter\edef\csname #3y\endcsname{\tkzresulty}%
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% options #1 two points #2,#3 result in #4
+%
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% tkzDefPointWith
+%<--------------------------------------------------------------------------–>
+\def\tkz@numv{0}
+\pgfkeys{/@pointwith/.cd,
+ colinear/.code args = {at #1}{\def\tkz@numv{0}\def\tkz@frompoint{#1}},
+ orthogonal/.code = {\def\tkz@numv{1}},
+ linear/.code = {\def\tkz@numv{2}},
+ orthogonal normed/.code = {\def\tkz@numv{3}},
+ linear normed/.code = {\def\tkz@numv{4}},
+ colinear normed/.code args = {at#1}{\def\tkz@numv{5}\def\tkz@frompoint{#1}},
+ K/.code = {\pgfmathparse{#1}\def\tkz@ratio{\pgfmathresult}},
+ K = 1,
+ orthogonal
+}
+\def\tkzDefPointWith[#1](#2,#3){%
+\begingroup
+\pgfkeys{/@pointwith/.cd,K=1}
+\pgfqkeys{/@pointwith}{#1}
+\ifcase\tkz@numv%
+ % first case 0
+ \tkz@DefVectorColinearat[\tkz@ratio](#2,#3)
+ \or% 1
+ \tkz@VecKOrth[\tkz@ratio](#2,#3)
+ \or% 2
+ \tkz@VecK[\tkz@ratio](#2,#3)
+ \or% 3
+ \tkz@VecKOrthNorm[\tkz@ratio](#2,#3)
+ \or% 4
+ \tkz@VecKNorm[\tkz@ratio](#2,#3)
+ \or% 5
+ \tkz@VecKColinearNorm[\tkz@ratio](#2,#3)
+ \fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% tkzDefVectorfrom
+%<--------------------------------------------------------------------------–>
+% tkz@numv 0
+\def\tkz@DefVectorColinearat[#1](#2,#3){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#2}{center}}{\pgfpointanchor{#3}{center}}%
+ \pgf@xa=\pgf@x\relax%
+ \pgf@ya=\pgf@y\relax%
+ \pgfinterruptboundingbox
+ \path (\tkz@frompoint)--++(\tkz@ratio\pgf@xa,\tkz@ratio\pgf@ya) coordinate (tkzPointResult);
+ \endpgfinterruptboundingbox
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% tkzVector K Orth coeff dans #1
+% v(AN) perp v(AB) v(AB) v(AN) sens direct cercle trigo
+% ||v(AN)||=||v(AB)||
+%<--------------------------------------------------------------------------–>
+% tkz@numv 1
+\def\tkzVecKOrth{\pgfutil@ifnextchar[{\tkz@VecKOrth}{\tkz@VecKOrth[1]}}
+\def\tkz@VecKOrth[#1](#2,#3){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#2}{center}}{\pgfpointanchor{#3}{center}}%
+ \pgf@xa=-\pgf@y%
+ \pgf@ya=\pgf@x%
+ \pgfmathparse{#1}
+ \let\tkz@coeff\pgfmathresult
+ \pgfinterruptboundingbox
+ \path (#2)--++(\tkz@coeff\pgf@xa,\tkz@coeff\pgf@ya) coordinate (tkzPointResult);
+ \endpgfinterruptboundingbox
+\endgroup
+}%
+
+%<--------------------------------------------------------------------------–>
+% v(AN)=#1 x v(AB)
+% #1 le coeff; #2--> A #3--> B #4-->N tq #4-#2 = #1*(#3-#2)
+%<--------------------------------------------------------------------------–>
+% tkz@numv 2
+\def\tkzVecK{\pgfutil@ifnextchar[{\tkz@VecK}{\tkz@VecK[1]}}
+\def\tkz@VecK[#1](#2,#3){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#2}{center}}%
+ {\pgfpointanchor{#3}{center}}%
+ \pgf@xa=\pgf@x\relax%
+ \pgf@ya=\pgf@y\relax%
+ \pgfmathparse{#1}
+ \let\tkz@coeff\pgfmathresult
+ \pgfinterruptboundingbox
+ \path (#2)--++(\tkz@coeff\pgf@xa,\tkz@coeff\pgf@ya) coordinate (tkzPointResult);
+ \endpgfinterruptboundingbox
+\endgroup
+}%
+%<--------------------------------------------------------------------------–>
+% tkzVecKOrthNorm coeff dans #1
+% v(AN) perp v(AB) v(AB) v(AN) sens direct cercle trigo
+% ||v(AN||=1 si #1 est vide ou =1 sinon ||v(AN||=K
+%<--------------------------------------------------------------------------–>
+% tkz@numv 3
+\def\tkzVecKOrthNorm{\pgfutil@ifnextchar[{\tkz@VecKOrthNorm}%
+ {\tkz@VecKOrthNorm[1]}}
+\def\tkz@VecKOrthNorm[#1](#2,#3){%
+\begingroup
+ \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#2}{center}}%
+ {\pgfpointanchor{#3}{center}}}
+ \pgf@xa=-\pgf@y\relax%
+ \pgf@ya=\pgf@x\relax%
+ \edef\tkz@x{\fpeval{28.45274*(#1)*\pgf@xa}}
+ \edef\tkz@y{\fpeval{28.45274*(#1)*\pgf@ya}}
+ \pgfinterruptboundingbox
+ \path (#2)--++(\tkz@x pt,\tkz@y pt) coordinate (tkzPointResult);
+ \endpgfinterruptboundingbox
+\endgroup
+}%
+
+%<--------------------------------------------------------------------------–>
+% VectorNormalised ou K*VectorNormalised
+% A-->#2 B-->#3 N-->#4 v(AB) devient v(AN) tq ||v(AN)||=1 si #1=1
+% sinon ||v(AN)||=#1
+%<--------------------------------------------------------------------------–>
+% tkz@numv 4
+\def\tkzVecKNorm{\pgfutil@ifnextchar[{\tkz@VecKNorm}{\tkz@VecKNorm[1]}}
+\def\tkz@VecKNorm[#1](#2,#3){%
+\begingroup
+ \tkzpointnormalised{%
+ \pgfpointdiff{\pgfpointanchor{#2}{center}}
+ {\pgfpointanchor{#3}{center}}}
+ \pgf@xa=\pgf@x\relax%
+ \pgf@ya=\pgf@y\relax%
+ \edef\tkz@x{\fpeval{28.45274*(#1)*\pgf@xa}}
+ \edef\tkz@y{\fpeval{28.45274*(#1)*\pgf@ya}}
+ \pgfinterruptboundingbox
+ \path (#2)--++(\tkz@x pt,\tkz@y pt) coordinate (tkzPointResult);
+ \endpgfinterruptboundingbox
+\endgroup
+}%
+%<--------------------------------------------------------------------------–>
+% \tkz@VecKColinearNorm
+%<--------------------------------------------------------------------------–>
+%% tkz@numv 5
+\def\tkz@VecKColinearNorm[#1](#2,#3){%
+\begingroup
+ \tkzpointnormalised{%
+ \pgfpointdiff{\pgfpointanchor{#2}{center}}
+ {\pgfpointanchor{#3}{center}}}
+ \pgf@xa=\pgf@x\relax%
+ \pgf@ya=\pgf@y\relax%
+ \edef\tkz@x{\fpeval{28.45274*(#1)*\pgf@xa}}
+ \edef\tkz@y{\fpeval{28.45274*(#1)*\pgf@ya}}
+ \pgfinterruptboundingbox
+ \path (\tkz@frompoint)--++(\tkz@x pt,\tkz@y pt) coordinate (tkzPointResult);
+ \endpgfinterruptboundingbox
+\endgroup
+}%
+
+%<--------------------------------------------------------------------------–>
+% VecKCoLinear CN = K x AB #1 pt #2 pt #3 pt #4 nb #5 pt result
+% il faut modifier cette macro : on supprime #3 pour la colinéarité
+% Il suffit d'utiliser Replicate ou Duplicate coeff dans #1
+% v(CD)=#1 x v(AB) #1 le coeff; #2-->A #3-->B #4-->C
+%<--------------------------------------------------------------------------–>
+
+\def\tkz@VecKCoLinear[#1](#2,#3,#4){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#2}{center}}%
+ {\pgfpointanchor{#3}{center}}%
+ \pgf@xa=\pgf@x\relax%
+ \pgf@ya=\pgf@y\relax%
+ \edef\tkz@coeff{\fpeval{#1}}
+ \pgfinterruptboundingbox
+ \path (#4)--+(\tkz@coeff\pgf@xa,\tkz@coeff\pgf@ya) coordinate (tkzPointResult);
+ \endpgfinterruptboundingbox
+\endgroup
+}%
+\def\tkz@VecCoLinear(#1,#2,#3){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{#2}{center}}%
+ \pgf@xa=\pgf@x\relax%
+ \pgf@ya=\pgf@y\relax%
+ \pgfinterruptboundingbox
+ \path (#3)--+(\pgf@xa,\pgf@ya) coordinate (tkzPointResult);
+ \endpgfinterruptboundingbox
+\endgroup
+}%
+
+%<-------------------------------------------------------------------------–>
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex
new file mode 100644
index 0000000000..62600426e7
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex
@@ -0,0 +1,465 @@
+% tkz-obj-eu-points.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-points.tex}
+\makeatletter
+%add ExCenter
+%<--------------------------------------------------------------------------–>
+% Specific points
+%<--------------------------------------------------------------------------–>
+% barycentre
+%<--------------------------------------------------------------------------–>
+\def\tkzDefBarycentricPoint(#1){%
+\begingroup
+ \path[coordinate] (barycentric cs:#1) coordinate (tkzPointResult);
+\endgroup
+}
+\let\tkzDefBCPoint\tkzDefBarycentricPoint
+
+\def\tkzDefCentroid(#1){%
+\begingroup
+ \xdef\tkz@arg{}
+ \foreach \X in {#1}
+ {%
+ \ifx\tkzutil@empty\tkz@arg%
+ \xdef\tkz@arg{\X=1}
+ \else
+ \xdef\tkz@arg{\tkz@arg,\X=1}
+ \fi
+ }
+ \path[coordinate] (barycentric cs:\tkz@arg) coordinate (tkzPointResult);
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+% milieu de deux points
+%<--------------------------------------------------------------------------–>
+% possible \coordinate (#3) at ($(#1)!0.5!(#2)$);
+%<--------------------------------------------------------------------------–>
+% \def\tkzDefMidPoint(#1,#2){%
+% \begingroup
+% \path (#1) -- (#2) coordinate[pos=.5](tkzPointResult);
+% \endgroup
+% }
+\def\tkzDefMidPoint(#1,#2){%
+\begingroup
+ \pgf@process{\pgfpointanchor{#1}{center}}%
+ \tkz@ax\pgf@x%
+ \tkz@ay\pgf@y%
+ \pgf@process{\pgfpointanchor{#2}{center}}%
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \advance\tkz@bx by\tkz@ax\relax%
+ \advance\tkz@by by\tkz@ay\relax%
+ \divide\tkz@bx by2\relax%
+ \divide\tkz@by by2\relax
+ \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkz@bx}{\tkz@by}}
+\endgroup
+}
+\def\tkz@DefMidPoint(#1,#2,#3,#4){%
+\begingroup
+ \tkz@ax#1%
+ \tkz@ay#2%
+ \tkz@bx#3%
+ \tkz@by#4%
+ \advance\tkz@bx by\tkz@ax\relax%
+ \advance\tkz@by by\tkz@ay\relax%
+ \divide\tkz@bx by2\relax%
+ \divide\tkz@by by2\relax
+ \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkz@bx}{\tkz@by}}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Internal Similitude center
+% Two circles have two similitude centers namely the internal center of similitude Si and the external similitude center Se.
+%<--------------------------------------------------------------------------–>
+\def\tkzDefIntSimilitudeCenter(#1,#2)(#3,#4){%
+\begingroup
+ \path[coordinate](barycentric cs:#1=#4,#3=#2)coordinate (tkzPointResult);
+\endgroup
+}
+\let\tkzIntSimilitudeCenter\tkzDefIntSimilitudeCenter
+%<--------------------------------------------------------------------------–>
+% External Similitude center
+%<--------------------------------------------------------------------------–>
+\def\tkzDefExtSimilitudeCenter(#1,#2)(#3,#4){%
+\begingroup
+ \path[coordinate](barycentric cs:#1=-#4,#3=#2) coordinate(tkzPointResult);
+\endgroup
+}
+\let\tkzExtSimilitudeCenter\tkzDefExtSimilitudeCenter
+%<--------------------------------------------------------------------------–>
+% triangle center
+%<--------------------------------------------------------------------------–>
+
+\def\tkz@numtc{0}
+\pgfkeys{/tkzDefTriangleCenter/.cd,
+ ortho/.code = \def\tkz@numtc{0},
+ centroid/.code = \def\tkz@numtc{1},
+ median/.code = \def\tkz@numtc{1},
+ circum/.code = \def\tkz@numtc{2},
+ in/.code = \def\tkz@numtc{3},
+ ex/.code = \def\tkz@numtc{4},
+ euler/.code = \def\tkz@numtc{5},
+ symmedian/.code = \def\tkz@numtc{6},
+ lemoine/.code = \def\tkz@numtc{6},
+ grebe/.code = \def\tkz@numtc{6},
+ spieker/.code = \def\tkz@numtc{7},
+ gergonne/.code = \def\tkz@numtc{8},
+ nagel/.code = \def\tkz@numtc{9},
+ mittenpunkt/.code = \def\tkz@numtc{10},
+ feuerbach/.code = \def\tkz@numtc{11},
+ circum
+}
+\def\tkzDefTriangleCenter{\pgfutil@ifnextchar[{\tkz@DefTriangleCenter}{\tkz@DefTriangleCenter[]}}
+\def\tkz@DefTriangleCenter[#1](#2){%
+\begingroup
+\pgfqkeys{/tkzDefTriangleCenter}{#1}
+\ifcase\tkz@numtc%
+ \tkzOrthoCenter(#2)
+ \or% 1
+ \tkzCentroid(#2)
+ \or% 2
+ \tkzCircumCenter(#2)
+ \or% 3
+ \tkzInCenter(#2)
+ \or% 4
+ \tkzExCenter(#2)
+ \or% 5
+ \tkzEulerCenter(#2)
+ \or% 6
+ \tkzSymmedianCenter(#2)
+ \or% 7
+ \tkzSpiekerCenter(#2)
+ \or% 8
+ \tkzGergonneCenter(#2)
+ \or%9
+ \tkzNagelCenter(#2)
+ \or%10
+ \tkzMittenpunktCenter(#2)
+ \or%11
+ \tkzFeuerbachCenter(#2)
+ \fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% OrthoCenter
+%<--------------------------------------------------------------------------–>
+\def\tkzOrthoCenter(#1,#2,#3){% H orthocentre
+\begingroup
+ \tkzUProjection(#1,#2)(#3)
+ \pgfnodealias{ort@pta}{tkzPointResult}
+ \tkzUProjection(#1,#3)(#2)
+ \pgfnodealias{ort@ptb}{tkzPointResult}
+ \tkzInterLL(#2,ort@ptb)(#3,ort@pta)
+\endgroup
+}
+\let\tkzDefOrthoCenter\tkzOrthoCenter
+%<--------------------------------------------------------------------------–>
+% GravityCenter
+%<--------------------------------------------------------------------------–>
+% \def\tkzCentroid(#1,#2,#3){%
+% \begingroup
+% \path[coordinate](barycentric cs:#1=1,#2=1,#3=1)coordinate (tkzPointResult);
+% \endgroup
+% }
+\def\tkzCentroid(#1,#2,#3){%
+\begingroup
+ \pgf@process{\pgfpointanchor{#1}{center}}%
+ \tkz@ax\pgf@x%
+ \tkz@ay\pgf@y%
+ \pgf@process{\pgfpointanchor{#2}{center}}%
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \pgf@process{\pgfpointanchor{#3}{center}}%
+ \tkz@cx\pgf@x%
+ \tkz@cy\pgf@y%
+ \advance\tkz@cx by\tkz@ax\relax%
+ \advance\tkz@cy by\tkz@ay\relax%
+ \advance\tkz@cx by\tkz@bx\relax%
+ \advance\tkz@cy by\tkz@by\relax%
+ \divide\tkz@cx by3\relax%
+ \divide\tkz@cy by3\relax
+ \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkz@cx}{\tkz@cy}}
+ %\path[coordinate](barycentric cs:#1=1,#2=1,#3=1)coordinate (tkzPointResult);
+\endgroup
+}
+\let\tkzBaryCenter\tkzCentroid
+
+%<--------------------------------------------------------------------------–>
+% CircumCenter
+%<--------------------------------------------------------------------------–>
+\def\tkzCircumCenter(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox
+ \tkzDefMediatorLine(#1,#2)
+ \pgf@process{\pgfpointanchor{tkzFirstPointResult}{center}}%
+ \tkz@ax\pgf@x%
+ \tkz@ay\pgf@y%
+ \pgf@process{\pgfpointanchor{tkzSecondPointResult}{center}}%
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \tkzDefMediatorLine(#1,#3)
+ \pgf@process{\pgfpointanchor{tkzFirstPointResult}{center}}%
+ \tkz@cx\pgf@x%
+ \tkz@cy\pgf@y%
+ \pgf@process{\pgfpointanchor{tkzSecondPointResult}{center}}%
+ \tkz@dx\pgf@x%
+ \tkz@dy\pgf@y%
+ \tkzInterLLxy(\tkz@ax,\tkz@ay,\tkz@bx,\tkz@by)(\tkz@cx,\tkz@cy,\tkz@dx,\tkz@dy)%
+\endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzDefCircumCenter\tkzCircumCenter
+%<--------------------------------------------------------------------------–>
+% InCenter
+%<--------------------------------------------------------------------------–>
+\def\tkzInCenter(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox
+ \tkzDefBisectorLine(#3,#1,#2)
+ \pgf@process{\pgfpointanchor{tkzPointResult}{center}}%
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \tkzDefBisectorLine(#3,#2,#1)
+ \pgf@process{\pgfpointanchor{tkzPointResult}{center}}%
+ \tkz@dx\pgf@x%
+ \tkz@dy\pgf@y%
+ \pgf@process{\pgfpointanchor{#1}{center}}%
+ \tkz@ax\pgf@x%
+ \tkz@ay\pgf@y%
+ \pgf@process{\pgfpointanchor{#2}{center}}%
+ \tkz@cx\pgf@x%
+ \tkz@cy\pgf@y%
+ \tkzInterLLxy(\tkz@ax,\tkz@ay,\tkz@bx,\tkz@by)%
+ (\tkz@cx,\tkz@cy,\tkz@dx,\tkz@dy)%
+ \endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzDefInCenter\tkzInCenter
+%<--------------------------------------------------------------------------–>
+% ExCenter
+%<--------------------------------------------------------------------------–>
+\def\tkzExCenter(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox
+ \tkzDefBisectorOutLine(#2,#1,#3)
+ \pgf@process{\pgfpointanchor{tkzPointResult}{center}}%
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \tkzDefBisectorOutLine(#2,#3,#1)
+ \pgf@process{\pgfpointanchor{tkzPointResult}{center}}%
+ \tkz@dx\pgf@x%
+ \tkz@dy\pgf@y%
+ \pgf@process{\pgfpointanchor{#1}{center}}%
+ \tkz@ax\pgf@x%
+ \tkz@ay\pgf@y%
+ \pgf@process{\pgfpointanchor{#3}{center}}%
+ \tkz@cx\pgf@x%
+ \tkz@cy\pgf@y%
+ \tkzInterLLxy(\tkz@ax,\tkz@ay,\tkz@bx,\tkz@by)%
+ (\tkz@cx,\tkz@cy,\tkz@dx,\tkz@dy)%
+ \endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzDefExCenter\tkzExCenter
+%<--------------------------------------------------------------------------–>
+% EulerCenter neuf points
+%<--------------------------------------------------------------------------–>
+\def\tkzEulerCenter(#1,#2,#3){%
+% mileu de orthocentre et centre cercle circonscrit
+% passe par les midpoints par les pieds des hauteurs
+\begingroup
+\pgfinterruptboundingbox
+ \tkzDefMidPoint(#1,#2)
+ \pgfnodealias{eu@mic}{tkzPointResult}
+ \tkzDefMidPoint(#1,#3)
+ \pgfnodealias{eu@mib}{tkzPointResult}
+ \tkzDefMidPoint(#2,#3)
+ \pgfnodealias{eu@mia}{tkzPointResult}
+ \tkzCircumCenter(eu@mia,eu@mib,eu@mic)
+\endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzNinePointCenter\tkzEulerCenter
+\let\tkzDefEulerCenter\tkzEulerCenter
+%<--------------------------------------------------------------------------–>
+%Symmedian center Lemoine point Grebe point K
+%<--------------------------------------------------------------------------–>
+\def\tkzSymmedianCenter(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox
+ \tkzDefMidPoint(#2,#3)
+ \pgfnodealias{eu@mic}{tkzPointResult}
+ \tkzDefMidPoint(#1,#3)
+ \pgfnodealias{eu@mib}{tkzPointResult}
+ \tkzUProjection(#2,#3)(#1)
+ \pgfnodealias{ort@pta}{tkzPointResult}
+ \tkzDefMidPoint(#1,ort@pta)
+ \pgfnodealias{eu@mid}{tkzPointResult}
+ \tkzUProjection(#1,#3)(#2)
+ \pgfnodealias{ort@ptb}{tkzPointResult}
+ \tkzDefMidPoint(#2,ort@ptb)
+ \pgfnodealias{eu@mie}{tkzPointResult}
+ \tkzInterLL(eu@mic,eu@mid)(eu@mib,eu@mie)
+\endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzLemoinePoint\tkzSymmedianCenter
+\let\tkzGrebePoint\tkzSymmedianCenter
+\let\tkzDefLemoinePoint\tkzLemoinePoint
+%<--------------------------------------------------------------------------–>
+% Spieker center
+%<--------------------------------------------------------------------------–>
+\def\tkzSpiekerCenter(#1,#2,#3){%
+\begingroup
+% we need to get the midpoints
+\pgfcoordinate{tkz@m3}{%
+ \pgfpointscale{0.5}{%
+ \pgfpointadd{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{#2}{center}}}}%
+\pgfcoordinate{tkz@m2}{%
+ \pgfpointscale{0.5}{%
+ \pgfpointadd{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{#3}{center}}}}%
+\pgfcoordinate{tkz@m1}{%
+ \pgfpointscale{0.5}{%
+ \pgfpointadd{\pgfpointanchor{#2}{center}}%
+ {\pgfpointanchor{#3}{center}}}}%
+\tkzInCenter(tkz@m1,tkz@m2,tkz@m3)
+\endgroup
+}
+\let\tkzDefSpiekerCenter\tkzSpiekerCenter
+%<--------------------------------------------------------------------------–>
+% Gergonne center Ge
+%<--------------------------------------------------------------------------–>
+\def\tkzGergonneCenter(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox
+ \tkzInCenter(#1,#2,#3)
+ \pgfnodealias{tkz@ptin}{tkzPointResult}
+ \tkzUProjection(#2,#3)(tkz@ptin)
+ \pgfnodealias{tkz@oca}{tkzPointResult}
+ \tkzUProjection(#1,#3)(tkz@ptin)
+ \pgfnodealias{tkz@ocb}{tkzPointResult}
+ \tkzInterLL(#1,tkz@oca)(#2,tkz@ocb)
+\endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzDefGergonneCenter\tkzGergonneCenter
+%<--------------------------------------------------------------------------–>
+% Nagel center Na
+%<--------------------------------------------------------------------------–>
+% INa = 3 IG. Nagel point
+\def\tkzNagelCenter(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox
+ \tkzInCenter(#1,#2,#3)
+ \pgfnodealias{tkz@ptin}{tkzPointResult}
+ \tkzCentroid(#1,#2,#3)
+ \pgfnodealias{tkz@cen}{tkzPointResult}
+ \tkz@VecCoLinear(tkz@ptin,tkz@cen,tkz@ptin)
+\endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzDefNagelCenter\tkzNagelCenter
+%<--------------------------------------------------------------------------–>
+% Mittenpunkt
+%<--------------------------------------------------------------------------–>
+\def\tkzMittenpunktCenter(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox
+ \tkzExCenter(#2,#3,#1)
+ \pgfnodealias{tkz@a}{tkzPointResult}
+ \tkzExCenter(#3,#1,#2)
+ \pgfnodealias{tkz@b}{tkzPointResult}
+ \pgfcoordinate{tkz@ma}{%
+ \pgfpointscale{0.5}{%
+ \pgfpointadd{\pgfpointanchor{#1}{center}}{\pgfpointanchor{#2}{center}}}}%
+ \pgfcoordinate{tkz@mb}{%
+ \pgfpointscale{0.5}{%
+ \pgfpointadd{\pgfpointanchor{#2}{center}}{\pgfpointanchor{#3}{center}}}}%
+ \tkzInterLL(tkz@a,tkz@ma)(tkz@b,tkz@mb)
+ \endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzDefMittenpunktCenter\tkzMittenpunktCenter
+\let\tkzDefMiddlespoint\tkzMittenpunktCenter
+%<--------------------------------------------------------------------------–>
+% Feuerbach point
+%<--------------------------------------------------------------------------–>
+\def\tkzFeuerbachCenter(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox
+ \tkzEulerCenter(#1,#2,#3)
+ \pgfnodealias{tkz@euler}{tkzPointResult}
+ \tkzInCenter(#1,#2,#3)
+ \pgfnodealias{tkz@in}{tkzPointResult}
+ \tkzUProjection(#2,#3)(tkzPointResult)
+ \tkzInterLC(tkz@in,tkz@euler)(tkz@in,tkzPointResult)\tkzGetFirstPoint{tkz@fe}
+ \tkzRenamePoint(tkz@fe){tkzPointResult}
+ \endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzDefFeuerbachCenter\tkzFeuerbachCenter
+%<--------------------------------------------------------------------------–>
+% Orthogonal center
+%<--------------------------------------------------------------------------–>
+\def\tkzOrthogonalCenter(#1,#2){%
+\begingroup
+\pgfinterruptboundingbox
+ \tkz@VecK[\tkz@koeff/(1+\tkz@koeff)](#1,#2)
+ \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+ \tkz@VecK[\tkz@koeff/(\tkz@koeff-1)](#1,#2)
+ \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+ \tkzDefMidPoint(tkzFirstPointResult,tkzSecondPointResult)
+\endpgfinterruptboundingbox
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% End Triangle center
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% Projection center of excircles
+%<--------------------------------------------------------------------------–>
+\def\tkzDefProjExcenter{\pgfutil@ifnextchar[{%
+ \tkz@DefProjExcenter}{%
+ \tkz@DefProjExcenter[]}
+ }
+\def\tkz@DefProjExcenter[#1](#2,#3,#4)(#5)#6{
+\begingroup
+ \SetUpPTTR{#1}
+ \foreach \name [count=\i] in {#5} {%
+ \global\expandafter\edef\csname tkz@pt\i\endcsname{\name}
+ }
+ \foreach \name [count=\i] in {#6} {%
+ \global\expandafter\edef\csname tkz@ppt\i\endcsname{\name}
+ }
+\tkzDefPointBy[projection=onto #3--#4 ](\tkz@pttr@name \csname tkz@pt1\endcsname)
+\pgfnodealias{\csname tkz@ppt1\endcsname\csname tkz@pt1\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #3--#4 ](\tkz@pttr@name \csname tkz@pt2\endcsname)
+\pgfnodealias{\csname tkz@ppt1\endcsname\csname tkz@pt2\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #3--#4 ](\tkz@pttr@name \csname tkz@pt3\endcsname)
+\pgfnodealias{\csname tkz@ppt1\endcsname\csname tkz@pt3\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #2--#4 ](\tkz@pttr@name \csname tkz@pt1\endcsname)
+\pgfnodealias{\csname tkz@ppt2\endcsname\csname tkz@pt1\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #2--#4 ](\tkz@pttr@name \csname tkz@pt2\endcsname)
+\pgfnodealias{\csname tkz@ppt2\endcsname\csname tkz@pt2\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #2--#4 ](\tkz@pttr@name \csname tkz@pt3\endcsname)
+\pgfnodealias{\csname tkz@ppt2\endcsname\csname tkz@pt3\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #3--#2 ](\tkz@pttr@name \csname tkz@pt1\endcsname)
+\pgfnodealias{\csname tkz@ppt3\endcsname\csname tkz@pt1\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #3--#2 ](\tkz@pttr@name \csname tkz@pt2\endcsname)
+\pgfnodealias{\csname tkz@ppt3\endcsname\csname tkz@pt2\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #3--#2 ](\tkz@pttr@name \csname tkz@pt3\endcsname)
+\pgfnodealias{\csname tkz@ppt3\endcsname\csname tkz@pt3\endcsname}{tkzPointResult}
+\endgroup
+}
+
+
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex
new file mode 100644
index 0000000000..56d0b86fdf
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex
@@ -0,0 +1,113 @@
+% tkz-obj-eu-polygons.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-polygons.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% Polygon
+%<--------------------------------------------------------------------------–>
+%<--------------------------- square ------------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+\def\tkzDefSquare(#1,#2){
+\begingroup
+ \tkzURotateAngle(#2,-90)(#1)
+ \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+ \tkzURotateAngle(#1, 90)(#2)
+ \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+\endgroup
+}
+%<--------------------- parallélogramme ---------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+\def\tkzDefParallelogram(#1,#2,#3){
+\begingroup
+\tkzDefPointWith[colinear= at #3](#2,#1)
+\endgroup
+}
+
+%<-------------------------- gold rectangle -------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+
+\def\tkzDefGoldRectangle(#1,#2){
+\begingroup
+ \tkzVecKOrth[-\tkzInvPhi](#2,#1)
+ \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+ \tkzVecKOrth[\tkzInvPhi](#1,#2)
+ \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+\endgroup
+}
+\def\tkzDrawGoldRectangle{\pgfutil@ifnextchar[{\tkz@DrawGoldRectangle}{%
+ \tkz@DrawGoldRectangle[]}}
+
+%<---------------------------- Regular Polygon -------------------------–>
+\def\tkz@numregpol{0}
+\pgfkeys{/defregpoly/.cd,
+ name/.store in = \tkz@regpolname,
+ sides/.store in = \tkz@regpolsides,
+ center/.code = \def\tkz@numregpol{0},
+ side/.code = \def\tkz@numregpol{1},
+ center,
+ name = P,
+ sides = 5
+}
+\def\tkzDefRegPolygon{\pgfutil@ifnextchar[{\tkz@DefRegPolygon}{%
+ \tkz@DefRegPolygon[]}}
+\def\tkz@DefRegPolygon[#1](#2,#3){%
+\begingroup
+\pgfqkeys{/defregpoly}{#1}
+\ifcase\tkz@numregpol%
+ \tkzRegPolygonCenter(#2,#3)
+ \or%
+ \tkzRegPolygonSide(#2,#3)
+ \fi
+\endgroup
+}
+\def\tkzRegPolygonCenter(#1,#2){
+\begingroup
+ \foreach \v in {1,2,...,\tkz@regpolsides}
+ {%
+ \pgfmathsetmacro{\tkz@regangle}{360/\tkz@regpolsides*(\v-1)}
+ \tkzDefPointBy[rotation= center #1 angle \tkz@regangle](#2)
+ \pgfnodealias{\tkz@regpolname\v}{tkzPointResult}
+ }
+\endgroup
+}
+\def\tkzRegPolygonSide(#1,#2){
+\begingroup
+% get the center
+\pgfmathsetmacro{\tkz@regangle}{360/\tkz@regpolsides*(\tkz@regpolsides-1)}
+\pgfmathsetmacro{\tkz@regangleside}{(180-\tkz@regangle)/2}
+\tkzDefMidPoint(#1,#2)
+\pgfnodealias{tkz@tempPt}{tkzPointResult}
+\tkzCalcLength[cm](tkz@tempPt,B) \tkzGetLength{tkz@len}
+\pgfmathsetmacro{\tkz@inscriberadius}{%
+ \tkz@len*tan(90*(\tkz@regpolsides-2)/\tkz@regpolsides)}
+\tkzDefPointWith[orthogonal normed,K=\tkz@inscriberadius](tkz@tempPt,#2)
+\pgfnodealias{tkz@RegPolCenter}{tkzPointResult}
+\tkzRegPolygonCenter(tkz@RegPolCenter,#1)
+\pgfnodealias{tkzPointResult}{tkz@RegPolCenter}
+\endgroup
+}
+
+%<---------------------------- CLIP --------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+\def\tkzClipPolygon(#1,#2){%
+\path[clip] (#1)
+ \foreach \pt in {#1,#2}{--(\pt)}--cycle;
+}
+
+ \def\tkzClipOutPolygon(#1,#2){\clip[tkzreverseclip] (#1)
+ \foreach \pt in {#1,#2}{--(\pt)}--cycle;
+}
+
+
+
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-protractor.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex
index 04d4e3b3b9..eaeca969fc 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-protractor.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex
@@ -1,18 +1,15 @@
+% tkz-obj-eu-protractor.tex
% Copyright 2011 by Alain Matthes
-%
% This file may be distributed and/or modified
-%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 c}
-\def\filedate{2011/06/01}
-
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+ \typeout{2020/01/23 3.01c tkz-obj-eu-protractor.tex}
+\makeatletter
%<--------------------------------------------------------------------------–>
% !!! idea from Y. Combe !!!
%<--------------------------------------------------------------------------–>
-%
% \tkzProtractor Protractor
%
% Rapporteur ajustable et positionable
@@ -31,49 +28,11 @@
% lw : line width (épaisseur des lignes)
% ce paramètre subit le facteur d'échelle.
%<--------------------------------------------------------------------------–>
-\def\HalfProtractor{%
-\tkzActivOff
- \draw [fill=black!50!blue!20!,even odd rule,semitransparent](-160:5cm) -- (-20:5cm) arc (-20:200:5cm) -- cycle %
- (-180:3.5cm) -- (0:3.5cm) arc (0:180:3.5cm) -- cycle;%
-
- \draw (-90:0.3cm) -- (0,0)
- (-135:0.3cm) -- (0,0)
- (-45:0.3cm) -- (0,0);
-\foreach \MO@i in {0,1,...,180}
-\pgfmathparse{ 4.8 * (mod(\MO@i ,5)==0) + 4.9 * (mod(\MO@i ,5)>0) }
-\draw (\MO@i:\pgfmathresult cm)--(\MO@i:5cm);
-
- \foreach \d in {0,1,...,180}
- \pgfmathparse{3.7 * (mod(\d,5)==0) + 3.6 * (mod(\d,5)>0)}
- \draw (\d:\pgfmathresult cm)--(\d:3.5cm);
-
-\draw (0: 4.6cm) node[font=\small] {0}
- (0: 4cm) node[font=\small] {180};
-
-\foreach \d in {10,20,...,80}
- \pgfmathtruncatemacro{\rang}{180 - \d }
- \draw (\d:3.9 cm) node[font=\tiny] {\rang}
- (\d:4.6 cm) node[font=\tiny] {\d};
-
-\draw (90: 4.25cm) node[font=\small] {90};
-\draw (90: 4.6 cm) -- (90:5cm)
- (90: 3.9 cm) -- (90:3.5cm) ;
-
-\foreach \d in {100,110,...,170}
- \pgfmathtruncatemacro{\rang}{180 - \d }
- \draw (\d:3.9 cm) node[font=\tiny] {\rang}
- (\d:4.6 cm) node[font=\tiny] {\d};
-
- \draw (180: 4.5cm) node[font=\small] {180}
- (180: 3.9cm) node[font=\small] {0};
-\tkzActivOn
-}
-
\def\FullProtractor{%
-\tkzActivOff
\draw[fill=black!50!yellow!20!,even odd rule,semitransparent]%
(0,0) circle (4cm);
-\draw (0,0) circle (3.3cm);\draw (0,0) circle (4cm);
+\draw (0,0) circle (3.3cm);
+\draw (0,0) circle (4cm);
\draw[fill=black] (0,0) circle (.08mm);
\node[draw, circle, inner sep=.2mm] (a) at (0,0) {};
\foreach \x in {0, 90, ..., 360}{%
@@ -90,10 +49,9 @@
}
\def\FullProtractorReturn{%
-\tkzActivOff
-\draw[fill=black!50!yellow!20!,even odd rule,semitransparent]%
- (0,0) circle (4cm);
-\draw (0,0) circle (3.3cm);\draw (0,0) circle (4cm);
+\draw[fill=black!50!yellow!20!,even odd rule,semitransparent] (0,0) circle (4cm);
+\draw (0,0) circle (3.3cm);
+\draw (0,0) circle (4cm);
\draw[fill=black] (0,0) circle (.08mm);
\node[draw, circle, inner sep=.2mm] (a) at (0,0) {};
\foreach \x in {0, 90, ..., 360}{%
@@ -108,65 +66,35 @@
\draw [>=stealth',->, thick,black] (0:2.5) arc(0:-32:2.5);
\draw [>=stealth',->, thick,black] (0:2) arc(0:-32:2);
\draw [>=stealth',->, thick,black] (0:1.5) arc(0:-32:1.5);
-\tkzActivOn
}
-
-\newif\iftkz@RappReturn
-\newif\iftkz@RappFull
+\global\let\tkz@@Protractor\FullProtractor
\pgfkeys{
protractor/.cd,
- with/.is choice,
- with/full/.code = {\global\let\tkz@@Protractor\FullProtractor
- \tkz@RappFulltrue},
- with/half/.code = {\global\let\tkz@@Protractor\HalfProtractor
- \tkz@RappFullfalse},
- with/.default = full,
lw/.code = {\def\cmdMO@Rap@lw{#1}},
shift/.code = {\def\cmdMO@Rap@shift{#1}},
rotate/.code = {\def\cmdMO@Rap@rotate{#1}},
scale/.code = {\def\cmdMO@Rap@scale{#1}},
return/.is if = tkz@RappReturn,
- return/.default = true
+ return/.default = true,
+ /protractor/.search also={/tikz}
}
-\def\tkzOriProtractor{\pgfutil@ifnextchar[{\tkz@OriProtractor}{%
- \tkz@OriProtractor[]}}
-\def\tkz@OriProtractor[#1]{
- \pgfkeys{/protractor/.cd,
- with=full,
- shift={(0,0)},
- rotate=0,
- lw=0.4pt,
- scale =1,
- return=false
- }
- \pgfqkeys{/protractor}{#1}
- \pgfmathsetlengthmacro{\MO@lw}{\cmdMO@Rap@lw * \cmdMO@Rap@scale}
- \begin{scope}[shift = \cmdMO@Rap@shift,%
- scale = \cmdMO@Rap@scale,%
- rotate = \cmdMO@Rap@rotate,%
- every node/.style = {scale =\cmdMO@Rap@scale,
- rotate =\cmdMO@Rap@rotate},%
- line width=\MO@lw
- ]%
- \tkz@@Protractor
-\end{scope}
-}
+
+
\def\tkzProtractor{\pgfutil@ifnextchar[{\tkz@Protractor}{\tkz@Protractor[]}}
-\def\tkz@Protractor[#1](#2,#3){
- \pgfkeys{/protractor/.cd,
- with=full,
- shift={(0,0)},
- rotate=0,
- lw=0.4pt,
- scale =1,
- return=false
+\def\tkz@Protractor[#1](#2,#3){%
+ \pgfkeys{%
+ /protractor/.cd,
+ shift={(0,0)},
+ rotate=0,
+ lw=0.4pt,
+ scale =1,
+ return=false
}
\pgfqkeys{/protractor}{#1}
\tkz@@extractxy{#2}
\global\tkz@ax\pgf@x
\global\tkz@ay\pgf@y
\tkzFindSlopeAngle(#2,#3)\tkzGetAngle{cmdMO@Rap@rotate}%
-\iftkz@RappFull
\iftkz@RappReturn
\global\let\tkz@@Protractor\FullProtractorReturn
\fi
@@ -179,25 +107,10 @@
line width=\MO@lw]%
\tkz@@Protractor
\end{scope}
-\else
- \iftkz@RappReturn%
- \pgfmathsubtract{\cmdMO@Rap@rotate}{180}
- \let\cmdMO@Rap@rotate\pgfmathresult
- \fi
-\pgfmathsetlengthmacro{\MO@lw}{\cmdMO@Rap@lw * \cmdMO@Rap@scale}
- \begin{scope}[shift = {(\tkz@ax,\tkz@ay)},%
- scale = \cmdMO@Rap@scale,%
- rotate = \cmdMO@Rap@rotate,%
- every node/.style = {scale =\cmdMO@Rap@scale,
- rotate =\cmdMO@Rap@rotate},%
- line width=\MO@lw]%
- \tkz@@Protractor
-\end{scope}
-\fi
}
-
%<--------------------------------------------------------------------------–>
% fin de \tkzProtractor
%<--------------------------------------------------------------------------–>
+\makeatother
\endinput
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-sectors.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex
index 9934a6e397..538a8f34f9 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-sectors.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex
@@ -1,35 +1,27 @@
+% tkz-obj-eu-sectors.tex
% Copyright 2011 by Alain Matthes
-%
% This file may be distributed and/or modified
-%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 c}
-\def\filedate{2011/06/01}
-
-%<--------------------------------------------------------------------------–>
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-sectors.tex}
+\makeatletter
%<----------------------- Sectors ------------------------------–>
-%<--------------------------------------------------------------------------–>
\tikzset{sstyle/.style={#1}}
-
-
-\global\def\tkz@nums{0}
+\gdef\tkz@nums{0}
\pgfkeys{/drawsector/.cd,
-towards/.code = {\global\def\tkz@nums{0}},
-rotate/.code = {\global\def\tkz@nums{1}},
-R/.code = {\global\def\tkz@nums{2}},
-R with nodes/.code = {\global\def\tkz@nums{3}},
-/drawsector/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}
+ towards/.code = {\def\tkz@nums{0}},
+ rotate/.code = {\def\tkz@nums{1}},
+ R/.code = {\def\tkz@nums{2}},
+ R with nodes/.code = {\def\tkz@nums{3}},
+ towards,
+ /drawsector/.search also = {/tikz},
}
\def\tkzDrawSector{\pgfutil@ifnextchar[{\tkz@DrawSector}{\tkz@DrawSector[]}}
\def\tkz@DrawSector[#1](#2,#3)(#4){%
\begingroup
-\pgfkeys{/drawsector/.cd,towards}
\pgfqkeys{/drawsector}{#1}
\ifcase\tkz@nums%
\tkzDrawSectorN[#1](#2,#3)(#4)
@@ -42,8 +34,6 @@ R with nodes/.code = {\global\def\tkz@nums{3}},
\fi
\endgroup
}
-
-
\def\tkzDrawSectorRAngles{\pgfutil@ifnextchar[{\tkz@DrawSectorRAngles}{%
\tkz@DrawSectorRAngles[]}}
\def\tkz@DrawSectorRAngles[#1](#2,#3)(#4,#5){%
@@ -68,7 +58,7 @@ R with nodes/.code = {\global\def\tkz@nums{3}},
(#2) --(\tkz@FirstAngle:#3) arc (\tkz@FirstAngle:\tkz@SecondAngle:#3)--cycle;
\endgroup
} % revoir il y a plus simple que ce shift !!!
- %<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
% \tkzDrawSectorN(O,A)(B)
%<--------------------------------------------------------------------------–>
\def\tkzDrawSectorN{\pgfutil@ifnextchar[{\tkz@DrawSectorN}{%
@@ -116,8 +106,8 @@ R with nodes/.code = {\global\def\tkz@nums{3}},
% \tkzDrawSectorRwithNodesAngles(O,A,B)(ang1,ang2)
%<--------------------------------------------------------------------------–>
\def\tkzDrawSectorRwithNodesAngles{\pgfutil@ifnextchar[{%
- \tkz@DrawSectorRwithNodesAngles}{%
- \tkz@DrawSectorRwithNodesAngles[]}}
+ \tkz@DrawSectorRwithNodesAngles}{%
+ \tkz@DrawSectorRwithNodesAngles[]}}
\def\tkz@DrawSectorRwithNodesAngles[#1](#2,#3,#4)(#5,#6){%
\begingroup
\tkzCalcLength(#3,#4)\tkzGetLength{tkz@radius}
@@ -155,23 +145,20 @@ R with nodes/.code = {\global\def\tkz@nums{3}},
% Fill
%<--------------------------------------------------------------------------–>
%<--------------------------------------------------------------------------–>
-\global\def\tkz@nums{0}
-\pgfkeys{/fillsector/.cd,
-towards/.code = {\global\def\tkz@nums{0}},
-rotate/.code = {\global\def\tkz@nums{1}},
-R/.code = {\global\def\tkz@nums{2}},
-R with nodes/.code = {\global\def\tkz@nums{3}},
-color/.code = {\global\def\tkz@fillcolor{#1}},
-/fillsector/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}
+\gdef\tkz@nums{0}
+\pgfkeys{/@fillsector/.cd,
+ towards/.code = {\def\tkz@nums{0}},
+ rotate/.code = {\def\tkz@nums{1}},
+ R/.code = {\def\tkz@nums{2}},
+ R with nodes/.code = {\def\tkz@nums{3}},
+ towards,
+ /@fillsector/.search also={/tikz},
}
\def\tkzFillSector{\pgfutil@ifnextchar[{\tkz@FillSector}{\tkz@FillSector[]}}
\def\tkz@FillSector[#1](#2,#3)(#4){%
\begingroup
-\pgfkeys{/fillsector/.cd,towards}
-\pgfqkeys{/fillsector}{#1}
+\pgfqkeys{/@fillsector}{#1}
\ifcase\tkz@nums%
\tkzFillSectorN[#1](#2,#3)(#4)
\or% 1
@@ -208,7 +195,7 @@ color/.code = {\global\def\tkz@fillcolor{#1}},
\edef\tkz@FirstAngle{\pgfmathresult}%
\pgfmathadd{\tkz@SecondAngle}{\tkz@delta}
\edef\tkz@SecondAngle{\pgfmathresult}
- \path[shift = {(#2)},/fillsector/.cd,fill=\tkz@fillcolor,#1] (#2) -- %
+ \path[shift = {(#2)},/@fillsector/.cd,fill=\tkz@fillcolor,#1] (#2) -- %
(\tkz@FirstAngle:#3) arc (\tkz@FirstAngle:\tkz@SecondAngle:#3)--cycle;
\endgroup
}
@@ -247,9 +234,9 @@ color/.code = {\global\def\tkz@fillcolor{#1}},
%<--------------------------------------------------------------------------–>
% \tkzFillSectorAngles(O,A)(ang1,ang2)
%<--------------------------------------------------------------------------–>
-\def\tkzDrawSectorAngles{\pgfutil@ifnextchar[{\tkz@illSectorAngles}{%
- \tkz@illSectorAngles[]}}
-\def\tkz@illSectorAngles[#1](#2,#3)(#4,#5){%
+\def\tkzFillSectorAngles{\pgfutil@ifnextchar[{\tkz@FillSectorAngles}{%
+ \tkz@FillSectorAngles[]}}
+\def\tkz@FillSectorAngles[#1](#2,#3)(#4,#5){%
\begingroup
\tkzCalcLength(#2,#3)\tkzGetLength{tkz@radius}
\tkz@FillSectorRAngles[#1](#2,\tkz@radius pt)(#4,#5)
@@ -324,11 +311,10 @@ color/.code = {\global\def\tkz@fillcolor{#1}},
%<--------------------------------------------------------------------------–>
%<--------------------------------------------------------------------------–>
\def\tkz@numcs{0}
-\pgfkeys{
-/clipsector/.cd,
-towards/.code = {\global\def\tkz@numcs{0}},
-rotate/.code = {\global\def\tkz@numcs{1}},
-R/.code = {\global\def\tkz@numcs{2}},
+\pgfkeys{/clipsector/.cd,
+ towards/.code = {\def\tkz@numcs{0}},
+ rotate/.code = {\def\tkz@numcs{1}},
+ R/.code = {\def\tkz@numcs{2}},
}
%<--------------------------------------------------------------------------–>
\def\tkzClipSector{\pgfutil@ifnextchar[{\tkz@ClipSector}{%
@@ -347,5 +333,6 @@ R/.code = {\global\def\tkz@numcs{2}},
\fi
\endgroup
}
+\makeatother
\endinput
\ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex
new file mode 100644
index 0000000000..457fbed257
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex
@@ -0,0 +1,344 @@
+%tkz-obj-eu-show.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-show.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% finding specific points in a triangle
+%<--------------------------------------------------------------------------–>
+% equi points
+%<--------------------------------------------------------------------------–>
+% draw ? show ?
+\pgfkeys{/tkzEquiPt/.cd,
+ from/.store in = {\tkz@frompoint},
+ dist/.store in = {\tkz@equ@dist},
+ show/.is if = tkz@equi@show,
+ dist = 2,
+ show = false,
+ /tkzEquiPt/.search also={/tikz}
+}
+
+\def\tkzDefEquiPoints{\pgfutil@ifnextchar[{\tkz@DefEquiPoints}{%
+ \tkz@DefEquiPoints[]}}
+\def\tkz@DefEquiPoints[#1](#2,#3){%
+\pgfqkeys{/tkzEquiPt}{#1}
+\begingroup
+ \tkzUProjection(#2,#3)(\tkz@frompoint)
+ \pgfnodealias{tkzEQpoint}{tkzPointResult}
+ \tkzVecKNorm[\tkz@equ@dist](tkzEQpoint,#2)
+ \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+ \tkzVecKNorm[-\tkz@equ@dist](tkzEQpoint,#2)
+ \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+ \iftkz@equi@show
+ \tkzCompass[#1](\tkz@frompoint,tkzFirstPointResult)
+ \tkzCompass[#1](\tkz@frompoint,tkzSecondPointResult)
+ \fi
+\endgroup
+}
+
+%<--------------------------- The SHOW --------------------------------–>
+%<--------------------------------------------------------------------------–>
+\global\def\tkz@numsh{0}
+\pgfkeys{/show/.cd,
+ mediator/.code = \def\tkz@numsh{0},
+ perpendicular/.code args = {through #1} {\global\def\tkz@numsh{1}%
+ \def\tkz@through{#1}},
+ orthogonal/.code args = {through #1} {\global\def\tkz@numsh{1}%
+ \global\def\tkz@through{#1}},
+ parallel/.code args = {through #1} {\global\def\tkz@numsh{2}%
+ \global\def\tkz@through{#1}},
+ bisector/.code = \global\def\tkz@numsh{3},
+ K/.code = \def\tkz@koeff{#1},
+ length/.code = \def\tkz@show@length{#1},
+ ratio/.code = \def\tkz@show@ratio{#1},
+ gap/.code = \def\tkz@show@gap{#1},
+ size/.code = \def\tkz@show@size{#1},
+ /show/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
+ \pgfkeysalso{\searchname/.try=#1,
+ /compass/\searchname/.retry=#1,
+ /tikz/\searchname/.retry=#1}%
+ }
+ }
+\def\tkzShowLine{\pgfutil@ifnextchar[{\tkz@ShowLine}{\tkz@ShowLine[]}}
+\def\tkz@ShowLine[#1](#2){%
+\begingroup
+\pgfqkeys{/show}{ K = 1,
+ gap = 2,
+ ratio = .5,
+ length = 1,
+ size = 1
+ }
+\pgfqkeys{/show}{#1}
+\ifcase\tkz@numsh%
+ % first case 0
+ \tkzShowMediatorLine[#1](#2)
+ \or% 1
+ \tkzShowOrthLine[#1](#2)(\tkz@through)
+ \or% 2
+ \tkzShowLLLine[#1](#2)(\tkz@through)
+ \or% 3
+ \tkzShowBisectorLine[#1](#2)
+\fi
+\endgroup
+}
+
+\def\tkzShowMediatorLine{%
+ \pgfutil@ifnextchar[{\tkz@ShowMediatorLine}{\tkz@ShowMediatorLine[]}}
+\def\tkz@ShowMediatorLine[#1](#2,#3){%
+\begingroup
+\pgfkeys{show/.cd, gap = 2,
+ ratio = .5,
+ length = 1
+ }
+\pgfkeys{show/.cd,#1}
+ \path (#2) -- (#3) coordinate[pos=.5](tkzmidpoint);
+ \tkzURotateAngle(#2,60)(#3)
+ \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+ \tkzURotateAngle(#3,60)(#2)
+ \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+ \tkz@VecKOrthNorm[1](tkzmidpoint,#2)
+ \pgfnodealias{MED@tmp1}{tkzPointResult}
+ \tkz@VecKOrthNorm[1](tkzmidpoint,#3)
+ \pgfnodealias{MED@tmp2}{tkzPointResult}
+ \tkz@VecKNorm[\tkz@show@gap](tkzmidpoint,MED@tmp1)
+ \pgfnodealias{MED@1}{tkzPointResult}
+ \tkz@VecKNorm[\tkz@show@gap](tkzmidpoint,MED@tmp2)
+ \pgfnodealias{MED@2}{tkzPointResult}
+ \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#2,MED@1)
+ \tkzCompass[#1](#3,MED@1)
+ \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#2,MED@2)
+ \tkzCompass[#1](#3,MED@2)
+\endgroup
+}
+\def\tkzShowLLLine{\pgfutil@ifnextchar[{\tkz@ShowLLLine}{\tkz@ShowLLLine[]}}
+\def\tkz@ShowLLLine[#1](#2,#3)(#4){%
+\begingroup
+\pgfkeys{show/.cd,gap=2,ratio=.75,length=1}
+\pgfkeys{show/.cd,#1}
+ \tkz@VecKCoLinear[1](#2,#3,#4)
+ \pgfnodealias{tkz@lltmp}{tkzPointResult}
+ \tkzCompass[#1](#4,tkz@lltmp)
+ \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,tkz@lltmp)
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+% tkzLineOrth
+%<--------------------------------------------------------------------------–>
+% pas de projection ortho car le point peut être sur la droite.
+% manque les tests . Il faudrait voir si on peut projeter et choisir
+\def\tkzShowOrthLine{\pgfutil@ifnextchar[{\tkz@ShowOrthLine}{\tkz@ShowOrthLine[]}}
+\def\tkz@ShowOrthLine[#1](#2,#3)(#4){%
+\begingroup
+\pgfkeys{show/.cd, ratio = .75,
+ length = 1,
+ gap = -1} % ????
+\pgfkeys{show/.cd,#1} %????
+ \tkzVecKOrth(#2,#3)
+ \pgfnodealias{tkz@OLtmp}{tkzPointResult}
+ \tkz@VecKCoLinear[1](#2,tkz@OLtmp,#4)
+ \pgfnodealias{tkzPointCo}{tkzPointResult}
+ \tkzInterLL(#2,#3)(#4,tkzPointCo)
+ \pgfnodealias{tkzPOpoint}{tkzPointResult}
+ \tkzCalcLength(#4,tkzPOpoint)
+ \tkzGetLength{tkz@mathLen}
+ \tkz@VecKNorm[1](#2,#3)
+ \pgfnodealias{PO@tmp}{tkzPointResult}
+ \tkz@VecKCoLinear[1](#2,PO@tmp,tkzPOpoint)
+ \pgfnodealias{PO@tmp2}{tkzPointResult}
+ \tkz@VecKCoLinear[-1](#2,PO@tmp,tkzPOpoint)
+ \pgfnodealias{PO@tmp1}{tkzPointResult}
+ \tkz@VecKCoLinear[2](tkzPOpoint,PO@tmp1,tkzPOpoint)
+ \pgfnodealias{PO@1}{tkzPointResult}
+ \tkz@VecKCoLinear[2](tkzPOpoint,PO@tmp2,tkzPOpoint)
+ \pgfnodealias{PO@2}{tkzPointResult}
+ \ifdim\tkz@mathLen pt>10 pt\relax
+ \tkz@VecKNorm[1](#4,tkzPOpoint)
+ \pgfnodealias{PO@tmp1}{tkzPointResult}
+ \else
+ \tkz@VecKOrthNorm[1](tkzPOpoint,PO@2)
+ \pgfnodealias{PO@tmp1}{tkzPointResult}
+ \fi
+ \tkz@VecKCoLinear[-\tkz@show@gap](PO@tmp1,tkzPOpoint,tkzPOpoint)
+ \pgfnodealias{PO@3}{tkzPointResult}
+ \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](#4,PO@1)
+ \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](#4,PO@2)
+ \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](PO@1,PO@3)
+ \tkzCompass[#1,length=\tkz@show@length](PO@2,PO@3)
+\endgroup
+}
+%<-------------------------------------------------------------------------–>
+% bisector Line
+%<-------------------------------------------------------------------------–>
+\def\tkzShowBisectorLine{%
+ \pgfutil@ifnextchar[{\tkz@ShowBisectorLine}{\tkz@ShowBisectorLine[]}}
+\def\tkz@ShowBisectorLine[#1](#2,#3,#4){%
+\begingroup
+\pgfkeys{show/.cd, gap = 2,
+ ratio =. 5,
+ length = 1,
+ size = 1}
+\pgfkeys{show/.cd,#1}
+ \tkzVecKNorm(#3,#2)
+ \pgfnodealias{tkz@pt1}{tkzPointResult}
+ \tkzVecKNorm(#3,#4)
+ \pgfnodealias{tkz@pt2}{tkzPointResult}
+ \tkzDefMidPoint(tkz@pt1,tkz@pt2)
+ \pgfnodealias{tkz@pt3}{tkzPointResult}
+ \tkzDefEquilateral(tkz@pt2,tkz@pt1)
+ \pgfnodealias{tkz@pt4}{tkzPointResult}
+ \tkzDefMidPoint(tkz@pt3,tkz@pt4)
+ \pgfnodealias{tkz@ptm}{tkzPointResult}
+ \tkzVecKNorm(#3,tkz@ptm)
+ \pgfnodealias{tkzBisPoint}{tkzPointResult}
+ \tkzVecKNorm[\tkz@show@size](#3,#2)
+ \pgfnodealias{BI@1}{tkzPointResult}
+ \tkzVecKNorm[\tkz@show@size](#3,#4)
+ \pgfnodealias{BI@2}{tkzPointResult}
+ \tkzVecK[\tkz@show@gap](#3,tkzBisPoint)
+ \pgfnodealias{tkzBisPoint}{tkzPointResult}
+ \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](#3,BI@1)
+ \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](#3,BI@2)
+ \tkzCompass[#1,length=\tkz@show@length](BI@1,tkzBisPoint)
+ \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](BI@2,tkzBisPoint)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Transformations Géométriques
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% The SHOW
+%<--------------------------------------------------------------------------–>
+\def\tkz@numst{0}
+\pgfkeys{/showtsf/.cd,
+ reflection/.code args={over #1--#2}{%
+ \def\tkzdeb{#1}
+ \def\tkzfin{#2}
+ \def\tkz@numst{0}},
+ symmetry/.code args={center #1}{%
+ \def\tkzcenter{#1}
+ \def\tkz@numst{1}},
+ projection/.code args={onto #1--#2}{%
+ \def\tkzdeb{#1}
+ \def\tkzfin{#2}
+ \def\tkz@numst{2}},
+translation/.code args={from #1 to #2}{%
+ \def\tkzfrom{#1}%
+ \def\tkzto{#2}%
+ \def\tkz@numst{3}},
+ K/.code = \def\tkz@koeff{#1},
+ length/.code = \def\tkz@show@length{#1},
+ ratio/.code = \def\tkz@show@ratio{#1},
+ gap/.code = \def\tkz@show@gap{#1},
+ size/.code = \def\tkz@show@size{#1},
+/showtsf/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
+ \pgfkeysalso{\searchname/.try=#1,
+ /compass/\searchname/.retry=#1,
+ /tikz/\searchname/.retry=#1}}
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzShowTransformation{\pgfutil@ifnextchar[{\tkz@ShowTransformation}{%
+ \tkz@ShowTransformation[]}}
+\def\tkz@ShowTransformation[#1](#2){%
+\begingroup
+ \pgfqkeys{/showtsf}{K=1,gap=2,size=1,ratio=.5,length=1}
+ \pgfqkeys{/showtsf}{#1}
+ \pgfinterruptboundingbox
+\ifcase\tkz@numst%
+ % first case 0
+ \tkzShowSymOrth[#1](\tkzdeb,\tkzfin)(#2)
+ \or% 1
+ \tkzShowCSym[#1](\tkzcenter)(#2)
+ \or% 2
+ \tkzShowProjection[#1](\tkzdeb,\tkzfin)(#2)
+ \or% 3
+ \tkzShowTranslation[#1](\tkzfrom,\tkzto)(#2)
+ \fi
+ \endpgfinterruptboundingbox
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzShowTranslation{\pgfutil@ifnextchar[{\tkz@ShowTranslation}{%
+ \tkz@ShowTranslation[]}}
+
+\def\tkz@ShowTranslation[#1](#2,#3)(#4){%
+\begingroup
+\tkz@VecKCoLinear[1](#2,#3,#4) \pgfnodealias{tkz@lltmp}{tkzPointResult}
+\tkzCompass[#1](#4,tkz@lltmp)
+\tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,tkz@lltmp)
+\endgroup}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzShowSymOrth{\pgfutil@ifnextchar[{\tkz@ShowSymOrth}{%
+ \tkz@ShowSymOrth[]}}
+\def\tkz@ShowSymOrth[#1](#2,#3)(#4){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#2}{center}}%
+ {\pgfpointanchor{#3}{center}}%
+ \tkz@ax =\pgf@y%
+ \tkz@ay =\pgf@x%
+ \path[coordinate](#4)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
+ \tkzInterLL(#2,#3)(#4,tkz@point)
+ \pgfnodealias{tkzPointofSym}{tkzPointResult}
+ \tkz@VecK[2](#4,tkzPointofSym)
+ \pgfnodealias{tkz@pointtsf}{tkzPointResult}
+ \tkzCompass[#1](#2,#4)
+ \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,#4)
+ \tkzCompass[#1](#2,tkz@pointtsf)
+ \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,tkz@pointtsf)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzShowCSym{\pgfutil@ifnextchar[{\tkz@ShowCSym}{\tkz@ShowCSym[]}}
+
+\def\tkz@ShowCSym[#1](#2)(#3){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#2}{center}}%
+ {\pgfpointanchor{#3}{center}}%
+ \tkz@ax=\pgf@x%
+ \tkz@ay=\pgf@y%
+\path[coordinate](#2)--++(-\tkz@ax,-\tkz@ay) coordinate (tkz@pointtsf);
+ \tkzCompass[#1](#2,tkz@pointtsf)
+ \tkzCompass[#1](#2,#3)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzShowProjection{\pgfutil@ifnextchar[{\tkz@ShowProjection}{%
+ \tkz@ShowProjection[]}}
+\def\tkz@ShowProjection[#1](#2,#3)(#4){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#2}{center}}%
+ {\pgfpointanchor{#3}{center}}%
+ \tkz@ax =\pgf@y%
+ \tkz@ay =\pgf@x%
+ \path[coordinate](#4)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
+ \tkzInterLL(#2,#3)(#4,tkz@point)
+ \pgfnodealias{tkz@pointtsf}{tkzPointResult}
+ \tkz@VecKCoLinear[1](#2,#3,tkz@pointtsf)
+ \pgfnodealias{SO@tmp1}{tkzPointResult}
+ \tkz@VecKCoLinear[-1](#2,#3,tkz@pointtsf)
+ \pgfnodealias{SO@tmp2}{tkzPointResult}
+ \tkz@VecKNorm[\tkz@show@size](tkz@pointtsf,SO@tmp1)
+ \pgfnodealias{SO@1}{tkzPointResult}
+ \tkz@VecKNorm[\tkz@show@size](tkz@pointtsf,SO@tmp2)
+ \pgfnodealias{SO@2}{tkzPointResult}
+ \tkz@VecKNorm[-\tkz@show@gap](tkz@pointtsf,#4)
+ \pgfnodealias{SO@3}{tkzPointResult}
+ \tkzCompass[#1](#4,SO@1)
+ \tkzCompass[#1](#4,SO@2)
+ \tkzCompass[#1](SO@1,SO@3)
+ \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](SO@2,SO@3)
+\endgroup
+}
+%<-------------------------------------------------------------------------–>
+%<-------------------------------------------------------------------------–>
+
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex
new file mode 100644
index 0000000000..0abc2e8166
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex
@@ -0,0 +1,509 @@
+% tkz-obj-eu-triangles.tex
+% Copyright 2019 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-obj-eu-triangles.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+% Triangle Equilateral
+%<--------------------------------------------------------------------------–>
+\def\tkzDefEquilateral(#1,#2){
+\begingroup
+\tkzDefMidPoint(#1,#2)
+ \tkzURotateAngle(#1,60)(#2)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+
+\def\tkzDrawEquilateral{\pgfutil@ifnextchar[{\tkz@Equilateral}{%
+ \tkz@Equilateral[]}}
+
+\def\tkz@Equilateral[#1](#2,#3){%
+\begingroup
+ \tkzURotateAngle(#2,60)(#3)
+ \tkzDrawPolygon[#1](#2,#3,tkzPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Triangle OneTwo
+%<--------------------------------------------------------------------------–>
+\def\tkzPhi{1.618034}
+\def\tkzInvPhi{0.618034}
+\def\tkzSqrtPhi{1.27202}
+
+\def\tkzDefTwoOne(#1,#2){
+\begingroup
+ \tkzVecKOrth[-.5](#2,#1)
+ \endgroup
+}
+\def\tkzDefPythagore(#1,#2){
+\begingroup
+ \tkzVecKOrth[-0.75](#2,#1)
+\endgroup
+}
+\def\tkzDefSchoolTriangle(#1,#2){
+\begingroup
+ \tkzVecKOrth[-1](#2,#1)
+ \pgfnodealias{tkz@a}{tkzPointResult}
+ \tkzURotateAngle(#1,30)(#2)
+ \tkzInterLL(#1,tkzPointResult)(#2,tkz@a)
+\endgroup
+}
+\def\tkzDefGoldTriangle(#1,#2){
+\begingroup
+ \tkzURotateAngle(#1,36)(#2)
+\endgroup
+}
+\def\tkzDefEuclideTriangle(#1,#2){
+\begingroup
+ \tkzURotateAngle(#1,72)(#2)
+ \tkzUHomo(#1,\tkzPhi)(tkzPointResult)
+\endgroup
+}
+\def\tkzDefGoldenTriangle(#1,#2){
+\begingroup
+ \tkzVecKOrth[-\tkzInvPhi](#2,#1)
+\endgroup
+}
+\def\tkzDefCheopsTriangle(#1,#2){
+\begingroup
+\tkzDefMidPoint(#1,#2)
+ \tkzVecKOrth[-\tkzSqrtPhi](tkzPointResult,#1)
+\endgroup
+}
+\def\tkzDefTwoAnglesTriangle(#1,#2){
+\begingroup
+ \tkzURotateAngle(#1,\tkz@alpha)(#2)
+ \pgfnodealias{tkz@pta}{tkzPointResult}
+ \tkzURotateAngle(#2,-\tkz@beta)(#1)
+ \pgfnodealias{tkz@ptb}{tkzPointResult}
+ \tkzInterLL(#1,tkz@pta)(#2,tkz@ptb)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Triangles
+%<--------------------------------------------------------------------------–>
+
+\def\tkz@numtr{0}
+\pgfkeys{%
+ /deftriangle/.cd,
+ equilateral/.code = \def\tkz@numtr{0},
+ half/.code = \def\tkz@numtr{1},
+ pythagore/.code = \def\tkz@numtr{2},
+ school/.code = \def\tkz@numtr{3},
+ golden/.code = \def\tkz@numtr{4},
+ sublime/.code = \def\tkz@numtr{4},
+ euclide/.code = \def\tkz@numtr{5},
+ gold/.code = \def\tkz@numtr{6},
+ cheops/.code = \def\tkz@numtr{7},
+ two angles/.code args = {#1 and #2} { \def\tkz@numtr{8}%
+ \def\tkz@alpha{#1}%
+ \def\tkz@beta{#2}}
+}
+
+\def\tkzDefTriangle{\pgfutil@ifnextchar[{\tkz@DefTriangle}{\tkz@DefTriangle[]}}
+\def\tkz@DefTriangle[#1](#2,#3){%
+\begingroup
+\pgfkeys{/deftriangle/.cd,equilateral}
+\pgfqkeys{/deftriangle}{#1}
+\ifcase\tkz@numtr%
+ \tkzDefEquilateral(#2,#3)
+ \or% 1
+ \tkzDefTwoOne(#2,#3)
+ \or% 2
+ \tkzDefPythagore(#2,#3)
+ \or% 3
+ \tkzDefSchoolTriangle(#2,#3)
+ \or% 4
+ \tkzDefGoldenTriangle(#2,#3)
+ \or% 5
+ \tkzDefEuclideTriangle(#2,#3)
+ \or% 6
+ \tkzDefGoldTriangle(#2,#3)
+ \or% 7
+ \tkzDefCheopsTriangle(#2,#3)
+ \or% 8
+ \tkzDefTwoAnglesTriangle(#2,#3) \fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Draw Triangles
+%<--------------------------------------------------------------------------–>
+
+\def\tkz@numdtr{0}
+\pgfkeys{/drawtriangle/.cd,
+ equilateral/.code = {\def\tkz@numdtr{0}},
+ half/.code = {\def\tkz@numdtr{1}},
+ pythagore/.code = {\def\tkz@numdtr{2}},
+ school/.code = {\def\tkz@numdtr{3}},
+ golden/.code = {\def\tkz@numdtr{4}},
+ sublime/.code = {\def\tkz@numdtr{4}},
+ euclide/.code = {\def\tkz@numdtr{5}},
+ gold/.code = {\def\tkz@numdtr{6}},
+ cheops/.code = {\def\tkz@numdtr{7}},
+ two angles/.code args = {#1 and #2}{\def\tkz@numdtr{8}%
+ \def\tkz@alpha{#1}%
+ \def\tkz@beta{#2}},
+ equilateral,
+ /drawtriangle/.search also={/tikz}
+}
+
+\def\tkzDrawTriangle{\pgfutil@ifnextchar[{\tkz@DrawTriangle}{%
+ \tkz@DrawTriangle[]}}
+\def\tkz@DrawTriangle[#1](#2,#3){%
+\begingroup
+\pgfkeys{/drawtriangle/.cd,equilateral}
+\pgfqkeys{/drawtriangle}{#1}
+\ifcase\tkz@numdtr%
+ \tkzDefEquilateral(#2,#3)
+\or% 1
+ \tkzDefTwoOne(#2,#3)
+\or% 2
+ \tkzDefPythagore(#2,#3)
+\or% 3
+ \tkzDefSchoolTriangle(#2,#3)
+\or% 4
+ \tkzDefGoldenTriangle(#2,#3)
+\or% 5
+ \tkzDefEuclideTriangle(#2,#3)
+\or% 6
+ \tkzDefGoldTriangle(#2,#3)
+\or% 7
+ \tkzDefCheopsTriangle(#2,#3)
+\or% 8
+ \tkzDefTwoAnglesTriangle(#2,#3)
+\fi
+ \draw[/drawtriangle/.cd,line style,#1] (#2)--(#3)--(tkzPointResult)--cycle;
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+% les triangles sspécifiques
+%<--------------------------------------------------------------------------–>
+
+%<--------------------------------------------------------------------------–
+\def\tkz@numtspc{0}
+\pgfkeys{/tkzDefSpcTriangle/.cd,
+ in/.code = \def\tkz@numtspc{0},
+ incentral/.code = \def\tkz@numtspc{0},
+ ex/.code = \def\tkz@numtspc{1},
+ excentral/.code = \def\tkz@numtspc{1},
+ extouch/.code = \def\tkz@numtspc{2},
+ intouch/.code = \def\tkz@numtspc{3},
+ contact/.code = \def\tkz@numtspc{3},
+ centroid/.code = \def\tkz@numtspc{4},
+ medial/.code = \def\tkz@numtspc{4},
+ orthic/.code = \def\tkz@numtspc{5},
+ ortho/.code = \def\tkz@numtspc{5},
+ feuerbach/.code = \def\tkz@numtspc{6},
+ euler/.code = \def\tkz@numtspc{7},
+ tangential/.code = \def\tkz@numtspc{8},
+ symmedian/.code = \def\tkz@numtspc{9},
+ name/.store in = \tkz@pttr@name,
+ name = {},
+ centroid,
+ }
+\def\tkzDefSpcTriangle{\pgfutil@ifnextchar[{\tkz@DefSpcTriangle}{%
+ \tkz@DefSpcTriangle[]}}
+\def\tkz@DefSpcTriangle[#1](#2)#3{%
+\begingroup
+\pgfqkeys{/tkzDefSpcTriangle}{#1}
+\ifcase\tkz@numtspc%
+ \tkzDefIncentralTriangle(#2){#3}
+ \or% 1
+ \tkzDefExcentralTriangle(#2){#3}
+ \or% 2
+ \tkzDefExtouchTriangle(#2){#3}
+ \or% 3
+ \tkzDefIntouchTriangle(#2){#3}
+ \or% 4
+ \tkzDefCentroidTriangle(#2){#3}
+ \or% 5
+ \tkzDefOrthicTriangle(#2){#3}
+ \or% 6
+ \tkzDefFeuerbachTriangle(#2){#3}
+ \or% 7
+ \tkzDefEulerTriangle(#2){#3}
+ \or% 8
+ \tkzDefTangentialTriangle(#2){#3}
+ \or% 8
+ \tkzDefSymmedianTriangle(#2){#3}
+ \fi
+\endgroup
+}
+
+
+\pgfkeys{/setuppttr/.is family}
+\def\SetUpPTTR#1{\pgfqkeys{/setuppttr}{#1}}
+\pgfkeys{/setuppttr/.cd,
+ name/.store in = \tkz@pttr@name,
+ name = {}
+}
+\def\tkz@recuplast(#1,#2){\def\tkz@last{#1}}
+\def\tkz@stop{\tkz@stop}
+%<--------------------------------------------------------------------------–
+% InCentral
+%<--------------------------------------------------------------------------–
+% The Incentral triangle is the triangle whose vertices are determined by
+% theintersections of the reference triangle’s angle bisectors with the
+% respective opposite sides.
+%<--------------------------------------------------------------------------–>
+\def\@DefIncentralTriangle(#1,#2,#3)(#4,#5){%
+ \def\tkz@tmp{#5}%
+ \tkz@recuplast(#3)
+ \tkzDefBisectorLine(#2,#1,\tkz@last)
+ \tkzInterLL(#2,\tkz@last)(#1,tkzPointResult)
+ \pgfnodealias{#4}{tkzPointResult}
+ \ifx\tkz@tmp\tkz@stop\else\@DefIncentralTriangle(#2,#3)(#5)\fi
+ \pgfnodealias{\tkz@pttr@name#4}{#4}
+}
+
+
+\def\tkzDefIncentralTriangle{\pgfutil@ifnextchar[{%
+ \tkz@DefIncentralTriangle}{%
+ \tkz@DefIncentralTriangle[]}}
+
+\def\tkz@DefIncentralTriangle[#1](#2)#3{%
+\begingroup
+ \SetUpPTTR{#1}
+ \pgfinterruptboundingbox
+ \@DefIncentralTriangle(#2,#2)(#3,\tkz@stop)
+ \endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzIncentralTriangle\tkzInExcentralTriangle
+%<--------------------------------------------------------------------------–
+% ExCentral
+%<--------------------------------------------------------------------------–
+
+%<--------------------------------------------------------------------------–>
+\def\@DefExcentralTriangle(#1,#2,#3)(#4,#5){%
+ \def\tkz@tmp{#5}%
+ \tkz@recuplast(#3)
+ \tkzDefExCircle(#2,#1,\tkz@last)
+ \pgfnodealias{#4}{tkzPointResult}
+ \ifx\tkz@tmp\tkz@stop\else\@DefExcentralTriangle(#2,#3)(#5)\fi
+ \pgfnodealias{\tkz@pttr@name#4}{#4}
+}
+
+\def\tkzDefExcentralTriangle{\pgfutil@ifnextchar[{%
+ \tkz@DefExcentralTriangle}{%
+ \tkz@DefExcentralTriangle[]}}
+
+\def\tkz@DefExcentralTriangle[#1](#2)#3{%
+\begingroup
+ \SetUpPTTR{#1}
+ \@DefExcentralTriangle(#2,#2)(#3,\tkz@stop)
+\endgroup
+}
+\let\tkzExcentralTriangle\tkzDefExcentralTriangle
+%<--------------------------------------------------------------------------–>
+% Intouch Triangle
+% The contact triangle of a triangle ABC, also called the intouch triangle, is the triangle formed by the points of tangency of the incircle of ABC with ABC.
+%<--------------------------------------------------------------------------–>
+\def\@DefIntouchTriangle(#1,#2,#3)(#4,#5){%
+ \def\tkz@tmp{#5}%
+ \tkz@recuplast(#3)
+ \tkzUProjection(#2,\tkz@last)(tkz@pt)
+ \pgfnodealias{#4}{tkzPointResult}
+ \ifx\tkz@tmp\tkz@stop\else\@DefIntouchTriangle(#2,#3)(#5)\fi
+ \pgfnodealias{\tkz@pttr@name#4}{#4}
+}
+
+\def\tkzDefIntouchTriangle{\pgfutil@ifnextchar[{%
+ \tkz@DefIntouchTriangle}{%
+ \tkz@DefIntouchTriangle[]}}
+
+\def\tkz@DefIntouchTriangle[#1](#2)#3{%
+\begingroup
+ \SetUpPTTR{#1}
+ \tkzInCenter(#2)
+ \pgfnodealias{tkz@pt}{tkzPointResult}
+ \@DefIntouchTriangle(#2,#2)(#3,\tkz@stop)
+\endgroup
+}
+\let\tkzDefContactTriangle\tkzDefIntouchTriangle
+%<--------------------------------------------------------------------------–>
+% Extouch Triangle
+% The extouch triangle T_1T_2T_3 is the triangle formed by the points of tangency of a triangle A_1A_2A_3 with its excircles J_1, J_2, and J_3.
+%<--------------------------------------------------------------------------–>
+\def\tkzDefExtouchTriangle{\pgfutil@ifnextchar[{%
+ \tkz@DefExtouchTriangle}{%
+ \tkz@DefExtouchTriangle[]}}
+
+\def\tkz@DefExtouchTriangle[#1](#2,#3,#4)#5{%
+\begingroup
+ \SetUpPTTR{#1}
+ \foreach \name [count=\i] in {#5} {%
+ \global\expandafter\edef\csname tkz@point\i\endcsname{\name}
+ }
+ \tkzDefExcentralTriangle(#2,#3,#4){tkz@a,tkz@b,tkz@c}
+ \tkzUProjection(#3,#4)(tkz@a)
+ \pgfnodealias{\tkz@pttr@name\csname tkz@point1\endcsname}{tkzPointResult}
+ \tkzUProjection(#2,#3)(tkz@c)
+ \pgfnodealias{\tkz@pttr@name\csname tkz@point3\endcsname}{tkzPointResult}
+ \tkzUProjection(#2,#4)(tkz@b)
+ \pgfnodealias{\tkz@pttr@name\csname tkz@point2\endcsname}{tkzPointResult}
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+% Feuerbach triangle The Feuerbach triangle is the triangle formed by the three points of tangency of the nine-point circle with the excircles
+
+\def\tkzDefFeuerbachTriangle{\pgfutil@ifnextchar[{%
+ \tkz@DefFeuerbachTriangle}{\tkz@DefFeuerbachTriangle[]}}
+
+\def\tkz@DefFeuerbachTriangle[#1](#2,#3,#4)#5{%
+\begingroup
+ \SetUpPTTR{#1}
+ \foreach \name [count=\i] in {#5} {%
+ \global\expandafter\edef\csname tkz@point\i\endcsname{\name}
+ }
+ \tkzDefExCircle(#2,#3,#4)
+ \pgfnodealias{tkz@b}{tkzPointResult} \tkzGetLength{tkz@rb}
+ \tkzDefExCircle(#3,#4,#2)
+ \pgfnodealias{tkz@c}{tkzPointResult} \tkzGetLength{tkz@rc}
+ \tkzDefExCircle(#4,#2,#3)
+ \pgfnodealias{tkz@a}{tkzPointResult} \tkzGetLength{tkz@ra}
+ \tkzInterLC[R](#3,tkz@b)(tkz@b,\tkz@rb pt)
+ \tkzGetFirstPoint{\tkz@pttr@name\csname tkz@point2\endcsname}
+ \tkzInterLC[R](#4,tkz@c)(tkz@c,\tkz@rc pt)
+ \tkzGetFirstPoint{\tkz@pttr@name\csname tkz@point3\endcsname}
+ \tkzInterLC[R](#2,tkz@a)(tkz@a,\tkz@ra pt)
+ \tkzGetFirstPoint{\tkz@pttr@name\csname tkz@point1\endcsname}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Centroid
+%<--------------------------------------------------------------------------–>
+% The medial triangle or midpoint triangle of a triangle ABC
+\def\@DefCentroidTriangle(#1,#2,#3)(#4,#5){%
+ \def\tkz@tmp{#5}%
+ \tkz@recuplast(#3)
+ \pgfcoordinate{#4}{%
+ \pgfpointscale{0.5}{%
+ \pgfpointadd{\pgfpointanchor{#2}{center}}%
+ {\pgfpointanchor{\tkz@last}{center}}}
+ }%
+ \ifx\tkz@tmp\tkz@stop\else\@DefCentroidTriangle(#2,#3)(#5)\fi
+ \pgfnodealias{\tkz@pttr@name#4}{#4}
+ }
+\def\tkzDefCentroidTriangle{\pgfutil@ifnextchar[{\tkz@DefCentroidTriangle}
+ {\tkz@DefCentroidTriangle[]}}
+\def\tkz@DefCentroidTriangle[#1](#2)#3{%
+\begingroup
+ \SetUpPTTR{#1}
+ \@DefCentroidTriangle(#2,#2)(#3,\tkz@stop)
+\endgroup
+}
+\let\tkzDefMedialTriangle\tkzDefCentroidTriangle
+\let\tkzDefMidpointTriangle\tkzDefCentroidTriangle
+%<--------------------------------------------------------------------------–>
+% OrthicTriangle H Ha Hb Hc
+%<--------------------------------------------------------------------------–>
+% Orthic Triangle
+%<--------------------------------------------------------------------------–>
+\def\@DefOrthicTriangle(#1,#2,#3)(#4,#5){%
+ \def\tkz@tmp{#5}%
+ \tkz@recuplast(#3)
+ \tkzUProjection(#2,\tkz@last)(#1)
+ \pgfnodealias{#4}{tkzPointResult}
+ \ifx\tkz@tmp\tkz@stop\else\@DefOrthicTriangle(#2,#3)(#5)\fi
+ \pgfnodealias{\tkz@pttr@name#4}{#4}
+}
+
+\def\tkzDefOrthicTriangle{\pgfutil@ifnextchar[{\tkz@DefOrthicTriangle}
+ {\tkz@DefOrthicTriangle[]}}
+\def\tkz@DefOrthicTriangle[#1](#2)#3{%
+\begingroup
+ \SetUpPTTR{#1}
+ \@DefOrthicTriangle(#2,#2)(#3,\tkz@stop)
+\endgroup
+}
+\let\tkzDefAltitudeTriangle\tkzDefOrthicTriangle
+
+%<--------------------------------------------------------------------------–>
+% The Euler triangle of a triangle ABC is the triangle E_AE_BE_C whose vertices are the midpoints of the segments joining the orthocenter H with the respective vertices. The vertices of the triangle are known as the Euler points, and lie on the nine-point circle.
+
+\def\tkzDefEulerTriangle{\pgfutil@ifnextchar[{%
+ \tkz@DefEulerTriangle}{\tkz@DefEulerTriangle[]}}
+\def\tkz@DefEulerTriangle[#1](#2,#3,#4)#5{%
+\begingroup
+ \SetUpPTTR{#1}
+ \pgfinterruptboundingbox
+ \tkzOrthoCenter(#2,#3,#4)
+ \pgfnodealias{tkz@e}{tkzPointResult}
+ \tkzDefMidPoint(#2,tkz@e)
+ \pgfnodealias{tkz@m1}{tkzPointResult}
+ \tkzDefMidPoint(#3,tkz@e)
+ \pgfnodealias{tkz@m2}{tkzPointResult}
+ \tkzDefMidPoint(#4,tkz@e)
+ \pgfnodealias{tkz@m3}{tkzPointResult}
+ \endpgfinterruptboundingbox
+ \foreach \name [count=\i] in {#5} {%
+ \coordinate (\tkz@pttr@name\name) at (tkz@m\i);
+ }
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+\def\tkzDefTangentialTriangle{\pgfutil@ifnextchar[{%
+ \tkz@DefTangentialTriangle}{\tkz@DefTangentialTriangle[]}}
+\def\tkz@DefTangentialTriangle[#1](#2,#3,#4)#5{%
+\begingroup
+ \SetUpPTTR{#1}
+ \tkzCircumCenter(#2,#3,#4)
+ \pgfnodealias{tkz@circ}{tkzPointResult}
+ \tkzDefLine[orthogonal=through #2](tkz@circ,#2)
+ \pgfnodealias{tkz@pta}{tkzPointResult}
+ \tkzDefLine[orthogonal=through #3](tkz@circ,#3)
+ \pgfnodealias{tkz@ptb}{tkzPointResult}
+ \tkzDefLine[orthogonal=through #4](tkz@circ,#4)
+ \pgfnodealias{tkz@ptc}{tkzPointResult}
+ \tkzInterLL(#2,tkz@pta)(#3,tkz@ptb)
+ \pgfnodealias{tkz@tg3}{tkzPointResult}
+ \tkzInterLL(#3,tkz@ptb)(#4,tkz@ptc)
+ \pgfnodealias{tkz@tg1}{tkzPointResult}
+ \tkzInterLL(#4,tkz@ptc)(#2,tkz@pta)
+ \pgfnodealias{tkz@tg2}{tkzPointResult}
+ \foreach \name [count=\i] in {#5} {%
+ \coordinate (\tkz@pttr@name\name) at (tkz@tg\i);
+ }
+\endgroup
+}
+%<--------------------------------------------------------------------------–
+% tkzDefSymmedianLine
+%<--------------------------------------------------------------------------–
+% The Incentral triangle is the triangle whose vertices are determined by
+% theintersections of the reference triangle’s angle bisectors with the
+% respective opposite sides.
+%<--------------------------------------------------------------------------–>
+\def\@DefSymmedianTriangle(#1,#2,#3)(#4,#5){%
+ \def\tkz@tmp{#5}%
+ \tkz@recuplast(#3)
+ \tkzDefSymmedianLine(#2,#1,\tkz@last)
+ \tkzInterLL(#2,\tkz@last)(#1,tkzPointResult)
+ \pgfnodealias{#4}{tkzPointResult}
+ \ifx\tkz@tmp\tkz@stop\else\@DefSymmedianTriangle(#2,#3)(#5)\fi
+ \pgfnodealias{\tkz@pttr@name#4}{#4}
+}
+
+\def\tkzDefSymmedianTriangle{\pgfutil@ifnextchar[{%
+ \tkz@DefSymmedianTriangle}{%
+ \tkz@DefSymmedianTriangle[]}}
+
+\def\tkz@DefSymmedianTriangle[#1](#2)#3{%
+\begingroup
+ \SetUpPTTR{#1}
+ \pgfinterruptboundingbox
+ \@DefSymmedianTriangle(#2,#2)(#3,\tkz@stop)
+ \endpgfinterruptboundingbox
+\endgroup
+}
+
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-angles.tex
new file mode 100644
index 0000000000..7385417e27
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-angles.tex
@@ -0,0 +1,65 @@
+% tkz-tools-angles.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-tools-angles.tex}
+\makeatletter
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% thanks karu : http://tex.stackexchange.com/questions/151667/tkzgetangle-strange-behavior/196224#196224 \tkzGetAngle strange behavior
+% defines \tkz@FirstAngle and \tkz@SecondAngle sens trigo
+%<--------------------------------------------------------------------------–>
+ \def\tkzNormalizeAngle(#1,#2){%
+ \begingroup
+ \pgfmathparse{#1}\xdef\tkz@FirstAngle{\pgfmathresult}%
+ \pgfmathparse{#2}\xdef\tkz@SecondAngle{\pgfmathresult}%
+ \pgfmathgreaterthan{\tkz@FirstAngle}{0}
+ \ifdim\pgfmathresult pt=1 pt\relax%
+ \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
+ \ifdim\pgfmathresult pt=1 pt\relax%
+ \pgfmathsubtract{\tkz@FirstAngle}{360}
+ \xdef\tkz@FirstAngle{\pgfmathresult}%
+ \fi
+ \else
+ \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
+ \ifdim\pgfmathresult pt=1 pt\relax%
+ \pgfmathadd{\tkz@SecondAngle}{360}
+ \xdef\tkz@SecondAngle{\pgfmathresult}%
+ \fi
+ \fi
+ \endgroup
+ }
+%<--------------------------------------------------------------------------–>
+% Angle
+% Recherche l'angle formé par #1 et #2 par rapport à l'horizontale
+%<--------------------------------------------------------------------------–>
+\def\tkzFindSlopeAngle(#1,#2){%
+\begingroup
+ \pgfmathanglebetweenpoints{\pgfpointanchor{#1}{center}}{%
+ \pgfpointanchor{#2}{center}}
+ \global\let\tkzAngleResult\pgfmathresult
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Angle avec trois nodes
+%<--------------------------------------------------------------------------–>
+\def\tkzFindAngle(#1,#2,#3){% new code 2016
+\begingroup
+ \tkzFindSlopeAngle(#2,#1)\tkzGetAngle{tkz@FirstAngle}
+ \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@SecondAngle}
+ \tkzNormalizeAngle(\tkz@FirstAngle,\tkz@SecondAngle)
+ \edef\tkz@Angle{\fpeval{\tkz@SecondAngle-\tkz@FirstAngle}}
+ \global\let\tkzAngleResult\tkz@Angle
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Find angle
+%<--------------------------------------------------------------------------–>
+\def\tkzGetAngle#1{%
+ \global\expandafter\edef\csname #1\endcsname{\tkzAngleResult}
+}
+\makeatother
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-tools-intersections.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-intersections.tex
index 94c65930a4..8937f914fa 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-tools-intersections.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-intersections.tex
@@ -1,62 +1,79 @@
+% tkz-tools-intersections.tex
% Copyright 2011 by Alain Matthes
-%
% This file may be distributed and/or modified
-%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 c}
-\def\filedate{2011/06/01}
-
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23}
+\typeout{2020/01/23 3.01c tkz-tools-intersections.tex}
+\makeatletter
%<--------------------------------------------------------------------------–>
% intersection de deux lignes
%<--------------------------------------------------------------------------–>
-\def\tkzInterLL(#1,#2)(#3,#4){% méthode avec FP
+\def\tkzInterLL(#1,#2)(#3,#4){% méthode avec xfp
\tkz@InterLL(#1,#2)(#3,#4){tkzPointResult}
}
-% méthode with tikz
+
\def\tkz@InterLL(#1,#2)(#3,#4)#5{%
-%\path (intersection of #1--#2 and #3--#4) coordinate(#5);%
-\pgfextractx{\pgf@x}{\pgfpointanchor{#1}{center}}
-\pgfextracty{\pgf@y}{\pgfpointanchor{#1}{center}}
-\tkz@ax\pgf@x %
-\tkz@ay\pgf@y %
-\pgfextractx{\pgf@x}{\pgfpointanchor{#2}{center}}
+%\path (intersection of #1--#2 and #3--#4) coordinate(#5);
+% méthode with tikz
+\pgfextractx{\pgf@x}{\pgfpointanchor{#1}{center}}%
+\pgfextracty{\pgf@y}{\pgfpointanchor{#1}{center}}%
+\tkz@ax\pgf@x%
+\tkz@ay\pgf@y%
+\pgfextractx{\pgf@x}{\pgfpointanchor{#2}{center}}%
\pgfextracty{\pgf@y}{\pgfpointanchor{#2}{center}}
-\tkz@bx\pgf@x %
-\tkz@by\pgf@y %
-\pgfextractx{\pgf@x}{\pgfpointanchor{#3}{center}}
-\pgfextracty{\pgf@y}{\pgfpointanchor{#3}{center}}
-\tkz@cx\pgf@x %
-\tkz@cy\pgf@y %
-\pgfextractx{\pgf@x}{\pgfpointanchor{#4}{center}}
-\pgfextracty{\pgf@y}{\pgfpointanchor{#4}{center}}
-\tkz@dx\pgf@x %
-\tkz@dy\pgf@y %
-\FPeval\tkz@deltax{\pgf@sys@tonumber{\tkz@ax}-\pgf@sys@tonumber{\tkz@bx}}
-\FPdiv\tkz@deltax{\tkz@deltax}{28.45274}
-\FPeval\tkz@deltaxx{\pgf@sys@tonumber{\tkz@cx}-\pgf@sys@tonumber{\tkz@dx}}
-\FPdiv\tkz@deltaxx{\tkz@deltaxx}{28.45274}
-\FPeval\tkz@deltay{\pgf@sys@tonumber{\tkz@ay}-\pgf@sys@tonumber{\tkz@by}}
-\FPdiv\tkz@deltay{\tkz@deltay}{28.45274}
-\FPeval\tkz@deltayy{\pgf@sys@tonumber{\tkz@cy}-\pgf@sys@tonumber{\tkz@dy}}
-\FPdiv\tkz@deltayy{\tkz@deltayy}{28.45274}
-\FPeval\tkz@deltaxy{(\pgf@sys@tonumber{\tkz@ax}*\pgf@sys@tonumber{\tkz@by})-(\pgf@sys@tonumber{\tkz@ay}*\pgf@sys@tonumber{\tkz@bx})}
-\FPdiv\tkz@deltaxy{\tkz@deltaxy}{28.45274}
-\FPdiv\tkz@deltaxy{\tkz@deltaxy}{28.45274}
-\FPeval\tkz@deltaxxyy{(\pgf@sys@tonumber{\tkz@cx}*\pgf@sys@tonumber{\tkz@dy})-(\pgf@sys@tonumber{\tkz@cy}*\pgf@sys@tonumber{\tkz@dx})}
-\FPdiv\tkz@deltaxxyy{\tkz@deltaxxyy}{28.45274}
-\FPdiv\tkz@deltaxxyy{\tkz@deltaxxyy}{28.45274}
-\FPeval\tkz@div{(\tkz@deltax*\tkz@deltayy)-(\tkz@deltay*\tkz@deltaxx)}
-\FPeval\tkz@numx{(\tkz@deltaxy*\tkz@deltaxx)-(\tkz@deltax*\tkz@deltaxxyy)}
-\FPeval\tkz@numy{(\tkz@deltaxy*\tkz@deltayy)-(\tkz@deltay*\tkz@deltaxxyy)}
-\FPdiv\tkz@xs{\tkz@numx}{\tkz@div}
-\FPdiv\tkz@ys{\tkz@numy}{\tkz@div}
-\FPround\tkz@xs{\tkz@xs}{5}
-\FPround\tkz@ys{\tkz@ys}{5}
+\tkz@bx\pgf@x%
+\tkz@by\pgf@y%
+\pgfextractx{\pgf@x}{\pgfpointanchor{#3}{center}}%
+\pgfextracty{\pgf@y}{\pgfpointanchor{#3}{center}}%
+\tkz@cx\pgf@x%
+\tkz@cy\pgf@y%
+\pgfextractx{\pgf@x}{\pgfpointanchor{#4}{center}}%
+\pgfextracty{\pgf@y}{\pgfpointanchor{#4}{center}}%
+\tkz@dx\pgf@x%
+\tkz@dy\pgf@y%
+
+\edef\tkz@deltax{\fpeval{(\tkz@ax-\tkz@bx)/(28.45274)}}
+\edef\tkz@deltaxx{\fpeval{(\tkz@cx-\tkz@dx)/(28.45274)}}
+\edef\tkz@deltay{\fpeval{(\tkz@ay-\tkz@by)/(28.45274)}}
+\edef\tkz@deltayy{\fpeval{(\tkz@cy-\tkz@dy)/(28.45274)}}
+\edef\tkz@deltaxy{\fpeval{((\tkz@ax*\tkz@by)-(\tkz@ay*\tkz@bx))/(28.45274*28.45274)}}
+\edef\tkz@deltaxxyy{\fpeval{((\tkz@cx*\tkz@dy)-(\tkz@cy*\tkz@dx))/(28.45274*28.45274)}}
+\edef\tkz@div{\fpeval{(\tkz@deltax*\tkz@deltayy)-(\tkz@deltay*\tkz@deltaxx)}}
+\edef\tkz@numx{\fpeval{(\tkz@deltaxy*\tkz@deltaxx)-(\tkz@deltax*\tkz@deltaxxyy)}}
+\edef\tkz@numy{\fpeval{(\tkz@deltaxy*\tkz@deltayy)-(\tkz@deltay*\tkz@deltaxxyy)}}
+\edef\tkz@xs{\fpeval{round(\tkz@numx/\tkz@div,5)}}
+\edef\tkz@ys{\fpeval{round(\tkz@numy/\tkz@div,5)}}
\path[coordinate](\tkz@xs,\tkz@ys) coordinate (#5);
}
+
+
+% méthode with coordinates
+\def\tkzInterLLxy(#1,#2,#3,#4)(#5,#6,#7,#8){%
+%\path (intersection of #1--#2 and #3--#4) coordinate(#5);%
+\tkz@ax#1%
+\tkz@ay#2%
+\tkz@bx#3%
+\tkz@by#4%
+\tkz@cx#5%
+\tkz@cy#6%
+\tkz@dx#7%
+\tkz@dy#8%
+\edef\tkz@deltax{\fpeval{(\tkz@ax-\tkz@bx)/(28.45274)}}
+\edef\tkz@deltaxx{\fpeval{(\tkz@cx-\tkz@dx)/(28.45274)}}
+\edef\tkz@deltay{\fpeval{(\tkz@ay-\tkz@by)/(28.45274)}}
+\edef\tkz@deltayy{\fpeval{(\tkz@cy-\tkz@dy)/(28.45274)}}
+\edef\tkz@deltaxy{\fpeval{((\tkz@ax*\tkz@by)-(\tkz@ay*\tkz@bx))/(28.45274*28.45274)}}
+\edef\tkz@deltaxxyy{\fpeval{((\tkz@cx*\tkz@dy)-(\tkz@cy*\tkz@dx))/(28.45274*28.45274)}}
+\edef\tkz@div{\fpeval{(\tkz@deltax*\tkz@deltayy)-(\tkz@deltay*\tkz@deltaxx)}}
+\edef\tkz@numx{\fpeval{(\tkz@deltaxy*\tkz@deltaxx)-(\tkz@deltax*\tkz@deltaxxyy)}}
+\edef\tkz@numy{\fpeval{(\tkz@deltaxy*\tkz@deltayy)-(\tkz@deltay*\tkz@deltaxxyy)}}
+\edef\tkz@xs{\fpeval{round(\tkz@numx/\tkz@div,5)}}
+\edef\tkz@ys{\fpeval{round(\tkz@numy/\tkz@div,5)}}
+\path[coordinate](\tkz@xs,\tkz@ys) coordinate (tkzPointResult);
+}
+
%<--------------------------------------------------------------------------–>
% intersection de Ligne Cercle rayon connu
%<--------------------------------------------------------------------------–>
@@ -96,88 +113,99 @@
%
% return(TRUE);
% }
-%<--------------------------------------------------------------------------–>
+%<---------- test ------------------------------------------------------–>
+\def\tkzTestInterLC(#1,#2)(#3,#4){%
+\tkz@Projection(#1,#2)(#3){tkz@pth}% distance centre à la ligne
+\tkz@@CalcLength(#3,tkz@pth){tkz@mathLen}%
+\tkzCalcLength(#3,#4)
+\ifdim\tkz@mathLen pt>\tkzLengthResult pt\relax%
+\def\tkzflagLC{-1}
+\else
+\def\tkzflagLC{1}
+\fi
+}
%<--------------------------------------------------------------------------–>
\def\tkz@numlc{0}
-\pgfkeys{
-/linecircle/.cd,
- node/.code = \def\tkz@numlc{0},
- R/.code = \def\tkz@numlc{1},
- with nodes/.code = \def\tkz@numlc{2}
+\pgfkeys{/linecircle/.cd,
+ node/.code = \def\tkz@numlc{0},
+ R/.code = \def\tkz@numlc{1},
+ with nodes/.code = \def\tkz@numlc{2},
+ node
}
%<--------------------------------------------------------------------------–>
-\def\tkzInterLC{\pgfutil@ifnextchar[{\tkz@InterLC}{%
- \tkz@InterLC[]}}
+\def\tkzInterLC{\pgfutil@ifnextchar[{\tkz@InterLC}{\tkz@InterLC[]}}
\def\tkz@InterLC[#1](#2,#3)(#4,#5){%
\begingroup
-\pgfkeys{/linecircle/.cd,node}
\pgfqkeys{/linecircle}{#1}
+ \pgfinterruptboundingbox
\ifcase\tkz@numlc%
- % first case 0
-\tkzCalcLength(#4,#5)
-\tkzInterLCR(#2,#3)(#4,\tkzLengthResult pt){%
- tkzFirstPointResult}{tkzSecondPointResult}
- \or% 1
-\tkzInterLCR(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}%
- \or% 2
-\tkzInterLCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}%
-\fi
+ % first case 0
+ \tkzCalcLength(#4,#5)
+ \tkzInterLCR(#2,#3)(#4,\tkzLengthResult pt){tkzFirstPointResult}%
+ {tkzSecondPointResult}
+\or% 1
+ \tkzInterLCR(#2,#3)(#4,#5){tkzFirstPointResult}
+ {tkzSecondPointResult}%
+\or% 2
+ \tkzInterLCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}%
+ {tkzSecondPointResult}%
+\fi
+\endpgfinterruptboundingbox
\endgroup
}
%<--------------------------------------------------------------------------–>
%<--------------------------------------------------------------------------–>
\def\tkzInterLCR(#1,#2)(#3,#4)#5#6{%
\begingroup
- \tkz@radi=#4%
- \tkz@@extractxy{#3}
- \tkz@bx =\pgf@x\relax%
- \tkz@by =\pgf@y\relax%
- \tkz@Projection(#1,#2)(#3){tkz@pth}
- \tkz@@CalcLength(#3,tkz@pth){tkz@mathLen}
- \ifdim\tkz@mathLen pt<0.05pt\relax%
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
- \tkz@ax=\pgf@x%
- \tkz@ay=\pgf@y%
- \tkzpointborderellipse{\pgfpoint{\tkz@ax}{\tkz@ay}}%
- {\pgfpoint{\tkz@radi}{\tkz@radi}}
- \tkz@ax=\pgf@x\relax%
- \tkz@ay=\pgf@y\relax%
- \advance\tkz@bx by\tkz@ax\relax%
- \advance\tkz@by by\tkz@ay\relax%
- \path[coordinate] (\tkz@bx,\tkz@by) coordinate (#6);
- \tkzCSym(#3)(#6){#5}
- \else
- \FPdiv\pgfmathresult{\tkz@mathLen}{\pgfmath@tonumber{\tkz@radi}}
- %\pgfmathparse{\tkz@mathLen / \tkz@radi}
- \pgfmathacos@{\pgfmathresult}%
- \let\tkz@angle\pgfmathresult%
- \pgfpointdiff{\pgfpointanchor{#3}{center}}%
- {\pgfpointanchor{tkz@pth}{center}}%
- \tkz@ax=\pgf@x%
- \tkz@ay=\pgf@y%
- \tkzpointborderellipse{\pgfpoint{\tkz@ax}{\tkz@ay}}%
- {\pgfpoint{\tkz@radi}{\tkz@radi}}
- \tkz@ax =\pgf@x\relax%
- \tkz@ay =\pgf@y\relax%
- \advance\tkz@bx by\tkz@ax\relax%
- \advance\tkz@by by\tkz@ay\relax%
- \tkz@@extractxy{#3}
- \tkz@ax =\pgf@x\relax%
- \tkz@ay =\pgf@y\relax%
- \tkz@@extractxy{tkz@pth}
- %\ifdim\pgf@y<\tkz@ay \edef\tkz@angle{-\tkz@angle}%
- % \fi
- \tkzmathrotatepointaround{\pgfpoint{\tkz@bx}{\tkz@by}}%
- {\pgfpoint{\tkz@ax}{\tkz@ay}}%
- {\tkz@angle}
- \path[coordinate] (\pgf@x,\pgf@y) coordinate (#5);
- \tkzmathrotatepointaround{\pgfpoint{\tkz@bx}{\tkz@by}}%
- {\pgfpoint{\tkz@ax}{\tkz@ay}}%
- {-\tkz@angle}
- \path[coordinate] (\pgf@x,\pgf@y) coordinate (#6);
- \fi
- \endgroup
+\tkz@radi=#4%
+\tkz@@extractxy{#3}
+\tkz@bx =\pgf@x\relax%
+\tkz@by =\pgf@y\relax%
+\tkz@Projection(#1,#2)(#3){tkz@pth}
+\tkz@@CalcLength(#3,tkz@pth){tkz@mathLen}
+ \ifdim\tkz@mathLen pt<0.05pt\relax%
+ \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+ {\pgfpointanchor{#2}{center}}%
+ \tkz@ax=\pgf@x%
+ \tkz@ay=\pgf@y%
+ \pgfpointborderellipse{\pgfpoint{\tkz@ax}{\tkz@ay}}%
+ {\pgfpoint{\tkz@radi}{\tkz@radi}}
+ \tkz@ax=\pgf@x\relax%
+ \tkz@ay=\pgf@y\relax%
+ \advance\tkz@bx by\tkz@ax\relax%
+ \advance\tkz@by by\tkz@ay\relax%
+ \pgfcoordinate{#6}{\pgfqpoint{\tkz@bx}{\tkz@by}}
+ \tkzCSym(#3)(#6){#5}
+ \else
+ \edef\pgfmathresult{\fpeval{\tkz@mathLen/\tkz@radi}}
+ % \edef\tkz@angle{\fpeval{acosd(\pgfmathresult)}}
+ \pgfmathacos@{\pgfmathresult}%
+ \let\tkz@angle\pgfmathresult%
+ \pgfpointdiff{\pgfpointanchor{#3}{center}}%
+ {\pgfpointanchor{tkz@pth}{center}}%
+ \tkz@ax=\pgf@x%
+ \tkz@ay=\pgf@y%
+ \pgfpointborderellipse{\pgfpoint{\tkz@ax}{\tkz@ay}}%
+ {\pgfpoint{\tkz@radi}{\tkz@radi}}
+ \tkz@ax =\pgf@x\relax%
+ \tkz@ay =\pgf@y\relax%
+ \advance\tkz@bx by\tkz@ax\relax%
+ \advance\tkz@by by\tkz@ay\relax%
+ \tkz@@extractxy{#3}
+ \tkz@ax =\pgf@x\relax%
+ \tkz@ay =\pgf@y\relax%
+ \tkz@@extractxy{tkz@pth}
+ \pgfmathrotatepointaround{\pgfpoint{\tkz@bx}{\tkz@by}}%
+ {\pgfpoint{\tkz@ax}{\tkz@ay}}%
+ {\tkz@angle}
+ \pgfcoordinate{#5}{\pgfqpoint{\pgf@x}{\pgf@y}}
+ \pgfmathrotatepointaround{\pgfpoint{\tkz@bx}{\tkz@by}}%
+ {\pgfpoint{\tkz@ax}{\tkz@ay}}%
+ {-\tkz@angle}
+ \pgfcoordinate{#6}{\pgfqpoint{\pgf@x}{\pgf@y}}
+
+\fi
+\endgroup
}
%<--------------------------------------------------------------------------–>
% intersection de Ligne Cercle
@@ -198,6 +226,7 @@
\tkzInterLCR(#1,#2)(#3,\tkz@radius pt){#6}{#7}
\endgroup
}
+
%<--------------------------------------------------------------------------–>
% Intersection de deux cercles
%<--------------------------------------------------------------------------–>
@@ -205,29 +234,27 @@
\pgfkeys{
/circlecircle/.cd,
node/.code = {\global\def\tkz@numcc{0}},
- R/.code = {\global\def\tkz@numcc{1}},
- with nodes/.code = {\global\def\tkz@numcc{2}}
+ R/.code = {\global\def\tkz@numcc{1}}
}
%<--------------------------------------------------------------------------–>
-\def\tkzInterCC{\pgfutil@ifnextchar[{\tkz@InterCC}{%
- \tkz@InterCC[]}}
+\def\tkzInterCC{\pgfutil@ifnextchar[{\tkz@InterCC}{\tkz@InterCC[]}}
\def\tkz@InterCC[#1](#2,#3)(#4,#5){%
\begingroup
\pgfkeys{/circlecircle/.cd,node}
\pgfqkeys{/circlecircle}{#1}
\ifcase\tkz@numcc%
% first case 0
-\tkz@save@length
- \tkzCalcLength(#2,#3)\tkzGetLength{tkz@rayA}
- \tkzCalcLength(#4,#5)\tkzGetLength{tkz@rayB}
-\tkz@restore@length
+ \tkz@save@length
+ \tkzCalcLength(#2,#3) \tkzGetLength{tkz@rayA}
+ \tkzCalcLength(#4,#5) \tkzGetLength{tkz@rayB}
+ \tkz@restore@length
\tkzInterCCR(#2,\tkz@rayA pt)(#4,\tkz@rayB pt){tkzFirstPointResult}{%
tkzSecondPointResult}
\or% 1
- \tkzInterCCR(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}%
- \or%2
-\tkzInterCCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}
- \fi
+ \tkzInterCCR(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}%
+ \or%2
+ \tkzInterCCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}
+\fi
\endgroup
}
%<--------------------------------------------------------------------------–>
@@ -311,6 +338,7 @@
\def\tkzInterCCR(#1,#2)(#3,#4)#5#6{%
\begingroup
+\pgfinterruptboundingbox
\tkz@save@length
\tkzCalcLength(#1,#3)\tkzGetLength{tkz@dd}
\tkz@restore@length
@@ -324,21 +352,20 @@
\tkz@by\pgf@y %
\tkz@cx#2 %
\tkz@cy#4 %
-\FPeval\tkz@aa{((\pgf@sys@tonumber{\tkz@cx}+\pgf@sys@tonumber{\tkz@cy})/(2*\tkz@dd))*(\pgf@sys@tonumber{\tkz@cx}-\pgf@sys@tonumber{\tkz@cy})+\tkz@dd/2}
-
-\FPeval\tkz@xx{\pgf@sys@tonumber{\tkz@ax}+\tkz@aa/\tkz@dd*(\pgf@sys@tonumber{\tkz@bx} - \pgf@sys@tonumber{\tkz@ax})}
-\FPeval\tkz@yy{\pgf@sys@tonumber{\tkz@ay}+\tkz@aa/\tkz@dd*(\pgf@sys@tonumber{\tkz@by} - \pgf@sys@tonumber{\tkz@ay})}
+\edef\tkz@aa{\fpeval{((\tkz@cx+\tkz@cy)/(2*\tkz@dd))*(\tkz@cx-\tkz@cy)+\tkz@dd/2}}
+\edef\tkz@xx{\fpeval{\tkz@ax+\tkz@aa/\tkz@dd*(\tkz@bx - \tkz@ax)}}
+\edef\tkz@yy{\fpeval{\tkz@ay+\tkz@aa/\tkz@dd*(\tkz@by - \tkz@ay)}}
\path[coordinate](\tkz@xx pt,\tkz@yy pt) coordinate (tkzRadialCenter);
-\FPeval\tkz@hh{(\pgf@sys@tonumber{\tkz@cx}+\tkz@aa)*(\pgf@sys@tonumber{\tkz@cx}-\tkz@aa)}
-\FPpow\tkz@hh{\tkz@hh}{0.5}
-\FPeval\tkz@rx{\tkz@hh / \tkz@dd * (\pgf@sys@tonumber{\tkz@ay} - \pgf@sys@tonumber{\tkz@by}) }
-\FPeval\tkz@ry{\tkz@hh / \tkz@dd * (\pgf@sys@tonumber{\tkz@bx} - \pgf@sys@tonumber{\tkz@ax}) }
-\FPadd\tkz@xs{\tkz@xx}{\tkz@rx }
-\FPadd\tkz@ys{\tkz@yy}{\tkz@ry }
+\edef\tkz@hh{\fpeval{sqrt((\tkz@cx+\tkz@aa)*(\tkz@cx-\tkz@aa))}}
+\edef\tkz@rx{\fpeval{\tkz@hh / \tkz@dd * (\tkz@ay - \tkz@by)}}
+\edef\tkz@ry{\fpeval{\tkz@hh / \tkz@dd * (\tkz@bx - \tkz@ax)}}
+\edef\tkz@xs{\fpeval{\tkz@xx + \tkz@rx}}
+\edef\tkz@ys{\fpeval{\tkz@yy + \tkz@ry}}
\path[coordinate](\tkz@xs pt,\tkz@ys pt) coordinate (#5);
-\FPadd\tkz@xss{\tkz@xx}{-\tkz@rx }
-\FPadd\tkz@yss{\tkz@yy}{-\tkz@ry }
-\path[coordinate](\tkz@xss pt,\tkz@yss pt) coordinate (#6);
+\edef\tkz@xss{\fpeval{\tkz@xx - \tkz@rx}}
+\edef\tkz@yss{\fpeval{\tkz@yy - \tkz@ry}}
+\path[coordinate](\tkz@xss pt,\tkz@yss pt) coordinate (#6);
+\endpgfinterruptboundingbox
\endgroup
}
%<--------------------------------------------------------------------------–>
@@ -361,56 +388,6 @@
\tkzInterCCR(#1,\tkz@rayA pt)(#4,\tkz@rayB pt){#7}{#8}
\endgroup
}
-
-%<--------------------------------------------------------------------------–>
-% tangente à cercle passant par un point donné
-%<--------------------------------------------------------------------------–>
-\def\tkzTgtFromPR(#1,#2)(#3){%
- \begingroup
- \tkzDefMidPoint(#1,#3)
- \tkzCalcLength(tkzPointResult,#1)
- \tkzInterCCR(#1,#2)(tkzPointResult,\tkzLengthResult pt){%
- tkzFirstPointResult}{%
- tkzSecondPointResult}%
- \endgroup
-}
-
-\def\tkzTgtFromP(#1,#2)(#3){%
- \begingroup
- \tkzDefMidPoint(#1,#3)
- \tkzCalcLength(#1,#2)\tkzGetLength{tkz@radone}%
- \tkzCalcLength(tkzPointResult,#1)\tkzGetLength{tkz@radtwo}%
- \tkzInterCCR(#1,\tkz@radone pt)(tkzPointResult,\tkz@radtwo pt){%
- tkzFirstPointResult}{%
- tkzSecondPointResult}%
- \endgroup
-}
-\def\tkzTgtAt(#1)(#2){%
-\begingroup
- \tkz@VecKOrthNorm[-1](#2,#1){tkzPointResult}
- \endgroup
-} %<--------------------------------------------------------------------------–> %<--------------------------------------------------------------------------–>
-\def\tkz@numtang{0}
-\pgfkeys{
-/tang/.cd,
-at/.code = {\global\def\tkz@numtang{0}\global\def\tkz@ptat{#1}},
-from/.code = {\global\def\tkz@numtang{1}\global\def\tkz@ptfrom{#1}},
-from with R/.code = {\global\def\tkz@numtang{2}\global\def\tkz@ptfrom{#1}}}
-%<--------------------------------------------------------------------------–>
-\def\tkzTangent{\pgfutil@ifnextchar[{\tkz@Tangent}{\tkz@Tangent[]}}
-
-\def\tkz@Tangent[#1](#2){%
-\begingroup
-\pgfkeys{tang/.cd}
-\pgfqkeys{/tang}{#1}
-\ifcase\tkz@numtang
- \tkzTgtAt(#2)(\tkz@ptat)
-\or
- \tkzTgtFromP(#2)(\tkz@ptfrom)
- \or
- \tkzTgtFromPR(#2)(\tkz@ptfrom)
-\fi
-\endgroup
-}
-
+
+\makeatother
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-euclide.sty b/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-euclide.sty
deleted file mode 100644
index 29111bf7c4..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-euclide.sty
+++ /dev/null
@@ -1,20 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-%<--------------------------------------------------------------------------–>
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tkz-euclide}[2011/06/01 1.16 c for plots 2d ]
-\RequirePackage{tkz-base}
-%<--------------------------------------------------------------------------–>
-% Initialisation
-%<--------------------------------------------------------------------------–>
-\input{tkz-tools-intersections}
-\input{tkz-tools-transformations}
-\input{tkz-obj-lines}
-\input{tkz-lib-symbols}
-\input{tkz-obj-circles}
-\input{tkz-obj-addpoints}
-\endinput
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-addpoints.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-addpoints.tex
deleted file mode 100644
index 529040ecaf..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-addpoints.tex
+++ /dev/null
@@ -1,159 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 c}
-\def\filedate{2011/06/01}
-
-
-%<--------------------------------------------------------------------------–>
-% Specific points
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% barycentre
-%<--------------------------------------------------------------------------–>
-\def\tkzDefBarycentricPoint(#1){%
- \path[coordinate] (barycentric cs:#1) coordinate (tkzPointResult);
-}
-\let\tkzDefBCPoint\tkzDefBarycentricPoint
-%<--------------------------------------------------------------------------–>
-% milieu de deux points %<--------------------------------------------------------------------------–>
-% possible \coordinate (#3) at ($(#1)!0.5!(#2)$);
-%<--------------------------------------------------------------------------–>
-\def\tkzDefMidPoint(#1,#2){\path (#1) -- (#2) coordinate[pos=.5](tkzPointResult);}%
-%<--------------------------------------------------------------------------–>
-
-%<--------------------------------------------------------------------------–>
-% OrthoCenter
-%<--------------------------------------------------------------------------–>
-\def\tkzOrthoCenter(#1,#2,#3){%
- \begingroup
- \tkzUProjection(#1,#2)(#3)\tkzGetPoint{tkz@oca}
- \tkzUProjection(#1,#3)(#2)\tkzGetPoint{tkz@ocb}
- \tkzInterLL(#2,tkz@ocb)(#3,tkz@oca)
- \endgroup
-}
-%<--------------------------------------------------------------------------–>
-% GravityCenter
-%<--------------------------------------------------------------------------–>
-\def\tkzCentroid(#1,#2,#3){%
- \begingroup
- \tkzDefMidPoint(#3,#2)\tkzGetPoint{tkz@mida}
- \tkzDefMidPoint(#1,#2)\tkzGetPoint{tkz@midb}
- \tkzInterLL(#1,tkz@mida)(#3,tkz@midb)%
- \endgroup
-}
-%<--------------------------------------------------------------------------–>
-% CircumCenter
-%<--------------------------------------------------------------------------–>
-\def\tkzCircumCenter(#1,#2,#3){%
- \begingroup
- \tkzDefMediatorLine(#1,#2)
- \tkzGetPoints{tkz@dir}{tkz@dil}
- \tkzDefMediatorLine(#1,#3)
- \tkzGetPoints{tkz@diir}{tkz@diil}
- \tkzInterLL(tkz@dir,tkz@dil)(tkz@diir,tkz@diil)%
- \endgroup
-}
-%<--------------------------------------------------------------------------–>
-% InCenter
-%<--------------------------------------------------------------------------–>
-\def\tkzInCenter(#1,#2,#3){%
-\begingroup
- \tkzDefBisectorLine(#3,#1,#2) \tkzGetPoint{tkz@ia}
- \tkzDefBisectorLine(#3,#2,#1)\tkzGetPoint{tkz@ib}
- \tkzInterLL(#1,tkz@ia)(#2,tkz@ib)
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-% EulerCenter
-%<--------------------------------------------------------------------------–>
-\def\tkzEulerCenter(#1,#2,#3){%
-\begingroup
- \tkzCircumCenter(#1,#2,#3)
- \tkzGetPoint{tkz@ca}
- \tkzOrthoCenter(#1,#2,#3)
- \tkzGetPoint{tkz@cb}
- \tkzDefMidPoint(tkz@ca,tkz@cb)
- \tkzDrawPoint(tkzPointResult)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Apollonius center
-%<--------------------------------------------------------------------------–>
-\def\tkzApolloniusCenter(#1,#2){%
-\begingroup
- \tkz@VecK[\tkz@koeff/(1+\tkz@koeff)](#1,#2){tkzFirstPointResult}
- \tkz@VecK[\tkz@koeff/(\tkz@koeff-1)](#1,#2){tkzSecondPointResult}
- \tkzDefMidPoint(tkzFirstPointResult,tkzSecondPointResult)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Orthogonal center
-%<--------------------------------------------------------------------------–>
-\def\tkzOrthogonalCenter(#1,#2){%
-\begingroup
- \tkz@VecK[\tkz@koeff/(1+\tkz@koeff)](#1,#2){tkzFirstPointResult}
- \tkz@VecK[\tkz@koeff/(\tkz@koeff-1)](#1,#2){tkzSecondPointResult}
- \tkzDefMidPoint(tkzFirstPointResult,tkzSecondPointResult)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Internal Similitude center
-%<--------------------------------------------------------------------------–>
-\def\tkzIntSimilitudeCenter(#1,#2)(#3,#4){%
-\begingroup
-\path[coordinate] (barycentric cs:#1=#4,#3=#2) coordinate (tkzPointResult);
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% External Similitude center
-%<--------------------------------------------------------------------------–>
-\def\tkzExtSimilitudeCenter(#1,#2)(#3,#4){%
-\begingroup
- \path[coordinate] (barycentric cs:#1=-#4,#3=#2) coordinate (tkzPointResult);
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% equi points
-%<--------------------------------------------------------------------------–>
-% draw ? show ?
-
-
-\pgfkeys{
- /tkzEquiPt/.cd,
- from/.code = {\def\tkz@frompoint{#1}},
- dist/.code = {\def\tkz@equ@dist{#1}},
- show/.is if = tkz@equi@show,
- show/.default = true,
- /tkzEquiPt/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /compass/\searchname/.retry=#1,
- /tikz/\searchname/.retry=#1}}
- }
-
-\def\tkzDefEquiPoints{\pgfutil@ifnextchar[{\tkz@DefEquiPoints}{%
- \tkz@DefEquiPoints[]}}
-\def\tkz@DefEquiPoints[#1](#2,#3){%
-\pgfkeys{/tkzEquiPt/.cd,dist = 2,show=false}
-\pgfqkeys{/tkzEquiPt}{#1}
-\begingroup
- \tkzProjection(#2,#3)(\tkz@frompoint){tkzEQpoint}
- \tkzVecKNorm[\tkz@equ@dist](tkzEQpoint,#2){tkzFirstPointResult}
- \tkzVecKNorm[-\tkz@equ@dist](tkzEQpoint,#2){tkzSecondPointResult}
- \iftkz@equi@show
- \tkzCompass[#1](\tkz@frompoint,tkzFirstPointResult)
- \tkzCompass[#1](\tkz@frompoint,tkzSecondPointResult)
- \fi
-\endgroup
-}
-
-\endinput
-
-
-% tkz@equi@show \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-angles.tex
deleted file mode 100644
index a5acdd76c1..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-angles.tex
+++ /dev/null
@@ -1,332 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 c}
-\def\filedate{2011/06/01}
-
- %<-------------------------------------------------------------------------–>
-\def\tkzGetAngle#1{%
-\global\expandafter\edef\csname #1\endcsname{\tkzAngleResult}}
-
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-
-%<--------------------------------------------------------------------------–>
-% Angle
-% Recherche l'angle formé par #1 et #2 par rapport à l'horizontale
-%<--------------------------------------------------------------------------–>
-\def\tkzFindSlopeAngle(#1,#2){%
-\begingroup
-\tkzmathanglebetweenpoints{\pgfpointanchor{#1}{center}}{%
- \pgfpointanchor{#2}{center}}
-\global\let\tkzAngleResult\pgfmathresult
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Angle avec trois nodes
-%<--------------------------------------------------------------------------–>
-\def\tkzFindAngle(#1,#2,#3){%
-\begingroup
- \tkzFindSlopeAngle(#2,#1)\tkzGetAngle{tkz@FirstAngle}
- \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@SecondAngle}
- \FPadd\tkz@Angle{\tkz@SecondAngle}{-\tkz@FirstAngle}
- \global\let\tkzAngleResult\tkz@Angle
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Find angle
-%<--------------------------------------------------------------------------–>
-\def\tkzGetAngle#1{%
-\global\expandafter\edef\csname #1\endcsname{\tkzAngleResult}}
-
-%<--------------------------------------------------------------------------–>
-% FillAngle
-%<--------------------------------------------------------------------------–>
-\pgfkeys{/tkzFill/.cd,
- size/.code = \global\def\tkz@size{#1},
- /tkzFill/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}}
-%<--------------------------------------------------------------------------–>
-\def\tkzFillAngle{\pgfutil@ifnextchar[{\tkz@FillAngle}{\tkz@FillAngle[]}}
-\def\tkz@FillAngle[#1](#2,#3,#4){%
-\begingroup
-\pgfkeys{tkzFill/.cd,size=0.4 cm}
-\pgfqkeys{/tkzFill}{#1}
-\tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz@dirOne}
-\tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz@dirTwo}
-\pgfmathgreaterthan{\tkz@dirOne}{\tkz@dirTwo}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \pgfmathsubtract{\tkz@dirOne}{360}
- \edef\tkz@dirOne{\pgfmathresult}%
- \fi
-
- \path[shift = {(#3)},/tkzFill/.cd,#1]%
- (#3) -- (\tkz@dirOne:\tkz@size) arc%
- (\tkz@dirOne:\tkz@dirTwo:\tkz@size)--cycle;
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawArcRAN[#1](#2,#3)(#4,#5){%
- \begingroup
- \pgfmathparse{#4}\edef\tkz@FirstAngle{\pgfmathresult}%
- \pgfmathparse{#5}\edef\tkz@SecondAngle{\pgfmathresult}%
- \pgfmathgreaterthan{\tkz@FirstAngle}{0}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \pgfmathsubtract{\tkz@FirstAngle}{360}
- \edef\tkz@FirstAngle{\pgfmathresult}%
- \fi
- \else
- \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \pgfmathadd{\tkz@SecondAngle}{360}
- \edef\tkz@SecondAngle{\pgfmathresult}%
- \fi
- \fi
- \draw[shift = {(#2)},/drawarc/.cd,#1]%
- (\tkz@FirstAngle:#3) arc (\tkz@FirstAngle:\tkz@SecondAngle:#3);
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% \tkzMarkAngle(B, A, C)
-%
-% Marque d'angle
-% arc de cercle (simple/double/triple) et marque d'églité.
-%
-% Par défaut:
-% arc = simple
-% longueur = 1cm (rayon de l'arc)
-% style traits pleins
-% position: 0.5 (position de la marque)
-% mark rien du tout (ignoré si type est utilisé)
-%
-% Paramètres (optionnels)
-% arc : l, ll, lll
-% length : 1cm
-% gap : 2pt
-% style : type de traits
-% type : none, |, ||,|||, z, s, x, o, oo
-% position: 0.5
-% mark : none , |, ||,|||, z, s, x, o, oo mais tous les
-% % symboles de tikz sont permis
-%<--------------------------------------------------------------------------–>
-\edef\tkz@arcsimple{l}
-\edef\tkz@arctriple{lll}
-\edef\tkz@arcdouble{ll}
-\tikzset{lbstyle/.style ={color=\tkz@mainlinecolor}}
-
-\pgfkeys{/tkzmkangle/.cd,
-mark/.code = {\global\def\tkz@mark{#1}},
-size/.code = {\global\def\tkz@size{#1}},
-mkpos/.code = {\global\edef\tkz@mkpos{#1}},
-mksize/.code = {\global\def\tkz@mksize{#1}},
-mkcolor/.code = {\global\def\tkz@mkcolor{#1}},
-label/.code = {\global\def\tkz@mklabel{#1}},
-arc/.code = {\global\def\tkz@arc{#1}},
-dist/.code = {\global\def\tkz@dist{#1}},
-label style/.code = {\tikzset{lbstyle/.append style ={#1}}},
-/tkzmkangle/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}
- }
-} \def\tkzMarkAngle{\pgfutil@ifnextchar[{\tkz@MarkAngle}{\tkz@MarkAngle[]}}
-\def\tkz@MarkAngle[#1](#2,#3,#4){%
-\begingroup
-\pgfkeys{tkzmkangle/.cd,
- arc = l,
- size = 1,
- mksize = 4pt,
- mkcolor = \tkz@mainlinecolor,
- mkpos = 0.5,
- mark = none,
- dist = 1,
- label = {}
- }
-
-\pgfqkeys{/tkzmkangle}{#1}
-%<--------------------------------------------------------------------------–>
-\tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz@dirOne}
-\tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz@dirTwo}
-\begin{scope}
- \ifx\tkz@arc\tkz@arcsimple
- \tkzDrawArcRAN[#1,fill=none](#3,\tkz@size)(\tkz@dirOne,\tkz@dirTwo)
- \else
- \ifx\tkz@arc\tkz@arcdouble
- \tkzDrawArcRAN[#1,fill=none](#3,\tkz@size-1.5\pgflinewidth)%
- (\tkz@dirOne,\tkz@dirTwo)
- \tkzDrawArcRAN[#1,fill=none](#3,\tkz@size+1.5\pgflinewidth)%
- (\tkz@dirOne,\tkz@dirTwo)
- \else
- \ifx\tkz@arc\tkz@arctriple
- \tkzDrawArcRAN[#1,fill=none](#3,\tkz@size)(\tkz@dirOne,\tkz@dirTwo)
- \tkzDrawArcRAN[#1,fill=none](#3,\tkz@size-2\pgflinewidth)%
- (\tkz@dirOne,\tkz@dirTwo)
- \tkzDrawArcRAN[#1,fill=none](#3,\tkz@size+2\pgflinewidth)%
- (\tkz@dirOne,\tkz@dirTwo)
- \fi
- \fi
- \fi
-\end{scope}
-\FPeval\labelangle{(\tkz@dirTwo + \tkz@dirOne)/2}
-\tkz@@extractxy{#3}
- \tkz@ax=\pgf@x%
- \tkz@ay=\pgf@y%
-\begin{scope}
- \node[lbstyle,shift={(\tkz@ax,\tkz@ay)}] at (\labelangle:\tkz@dist ){\tkz@mklabel};
-\end{scope}
-
-%<--------------------------------------------------------------------------–>
-% les marques, aucune si mktype = none
-\global\def\tkz@mymark{%
- \pgfsetplotmarksize{\tkz@mksize}
- \pgfuseplotmark{\tkz@mark}
-}
-\begin{scope}[decoration={markings,mark=at position \tkz@mkpos with {\tkz@mymark}}]
- \pgfmathgreaterthan{\tkz@dirOne}{\tkz@dirTwo}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \pgfmathsubtract{\tkz@dirOne}{360}
- \edef\tkz@dirOne{\pgfmathresult}%
- \fi
- \path [\tkz@mkcolor,postaction={decorate},/tkzmkangle/.cd,#1]%
-(#3)--++(\tkz@dirOne:\tkz@size) arc(\tkz@dirOne:\tkz@dirTwo:\tkz@size)--cycle;
-\end{scope}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% multiple
-\def\tkz@multiMA#1 #2\@nil{%
- \protected@edef\tkz@temp{
- \noexpand \tkzMarkAngle[\tkz@optma](#1)}\tkz@temp%
- \def\tkz@nextArg{#2}%
- \ifx\tkzutil@empty\tkz@nextArg
- \let\next\@gobble
- \fi
- \next#2\@nil
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzMarkAngles{\pgfutil@ifnextchar[{\tkz@MarkAngles}{\tkz@MarkAngles[]}}
-\def\tkz@MarkAngles[#1](#2){%
-\global\edef\tkz@optma{#1}
- \begingroup
- \let\next\tkz@multiMA
- \next#2 \@nil %
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% % % fin de \tkzMarkAngle
-% %<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-%<------------------------- Label on angle -------------------------------–>
-%<--------------------------------------------------------------------------–>
-\pgfkeys{tkzlabelangle/.cd,
-dist/.code = {\global\def\labeldist{#1}},
-/tkzlabelangle/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}
- }
-}
-\def\tkzLabelAngle{\pgfutil@ifnextchar[{\tkz@LabelAngle}{%
- \tkz@LabelAngle[]}}
-\def\tkz@LabelAngle[#1](#2,#3,#4)#5{%
-\begingroup
-\pgfkeys{tkzlabelangle/.cd,
- dist = 1}
-\pgfqkeys{/tkzlabelangle}{#1}
-\tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz@dirOne}
-\tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz@dirTwo}
-\FPeval\labelAngle{( \tkz@dirOne +\tkz@dirTwo)/2}
-\path (#3) --+(\labelAngle:\labeldist) node[/tkzmkangle/.cd,#1] {#5};
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% multiple labels
-\def\tkz@multiLBA#1 #2\@nil{%
- \protected@edef\tkz@temp{
- \noexpand \tkzLabelAngle[\tkz@optlba](#1){\tkz@labelangle}}\tkz@temp%
- \def\tkz@nextArg{#2}%
- \ifx\tkzutil@empty\tkz@nextArg
- \let\next\@gobble
- \fi
- \next#2\@nil
-}
-% %<--------------------------------------------------------------------------–>
-\def\tkzLabelAngles{\pgfutil@ifnextchar[{\tkz@LabelAngles}{%
- \tkz@LabelAngles[]}}
-\def\tkz@LabelAngles[#1](#2)#3{%
- \global\edef\tkz@optlba{#1}
- \global\def\tkz@labelangle{#3}
- \begingroup
- \let\next\tkz@multiLBA
- \next#2 \@nil %
- \endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% Symbole droites perpendiculaires MAUVAIS
-%<--------------------------------------------------------------------------–>
- \pgfkeys{tkzright/.cd,
- size/.code = {\global\def\tkz@ra@size{#1}},
- /tkzright/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}
- }
-}
-
-\newcommand*{\tkzMarkRightAngle}[1][]{\tkz@RightAngle[#1]}
-\def\tkz@RightAngle[#1](#2,#3,#4){%
-\begingroup
-\pgfkeys{tkzright/.cd,
- size = .22}
-\pgfqkeys{/tkzright}{#1}
- \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#3}{center}}{%
- \pgfpointanchor{#2}{center}}}
- \tkz@ax=\pgf@x\relax%
- \tkz@ay=\pgf@y\relax%
-
- \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#3}{center}}{%
- \pgfpointanchor{#4}{center}}}
- \tkz@bx=\pgf@x\relax%
- \tkz@by=\pgf@y\relax%
- \path[]%
- (#3)--++%
- ( 28.45274*\tkz@ra@size\tkz@ax , 28.45274*\tkz@ra@size\tkz@ay)%
- coordinate (tkz@ra1)--++%
- ( 28.45274*\tkz@ra@size\tkz@bx ,28.45274*\tkz@ra@size\tkz@by)
- coordinate (tkz@ra2)--++%
- (-28.45274*\tkz@ra@size\tkz@ax ,-28.45274*\tkz@ra@size\tkz@ay)
- coordinate (tkz@ra3);%
- \draw[/tkzright/.cd,#1] (#3)--(tkz@ra1)--(tkz@ra2)--(tkz@ra3)--cycle;
-\endgroup
-}
-
-\def\tkz@multiRA#1 #2\@nil{%
- \protected@edef\tkz@temp{
- \noexpand \tkzMarkRightAngle[\tkz@optRA](#1)}\tkz@temp%
- \def\tkz@nextArg{#2}%
- \ifx\tkzutil@empty\tkz@nextArg
- \let\next\@gobble
- \fi
- \next#2\@nil
-}
-\def\tkzMarkRightAngles{\pgfutil@ifnextchar[{\tkz@RightAngles}{%
- \tkz@RightAngles[]}}
-\def\tkz@RightAngles[#1](#2){%
-\global\edef\tkz@optRA{#1}
- \begingroup
- \let\next\tkz@multiRA
- \next#2 \@nil %
-\endgroup
-}
-\endinput
- \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-arcs.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-arcs.tex
deleted file mode 100644
index fef8c6e81e..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-arcs.tex
+++ /dev/null
@@ -1,272 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 c}
-\def\filedate{2011/06/01}
-
- %<--------------------------------------------------------------------------–>
-%<------------------------------ Arcs -------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% options : delta
-\def\tkz@delta{0}
-\tikzset{arc style/.style={#1}}
-\pgfkeys{/tikz/.cd,delta/.code={\def\tkz@delta{#1}}}
-
-\global\def\tkz@numa{0}
-\pgfkeys{/drawarc/.cd,
-towards/.code = {\global\def\tkz@numa{0}},
-rotate/.code = {\global\def\tkz@numa{1}},
-angles/.code = {\global\def\tkz@numa{2}},
-R/.code = {\global\def\tkz@numa{3}},
-R with nodes/.code = {\global\def\tkz@numa{4}},
-/drawarc/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1,%
- /pgf/\searchname/.retry=#1}}
-}
-
-\def\tkzDrawArc{\pgfutil@ifnextchar[{\tkz@DrawArc}{\tkz@DrawArc[]}}
-\def\tkz@DrawArc[#1](#2,#3)(#4){%
-\begingroup
-\pgfkeys{/drawarc/.cd,towards,delta=0}
-\pgfqkeys{/drawarc}{#1}
-\ifcase\tkz@numa%
- \tkzDrawArcN[#1](#2,#3)(#4)
-\or% 1
- \tkzDrawArcRotate[#1](#2,#3)(#4)
-\or% 2
- \tkzDrawArcAngles[#1](#2,#3)(#4)
- \or% 3
- \tkzDrawArcRAngles[#1](#2,#3)(#4)
- \or% 4
- \tkzDrawArcR[#1](#2,#3)(#4)
-\fi
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-% #1 center #2 radius #4 first angle (degree) #5 second angle (degree)
-% angles 0 .. 180 or -180 .. 0
-%<--------------------------------------------------------------------------–>
-% example : \tkzDrawArc(A,2 cm)(30,90)
-\def\tkzDrawArcRAngles{\pgfutil@ifnextchar[{\tkz@DrawArcRAngles}{%
- \tkz@DrawArcRAngles[]}}
-\def\tkz@DrawArcRAngles[#1](#2,#3)(#4,#5){%
- \begingroup
- \pgfmathparse{#4}\edef\tkz@FirstAngle{\pgfmathresult}%
- \pgfmathparse{#5}\edef\tkz@SecondAngle{\pgfmathresult}%
- \pgfmathgreaterthan{\tkz@FirstAngle}{0}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \pgfmathsubtract{\tkz@FirstAngle}{360}
- \edef\tkz@FirstAngle{\pgfmathresult}%
- \fi
- \else
- \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \pgfmathadd{\tkz@SecondAngle}{360}
- \edef\tkz@SecondAngle{\pgfmathresult}%
- \fi
- \fi
- \pgfmathsubtract{\tkz@FirstAngle}{\tkz@delta}
- \edef\tkz@FirstAngle{\pgfmathresult}%
- \pgfmathadd{\tkz@SecondAngle}{\tkz@delta}
- \edef\tkz@SecondAngle{\pgfmathresult}
- \draw[shift = {(#2)},compass style,/drawarc/.cd,#1]%
- (\tkz@FirstAngle:#3) arc (\tkz@FirstAngle:\tkz@SecondAngle:#3);
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% ARC nodes #2 center #3 first point last point #4
-% delta un peu plus à chaque extrémité
-% example : \tkzDrawArc(A,B)(C)
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawArcN{\pgfutil@ifnextchar[{\tkz@DrawArcN}{\tkz@DrawArcN[]}}
-\def\tkz@DrawArcN[#1](#2,#3)(#4){%
-\begingroup
- \tkzCalcLength(#2,#3)\tkzGetLength{tkz@radius}
- \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@FirstAngle}
- \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@SecondAngle}
- \tkz@DrawArcRAngles[#1](#2,\tkz@radius pt)(\tkz@FirstAngle,\tkz@SecondAngle)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% nodes #2 center #3 first point rotate #3 with Angle
-% delta un peu plus à chaque extrémité
-% tkzDrawArcRotate(O,A)(60)
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawArcRotate{\pgfutil@ifnextchar[{\tkz@DrawArcRotate}{%
- \tkz@DrawArcRotate[]}}
-\def\tkz@DrawArcRotate[#1](#2,#3)(#4){%
-\begingroup
- \tkzCalcLength(#2,#3)\tkzGetLength{tkz@radius}
- \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@FirstA}
- \pgfmathadd{\tkz@FirstA}{#4}
- \edef\tkz@SecondA{\pgfmathresult}
- \pgfmathgreaterthan{#4}{0}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \tkz@DrawArcRAngles[#1](#2,\tkz@radius pt)(\tkz@FirstA,\tkz@SecondA)
- \else
- \tkz@DrawArcRAngles[#1](#2,\tkz@radius pt)(\tkz@SecondA,\tkz@FirstA)
- \fi
- \endgroup
-}
-%<--------------------------------------------------------------------------–>
-% deux angles
-% \tkzDrawArcAngles(O,A)(0,60)
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawArcAngles{\pgfutil@ifnextchar[{\tkz@DrawArcAngles}{%
- \tkz@DrawArcAngles[]}}
-\def\tkz@DrawArcAngles[#1](#2,#3)(#4,#5){%
-\begingroup
- \tkzCalcLength(#2,#3)
- \tkz@DrawArcRAngles[#1](#2,\tkzLengthResult pt)(#4,#5)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Degree #2 center #4 - #3 radius from #5 (degree) to #6(degree)
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawArcRwithNodesAngles{\pgfutil@ifnextchar[{%
- \tkz@DrawArcRwithNodesAngles}{%
- \tkz@DrawArcRwithNodesAngles[]}} \def\tkz@DrawArcRwithNodesAngles[#1](#2,#3,#4)(#5,#6){%
-\begingroup
- \tkzCalcLength(#3,#4)
- \tkz@DrawArcRAngles[#1](#2,\tkzLengthResult pt)(#5,#6)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawArcRwithNodes{\pgfutil@ifnextchar[{\tkz@DrawArcRwithNodes}{%
- \tkz@DrawArcRwithNodes[]}}
-\def\tkz@DrawArcRwithNodes[#1](#2,#3,#4)(#5,#6){%
-\begingroup
- \tkzCalcLength(#3,#4)
- \tkzFindSlopeAngle(#2,#5)\tkzGetAngle{tkz@FirstAngle}
- \tkzFindSlopeAngle(#2,#6)\tkzGetAngle{tkz@SecondAngle}
- \tkz@DrawArcRAngles[#1](#2,\tkzLengthResult)%
- (\tkz@FirstAngle,\tkz@SecondAngle)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Nodes R #2 center #3 radius en cm from #4(node) to #5(node)
-% \tkzDrawArcR(O,2 cm)(A,B)
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawArcR{\pgfutil@ifnextchar[{\tkz@DrawArcR}{\tkz@DrawArcR[]}}
-\def\tkz@DrawArcR[#1](#2,#3)(#4,#5){%
-\begingroup
- \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@FirstAngle}
- \tkzFindSlopeAngle(#2,#5)\tkzGetAngle{tkz@SecondAngle}
- \tkz@DrawArcRAngles[#1](#2,#3)(\tkz@FirstAngle,\tkz@SecondAngle)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% Author Alain Matthes
-% idea from Y. Combe %<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% Utilisation du Compas : Compass
-%<--------------------------------------------------------------------------–>
-% Setup Compass
-%<--------------------------------------------------------------------------–>
-\pgfkeys{%
-setupcompass/.cd,
-line width/.code = {\global\edef\tkz@compass@lw{#1}},
-color/.code = {\global\edef\tkz@compass@color{#1}},
-style/.code = {\global\edef\tkz@compass@style{#1}},
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzSetUpCompass{\pgfutil@ifnextchar[{\tkzActivOff\tkz@SetUpCompass}{%
- \tkzActivOff\tkz@SetUpCompass[]}}
-%<--------------------------------------------------------------------------–>
-\def\tkz@SetUpCompass[#1]{%
-\tkzActivOff
-\pgfkeys{%
-setupcompass/.cd,
-line width = \tkz@euc@compasswidth,
-color = \tkz@euc@compasscolor,
-style = \tkz@euc@compassstyle
-}
-\pgfqkeys{/setupcompass}{#1}
-\tikzset{compass style/.style={color = \tkz@compass@color,
- line width = \tkz@compass@lw,
- style = \tkz@compass@style
- }}
-}
-%<--------------------------------------------------------------------------–>
-% \tkzCompass(A, B)
-%
-% Marque de compas auto-ajustée en longueur
-% #2 center #3 le point
-% Par défaut:
-% longueur : 1cm, mais avec un maximum d'un angle de 180°
-% angle calculé pour la longueur
-% style traits pleins
-%
-% Paramètres (optionnels, gérés par xkeyval)
-% length : longueur de l'arc (ignoré si delta est différent de 0)
-% delta : angle sous-tendant l'arc
-
-%<--------------------------------------------------------------------------–>
- \pgfkeys{
- /compass/delta/.code = {\def\tkz@delta{#1}},
- /compass/length/.code = {\def\tkz@length{#1}},
- /compass/ratio/.code = {\def\tkz@ratio{#1}},
- /compass/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}
-}
-
-% \def\tkz@length{2}
-% \pgfkeys{/tikz/.cd,length/.code={\def\tkz@length{#1}}}
-
-\def\tkzCompass{\pgfutil@ifnextchar[{\tkz@Compass}{\tkz@Compass[]}}
-\def\tkz@Compass[#1](#2,#3){%
-\begingroup
-\pgfkeys{%
- compass/.cd,
- length = 0.75,
- delta = 0,
- ratio = .5
- }
-\pgfkeys{compass/.cd,#1}
- \tkzCalcLength(#2,#3)\tkzGetLength{tkz@tempLen}
-\ifnum\tkz@delta=0 %
- \pgfmathsetmacro{\tkz@delta}{min(deg(\tkz@length cm/ \tkz@tempLen pt),180)/2}
-\fi
- \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@angle}%
- \draw[shift ={(#2)},/compass/.cd,compass style,#1]%
- (\tkz@angle-\tkz@delta:\tkz@tempLen pt)%
- arc (\tkz@angle-\tkz@delta:\tkz@angle+\tkz@delta:\tkz@tempLen pt);
- %};
-\endgroup}
-%<--------------------------------------------------------------------------–>
-\def\tkz@multiCompass#1 #2\@nil{%
- \protected@edef\tkz@temp{
- \noexpand \tkzCompass[\tkz@optcompass](#1)}\tkz@temp%
- \def\tkz@nextArg{#2}%
- \ifx\tkzutil@empty\tkz@nextArg
- \let\next\@gobble
- \fi
- \next#2\@nil
-}
-\def\tkzCompasss{\pgfutil@ifnextchar[{\tkz@Compasss}{\tkz@Compasss[]}}
-
-\def\tkz@Compasss[#1](#2){%
-\global\edef\tkz@optcompass{#1}
-\begingroup
- \let\next\tkz@multiCompass
- \next#2 \@nil %
-\endgroup
-}%
-
-%<--------------------------------------------------------------------------–>
-% fin de \tkzCompass
-%<--------------------------------------------------------------------------–>\endinput
- \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-circles.tex
deleted file mode 100644
index c29b965c16..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-circles.tex
+++ /dev/null
@@ -1,259 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 c}
-\def\filedate{2011/06/01}
-
-
-%<--------------------------------------------------------------------------–>
-% tkzCircle center and one point
-%<--------------------------------------------------------------------------–>
-
-\def\tkz@numc{0}
-\pgfkeys{/tkzDefCircle/.cd,
-radius/.code = \def\tkz@numc{0},
-diameter/.code = \def\tkz@numc{1},
-circum/.code = \def\tkz@numc{2},
-in/.code = \def\tkz@numc{3},
-euler/.code = \def\tkz@numc{4},
-apollonius/.code = \def\tkz@numc{5},
-orthogonal from/.code args = {#1}{\global\def\tkz@ptfrom{#1},
- \global\def\tkz@numc{6}},
-orthogonal through/.code args ={#1 and #2}{\global\def\tkz@ptone{#1}
- \global\def\tkz@pttwo{#2}
- \global\def\tkz@numc{7}},
-K/.code = \def\tkz@koeff{#1}
-}
-
-\def\tkzDefCircle{\pgfutil@ifnextchar[{\tkz@DefCircle}{%
- \tkz@DefCircle[]}}
-\def\tkz@DefCircle[#1](#2){%
-\begingroup
-\pgfkeys{/tkzDefCircle/.cd,radius,K=2}
-\pgfqkeys{/tkzDefCircle}{#1}
-\ifcase\tkz@numc%
- \tkzDefCircleRadius(#2)
- \or% 1
- \tkzDefCircleD(#2)
- \or% 2
- \tkzDefCircumCircle(#2)
- \or% 3
- \tkzDefInCircle(#2)
- \or% 4
- \tkzDefEulerCircle(#2)
- \or% 5
- \tkzDefApolloniusCircle(#2)
- \or% 6
- \tkzDefOrthogonalCircle(#2,\tkz@ptfrom)
- \or% 7
- \tkzDefOrthoThroughCircle(#2,\tkz@ptone,\tkz@pttwo) \fi
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircumCircle(#1,#2,#3){%
-\begingroup
- \tkzCircumCenter(#1,#2,#3)
- \tkzCalcLength(#1,tkzPointResult)
-\endgroup
-}
-\def\tkzDefInCircle(#1,#2,#3){%
-\begingroup
- \tkzInCenter(#1,#2,#3) \tkzGetPoint{tkz@ia}
- \tkzUProjection(#2,#3)(tkzPointResult)
- \tkzCalcLength(tkzPointResult,tkz@ia)
- \tkzRenamePoint(tkz@ia){tkzPointResult}
-\endgroup
-}
-\def\tkzDefEulerCircle(#1,#2,#3){%
-\begingroup
- \tkzDefMidPoint(#2,#3) \tkzGetPoint{tkz@e}
- \tkzEulerCenter(#1,#2,#3)
- \tkzCalcLength(tkz@e,tkzPointResult)
-\endgroup
-}
-\def\tkzDefApolloniusCircle(#1,#2){%
-\begingroup
- \tkzApolloniusCenter(#1,#2)
- \tkzCalcLength(tkzPointResult,tkzFirstPointResult)
-\endgroup
-}
-\def\tkzDefOrthogonalCircle(#1,#2,#3){%
-\begingroup
- \tkzTgtFromP(#1,#2)(#3)
- \tkzCalcLength[cm](#1,tkzFirstPointResult)
-\endgroup
-}
-\def\tkzDefOrthoThroughCircle(#1,#2,#3,#4){%
-\begingroup
- \tkzCalcLength[cm](#1,#2)\tkzGetLength{tkz@lna}%
- \tkzCalcLength[cm](#1,#3)\tkzGetLength{tkz@lnb}%
- \FPeval\tkz@lnc{\tkz@lna/\tkz@lnb*\tkz@lna}
- \tkzVecKNorm[\tkz@lnc](#1,#3){tkz@PointResult}
- \tkzCircumCenter(tkz@PointResult,#3,#4)
- \tkzCalcLength(tkzPointResult,#3)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkz@numdc{0}
-\pgfkeys{
-/DrawCircle/.cd,
- radius/.code =\def\tkz@numdc{0},
- R/.code =\def\tkz@numdc{1},
- diameter/.code =\def\tkz@numdc{2},
- circum/.code =\def\tkz@numdc{3},
- in/.code =\def\tkz@numdc{4},
- euler/.code =\def\tkz@numdc{5},
- apollonius/.code =\def\tkz@numdc{6},
- orthogonal from/.code args= {#1}{\global\def\tkz@ptfrom{#1},
- \global\def\tkz@numdc{7}},
- orthogonal through/.code args={#1 and #2}{\global\def\tkz@ptone{#1}
- \global\def\tkz@pttwo{#2}
- \global\def\tkz@numdc{8}},
- K/.code =\def\tkz@koeff{#1},
- /DrawCircle/.unknown/.code ={\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawCircle{\pgfutil@ifnextchar[{\tkz@DrawCircle}{\tkz@DrawCircle[]}}
-\def\tkz@DrawCircle[#1](#2){%
-\begingroup
-\pgfkeys{/DrawCircle/.cd,radius,K=2}
-\pgfqkeys{/DrawCircle}{#1}
-\ifcase\tkz@numdc%
- \tkzDefCircleRadius(#2)
- \or% 1
- \tkzDefCircleR(#2)
- \or% 2
- \tkzDefCircleD(#2)
- \or% 3
- \tkzDefCircumCircle(#2)
- \or% 4
- \tkzDefInCircle(#2)
- \or% 5
- \tkzDefEulerCircle(#2)
- \or% 6
- \tkzDefApolloniusCircle(#2)
- \or% 7
- \tkzDefOrthogonalCircle(#2,\tkz@ptfrom)
- \or% 8
- \tkzDefOrthoThroughCircle(#2,\tkz@ptone,\tkz@pttwo)
- \fi
-\draw[/DrawCircle/.cd,line style,#1]%
- (tkzPointResult) circle (\tkzLengthResult pt);%
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircleRadius(#1,#2){%
-\begingroup
- \tkzCalcLength(#1,#2)
- \tkzRenamePoint(#1){tkzPointResult}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircleR(#1,#2){%
- \begingroup
- \tkz@radi=#2 %
- \FPeval\tkzLengthResult{\pgf@sys@tonumber{\tkz@radi}}%
- \FPround\tkzLengthResult\tkzLengthResult5\relax%
- \global\let\tkzLengthResult\tkzLengthResult
- \tkzRenamePoint(#1){tkzPointResult}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircleD(#1,#2){%
-\begingroup
- \tkzDefMidPoint(#1,#2)
- \tkzCalcLength(#1,tkzPointResult)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<---------------------------- Fill Circle --------------------------------–>
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkz@numfc{0}
-\pgfkeys{
-/fillcircle/.cd,
- radius/.code =\def\tkz@numfc{0},
- R/.code =\def\tkz@numfc{1},
-/fillcircle/.unknown/.code ={\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}
-}
-
-\def\tkzFillCircle{\pgfutil@ifnextchar[{\tkz@FillCircle}{\tkz@FillCircle[]}}
-\def\tkz@FillCircle[#1](#2,#3){%
-\begingroup
-\pgfkeys{/fillcircle/.cd,radius}
-\pgfqkeys{/fillcircle}{#1}
-\ifcase\tkz@numfc%
- % first case 0
- \tkzCalcLength(#2,#3)
- \fill[/fillcircle/.cd,#1] (#2) circle (\tkzLengthResult pt);%
- \or% 1
- \fill[/fillcircle/.cd,#1] (#2) circle (#3);%
- \fi
-\endgroup
-}
-%<--------------------------- Clip Circle ---------------------------------–>
-% %<--------------------------------------------------------------------------–>
-\def\tkz@numcc{0}
-\pgfkeys{
-/clipcircle/.cd,
- radius/.code =\def\tkz@numcc{0},
- R/.code =\def\tkz@numcc{1}
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzClipCircle{\pgfutil@ifnextchar[{\tkz@ClipCircle}{%
- \tkz@ClipCircle[]}}
-
-\def\tkz@ClipCircle[#1](#2,#3){%
-\pgfkeys{/clipcircle/.cd,radius}
-\pgfqkeys{/clipcircle}{#1}
-\ifcase\tkz@numcc
- \tkzCalcLength(#2,#3)
- \clip (#2) circle (\tkzLengthResult pt);
- \or% 1
- \clip (#2) circle (#3);
- \fi
-}
-%<--------------------------- Label Circle --------------------------------–>
-%<--------------------------------------------------------------------------–>
-% %<--------------------------------------------------------------------------–>
-\def\tkz@numlc{0}
-\pgfkeys{
-/labelcircle/.cd,
- radius/.code =\def\tkz@numlc{0},
- R/.code =\def\tkz@numlc{1},
- /labelcircle/.unknown/.code ={\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}
-}
-
-\def\tkzLabelCircle{\pgfutil@ifnextchar[{\tkz@LabelCircle}{%
- \tkz@LabelCircle[]}}
-
-\def\tkz@LabelCircle[#1](#2,#3)(#4)#5{%
-\begingroup
-\pgfkeys{/labelcircle/.cd,radius}
-\pgfqkeys{/labelcircle}{#1}
-\ifcase\tkz@numlc
- \tkzURotateAngle(#2,#4)(#3)
- \node[/labelcircle/.cd,#1] at (tkzPointResult) {#5};
- \or% 1
- \path (#2)--++(#3,0) coordinate (tkzPointResult);
- \tkzURotateAngle(#2,#4)(tkzPointResult)
- \node[/labelcircle/.cd,#1] at (tkzPointResult) {#5};
- \fi
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-lines.tex
deleted file mode 100644
index 6532c7f92b..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-lines.tex
+++ /dev/null
@@ -1,342 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 c}
-\def\filedate{2011/06/01}
-
-
-%<--------------------------------------------------------------------------–>
-
-%<--------------------------------------------------------------------------–>
-% les lignes
-%<--------------------------------------------------------------------------–>
-\def\tkz@numl{0}
-\pgfkeys{/tkzDefLine/.cd,
- mediator/.code ={\global\def\tkz@numl{0}},
- perpendicular/.code args={through #1} {\global\def\tkz@numl{1}%
- \global\def\tkz@through{#1}},
- orthogonal/.code args={through #1} {\global\def\tkz@numl{1}%
- \global\def\tkz@through{#1}},
- parallel/.code args={through #1}{\global\def\tkz@numl{2}%
- \global\def\tkz@through{#1}},
- bisector/.code ={\global\def\tkz@numl{3}},
- bisector out/.code ={\global\def\tkz@numl{4}},
- K/.code =\def\tkz@koeff{#1}
-}
-
-\def\tkzDefLine{\pgfutil@ifnextchar[{\tkz@DefLine}{%
- \tkz@DefLine[]}}
-\def\tkz@DefLine[#1](#2){%
-\begingroup
-\pgfkeys{/tkzDefLine/.cd,K=1}
-\pgfqkeys{/tkzDefLine}{#1}
-\ifcase\tkz@numl%
- % first case 0
- \tkzDefMediatorLine(#2)
- \or% 1
- \tkzDefOrthLine[\tkz@koeff](#2)
- \or% 2
- \tkzDefLineLL(#2)
- \or% 3
- \tkzDefBisectorLine(#2)
- \or% 4
- \tkzDefBisectorOutLine(#2)
- \fi
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% tkzLineLL revoir out !!
-%<--------------------------------------------------------------------------–>
-\def\tkzDefLineLL(#1,#2){%
-\begingroup% recherche d'un vecteur tq #2#3=#4tkz@point
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \path[coordinate](\tkz@through)--+(\pgf@xa,\pgf@ya)%
- coordinate (tkzPointResult);
-\endgroup}%
-%<--------------------------------------------------------------------------–>
-% tkzOrthLine
-%<--------------------------------------------------------------------------–>
-\def\tkzDefOrthLine{\pgfutil@ifnextchar[{\tkz@DefOrthLine}{%
- \tkz@DefOrthLine[1]}}
- \def\tkz@DefOrthLine[#1](#2,#3){%
-\begingroup
- \tkzVecKOrth(#2,#3){tkz@OLtmp}
- \tkz@VecKCoLinear[#1](#2,tkz@OLtmp,\tkz@through){tkzPointResult}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% tkzMediatorLine
-%<--------------------------------------------------------------------------–>
-\def\tkzDefMediatorLine(#1,#2){%
-\begingroup
- \path (#1) -- (#2) coordinate[pos=.5](tkzPointResult);
- \tkzURotateAngle(#1,60)(#2) \tkzGetPoint{tkzFirstPointResult}
- \tkzURotateAngle(#2,60)(#1) \tkzGetPoint{tkzSecondPointResult}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% BisectorLine % pb avec un angle plat
-%<--------------------------------------------------------------------------–>
-\def\tkzDefBisectorLine(#1,#2,#3){%
-\begingroup
- \tkzDuplicateLen(#2,#1)(#2,#3) \tkzGetPoint{tkz@tmp}
- \tkzURotateAngle(tkz@tmp,60)(#1) \tkzGetPoint{tkzPointResult}
- % \tkzVecKNorm[5](#2,#1){tkz@pt1}
- % \tkzVecKNorm[5](#2,#3){tkz@pt2}
- % \tkzDefEquilateral(tkz@pt2,tkz@pt1)
- % \tkzVecKNorm(#2,tkzPointResult){tkzPointResult}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Out BisectorLine
-%<--------------------------------------------------------------------------–>
-\def\tkzDefBisectorOutLine(#1,#2,#3){%
-\begingroup
- \tkzVecKNorm(#2,#1){tkz@pt1}
- \tkzVecKNorm[-1](#2,#3){tkz@pt2}
- \tkzDefEquilateral(tkz@pt2,tkz@pt1)\tkzGetPoint{tkz@pt3}
- \tkzVecKNorm(#2,tkz@pt3){tkzPointResult}
-\endgroup
-}
-%<-------------------------------------------------------------------------–>
-\def\tkzLabelLine{\pgfutil@ifnextchar[{\tkz@AddLabelLine}{%
- \tkz@AddLabelLine[]}}
-\def\tkz@AddLabelLine[#1](#2,#3)#4{
- \path (#2) to node[#1]{#4}(#3);
-}
-%<--------------------------------------------------------------------------–>
-% Setup Line
-%<--------------------------------------------------------------------------–>
-
-\tikzset{line style/.style={%
- line width = \tkz@euc@linewidth,
- color = \tkz@euc@linecolor,
- style = \tkz@euc@linestyle,
- add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}}}
-\pgfkeys{%
-setupline/.cd,
-line width/.code = {\global\edef\tkz@line@lw{#1}},
-color/.code = {\global\edef\tkz@line@color{#1}},
-style/.code = {\global\edef\tkz@line@style{#1}},
-add/.code args = {#1 and #2} {\global\edef\tkz@line@left{#1}%
- \global\edef\tkz@line@right{#2} }
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzSetUpLine{\pgfutil@ifnextchar[{\tkzActivOff\tkz@SetUpLine}{%
- \tkzActivOff\tkz@SetUpLine[]}}
-%<--------------------------------------------------------------------------–>
-\def\tkz@SetUpLine[#1]{%
-\tkzActivOff
-\pgfkeys{%
-setupline/.cd,
-line width = \tkz@euc@linewidth,
-color = \tkz@euc@linecolor,
-style = \tkz@euc@linestyle,
-add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}}
-\pgfqkeys{/setupline}{#1}
-\tikzset{line style/.style={%
- color = \tkz@line@color,
- line width = \tkz@line@lw,
- style = \tkz@line@style,
- add = {\tkz@line@left} and {\tkz@line@right}
- }}
-}%
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% Draw line
-%<--------------------------------------------------------------------------–>
-\pgfkeys{%
-tkzdrawline/.cd,
-start/.code = {\def\tkz@line@start{#1}},%
-end/.code = {\def\tkz@line@end{#1}},
-start style/.code ={\tikzset{tkzstartstyle/.style={#1}}},
-end style/.code ={\tikzset{tkzendstyle/.style={#1}}},
- /tkzdrawline/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}
- }
-
-\def\tkzDrawLine{\pgfutil@ifnextchar[{\tkz@DrawLine}{%
- \tkz@DrawLine[]}}
-\def\tkz@DrawLine[#1](#2,#3){%
-\begingroup
-\pgfkeys{%
-tkzdrawline/.cd,
-start = {} ,
-end = {} ,
-start style={},
-end style={},}
-\pgfqkeys{/tkzdrawline}{#1}
-\draw[ line style,/tkzdrawline/.cd,#1] (#2) to%
- node [at start,left,/tkzdrawline/.cd,tkzstartstyle] {\tkz@line@start}%
- node [at end,right,/tkzdrawline/.cd,tkzendstyle] {\tkz@line@end} (#3);
-\endgroup
-}%
-%<--------------------------------------------------------------------------–>
-\def\tkz@multiLines#1 #2\@nil{%
- \protected@edef\tkz@temp{
- \noexpand \tkzDrawLine[\tkz@optline](#1)}\tkz@temp%
- \def\tkz@nextArg{#2}%
- \ifx\tkzutil@empty\tkz@nextArg
- \let\next\@gobble
- \fi
- \next#2\@nil
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawLines{\pgfutil@ifnextchar[{\tkz@DrawLines}{%
- \tkz@DrawLines[]}}
-\def\tkz@DrawLines[#1](#2){%
-\global\edef\tkz@optline{#1}
-\begingroup
- \let\next\tkz@multiLines
- \next#2 \@nil %
-\endgroup
-}%
-
- %<--------------------------------------------------------------------------–>
-%<--------------------------- The SHOW --------------------------------–>
-%<--------------------------------------------------------------------------–>
-\global\def\tkz@numsh{0}
-\pgfkeys{/show/.cd,
- mediator/.code =\global\def\tkz@numsh{0},
- perpendicular/.code args={through #1} {\global\def\tkz@numsh{1}%
- \global\def\tkz@through{#1}},
- orthogonal/.code args={through #1} {\global\def\tkz@numsh{1}%
- \global\def\tkz@through{#1}},
- parallel/.code args={through #1}{\global\def\tkz@numsh{2}%
- \global\def\tkz@through{#1}},
- bisector/.code = \global\def\tkz@numsh{3},
- K/.code = \def\tkz@koeff{#1},
- length/.code = \def\tkz@show@length{#1},
- ratio/.code = \def\tkz@show@ratio{#1},
- gap/.code = \def\tkz@show@gap{#1},
- size/.code = \def\tkz@show@size{#1},
- /show/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /compass/\searchname/.retry=#1,
- /tikz/\searchname/.retry=#1}}
- }
-
-\def\tkzShowLine{\pgfutil@ifnextchar[{\tkz@ShowLine}{%
- \tkz@ShowLine[]}}
-\def\tkz@ShowLine[#1](#2){%
-\begingroup
-\pgfqkeys{/show}{K=1,gap=2,ratio=.5,length=1,size=1}
-\pgfqkeys{/show}{#1}
-\ifcase\tkz@numsh%
- % first case 0
- \tkzShowMediatorLine[#1](#2)
- \or% 1
- \tkzShowOrthLine[#1](#2)(\tkz@through)
- \or% 2
- \tkzShowLLLine[#1](#2)(\tkz@through)
- \or% 3
- \tkzShowBisectorLine[#1](#2)
-\fi
-\endgroup
-}
-
-\def\tkzShowMediatorLine{\pgfutil@ifnextchar[{\tkz@ShowMediatorLine}{%
- \tkz@ShowMediatorLine[]}}
-\def\tkz@ShowMediatorLine[#1](#2,#3){%
-\begingroup
-\pgfkeys{%
-show/.cd,
-gap = 2,
-ratio = .5,
-length = 1
-}
-\pgfkeys{show/.cd,#1}
- \path (#2) -- (#3) coordinate[pos=.5](tkzmidpoint);
- \tkzURotateAngle(#2,60)(#3)\tkzGetPoint{tkzFirstPointResult}
- \tkzURotateAngle(#3,60)(#2)\tkzGetPoint{tkzSecondPointResult}
- \tkz@VecKOrthNorm[1](tkzmidpoint,#2){MED@tmp1}
- \tkz@VecKOrthNorm[1](tkzmidpoint,#3){MED@tmp2}
- \tkz@VecKNorm[\tkz@show@gap](tkzmidpoint,MED@tmp1){MED@1}
- \tkz@VecKNorm[\tkz@show@gap](tkzmidpoint,MED@tmp2){MED@2}
- \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#2,MED@1)
- \tkzCompass[#1](#3,MED@1)
- \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#2,MED@2)
- \tkzCompass[#1](#3,MED@2)
-\endgroup
-}
-\def\tkzShowLLLine{\pgfutil@ifnextchar[{\tkz@ShowLLLine}{%
- \tkz@ShowLLLine[]}}
-\def\tkz@ShowLLLine[#1](#2,#3)(#4){%
-\begingroup
-\pgfkeys{show/.cd,gap=2,ratio=.75,length=1}
-\pgfkeys{show/.cd,#1}
- \tkz@VecKCoLinear[1](#2,#3,#4){tkz@lltmp}
- \tkzCompass[#1](#4,tkz@lltmp)
- \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,tkz@lltmp)
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-% tkzLineOrth
-%<--------------------------------------------------------------------------–>
-% pas de projection ortho car le point peut être sur la droite.
-% manque les tests . Il faudrait voir si on peut projeter et choisir
-\def\tkzShowOrthLine{\pgfutil@ifnextchar[{\tkz@ShowOrthLine}{%
- \tkz@ShowOrthLine[]}}
-\def\tkz@ShowOrthLine[#1](#2,#3)(#4){%
- \begingroup
-\pgfkeys{show/.cd,ratio=.75,length=1,gap=-1} % ????
-\pgfkeys{show/.cd,#1} %????
- \tkzVecKOrth(#2,#3){tkz@OLtmp}
- \tkz@VecKCoLinear[1](#2,tkz@OLtmp,#4){tkzPointCo}
- \tkzInterLL(#2,#3)(#4,tkzPointCo)\tkzGetPoint{tkzPOpoint}
- \tkzCalcLength(#4,tkzPOpoint)\tkzGetLength{tkz@mathLen}
- \tkz@VecKNorm[1](#2,#3){PO@tmp}
- \tkz@VecKCoLinear[1](#2,PO@tmp,tkzPOpoint){PO@tmp2}
- \tkz@VecKCoLinear[-1](#2,PO@tmp,tkzPOpoint){PO@tmp1}
- \tkz@VecKCoLinear[2](tkzPOpoint,PO@tmp1,tkzPOpoint){PO@1}
- \tkz@VecKCoLinear[2](tkzPOpoint,PO@tmp2,tkzPOpoint){PO@2}
- \ifdim\tkz@mathLen pt>10 pt\relax
- \tkz@VecKNorm[1](#4,tkzPOpoint){PO@tmp1}
- \else
- \tkz@VecKOrthNorm[1](tkzPOpoint,PO@2){PO@tmp1}
- \fi
- \tkz@VecKCoLinear[-\tkz@show@gap](PO@tmp1,tkzPOpoint,tkzPOpoint){PO@3}
- \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](#4,PO@1)
- \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](#4,PO@2)
- \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](PO@1,PO@3)
- \tkzCompass[#1,length=\tkz@show@length](PO@2,PO@3)
- \endgroup
- }
-%<-------------------------------------------------------------------------–>
-% bisector Line
-%<-------------------------------------------------------------------------–>
-\def\tkzShowBisectorLine{\pgfutil@ifnextchar[{\tkz@ShowBisectorLine}{%
- \tkz@ShowBisectorLine[]}}
-\def\tkz@ShowBisectorLine[#1](#2,#3,#4){%
-\begingroup
-\pgfkeys{show/.cd,gap=2,ratio=.5,length=1,size=1}
-\pgfkeys{show/.cd,#1}
- \tkzVecKNorm(#3,#2){tkz@pt1}
- \tkzVecKNorm(#3,#4){tkz@pt2}
- \tkzDefEquilateral(tkz@pt2,tkz@pt1)\tkzGetPoint{tkz@pt3}
- \tkzVecKNorm(#3,tkz@pt3){tkzBisPoint}
- \tkzVecKNorm[\tkz@show@size](#3,#2){BI@1}
- \tkzVecKNorm[\tkz@show@size](#3,#4){BI@2}
- \tkzVecK[\tkz@show@gap](#3,tkzBisPoint){tkzBisPoint}
- \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](#3,BI@1)
- \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](#3,BI@2)
- \tkzCompass[#1,length=\tkz@show@length](BI@1,tkzBisPoint)
- \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](BI@2,tkzBisPoint)
- \endgroup
-}
-
-%<-------------------------------------------------------------------------–>
-%<-------------------------------------------------------------------------–>
-
-\endinput
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-polygons.tex
deleted file mode 100644
index 6f7f5441bf..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-polygons.tex
+++ /dev/null
@@ -1,278 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 c}
-\def\filedate{2011/06/01}
-
-
-%<--------------------------------------------------------------------------–>
-% Polygon
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawPolygon{\pgfutil@ifnextchar[{\tkz@DrawPolygon}{%
- \tkz@DrawPolygon[]}}
-\def\tkz@DrawPolygon[#1](#2,#3){%
-\begingroup
-\draw[line style,#1] (#2)
- \foreach \tkz@pt in {#3}{--(\tkz@pt)}--cycle;%
-\endgroup
-}
-%<---------------------------- CLIP --------------------------------–>
-%
-%<--------------------------------------------------------------------------–>
-\def\tkzClipPolygon(#1,#2){\path[clip] (#1)
- \foreach \pt in {#2}{--(\pt)}--cycle;
-}
-%<---------------------------- FILL --------------------------------–>
-%
-%<--------------------------------------------------------------------------–>
-\def\tkzFillPolygon{\pgfutil@ifnextchar[{\tkz@FillPolygon}{%
- \tkz@FillPolygon[]}}
-\def\tkz@FillPolygon[#1](#2,#3){%
- \begingroup
- \fill[#1] (#2)
-\foreach \tkz@pt in {#3}{--(\tkz@pt)}--cycle;%
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-% Triangle Equilateral
-%<--------------------------------------------------------------------------–>
-\def\tkzDefEquilateral(#1,#2){
-\begingroup
- \tkzURotateAngle(#1,60)(#2)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-
-\def\tkzDrawEquilateral{\pgfutil@ifnextchar[{\tkz@Equilateral}{%
- \tkz@Equilateral[]}}
-
-\def\tkz@Equilateral[#1](#2,#3){%
-\begingroup
- \tkzURotateAngle(#2,60)(#3)
- \tkzDrawPolygon[#1](#2,#3,tkzPointResult)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Triangle OneTwo
-%<--------------------------------------------------------------------------–>
-\def\tkzPhi{1.618034}
-\def\tkzInvPhi{0.618034}
-\def\tkzSqrtPhi{1.27202}
-
-\def\tkzDefTwoOne(#1,#2){
-\begingroup
- \tkzVecKOrth[-.5](#2,#1){tkzPointResult}
-\endgroup
-}
-\def\tkzDefPythagore(#1,#2){
-\begingroup
- \tkzVecKOrth[-0.75](#2,#1){tkzPointResult}
-\endgroup
-}
-\def\tkzDefSchoolTriangle(#1,#2){
-\begingroup
- \tkzURotateAngle(#1,30)(#2)
- \tkzVecKOrth[-1](#2,#1){tkz@a}
- \tkzInterLL(#1,tkzPointResult)(#2,tkz@a)
-\endgroup
-}
-\def\tkzDefGoldTriangle(#1,#2){
-\begingroup
- \tkzURotateAngle(#1,36)(#2)
-\endgroup
-}
-\def\tkzDefEuclideTriangle(#1,#2){
-\begingroup
- \tkzURotateAngle(#1,72)(#2)
- \tkzUHomo(#1,\tkzPhi)(tkzPointResult)
-\endgroup
-}
-\def\tkzDefGoldenTriangle(#1,#2){
-\begingroup
- \tkzVecKOrth[-\tkzInvPhi](#2,#1){tkzPointResult}
-\endgroup
-}
-\def\tkzDefCheopsTriangle(#1,#2){
-\begingroup
-\tkzDefMidPoint(#1,#2)
- \tkzVecKOrth[-\tkzSqrtPhi](tkzPointResult,#1){tkzPointResult}
-\endgroup
-}
-\def\tkzDefTwoAnglesTriangle(#1,#2){
-\begingroup
- \tkzURotateAngle(#1,\tkz@alpha)(#2) \tkzGetPoint{tkz@pta}
- \tkzURotateAngle(#2,-\tkz@beta)(#1) \tkzGetPoint{tkz@ptb}
- \tkzInterLL(#1,tkz@pta)(#2,tkz@ptb)
-\endgroup
-}
-\def\tkz@numtr{0}
-\pgfkeys{/deftriangle/.cd,
-equilateral/.code = \global\def\tkz@numtr{0},
-half/.code = \global\def\tkz@numtr{1},
-pythagore/.code = \global\def\tkz@numtr{2},
-school/.code = \global\def\tkz@numtr{3},
-golden/.code = \global\def\tkz@numtr{4},
-euclide/.code = \global\def\tkz@numtr{5},
-gold/.code = \global\def\tkz@numtr{6},
-cheops/.code = \global\def\tkz@numtr{7},
-two angles/.code args={#1 and #2} { \global\def\tkz@numtr{8}%
- \global\def\tkz@alpha{#1}%
- \global\def\tkz@beta{#2}}
-}
-
-\def\tkzDefTriangle{\pgfutil@ifnextchar[{\tkz@DefTriangle}{%
- \tkz@DefTriangle[]}}
-\def\tkz@DefTriangle[#1](#2,#3){%
-\begingroup
-\pgfkeys{/deftriangle/.cd,equilateral}
-\pgfqkeys{/deftriangle}{#1}
-\ifcase\tkz@numtr%
- \tkzDefEquilateral(#2,#3)
- \or% 1
- \tkzDefTwoOne(#2,#3)
- \or% 2
- \tkzDefPythagore(#2,#3)
- \or% 3
- \tkzDefSchoolTriangle(#2,#3)
- \or% 4
- \tkzDefGoldenTriangle(#2,#3)
- \or% 5
- \tkzDefEuclideTriangle(#2,#3)
- \or% 6
- \tkzDefGoldTriangle(#2,#3)
- \or% 7
- \tkzDefCheopsTriangle(#2,#3)
- \or% 8
- \tkzDefTwoAnglesTriangle(#2,#3) \fi
-\endgroup
-}
-
-\def\tkz@numdtr{0}
-\pgfkeys{/drawtriangle/.cd,
-equilateral/.code = {\global\def\tkz@numdtr{0}},
-half/.code = {\global\def\tkz@numdtr{1}},
-pythagore/.code = {\global\def\tkz@numdtr{2}},
-school/.code = {\global\def\tkz@numdtr{3}},
-golden/.code = {\global\def\tkz@numdtr{4}},
-euclide/.code = {\global\def\tkz@numdtr{5}},
-gold/.code = {\global\def\tkz@numdtr{6}},
-cheops/.code = {\global\def\tkz@numdtr{7}},
-two angles/.code args={#1 and #2} { \global\def\tkz@numdtr{8}%
- \global\def\tkz@alpha{#1}%
- \global\def\tkz@beta{#2}},
-/drawtriangle/.unknown/.code ={\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}
-}
-
-\def\tkzDrawTriangle{\pgfutil@ifnextchar[{\tkz@DrawTriangle}{%
- \tkz@DrawTriangle[]}}
-\def\tkz@DrawTriangle[#1](#2,#3){%
-\begingroup
-\pgfkeys{/drawtriangle/.cd,equilateral}
-\pgfqkeys{/drawtriangle}{#1}
-\ifcase\tkz@numdtr%
-\tkzDefEquilateral(#2,#3)
-\or% 1
-\tkzDefTwoOne(#2,#3)
-\or% 2
-\tkzDefPythagore(#2,#3)
-\or% 3
-\tkzDefSchoolTriangle(#2,#3)
-\or% 4
-\tkzDefGoldenTriangle(#2,#3)
-\or% 5
-\tkzDefEuclideTriangle(#2,#3)
-\or% 6
-\tkzDefGoldTriangle(#2,#3)
-\or% 7
-\tkzDefCheopsTriangle(#2,#3)
-\or% 8
-\tkzDefTwoAnglesTriangle(#2,#3)
-\fi
- \draw[/drawtriangle/.cd,line style,#1] (#2)--(#3)--(tkzPointResult)--cycle;%
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-% Droites particulières d'un triangle
-%<--------------------------------------------------------------------------–>
-% median
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawMedian{\pgfutil@ifnextchar[{\tkz@Median}{\tkz@Median[]}}
-\def\tkz@Median[#1](#2,#3)(#4){%
-\begingroup
- \tkzDefMidPoint(#3,#2)
- \tkzDrawLine[add= 0 and 0,#1](#4,tkzPointResult)
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-% altitude
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawAltitude{\pgfutil@ifnextchar[{\tkz@Altitude}{\tkz@Altitude[]}}
-\def\tkz@Altitude[#1](#2,#3)(#4){%
-\begingroup
- \tkzUProjection(#2,#3)(#4)
- \tkzDrawLine[add= 0 and 0,#1](#4,tkzPointResult)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% bisector
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawBisector{\pgfutil@ifnextchar[{\tkz@Bisector}{\tkz@Bisector[]}}
-\def\tkz@Bisector[#1](#2,#3,#4){%
-\begingroup
- \tkzDefBisectorLine(#2,#3,#4)
- \tkzInterLL(#2,#4)(#3,tkzPointResult)
- \tkzDrawLine[add= 0 and 0,#1](#3,tkzPointResult)
-\endgroup
-}
-
-
-%<--------------------------- square ---------------------------------–>
-%
-%<--------------------------------------------------------------------------–>
-\def\tkzDefSquare(#1,#2){
-\begingroup
- \tkzURotateAngle(#2,-90)(#1)\tkzGetPoint{tkzFirstPointResult}
- \tkzURotateAngle(#1, 90)(#2)\tkzGetPoint{tkzSecondPointResult}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawSquare{\pgfutil@ifnextchar[{\tkz@DrawSquare}{%
- \tkz@DrawSquare[]}}
-
-\def\tkz@DrawSquare[#1](#2,#3){%
-\begingroup
- \tkzDefSquare(#2,#3)
- \tkzDrawPolygon[#1](#2,#3,tkzFirstPointResult,tkzSecondPointResult)
-\endgroup
-}
-%<--------------------------- gold rectangle -------------------------------–>
-%
-%<--------------------------------------------------------------------------–>
-
-\def\tkzDefGoldRectangle(#1,#2){
-\begingroup
- \tkzVecKOrth[-\tkzInvPhi](#2,#1){tkzFirstPointResult}
- \tkzVecKOrth[\tkzInvPhi](#1,#2){tkzSecondPointResult}
-\endgroup
-}
-\def\tkzDrawGoldRectangle{\pgfutil@ifnextchar[{\tkz@DrawGoldRectangle}{%
- \tkz@DrawGoldRectangle[]}}
-
-\def\tkz@DrawGoldRectangle[#1](#2,#3){
-\begingroup
- \tkzDefGoldRectangle(#2,#3)
- \tkzDrawPolygon[#1](#2,#3,tkzFirstPointResult,tkzSecondPointResult)
-\endgroup
-}
-
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-vectors.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-vectors.tex
deleted file mode 100644
index 15637a8e97..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-obj-vectors.tex
+++ /dev/null
@@ -1,119 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 c}
-\def\filedate{2011/06/01}
-
- %<--------------------------------------------------------------------------–>
-% Vectors
-%<--------------------------------------------------------------------------–>
-
-%<-------------------------------------------------------------------------–>
-%<-------------------------------------------------------------------------–>
-\def\tkzAddVectors(#1,#2)(#3,#4)#5{%
- \begingroup
- \pgfpointdiff{\pgfpointanchor{#3}{center}}%
- {\pgfpointanchor{#4}{center}}%
- \pgf@xb=\pgf@x%
- \pgf@yb=\pgf@y%
- \path[coordinate] (#2)--+(\pgf@xb,\pgf@yb) coordinate (#5);
- \endgroup
- }
-%<--------------------------------------------------------------------------–>
-% Draw vector
-%<--------------------------------------------------------------------------–>
-\tikzset{vector style/.style={>=latex,->}}
-\pgfkeys{
-/tkzvec/.cd,
-mark options/.code =\tikzset{mkstyle/.style={#1}}%
- \global\edef\tkz@mk@arg{#1},
-label options/.code =\tikzset{lbstyle/.style={#1}}%
- \global\edef\tkz@lb@arg{#1},
- /tkzvec/.unknown/.code ={\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /tikz/\searchname/.retry=#1}}
-}
-\def\tkzDrawVector{\pgfutil@ifnextchar[{\tkz@DrawVector}{%
- \tkz@DrawVector[]}}
- \def\tkz@DrawVector[#1](#2,#3){%
-\begingroup
-\pgfkeys{/tkzvec/.cd,mark options={},label options={}}
-\pgfqkeys{/tkzvec}{#1}
-% \ifx\tkzutil@empty\tkz@line@symbol
- \draw[vector style,#1] (#2) to (#3);
-% \else
-% \draw[vector style,line style,add=0 and 0,#1](#2) to node[sloped]
-% {\textcolor{\tkz@line@colorsymbol}{\tkz@line@symbol}}(#3);
-% \fi
-% \ifx\tkzutil@empty\tkz@line@label
-% \else
-% \path (#2) to node[above=\tkz@line@poslabel]%
-% {\textcolor{\tkz@line@colorlabel}{\tkz@line@label}}(#3);
-% \fi\fi
- \endgroup
-}
-%<-------------------------------------------------------------------------–>
-%<-------------------------------------------------------------------------–>
-
-\def\tkzLabelVector{\pgfutil@ifnextchar[{\tkz@LabelVector}{%
- \tkz@LabelVector[]}}
-\def\tkz@LabelVector[#1](#2,#3)#4{%
-\begingroup
-\path (#2) to node[above,#1]{#4} (#3) ;
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% multiple
-\def\tkz@multiLV#1 #2\@nil{%
- \protected@edef\tkz@temp{
- \noexpand \tkzLabelVector[\tkz@optlv](#1){\tkz@labelvec}}\tkz@temp%
- \def\tkz@nextArg{#2}%
- \ifx\tkzutil@empty\tkz@nextArg
- \let\next\@gobble
- \fi
- \next#2\@nil
-}
-%<--------------------------------------------------------------------------–>
-% correction 09/12/2010
-\def\tkzLabelVectors{\pgfutil@ifnextchar[{\tkz@LabelVectors}{%
- \tkz@LabelVectors[]}}
-\def\tkz@LabelVectors[#1](#2)#3{%
-\global\edef\tkz@optlv{#1}
-\global\def\tkz@labelvec{#3}
- \begingroup
- \let\next\tkz@multiLV
- \next#2 \@nil %
-\endgroup
-}
-%<-------------------------------------------------------------------------–>
-%<-------------------------------------------------------------------------–>
-
- \def\tkz@multiVec#1 #2\@nil{%
- \protected@edef\tkz@temp{
- \noexpand \tkzDrawVector[\tkz@optvec](#1)}\tkz@temp%
- \def\tkz@nextArg{#2}%
- \ifx\tkzutil@empty\tkz@nextArg
- \let\next\@gobble
- \fi
- \next#2\@nil
- }
-
-\def\tkzDrawVectors{\pgfutil@ifnextchar[{\tkz@DrawVectors}{%
- \tkz@DrawVectors[]}}
-\def\tkz@DrawVectors[#1](#2){%
-\global\edef\tkz@optvec{#1}
- \begingroup
- \let\next\tkz@multiVec
- \next#2 \@nil %
- \endgroup
- }
-
-
-%<-------------------------------------------------------------------------–>
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-tools-transformations.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-tools-transformations.tex
deleted file mode 100644
index fd7b14f112..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkzeuclide/tkz-tools-transformations.tex
+++ /dev/null
@@ -1,525 +0,0 @@
-% Copyright 2011 by Alain Matthes
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-
-
-\def\fileversion{1.16 c}
-\def\filedate{2011/06/01}
-
-
-%<--------------------------------------------------------------------------–>
-% Transformations Géométriques
-%<--------------------------------------------------------------------------–>
-\def\tkz@numtrsf{0}
-\pgfkeys{/tkzDefPointBy/.cd,
-translation/.code args={from #1 to #2}{%
- \global\def\tkzfrom{#1}%
- \global\def\tkzto{#2}%
- \global\def\tkz@numtrsf{0}},
- homothety/.code args={center #1 ratio #2}{%
- \global\def\tkzcenter{#1}%
- \global\def\tkzratio{#2}%
- \global\def\tkz@numtrsf{1}},
- reflection/.code args={over #1--#2}{%
- \global\def\tkzdeb{#1}%
- \global\def\tkzfin{#2}%
- \global\def\tkz@numtrsf{2}},
- symmetry/.code args={center #1}{%
- \global\def\tkzcenter{#1}%
- \global\def\tkz@numtrsf{3}},
- projection/.code args={onto #1--#2}{%
- \global\def\tkzdeb{#1}%
- \global\def\tkzfin{#2}%
- \global\def\tkz@numtrsf{4}},
- rotation/.code args={center #1 angle #2}{%
- \global\def\tkzcenter{#1}%
- \global\def\tkzangle{#2}%
- \global\def\tkz@numtrsf{5}},
- rotation in rad/.code args={center #1 angle #2}{%
- \global\def\tkzcenter{#1}%
- \global\def\tkzangle{#2}%
- \global\def\tkz@numtrsf{6}},
-inversion/.code args={center #1 through #2}{%
- \global\def\tkzcenter{#1}%
- \global\def\tkzpoint{#2}%
- \global\def\tkz@numtrsf{7}}
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDefPointsBy{\pgfutil@ifnextchar[{\tkz@DefPointsBy}{%
- \tkz@DefPointsBy[]}}
-\def\tkz@DefPointsBy[#1](#2)#3{%
-\begingroup
-\pgfqkeys{/tkzDefPointBy}{#1}
-\ifcase\tkz@numtrsf%
- % first case 0
- \tkzTranslation(\tkzfrom,\tkzto)(#2){#3}
- \or% 1
- \tkzHomo(\tkzcenter,\tkzratio)(#2){#3}
- \or% 2
- \tkzSymOrth(\tkzdeb,\tkzfin)(#2){#3}
- \or% 3
- \tkzCSym(\tkzcenter)(#2){#3}
- \or% 4
- \tkzProjection(\tkzdeb,\tkzfin)(#2){#3}
- \or% 5
- \tkzRotateAngle(\tkzcenter,\tkzangle)(#2){#3}
- \or% 6
- \tkzRotateInRad(\tkzcenter,\tkzangle)(#2){#3}
- \or% 7
- \tkzInversePoint(\tkzcenter,\tkzpoint)(#2){#3}
-\fi
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzDefPointBy{\pgfutil@ifnextchar[{\tkz@DefPointBy}{%
- \tkz@DefPointBy[]}}
-\def\tkz@DefPointBy[#1](#2){%
-\begingroup
-\pgfqkeys{/tkzDefPointBy}{#1}
- \ifcase\tkz@numtrsf%
-% % first case 0
- \tkzUTranslation(\tkzfrom,\tkzto)(#2)
- \or% 1
- \tkzUHomo(\tkzcenter,\tkzratio)(#2)
-\or% 2
-\tkzUSymOrth(\tkzdeb,\tkzfin)(#2)
-\or% 3
-\tkzUCSym(\tkzcenter)(#2)
-\or% 4
-\tkzUProjection(\tkzdeb,\tkzfin)(#2)
-\or% 5
-\tkzURotateAngle(\tkzcenter,\tkzangle)(#2)
- \or% 6
-\tkzURotateInRad(\tkzcenter,\tkzangle)(#2)
- \or% 7
-\tkzUInversePoint(\tkzcenter,\tkzpoint)(#2)
-\fi
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\ExtractPoint#1,#2\@nil{%
-\global\edef\tkz@LastList{#2}
-\global\edef\tkz@FirstPoint{#1}
-}
-\def\FirstPointInList#1{%
-\edef\tkz@templist{#1,}
-\expandafter\ExtractPoint\tkz@templist\@nil
-}
-%<--------------------------------------------------------------------------–>
-% Translation par rapport à un point
-%<--------------------------------------------------------------------------–>
-\def\tkzTranslation(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointTR in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointTR '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \tkzVecKCoLinear(#1,#2,\PointTR){\tkz@pointtsf}%
-}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUTranslation(#1,#2)(#3){%
-\begingroup
- \tkzVecKCoLinear(#1,#2,#3){tkzPointResult}%
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-% Symétrie par rapport à un point Homo with (-1)
-% #2 le centre #3 l'antécédent
-%<--------------------------------------------------------------------------–>
-\def\tkzCSym(#1)(#2)#3{%
-\begingroup
-\global\def\tkz@LastList{#3}
- \foreach\PointCS in {#2}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointCS '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{\PointCS}{center}}%
- \tkz@ax=\pgf@x%
- \tkz@ay=\pgf@y%
- \path(#1)--++(-\tkz@ax,-\tkz@ay)coordinate (\tkz@pointtsf);
-}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUCSym(#1)(#2){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
- \tkz@ax=\pgf@x%
- \tkz@ay=\pgf@y%
- \path(#1)--++(-\tkz@ax,-\tkz@ay)coordinate (tkzPointResult);
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Symétrie orthogonale par rapport à une droite
-%<--------------------------------------------------------------------------–>
-\def\tkzSymOrth(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointSO in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointSO '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
- \tkz@ax =\pgf@y%
- \tkz@ay =\pgf@x%
- \path[coordinate]%
- (\PointSO)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
- \tkzInterLL(#1,#2)(\PointSO,tkz@point)\tkzGetPoint{tkzPointofSym}
- \tkz@VecK[2](\PointSO,tkzPointofSym){\tkz@pointtsf}
-}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUSymOrth(#1,#2)(#3){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
- \tkz@ax =\pgf@y%
- \tkz@ay =\pgf@x%
- \path[coordinate]%
- (#3)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
- \tkzInterLL(#1,#2)(#3,tkz@point)\tkzGetPoint{tkzPointofSym}
- \tkz@VecK[2](#3,tkzPointofSym){tkzPointResult}
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-% Projection orthogonale sur une droite
-%<--------------------------------------------------------------------------–>
-\def\tkzProjection(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointPJ in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointPJ '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \tkzUProjection(#1,#2)(\PointPJ)
- \tkzGetPoint{\tkz@pointtsf}
- }
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUProjection(#1,#2)(#3){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
- \tkz@ax =\pgf@y%
- \tkz@ay =\pgf@x%
- \path[coordinate](#3)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
- \tkzInterLL(#1,#2)(#3,tkz@point)% définit tkzPointResult
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkz@Projection(#1,#2)(#3)#4{%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#2}{center}}%
- \tkz@ax =\pgf@y%
- \tkz@ay =\pgf@x%
- \path[coordinate](#3)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
- \tkz@InterLL(#1,#2)(#3,tkz@point){#4}% définit tkzPointResult
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Homothétie par rapport à un point
-%<--------------------------------------------------------------------------–>
-\def\tkzHomo(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointHO in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointHO '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{\PointHO}{center}}%
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \pgfmathparse{#2}\edef\tkz@coeff{\pgfmathresult}%
- \path[coordinate](#1)--++(\tkz@coeff\pgf@xa,\tkz@coeff\pgf@ya)%
- coordinate(\tkz@pointtsf);
- }
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUHomo(#1,#2)(#3){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
- {\pgfpointanchor{#3}{center}}%
- \pgf@xa=\pgf@x%
- \pgf@ya=\pgf@y%
- \pgfmathparse{#2}\edef\tkz@coeff{\pgfmathresult}%
- \path[coordinate](#1)--++(\tkz@coeff\pgf@xa,\tkz@coeff\pgf@ya)%
- coordinate(tkzPointResult);
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% rotation en degré
-%<--------------------------------------------------------------------------–>
-\def\tkzRotateAngle(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointRot in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointRot '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \tkz@@extractxy{\PointRot}
- \global\tkz@ax\pgf@x%
- \global\tkz@ay\pgf@y%
- \tkz@@extractxy{#1}
- \global\tkz@bx\pgf@x%
- \global\tkz@by\pgf@y%
- \tkzmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
- {\pgfpoint{\tkz@bx}{\tkz@by}}%
- {#2}
- \global\tkz@bx\pgf@x%
- \global\tkz@by\pgf@y%
- \path[coordinate](\tkz@bx,\tkz@by)coordinate(\tkz@pointtsf);%
- }
- \endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzURotateAngle(#1,#2)(#3){%
-\begingroup
- \tkz@@extractxy{#3}
- \global\tkz@ax\pgf@x%
- \global\tkz@ay\pgf@y%
- \tkz@@extractxy{#1}
- \global\tkz@bx\pgf@x%
- \global\tkz@by\pgf@y%
- \tkzmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
- {\pgfpoint{\tkz@bx}{\tkz@by}}%
- {#2}
- \global\tkz@bx\pgf@x%
- \global\tkz@by\pgf@y%
- \path[coordinate](\tkz@bx,\tkz@by)coordinate(tkzPointResult);%
- \endgroup
-}
-%<--------------------------------------------------------------------------–>
-% % rotation en radian
-% %<--------------------------------------------------------------------------–>
-\def\tkzRotateInRad(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointRot in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointRot '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \pgfmathparse{#2 r}
- \let\tkz@Angle\pgfmathresult
- \tkz@@extractxy{\PointRot}
- \tkz@ax\pgf@x%
- \tkz@ay\pgf@y%
- \tkz@@extractxy{#1}
- \tkz@bx\pgf@x%
- \tkz@by\pgf@y%
- \tkzmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
- {\pgfpoint{\tkz@bx}{\tkz@by}}%
- {\tkz@Angle}
- \tkz@bx\pgf@x%
- \tkz@by\pgf@y%
- \path[coordinate](\tkz@bx,\tkz@by)coordinate(\tkz@pointtsf);
-}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzURotateInRad(#1,#2)(#3){%
-\begingroup
- \pgfmathparse{#2 r}
- \let\tkz@Angle\pgfmathresult
- \tkz@@extractxy{#3}
- \tkz@ax\pgf@x%
- \tkz@ay\pgf@y%
- \tkz@@extractxy{#1}
- \tkz@bx\pgf@x%
- \tkz@by\pgf@y%
- \tkzmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
- {\pgfpoint{\tkz@bx}{\tkz@by}}%
- {\tkz@Angle}
- \tkz@bx\pgf@x%
- \tkz@by\pgf@y%
- \path[coordinate](\tkz@bx,\tkz@by)coordinate(tkzPointResult);
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Inverse of a point
-%<--------------------------------------------------------------------------–>
-\def\tkzInversePoint(#1,#2)(#3)#4{%
-\begingroup
-\global\def\tkz@LastList{#4}
- \foreach\PointIP in {#3}{%
- \FirstPointInList\tkz@LastList
- \ifx\tkz@FirstPoint\tkzutil@empty
- \global\edef\tkz@pointtsf{\PointIP '}
- \else
- \global\edef\tkz@pointtsf{\tkz@FirstPoint}
- \fi
- \tkzCalcLength[cm](#1,#2)\tkzGetLength{tkz@lna}%
- \tkzCalcLength[cm](#1,\PointIP)\tkzGetLength{tkz@lnb}%
- \FPeval\tkz@lnc{\tkz@lna/\tkz@lnb*\tkz@lna}
- \tkzVecKNorm[\tkz@lnc](#1,\PointIP){tkzPointResult}
- }
-\endgroup
-} \def\tkzUInversePoint(#1,#2)(#3){%
-\begingroup
- \tkzCalcLength[cm](#1,#2)\tkzGetLength{tkz@lna}%
- \tkzCalcLength[cm](#1,#3)\tkzGetLength{tkz@lnb}%
- \FPeval\tkz@lnc{\tkz@lna/\tkz@lnb*\tkz@lna}
- \tkzVecKNorm[\tkz@lnc](#1,#3){tkzPointResult}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% Fin des transformations
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% The SHOW
-%<--------------------------------------------------------------------------–>
-\def\tkz@numst{0}
-\pgfkeys{/showtsf/.cd,
- reflection/.code args={over #1--#2}{%
- \def\tkzdeb{#1}
- \def\tkzfin{#2}
- \def\tkz@numst{0}},
- symmetry/.code args={center #1}{%
- \def\tkzcenter{#1}
- \def\tkz@numst{1}},
- projection/.code args={onto #1--#2}{%
- \def\tkzdeb{#1}
- \def\tkzfin{#2}
- \def\tkz@numst{2}},
-translation/.code args={from #1 to #2}{%
- \def\tkzfrom{#1}%
- \def\tkzto{#2}%
- \def\tkz@numst{3}},
- K/.code = \def\tkz@koeff{#1},
- length/.code = \def\tkz@show@length{#1},
- ratio/.code = \def\tkz@show@ratio{#1},
- gap/.code = \def\tkz@show@gap{#1},
- size/.code = \def\tkz@show@size{#1},
-/showtsf/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1,
- /compass/\searchname/.retry=#1,
- /tikz/\searchname/.retry=#1}}
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzShowTransformation{\pgfutil@ifnextchar[{\tkz@ShowTransformation}{%
- \tkz@ShowTransformation[]}}
-\def\tkz@ShowTransformation[#1](#2){%
-\begingroup
- \pgfqkeys{/showtsf}{K=1,gap=2,size=1,ratio=.5,length=1}
- \pgfqkeys{/showtsf}{#1}
-\ifcase\tkz@numst%
- % first case 0
- \tkzShowSymOrth[#1](\tkzdeb,\tkzfin)(#2)
- \or% 1
- \tkzShowCSym[#1](\tkzcenter)(#2)
- \or% 2
- \tkzShowProjection[#1](\tkzdeb,\tkzfin)(#2)
- \or% 3
- \tkzShowTranslation[#1](\tkzfrom,\tkzto)(#2)
- \fi
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzShowTranslation{\pgfutil@ifnextchar[{\tkz@ShowTranslation}{%
- \tkz@ShowTranslation[]}}
-
-\def\tkz@ShowTranslation[#1](#2,#3)(#4){%
-\begingroup
-\tkz@VecKCoLinear[1](#2,#3,#4){tkz@lltmp}
-\tkzCompass[#1](#4,tkz@lltmp)
-\tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,tkz@lltmp)
-\endgroup}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzShowSymOrth{\pgfutil@ifnextchar[{\tkz@ShowSymOrth}{%
- \tkz@ShowSymOrth[]}}
-\def\tkz@ShowSymOrth[#1](#2,#3)(#4){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#2}{center}}%
- {\pgfpointanchor{#3}{center}}%
- \tkz@ax =\pgf@y%
- \tkz@ay =\pgf@x%
- \path[coordinate](#4)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
- \tkzInterLL(#2,#3)(#4,tkz@point) \tkzGetPoint{tkzPointofSym}
- \tkz@VecK[2](#4,tkzPointofSym){tkz@pointtsf}
- \tkzCompass[#1](#2,#4)
- \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,#4)
- \tkzCompass[#1](#2,tkz@pointtsf)
- \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,tkz@pointtsf)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzShowCSym{\pgfutil@ifnextchar[{\tkz@ShowCSym}{\tkz@ShowCSym[]}}
-
-\def\tkz@ShowCSym[#1](#2)(#3){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#2}{center}}%
- {\pgfpointanchor{#3}{center}}%
- \tkz@ax=\pgf@x%
- \tkz@ay=\pgf@y%
-\path[coordinate](#2)--++(-\tkz@ax,-\tkz@ay) coordinate (tkz@pointtsf);
- \tkzCompass[#1](#2,tkz@pointtsf)
- \tkzCompass[#1](#2,#3)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzShowProjection{\pgfutil@ifnextchar[{\tkz@ShowProjection}{%
- \tkz@ShowProjection[]}}
-\def\tkz@ShowProjection[#1](#2,#3)(#4){%
-\begingroup
- \pgfpointdiff{\pgfpointanchor{#2}{center}}%
- {\pgfpointanchor{#3}{center}}%
- \tkz@ax =\pgf@y%
- \tkz@ay =\pgf@x%
- \path[coordinate](#4)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
- \tkzInterLL(#2,#3)(#4,tkz@point)\tkzGetPoint{tkz@pointtsf}
- \tkz@VecKCoLinear[1](#2,#3,tkz@pointtsf){SO@tmp1}
- \tkz@VecKCoLinear[-1](#2,#3,tkz@pointtsf){SO@tmp2}
- \tkz@VecKNorm[\tkz@show@size](tkz@pointtsf,SO@tmp1){SO@1}
- \tkz@VecKNorm[\tkz@show@size](tkz@pointtsf,SO@tmp2){SO@2}
- \tkz@VecKNorm[-\tkz@show@gap](tkz@pointtsf,#4){SO@3}
- \tkzCompass[#1](#4,SO@1)
- \tkzCompass[#1](#4,SO@2)
- \tkzCompass[#1](SO@1,SO@3)
- \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](SO@2,SO@3)
-\endgroup
-}
-
-\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/readme-tkz-euclide-fr.txt b/macros/latex/contrib/tkz/tkz-euclide/readme-tkz-euclide-fr.txt
deleted file mode 100644
index 7a7947f67a..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/readme-tkz-euclide-fr.txt
+++ /dev/null
@@ -1,107 +0,0 @@
-% encodage utf8
-------------------- french lisez-moi ! --------------------------------------
- readme-tkz-euclide.txt V1.16 c 01/06/2011
-
-Objet
------
-tkz-euclide.sty est un package qui remplace tkz-2d, et qui permet de dessiner
- des figures géométriques en deux dimensions. Il utilise un repère cartésien
- orthogonal fourni par le package tkz-base.sty. Il est principalement conçu
- pour faire des figures de géométrie euclidienne.
-
-
-Licence
--------
-LaTeX Project Public License
-
-Contraintes
-----------
- -- ce package nécessite etex et fp.sty et le dossier tkzbase;
- -- bien sûr, PGF/TikZ doit être installé en version 2.1 ;
- -- ce package fonctionne avec utf8 et pdflatex;
- -- la chaîne dvi->dvips->ps2pdf est aussi possible;
- -- il ne fonctionne pas encore avec TeX et ConTeXt;
-
-Installation
-------------
-Si vous voulez installer ce package à la main pour tester une version beta, il
- suffit de placer le dossier tkzeuclide décompressé dans un dossier tkz (par
- exemple) ici : /texmf/tex/latex/tkz, à côté du dossier tkzbase.
-Le plus simple est de récupérer l'archive tkz.zip qui contient l'ensemble de
- mes packages liés à tkz-base.
-
-Ce projet est constitué de nombreux fichiers qu'il est préférable de laisser
- dans un même dossier tkzeuclide. Ce dossier contient les fichiers suivants :
-
- -- tkz-euclide.sty
- -- tkz-obj-addpoints.tex
- -- tkz-obj-angles.tex
- -- tkz-obj-arcs.tex
- -- tkz-obj-circles.tex
- -- tkz-obj-lines.tex
- -- tkz-obj-protractor.tex
- -- tkz-obj-polygons.tex
- -- tkz-obj-sectors.tex
- -- tkz-obj-segments.tex
- -- tkz-obj-vectors.tex
- -- tkz-tools-intersections.tex
- -- tkz-tools-transformations.tex
- -- tkz-lib-symbols.tex
-
-tkz-euclide utilise aussi les fichiers du dossier tkzbase:
-
- -- tkz-base.sty
- -- tkz-base.cfg
- -- tkz-tools-misc.tex
- -- tkz-tools-arith.tex
- -- tkz-tools-math.tex
- -- tkz-tools-base.tex
- -- tkz-tools-utilities.tex
- -- tkz-obj-segments.tex
- -- tkz-obj-points.tex
- -- tkz-obj-marks.tex
-
-Fonctionnement
--------------
-Son fonctionnement s'obtient par
-\usepackage{tkz-euclide}
-\usetkzobj{all}
-
-Ce package charge tkz-base et TikZ. \usetkzobj{all} charge tous les objets
- utilisables par tkz-euclide, parmi ces objets, il y a les cercles ou encore
- les rapporteurs. Si vous n'utilisez qu'un seul type d'objet, vous pouvez
- charger que celui-ci : \usetkzobj{circles} pour les cercles.
-
-il est nécessaire de charger xcolor.sty avant tkz-euclide, si vous en avez
- besoin, afin d'éviter des conflits entre packages.
-
-Documentation
--------------
- tkz-euclide-screen.pdf est actuellement en français, mais de nombreux
- exemples sont donnés.
-Une documentation destinée à l'impression sera bientôt prête. Vous trouverez
- ces fichiers sur mes sites :
- http://altermundus.fr ou http://altermundus.com
-
-Exemples
---------
- Tous les exemples donnés dans la documentation sont stockés sur mes sites
- sous forme de fichiers individuels, prêts pour être compilés.
-
-Compatibilité
--------------
-Ce nouveau package est incompatible avec les anciens packages tkz-2d.
-
-
-Historique des versions
--------
-
--- 1.16 correction of bugs
--- 1.13 first version
-
- Alain Matthes
- 5 rue de Valence
- Paris 75005
-
- al (dot) ma (at) mac (dot) com
- \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/readme-tkz-euclide.txt b/macros/latex/contrib/tkz/tkz-euclide/readme-tkz-euclide.txt
deleted file mode 100644
index 83b97a18fb..0000000000
--- a/macros/latex/contrib/tkz/tkz-euclide/readme-tkz-euclide.txt
+++ /dev/null
@@ -1,124 +0,0 @@
-% encodage utf8
--------------------- english readme ----------------------------------------
-readme-tkz-euclide.txt V1.16 c 01/06/2011
-
-tkz-euclide is a replacement package for the original tkz-2d package.
-tkz-euclide uses the Cartesian (rectangular) coordinate system provided by the
-package tkz-base.sty. It is designed to create figures based on Euclidean
- geometry.
-
-Licence
--------
-
-This program can be redistributed and/or modified under the terms
-of the LaTeX Project Public License Distributed from CTAN
-archives in directory macros/latex/base/lppl.txt.
-
-
-Features
---------
- -- needs etex and fp.sty;
- -- requires and automatically loads PGF/TikZ 2.1;
- -- compiles with utf8, pdflatex;
- -- compiles using the chain dvi->dvips->ps2pdf;
- -- not yet ready for use with TeX and ConText (I need more time and ideas);
-
-Installation
-------------
-
-You can experiment with the tkz-euclide package by placing all of the
-distribution files in the directory containing your current tex file.
-
-You can also placing all of the distribution files in the directory :
-/texmf/tex/latex/tkz.
-
-tkz-euclide.sty uses a lot of files. The directory tkzeuclide contains the
- following files :
-
- -- tkz-euclide.sty
- -- tkz-lib-symbols.tex
- -- tkz-obj-addpoints.tex
- -- tkz-obj-angles.tex
- -- tkz-obj-arcs.tex
- -- tkz-obj-circles.tex
- -- tkz-obj-lines.tex
- -- tkz-obj-protractor.tex
- -- tkz-obj-polygons.tex
- -- tkz-obj-sectors.tex
- -- tkz-obj-segments.tex
- -- tkz-obj-vectors.tex
- -- tkz-tools-intersections.tex
- -- tkz-tools-transformations.tex
-
-tkz-euclide also uses the files in the directory tkzbase:
-
- -- tkz-base.cfg
- -- tkz-obj-segments.tex
- -- tkz-tools-misc.tex
- -- tkz-base.sty
- -- tkz-tools-arith.tex
- -- tkz-tools-obsolete.tex
- -- tkz-obj-marks.tex tkz-tools-base.tex
- -- tkz-tools-utilities.tex
- -- tkz-obj-points.tex
- -- tkz-tools-math.tex
-
-How to use it
--------------
-
-To use the package tkz-euclide, place the following lines in the preamble of
- your LaTeX document.
-
-\usepackage{tkz-euclide}
-\usetkzobj{all}
-
-\usepackage{tkz-euclide} loads tkz-base and TikZ. \usetkzobj{all} loads all
- objects used by tkz-euclide.
-
-If you don't need to use all of the objects provided by tkz-euclide, you can
- load just the ones you need.
-
-\usepackage{tkz-euclide}
-\usetkzobj}{circles,polygons}
-
-This loads two specific objects, circles and polygons.
-
-If you use the xcolor package, load that package before tkz-euclide to avoid
- package conflicts.
-
-\usepackage[usenames,dvipsnames]{xcolor}
-\usepackage{amsmath,tkz-euclide,tkz-fct}
-\usetkzobj{all}
-
-
-Documentation
--------------
- Documentation for tkz-euclide and tkz-base is available on my sites:
-
- http://altermundus.fr (en français) or http://altermundus.fr (in english)
- Documentation for printing will be ready soon.
-
-Examples
---------
- All examples given in documentation will be stored on my sites as standalone
- files, ready for compilation.
-
-Compatibility
--------------
-
-The new package tkz-euclide is *not* compatible with older packages tkz-base,
- tkz-2d, and tkz-arith.
-
-History
--------
-
--- 1.16 correction of bugs
--- 1.13 first version
-
- Alain Matthes
- 5 rue de Valence
- Paris 75005
-
- al (dot) ma (at) mac (dot) com
-
- \ No newline at end of file