summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex')
-rw-r--r--Master/texmf-dist/doc/latex/aomart/README12
-rw-r--r--Master/texmf-dist/doc/latex/aomart/aomart.pdfbin510453 -> 515456 bytes
-rw-r--r--Master/texmf-dist/doc/latex/aomart/aomfrench.pdfbin219065 -> 219065 bytes
-rw-r--r--Master/texmf-dist/doc/latex/aomart/aomsample.bib3
-rw-r--r--Master/texmf-dist/doc/latex/aomart/aomsample.pdfbin517984 -> 509807 bytes
-rw-r--r--Master/texmf-dist/doc/latex/aomart/aomsample.tex2
-rw-r--r--Master/texmf-dist/doc/latex/aomart/aomsample1.pdfbin517970 -> 509813 bytes
-rw-r--r--Master/texmf-dist/doc/latex/aomart/aomsample1.tex2
-rw-r--r--Master/texmf-dist/doc/latex/aomart/fullref.pl62
-rw-r--r--Master/texmf-dist/doc/latex/beamertheme-simpleplus/README.md25
-rw-r--r--Master/texmf-dist/doc/latex/beamertheme-simpleplus/beamertheme-simpleplus-sample.pdfbin37296 -> 113274 bytes
-rw-r--r--Master/texmf-dist/doc/latex/beamertheme-simpleplus/beamertheme-simpleplus-sample.tex29
-rw-r--r--Master/texmf-dist/doc/latex/beamertheme-simpleplus/reference.bib9
-rw-r--r--Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia-fr.pdfbin0 -> 237306 bytes
-rw-r--r--Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia-fr.tex202
-rw-r--r--Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia.pdfbin0 -> 188917 bytes
-rw-r--r--Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia.tex197
-rw-r--r--Master/texmf-dist/doc/latex/beamerthemecelestia/README.md17
-rw-r--r--Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia-fr.pdfbin0 -> 106076 bytes
-rw-r--r--Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia-fr.tex156
-rw-r--r--Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia.pdfbin0 -> 103429 bytes
-rw-r--r--Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia.tex156
-rw-r--r--Master/texmf-dist/doc/latex/beamertools/README39
-rw-r--r--Master/texmf-dist/doc/latex/beamertools/beamertools.pdfbin0 -> 190650 bytes
-rw-r--r--Master/texmf-dist/doc/latex/fillpages/GFM-FP-LogoS.pdf69
-rw-r--r--Master/texmf-dist/doc/latex/fillpages/GFM-FP-LogoS.svg77
-rw-r--r--Master/texmf-dist/doc/latex/fillpages/README.md16
-rw-r--r--Master/texmf-dist/doc/latex/fillpages/fillpages-documentation.pdfbin0 -> 114627 bytes
-rw-r--r--Master/texmf-dist/doc/latex/fillpages/fillpages-documentation.tex201
-rw-r--r--Master/texmf-dist/doc/latex/keytheorems/CHANGELOG.md6
-rw-r--r--Master/texmf-dist/doc/latex/keytheorems/keytheorems-doc.pdfbin161806 -> 169165 bytes
-rw-r--r--Master/texmf-dist/doc/latex/keytheorems/keytheorems-doc.tex46
-rw-r--r--Master/texmf-dist/doc/latex/latex-via-exemplos/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/latex-via-exemplos/changelog.txt2
-rw-r--r--Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-abntex2.tex4
-rw-r--r--Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-abntexto.tex4
-rw-r--r--Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.pdfbin1626971 -> 1605040 bytes
-rw-r--r--Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.tex953
-rw-r--r--Master/texmf-dist/doc/latex/neoschool/README.md13
-rw-r--r--Master/texmf-dist/doc/latex/neoschool/neoschool-fr.pdfbin0 -> 259250 bytes
-rw-r--r--Master/texmf-dist/doc/latex/neoschool/neoschool-fr.tex1398
-rw-r--r--Master/texmf-dist/doc/latex/neoschool/neoschool.pdfbin0 -> 242652 bytes
-rw-r--r--Master/texmf-dist/doc/latex/neoschool/neoschool.tex1629
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/doc-more/page-typesetting-columns.pdfbin40803 -> 40806 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/1-criticalendnotes.pdfbin201562 -> 219395 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/1-criticalnotes.pdfbin197818 -> 217547 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/1-sidenotes.pdfbin295212 -> 317623 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/1-tabular.pdfbin285559 -> 302262 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/1-verses-doublenumbering.pdfbin198959 -> 218932 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/1-verses.pdfbin198796 -> 218765 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-antilabe.pdfbin210970 -> 226860 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-cross_referencing.pdfbin198303 -> 217557 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-footnote_spacing.pdfbin201445 -> 221183 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-glossaries.pdfbin285501 -> 304556 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-indexing.pdfbin278069 -> 293298 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-lemma_disambigution.pdfbin276219 -> 296361 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-line_numbers_in_header.pdfbin292435 -> 310971 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-linespacing.pdfbin286624 -> 308961 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-manuscript-apparatus.pdfbin288122 -> 311175 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-notes-width.pdfbin204669 -> 224507 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-one_series_per_pstart.pdfbin212239 -> 228665 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-performances.pdfbin284580 -> 304513 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-reledmac-right-to-left.pdfbin36941 -> 36941 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-subdivision-number-in-header.pdfbin310601 -> 326572 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-titles_in_line_numbering_with_notes.pdfbin288795 -> 307141 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/2-titles_not_in_line_numbering.pdfbin199919 -> 215983 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_columns_different_languages.pdfbin23442 -> 23452 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_mwe.pdfbin175645 -> 192015 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdfbin32049 -> 32049 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdfbin289211 -> 308067 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdfbin200045 -> 200045 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdfbin199281 -> 199281 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_default.pdfbin177110 -> 177110 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdfbin199684 -> 199684 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nomax.pdfbin198615 -> 198615 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nosync.pdfbin198673 -> 198673 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_shifted.pdfbin198798 -> 198798 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdfbin214375 -> 231239 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_column_mix_with_not_column.pdfbin210491 -> 230473 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_columns_alignment.pdfbin204973 -> 221264 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdfbin298425 -> 316537 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_inside-outside-columns.pdfbin204015 -> 220259 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_one_series_per_pstart.pdfbin225554 -> 241756 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_long_notes.pdfbin251039 -> 268264 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_notes_leftpage.pdfbin202382 -> 222395 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdfbin198565 -> 218311 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdfbin302779 -> 321302 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdfbin206948 -> 223098 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_verse_text_between.pdfbin194201 -> 214060 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/migration.pdfbin368426 -> 368426 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/reledmac.pdfbin2161963 -> 2162003 bytes
-rw-r--r--Master/texmf-dist/doc/latex/reledmac/reledpar.pdfbin1040784 -> 1040784 bytes
-rw-r--r--Master/texmf-dist/doc/latex/scrlayer-fancyhdr/LICENSE.md2
-rw-r--r--Master/texmf-dist/doc/latex/scrlayer-fancyhdr/README.md17
-rw-r--r--Master/texmf-dist/doc/latex/scrlayer-fancyhdr/scrlayer-fancyhdr.pdfbin330252 -> 332839 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tabularray-abnt/changelog.txt4
-rw-r--r--Master/texmf-dist/doc/latex/tabularray-abnt/tabularray-abnt-pt-br.pdfbin87407 -> 88342 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tabularray-abnt/tabularray-abnt-pt-br.tex2
-rw-r--r--Master/texmf-dist/doc/latex/tikz-bpmn/README.md10
-rw-r--r--Master/texmf-dist/doc/latex/tikz-bpmn/tikz-bpmn-doc.pdfbin0 -> 53303 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tikz-bpmn/tikz-bpmn-doc.tex333
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/README.md19
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex1092
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex970
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-misc.tex75
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-parallelogram.tex2
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex62
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-quadrilateral.tex1
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-regular.tex6
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-square.tex7
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex87
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-convention.tex2
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex1079
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-indepthstudy.tex239
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-intersection.tex2
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-inversion.tex2
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex365
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-news.tex8
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-organization.tex64
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex5
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-theorems.tex747
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transfers.tex47
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/examples/search_circle.lua29
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.pdfbin20614 -> 20614 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.tex4
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.pdfbin16396 -> 16396 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.tex4
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.pdfbin17162 -> 17130 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.tex11
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.pdfbin11341 -> 11335 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.tex7
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_5.pdfbin0 -> 2432 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_5.tex28
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/search_circle.lua29
-rw-r--r--Master/texmf-dist/doc/latex/tkz-elements/tkz-elements.pdfbin851403 -> 970429 bytes
-rw-r--r--Master/texmf-dist/doc/latex/yb-book/DEPENDS.txt3
-rw-r--r--Master/texmf-dist/doc/latex/yb-book/yb-book.pdfbin288050 -> 289702 bytes
137 files changed, 8940 insertions, 1755 deletions
diff --git a/Master/texmf-dist/doc/latex/aomart/README b/Master/texmf-dist/doc/latex/aomart/README
index f22da9e38b9..98d8b76627b 100644
--- a/Master/texmf-dist/doc/latex/aomart/README
+++ b/Master/texmf-dist/doc/latex/aomart/README
@@ -1,12 +1,22 @@
LaTeX Class for The Annals of Mathematics
Boris Veytsman
- Version 1.29
+ Version 1.30
This package provides the class for typesetting articles for The Annals
of Mathematics, http://annals.princeton.edu/.
Changes:
+ Version 1.30
+ Multiple citations now are typeset as [1], [2], [3] according
+ to the house style
+ Footnote marks are now in house style rather AMS style.
+ Tightened enumerate and itemize
+ Zbl and numbers for misc and unpublished entries are no longer
+ output
+ Renamed fullref.pl -> aom-fullref.pl as requested by TeXLive
+
+
Version 1.29
Changed the formatting of addresses at the end of the paper.
diff --git a/Master/texmf-dist/doc/latex/aomart/aomart.pdf b/Master/texmf-dist/doc/latex/aomart/aomart.pdf
index 96e9ab46e31..41ef1a0e437 100644
--- a/Master/texmf-dist/doc/latex/aomart/aomart.pdf
+++ b/Master/texmf-dist/doc/latex/aomart/aomart.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/aomart/aomfrench.pdf b/Master/texmf-dist/doc/latex/aomart/aomfrench.pdf
index 74aa017ebb9..b4035693b06 100644
--- a/Master/texmf-dist/doc/latex/aomart/aomfrench.pdf
+++ b/Master/texmf-dist/doc/latex/aomart/aomfrench.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/aomart/aomsample.bib b/Master/texmf-dist/doc/latex/aomart/aomsample.bib
index d0f8f4c0d46..61b4b4a556d 100644
--- a/Master/texmf-dist/doc/latex/aomart/aomsample.bib
+++ b/Master/texmf-dist/doc/latex/aomart/aomsample.bib
@@ -20,7 +20,7 @@
S{\'e}minaire Initiation {\`a} l'Analyse, G. Choquet, M. Rogalski, J.
Saint Raymond, at the Universit{\'e} Pierre et Marie Curie, Paris, 23e
ann{\'e}e.},
- year = {1983/194}
+ year = {1983/1984},
}
@@ -190,7 +190,6 @@ url = {http://www.math.leidenuniv.nl/~hwl/PUBLICATIONS/1973a/art.pdf}
}
-
@Unpublished{Minasyan08,
author = {A. Minasyan and D. Osin},
title = {Normal Automorphisms of Relatively Hyperbolic Groups},
diff --git a/Master/texmf-dist/doc/latex/aomart/aomsample.pdf b/Master/texmf-dist/doc/latex/aomart/aomsample.pdf
index 6669b99e2f0..d15da8b497d 100644
--- a/Master/texmf-dist/doc/latex/aomart/aomsample.pdf
+++ b/Master/texmf-dist/doc/latex/aomart/aomsample.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/aomart/aomsample.tex b/Master/texmf-dist/doc/latex/aomart/aomsample.tex
index 4009b77565c..6cc5ed011f7 100644
--- a/Master/texmf-dist/doc/latex/aomart/aomsample.tex
+++ b/Master/texmf-dist/doc/latex/aomart/aomsample.tex
@@ -1751,7 +1751,7 @@ agencies]{Department of Defense}{Special project Secret Defense}.
\bibliography{aomsample}
-\bibliographystyle{aomalpha}
+\bibliographystyle{aomplain}
\end{document}
\endinput
diff --git a/Master/texmf-dist/doc/latex/aomart/aomsample1.pdf b/Master/texmf-dist/doc/latex/aomart/aomsample1.pdf
index 2b6d8d5c5f2..602f2b78119 100644
--- a/Master/texmf-dist/doc/latex/aomart/aomsample1.pdf
+++ b/Master/texmf-dist/doc/latex/aomart/aomsample1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/aomart/aomsample1.tex b/Master/texmf-dist/doc/latex/aomart/aomsample1.tex
index 5558562436f..7e1354ba3aa 100644
--- a/Master/texmf-dist/doc/latex/aomart/aomsample1.tex
+++ b/Master/texmf-dist/doc/latex/aomart/aomsample1.tex
@@ -1750,7 +1750,7 @@ agencies]{Department of Defense}{Special project Secret Defense}.
\bibliography{aomsample}
-\bibliographystyle{aomalpha}
+\bibliographystyle{aomplain}
\end{document}
\endinput
diff --git a/Master/texmf-dist/doc/latex/aomart/fullref.pl b/Master/texmf-dist/doc/latex/aomart/fullref.pl
deleted file mode 100644
index 0eba808aa84..00000000000
--- a/Master/texmf-dist/doc/latex/aomart/fullref.pl
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/perl
-#
-# Convert the refences to \fullref. Usage:
-# perl fullref.pl original.tex > converted.tex
-#
-#
-# Copyright (C) 2010-2021 Annals of Mathematics. Licenses under CC0
-#
-# Author: Boris Veytsman
-#
-# Version: 0.9, 2010/12/04
-
-use strict;
-
-# List of patterns for 'equation' words
-my @eqsynonyms = ('\S*equa\S*', 'relat\S*', 'item\S*',
- 'condition\S*',
- '\S*propert\S*');
-
-# First we skip preamble
-while(<>) {
- print;
- last if (/\\begin\{document\}/);
-}
-
-# This is a trick to catch \ref being the first word on the line
-my $prevline = "";
-
-# Processing document
-while (<>) {
- if ((/^[\s~]*\(?\\ref/) || (/^[\s~]*\\eqref/)) {
- chomp $prevline;
- $_ = "$prevline $_";
- } else {
- print $prevline;
- }
-
- # Now the meat of the substitutions
- # We add initial space, so all words have space before them.
- $_ = " $_";
- foreach my $synonym (@eqsynonyms) {
- s/(\s)($synonym)[\s~]*\(\\ref\{([^\}]+)\}\)/$1\\pfullref{$2}{$3}/gi;
- s/(\s)($synonym)[\s~]*\\eqref\{([^\}]+)\}/$1\\eqfullref{$2}{$3}/gi;
- }
- s/(\s)([^\s\\]\S*[^~\s\(\)\[\]])[\s~]*\[\\ref\{([^\}]+)\}\]/$1\\bfullref{$2}{$3}/g;
- s/(\s)([^\s\\]\S*[^~\s\(\)\[\]])[\s~]*\\ref\{([^\}]+)\}/$1\\fullref{$2}{$3}/g;
- s/(\s)([^\s\\]\S*[^~\s\(\)\[\]])[\s~]*\\pageref\{([^\}]+)\}/$1\\fullpageref[$2]{$3}/g;
- # Now delete the extra space
- s/^ //;
- $prevline=$_;
- if (/\\end\{document\}/) {
- print;
- last;
- }
-}
-
-# And processing whatever is left
-while (<>) {
- print;
-}
-
-exit 0;
diff --git a/Master/texmf-dist/doc/latex/beamertheme-simpleplus/README.md b/Master/texmf-dist/doc/latex/beamertheme-simpleplus/README.md
index b39a3a02908..beacd9c471f 100644
--- a/Master/texmf-dist/doc/latex/beamertheme-simpleplus/README.md
+++ b/Master/texmf-dist/doc/latex/beamertheme-simpleplus/README.md
@@ -1,24 +1,11 @@
-# SimplePlus Beamer Theme
+# 🍃 SimplePlus Beamer Theme
-A simple and clean beamer template.
+The **SimplePlus Beamer Theme** is a minimalist and elegant LaTeX template tailored for academic and scientific presentations.
-**Website:**
-
-https://github.com/PM25/SimplePlus-BeamerTheme
-
-**Overleaf:**
-
-https://www.overleaf.com/latex/templates/simpleplus-beamertheme/wfmfjhdcrdfx
-
-**Author:**
-
-Pin-Yen Huang (pyhuang97@gmail.com)
-
-**Compiled sample document:**
-
-beamertheme-simpleplus-sample.pdf
+- Overleaf: https://www.overleaf.com/latex/templates/simpleplus-beamertheme/wfmfjhdcrdfx
+- CTAN: https://ctan.org/pkg/beamertheme-simpleplus
+- Github: https://github.com/pm25/SimplePlus-BeamerTheme
## License
-This is free and unencumbered software released into the public domain.
-For more information, please see the file `LICENSE` or refer to <http://unlicense.org>. \ No newline at end of file
+This project is released under the **Unlicense License**, granting you complete freedom to use, modify, and distribute the template. For more details, see the [LICENSE](./LICENSE) file. \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/beamertheme-simpleplus/beamertheme-simpleplus-sample.pdf b/Master/texmf-dist/doc/latex/beamertheme-simpleplus/beamertheme-simpleplus-sample.pdf
index 4f56de719a6..db798622861 100644
--- a/Master/texmf-dist/doc/latex/beamertheme-simpleplus/beamertheme-simpleplus-sample.pdf
+++ b/Master/texmf-dist/doc/latex/beamertheme-simpleplus/beamertheme-simpleplus-sample.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/beamertheme-simpleplus/beamertheme-simpleplus-sample.tex b/Master/texmf-dist/doc/latex/beamertheme-simpleplus/beamertheme-simpleplus-sample.tex
index 17e105a5b8c..f4751b31079 100644
--- a/Master/texmf-dist/doc/latex/beamertheme-simpleplus/beamertheme-simpleplus-sample.tex
+++ b/Master/texmf-dist/doc/latex/beamertheme-simpleplus/beamertheme-simpleplus-sample.tex
@@ -1,6 +1,7 @@
%----------------------------------------------------------------------------------------
-% PACKAGES AND THEMES
+% PACKAGES AND THEMES
%----------------------------------------------------------------------------------------
+
\documentclass[aspectratio=169,xcolor=dvipsnames]{beamer}
\usetheme{SimplePlus}
@@ -9,24 +10,23 @@
\usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables
%----------------------------------------------------------------------------------------
-% TITLE PAGE
+% TITLE PAGE
%----------------------------------------------------------------------------------------
-\title[short title]{Simple Beamer Theme} % The short title appears at the bottom of every slide, the full title is only on the title page
+\title{Simple Beamer Theme}
\subtitle{Subtitle}
-\author[Pin-Yen] {Pin-Yen Huang}
+\author{Pin-Yen Huang}
-\institute[NTU] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space
+\institute
{
Department of Computer Science and Information Engineering \\
National Taiwan University % Your institution for the title page
}
-\date{Dec 16, 2021} % Date, can be changed to a custom date
-
+\date{\today} % Date, can be changed to a custom date
%----------------------------------------------------------------------------------------
-% PRESENTATION SLIDES
+% PRESENTATION SLIDES
%----------------------------------------------------------------------------------------
\begin{document}
@@ -86,7 +86,7 @@
\item Example
\end{enumerate}
- \column{.5\textwidth} % Right column and width
+ \column{.45\textwidth} % Right column and width
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer lectus nisl, ultricies in feugiat rutrum, porttitor sit amet augue. Aliquam ut tortor mauris. Sed volutpat ante purus, quis accumsan dolor.
\end{columns}
@@ -140,14 +140,9 @@
%------------------------------------------------
\begin{frame}{References}
- % Beamer does not support BibTeX so references must be inserted manually as below
- \footnotesize{
- \begin{thebibliography}{99}
- \bibitem[Smith, 2012]{p1} John Smith (2012)
- \newblock Title of the publication
- \newblock \emph{Journal Name} 12(3), 45 -- 678.
- \end{thebibliography}
- }
+ \footnotesize
+ \bibliography{reference.bib}
+ \bibliographystyle{apalike}
\end{frame}
%------------------------------------------------
diff --git a/Master/texmf-dist/doc/latex/beamertheme-simpleplus/reference.bib b/Master/texmf-dist/doc/latex/beamertheme-simpleplus/reference.bib
new file mode 100644
index 00000000000..20a1e8119ec
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/beamertheme-simpleplus/reference.bib
@@ -0,0 +1,9 @@
+@article{p1,
+ author = {John Smith},
+ title = {Title of the publication},
+ journal = {Journal Name},
+ year = {2012},
+ volume = {12},
+ number = {3},
+ pages = {45--678}
+} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia-fr.pdf b/Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia-fr.pdf
new file mode 100644
index 00000000000..046414445fa
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia-fr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia-fr.tex b/Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia-fr.tex
new file mode 100644
index 00000000000..bd094ec6987
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia-fr.tex
@@ -0,0 +1,202 @@
+\documentclass[%
+ 10pt,
+ french,
+ aspectratio=1610,
+ xcolor=svgnames
+]{beamer}
+
+\usetheme[
+ decorative,
+ nocodebox,
+ frametitle=plain,
+ margin=3em,
+ soberblock
+]{Celestia}
+
+\title{Le thème Celestia}
+\subtitle{v1.0.0}
+\author{Razik Ikhlef}
+\date{\today}
+
+\begin{document}
+
+\begin{frame}[plain]
+ \titlepage
+\end{frame}
+
+\begin{frame}[fragile]{Polices}
+ \begin{description}[mainfaceoptions]
+ \item[mainface] Police principale pour le texte et les titres (\alert{Literata} par défaut)
+ \item[mainfaceoptions] Options directement passées à \alert{fontspec} pour la police principale
+ \item[sansface] Police sans empattements pour les éléments structurels (\alert{Inter} par défaut)
+ \item[sansfaceoptions] Options passées à \alert{fontspec} pour la police sans empattements
+ \item[monoface] Police à chasse fixe pour le code (\alert{Roboto Mono} par défaut)
+ \item[monofaceoptions] Options passées à \alert{fontspec} pour la police à chasse fixe
+ \item[allserif] Utilise la police principale avec empattements pour les mathématiques
+ \end{description}
+
+ \begin{exampleblock}{Exemple}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ mainface=EB Garamond,
+ mainfaceoptions={Scale=1.1},
+ sansface=Montserrat,
+ monoface=Fira Code,
+ allserif
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[fragile]{Couleurs}
+ \begin{description}[codebackgroundcolor]
+ \item[maincolor] Couleur principale utilisée pour les titres et accents (code \alert{\LaTeX} svgname ou \alert{HTML} hexadécimal)
+ \item[accentcolor] Couleur secondaire pour les éléments spéciaux
+ \item[backgroundcolor] Couleur de fond des diapositives (\alert{F7F9FC} par défaut)
+ \item[codebackgroundcolor] Couleur de fond des blocs de code (\alert{F1F3F6} par défaut)
+ \item[mainblue] Couleur des blocs standards (\alert{045549} par défaut)
+ \item[maingreen] Couleur des blocs exemple (\alert{054924} par défaut)
+ \item[mainred] Couleur des blocs alerte (\alert{490445} par défaut)
+ \item[unicolor] Utilise la couleur principale pour tout le texte
+ \end{description}
+
+ \begin{exampleblock}{Exemple}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ maincolor=045549,
+ accentcolor=E63946,
+ backgroundcolor=FAFAFA,
+ codebackgroundcolor=F5F5F5
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[fragile]{Mise en page}
+ \begin{description}[centeredtitle]
+ \item[margin] Marge du contenu (\alert{2em} par défaut)
+ \item[frametitle] Style du titre (\alert{elegant}, \alert{plain}, \alert{centered})
+ \item[decorative] Active les éléments décoratifs
+ \item[nodecorative] Désactive les éléments décoratifs
+ \item[centeredtitle] Centre le titre sur la page de titre
+ \item[titleright] Aligne le titre à droite
+ \end{description}
+
+ \begin{exampleblock}{Exemple}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ margin=1.5em,
+ frametitle=centered,
+ decorative,
+ centeredtitle
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[fragile]{En-têtes}
+ \begin{description}[headweight]
+ \item[headstyle] Famille de police pour les titres : \alert{rmfamily} (avec empattements) ou \alert{sffamily} (sans empattements)
+ \item[headshape] Style des caractères : \alert{sc} (petites capitales), \alert{it} (italique), \alert{normal}
+ \item[headweight] Graisse des titres : \alert{bfseries} (gras) ou \alert{mdseries} (normal)
+ \end{description}
+
+ \begin{exampleblock}{Exemple}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ headstyle=sffamily,
+ headshape=sc,
+ headweight=bfseries
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[fragile]{Code}
+ \begin{description}[nocodeframe]
+ \item[codebox] Active l'encadrement du code avec \alert{tcolorbox} (\alert{true} par défaut)
+ \item[nocodebox] Désactive complètement l'encadrement \alert{tcolorbox} du code
+ \item[nocodeframe] Conserve \alert{tcolorbox} mais sans bordure visible
+ \end{description}
+
+ \begin{exampleblock}{Exemple}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ nocodebox,
+ nocodeframe
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[fragile]{Pied de page}
+ \begin{description}[quartercirclefooter]
+ \item[nofooter] Supprime entièrement le pied de page, sauf le numéro de diapositive
+ \item[quartercirclefooter] Affiche uniquement le numéro dans un quart de cercle en bas à droite
+ \item[fullbarfooter] Crée une barre complète avec auteur/titre/date et numéro dans un cercle
+ \end{description}
+
+ \begin{exampleblock}{Exemple}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ quartercirclefooter
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[fragile]{Table des matières}
+ \begin{description}[twocolumntoc]
+ \item[compacttoc] Réduit l'espacement vertical entre les entrées de la table
+ \item[twocolumntoc] Répartit automatiquement les sections sur deux colonnes équilibrées
+ \end{description}
+
+ \begin{exampleblock}{Exemple}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ compacttoc,
+ twocolumntoc
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}{Blocs}
+ \begin{description}[exampleblock]
+ \item[block] Bloc standard pour le contenu normal
+ \item[exampleblock] Bloc pour les exemples
+ \item[alertblock] Bloc pour les alertes
+ \end{description}
+
+ \begin{block}{Bloc standard}Contenu d'un bloc standard\end{block}
+ \begin{exampleblock}{Bloc exemple}Contenu d'un bloc exemple\end{exampleblock}
+ \begin{alertblock}{Bloc alerte}Contenu d'un bloc alerte\end{alertblock}
+\end{frame}
+
+\begin{frame}[fragile]{Style des blocs}
+ \begin{description}[soberblock]
+ \item[soberblock] Le titre adopte la couleur principale du bloc (mainblue/maingreen/mainred) sur le fond général du document, tandis que le corps garde un fond légèrement teinté (10\%)
+ \item[softblock] Le titre et le corps partagent le même fond légèrement teinté (10\%), avec le titre dans la couleur principale correspondante
+ \end{description}
+
+ \begin{exampleblock}{Exemple}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ soberblock % Titre coloré sur fond document
+]{Celestia}
+
+% ou
+
+\usetheme[
+ softblock % Titre coloré sur fond 10%
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+
+\end{frame}
+
+\begin{frame}[standout]{Pages d'emphase}
+ L'option \emph{standout} transforme une diapositive en page d'emphase, idéale pour les moments clés de la présentation : citations marquantes, chiffres essentiels, messages à retenir
+\end{frame}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia.pdf b/Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia.pdf
new file mode 100644
index 00000000000..a5c29347990
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia.tex b/Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia.tex
new file mode 100644
index 00000000000..40c658d8c72
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/beamerthemecelestia/Celestia.tex
@@ -0,0 +1,197 @@
+\documentclass[10pt,english,aspectratio=1610,xcolor=svgnames]{beamer}
+
+\usetheme[
+ decorative,
+ nocodebox,
+ frametitle=plain,
+ margin=3em,
+ soberblock
+]{Celestia}
+
+\title{The Celestia Theme}
+\subtitle{v1.0.0}
+\author{Razik Ikhlef}
+\date{\today}
+
+\begin{document}
+
+\begin{frame}[plain]
+ \titlepage
+\end{frame}
+
+\begin{frame}[fragile]{Fonts}
+ \begin{description}[mainfaceoptions]
+ \item[mainface] Main font for text and titles (\alert{Literata} by default)
+ \item[mainfaceoptions] Options directly passed to \alert{fontspec} for the main font
+ \item[sansface] Sans-serif font for structural elements (\alert{Inter} by default)
+ \item[sansfaceoptions] Options passed to \alert{fontspec} for the sans-serif font
+ \item[monoface] Monospace font for code (\alert{Roboto Mono} by default)
+ \item[monofaceoptions] Options passed to \alert{fontspec} for the monospace font
+ \item[allserif] Uses the main serif font for mathematics
+ \end{description}
+
+ \begin{exampleblock}{Example}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ mainface=EB Garamond,
+ mainfaceoptions={Scale=1.1},
+ sansface=Montserrat,
+ monoface=Fira Code,
+ allserif
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[fragile]{Colors}
+ \begin{description}[codebackgroundcolor]
+ \item[maincolor] Main color used for titles and accents (\alert{\LaTeX} svgname or \alert{HTML} hexadecimal code)
+ \item[accentcolor] Secondary color for special elements
+ \item[backgroundcolor] Slide background color (\alert{F7F9FC} by default)
+ \item[codebackgroundcolor] Code block background color (\alert{F1F3F6} by default)
+ \item[mainblue] Standard block color (\alert{045549} by default)
+ \item[maingreen] Example block color (\alert{054924} by default)
+ \item[mainred] Alert block color (\alert{490445} by default)
+ \item[unicolor] Uses the main color for all text
+ \end{description}
+
+ \begin{exampleblock}{Example}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ maincolor=045549,
+ accentcolor=E63946,
+ backgroundcolor=FAFAFA,
+ codebackgroundcolor=F5F5F5
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[fragile]{Layout}
+ \begin{description}[centeredtitle]
+ \item[margin] Content margin (\alert{2em} by default)
+ \item[frametitle] Title style (\alert{elegant}, \alert{plain}, \alert{centered})
+ \item[decorative] Enables decorative elements
+ \item[nodecorative] Disables decorative elements
+ \item[centeredtitle] Centers the title on the title page
+ \item[titleright] Right-aligns the title
+ \end{description}
+
+ \begin{exampleblock}{Example}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ margin=1.5em,
+ frametitle=centered,
+ decorative,
+ centeredtitle
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[fragile]{Headers}
+ \begin{description}[headweight]
+ \item[headstyle] Font family for titles: \alert{rmfamily} (serif) or \alert{sffamily} (sans-serif)
+ \item[headshape] Character style: \alert{sc} (small caps), \alert{it} (italic), \alert{normal}
+ \item[headweight] Title weight: \alert{bfseries} (bold) or \alert{mdseries} (normal)
+ \end{description}
+
+ \begin{exampleblock}{Example}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ headstyle=sffamily,
+ headshape=sc,
+ headweight=bfseries
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[fragile]{Code}
+ \begin{description}[nocodeframe]
+ \item[codebox] Enables code framing with \alert{tcolorbox} (\alert{true} by default)
+ \item[nocodebox] Completely disables \alert{tcolorbox} code framing
+ \item[nocodeframe] Keeps \alert{tcolorbox} but without visible border
+ \end{description}
+
+ \begin{exampleblock}{Example}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ nocodebox,
+ nocodeframe
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[fragile]{Footer}
+ \begin{description}[quartercirclefooter]
+ \item[nofooter] Completely removes the footer, except for the slide number
+ \item[quartercirclefooter] Displays only the number in a quarter circle at the bottom right
+ \item[fullbarfooter] Creates a complete bar with author/title/date and number in a circle
+ \end{description}
+
+ \begin{exampleblock}{Example}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ quartercirclefooter
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[fragile]{Table of Contents}
+ \begin{description}[twocolumntoc]
+ \item[compacttoc] Reduces vertical spacing between table of contents entries
+ \item[twocolumntoc] Automatically distributes sections across two balanced columns
+ \end{description}
+
+ \begin{exampleblock}{Example}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ compacttoc,
+ twocolumntoc
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}{Blocks}
+ \begin{description}[exampleblock]
+ \item[block] Standard block for normal content
+ \item[exampleblock] Block for examples
+ \item[alertblock] Block for alerts
+ \end{description}
+
+ \begin{block}{Standard block}Standard block content\end{block}
+ \begin{exampleblock}{Example block}Example block content\end{exampleblock}
+ \begin{alertblock}{Alert block}Alert block content\end{alertblock}
+\end{frame}
+
+\begin{frame}[fragile]{Block Styles}
+ \begin{description}[soberblock]
+ \item[soberblock] The title adopts the main block color (mainblue/maingreen/mainred) on the document's general background, while the body keeps a slightly tinted background (10%)
+ \item[softblock] The title and body share the same slightly tinted background (10%), with the title in the corresponding main color
+ \end{description}
+
+ \begin{exampleblock}{Example}
+ \begin{lstlisting}[style=latex]
+\usetheme[
+ soberblock % Colored title on document background
+]{Celestia}
+
+% or
+
+\usetheme[
+ softblock % Colored title on 10% background
+]{Celestia}
+ \end{lstlisting}
+ \end{exampleblock}
+
+\end{frame}
+
+\begin{frame}[standout]{Standout Pages}
+ The \texttt{standout} option transforms a slide into a standout page, ideal for key moments in the presentation: striking quotes, essential figures, take-away messages
+\end{frame}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/beamerthemecelestia/README.md b/Master/texmf-dist/doc/latex/beamerthemecelestia/README.md
new file mode 100644
index 00000000000..f8d3d0be1c2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/beamerthemecelestia/README.md
@@ -0,0 +1,17 @@
+# Celestia Beamer Theme
+
+## Description
+
+Celestia is a modern and elegant Beamer theme designed for academic and professional presentations. It offers a clean aesthetic with carefully chosen colors, typography, and layouts.
+
+## License
+
+Copyright 2025 Razik Ikhlef
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
diff --git a/Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia-fr.pdf b/Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia-fr.pdf
new file mode 100644
index 00000000000..bbea23cdd0f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia-fr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia-fr.tex b/Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia-fr.tex
new file mode 100644
index 00000000000..97ae22ad6c4
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia-fr.tex
@@ -0,0 +1,156 @@
+\documentclass[french]{neoschool}
+
+\title{Le thème Celestia}
+\subtitle{v1.0.0}
+\author{Razik Ikhlef}
+\date{\today}
+
+\begin{document}
+
+\maketitle
+
+\section{Polices}
+\begin{description}
+\item[mainface] Police principale pour le texte et les titres (\textcolor{titleColor}{Literata} par défaut)
+\item[mainfaceoptions] Options directement passées à \textcolor{titleColor}{fontspec} pour la police principale
+\item[sansface] Police sans empattements pour les éléments structurels (\textcolor{titleColor}{Inter} par défaut)
+\item[sansfaceoptions] Options passées à \textcolor{titleColor}{fontspec} pour la police sans empattements
+\item[monoface] Police à chasse fixe pour le code (\textcolor{titleColor}{Roboto Mono} par défaut)
+\item[monofaceoptions] Options passées à \textcolor{titleColor}{fontspec} pour la police à chasse fixe
+\item[allserif] Utilise la police principale avec empattements pour les mathématiques
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ mainface=EB Garamond,
+ mainfaceoptions={Scale=1.1},
+ sansface=Montserrat,
+ monoface=Fira Code,
+ allserif
+]{Celestia}
+\end{code}
+
+\section{Couleurs}
+\begin{description}
+\item[maincolor] Couleur principale utilisée pour les titres et accents (code \textcolor{titleColor}{LaTeX} svgname ou \textcolor{titleColor}{HTML} hexadécimal)
+\item[accentcolor] Couleur secondaire pour les éléments spéciaux
+\item[backgroundcolor] Couleur de fond des diapositives (\textcolor{titleColor}{F7F9FC} par défaut)
+\item[codebackgroundcolor] Couleur de fond des blocs de code (\textcolor{titleColor}{F1F3F6} par défaut)
+\item[mainblue] Couleur des blocs standards (\textcolor{titleColor}{045549} par défaut)
+\item[maingreen] Couleur des blocs exemple (\textcolor{titleColor}{054924} par défaut)
+\item[mainred] Couleur des blocs alerte (\textcolor{titleColor}{490445} par défaut)
+\item[unicolor] Utilise la couleur principale pour tout le texte
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ maincolor=045549,
+ accentcolor=E63946,
+ backgroundcolor=FAFAFA,
+ codebackgroundcolor=F5F5F5
+]{Celestia}
+\end{code}
+
+\section{Mise en page}
+\begin{description}
+\item[margin] Marge du contenu (\textcolor{titleColor}{2em} par défaut)
+\item[frametitle] Style du titre (\textcolor{titleColor}{elegant}, \textcolor{titleColor}{plain}, \textcolor{titleColor}{centered})
+\item[decorative] Active les éléments décoratifs
+\item[nodecorative] Désactive les éléments décoratifs
+\item[centeredtitle] Centre le titre sur la page de titre
+\item[titleright] Aligne le titre à droite
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ margin=1.5em,
+ frametitle=centered,
+ decorative,
+ centeredtitle
+]{Celestia}
+\end{code}
+
+\section{En-têtes}
+\begin{description}
+\item[headstyle] Famille de police pour les titres : \textcolor{titleColor}{rmfamily} (avec empattements) ou \textcolor{titleColor}{sffamily} (sans empattements)
+\item[headshape] Style des caractères : \textcolor{titleColor}{sc} (petites capitales), \textcolor{titleColor}{it} (italique), \textcolor{titleColor}{normal}
+\item[headweight] Graisse des titres : \textcolor{titleColor}{bfseries} (gras) ou \textcolor{titleColor}{mdseries} (normal)
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ headstyle=sffamily,
+ headshape=sc,
+ headweight=bfseries
+]{Celestia}
+\end{code}
+
+\section{Code}
+\begin{description}
+\item[codebox] Active l'encadrement du code avec \textcolor{titleColor}{tcolorbox} (\textcolor{titleColor}{true} par défaut)
+\item[nocodebox] Désactive complètement l'encadrement \textcolor{titleColor}{tcolorbox} du code
+\item[nocodeframe] Conserve \textcolor{titleColor}{tcolorbox} mais sans bordure visible
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ nocodebox,
+ nocodeframe
+]{Celestia}
+\end{code}
+
+\section{Pied de page}
+\begin{description}
+\item[nofooter] Supprime entièrement le pied de page, sauf le numéro de diapositive
+\item[quartercirclefooter] Affiche uniquement le numéro dans un quart de cercle en bas à droite
+\item[fullbarfooter] Crée une barre complète avec auteur/titre/date et numéro dans un cercle
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ quartercirclefooter
+]{Celestia}
+\end{code}
+
+\section{Table des matières}
+\begin{description}
+\item[compacttoc] Réduit l'espacement vertical entre les entrées de la table
+\item[twocolumntoc] Répartit automatiquement les sections sur deux colonnes équilibrées
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ compacttoc,
+ twocolumntoc
+]{Celestia}
+\end{code}
+
+\section{Blocs}
+\begin{description}
+\item[block] Bloc standard pour le contenu normal
+\item[exampleblock] Bloc pour les exemples
+\item[alertblock] Bloc pour les alertes
+\end{description}
+
+\section{Style des blocs}
+\begin{description}
+\item[soberblock] Le titre adopte la couleur principale du bloc (mainblue/maingreen/mainred) sur le fond général du document, tandis que le corps garde un fond légèrement teinté (10\%)
+\item[softblock] Le titre et le corps partagent le même fond légèrement teinté (10\%), avec le titre dans la couleur principale correspondante
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ soberblock
+]{Celestia}
+
+% ou
+
+\usetheme[
+ softblock
+]{Celestia}
+\end{code}
+
+\section{Pages d'emphase}
+L'option \texttt{standout} transforme une diapositive en page d'emphase, idéale pour les moments clés de la présentation~: citations marquantes, chiffres essentiels, messages à retenir.
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia.pdf b/Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia.pdf
new file mode 100644
index 00000000000..91857b9638a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia.tex b/Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia.tex
new file mode 100644
index 00000000000..c6edfe64558
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/beamerthemecelestia/beamerthemeCelestia.tex
@@ -0,0 +1,156 @@
+\documentclass[english]{neoschool}
+
+\title{The Celestia Theme}
+\subtitle{v1.0.0}
+\author{Razik Ikhlef}
+\date{\today}
+
+\begin{document}
+
+\maketitle
+
+\section{Fonts}
+\begin{description}
+\item[mainface] Main font for text and titles (\textcolor{titleColor}{Literata} by default)
+\item[mainfaceoptions] Options directly passed to \textcolor{titleColor}{fontspec} for the main font
+\item[sansface] Sans-serif font for structural elements (\textcolor{titleColor}{Inter} by default)
+\item[sansfaceoptions] Options passed to \textcolor{titleColor}{fontspec} for the sans-serif font
+\item[monoface] Monospace font for code (\textcolor{titleColor}{Roboto Mono} by default)
+\item[monofaceoptions] Options passed to \textcolor{titleColor}{fontspec} for the monospace font
+\item[allserif] Uses the main serif font for mathematics
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ mainface=EB Garamond,
+ mainfaceoptions={Scale=1.1},
+ sansface=Montserrat,
+ monoface=Fira Code,
+ allserif
+]{Celestia}
+\end{code}
+
+\section{Colors}
+\begin{description}
+\item[maincolor] Main color used for titles and accents (\textcolor{titleColor}{LaTeX} svgname or \textcolor{titleColor}{HTML} hexadecimal code)
+\item[accentcolor] Secondary color for special elements
+\item[backgroundcolor] Slide background color (\textcolor{titleColor}{F7F9FC} by default)
+\item[codebackgroundcolor] Code block background color (\textcolor{titleColor}{F1F3F6} by default)
+\item[mainblue] Standard block color (\textcolor{titleColor}{045549} by default)
+\item[maingreen] Example block color (\textcolor{titleColor}{054924} by default)
+\item[mainred] Alert block color (\textcolor{titleColor}{490445} by default)
+\item[unicolor] Uses the main color for all text
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ maincolor=045549,
+ accentcolor=E63946,
+ backgroundcolor=FAFAFA,
+ codebackgroundcolor=F5F5F5
+]{Celestia}
+\end{code}
+
+\section{Layout}
+\begin{description}
+\item[margin] Content margin (\textcolor{titleColor}{2em} by default)
+\item[frametitle] Title style (\textcolor{titleColor}{elegant}, \textcolor{titleColor}{plain}, \textcolor{titleColor}{centered})
+\item[decorative] Enables decorative elements
+\item[nodecorative] Disables decorative elements
+\item[centeredtitle] Centers the title on the title page
+\item[titleright] Right-aligns the title
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ margin=1.5em,
+ frametitle=centered,
+ decorative,
+ centeredtitle
+]{Celestia}
+\end{code}
+
+\section{Headers}
+\begin{description}
+\item[headstyle] Font family for titles: \textcolor{titleColor}{rmfamily} (serif) or \textcolor{titleColor}{sffamily} (sans-serif)
+\item[headshape] Character style: \textcolor{titleColor}{sc} (small caps), \textcolor{titleColor}{it} (italic), \textcolor{titleColor}{normal}
+\item[headweight] Title weight: \textcolor{titleColor}{bfseries} (bold) or \textcolor{titleColor}{mdseries} (normal)
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ headstyle=sffamily,
+ headshape=sc,
+ headweight=bfseries
+]{Celestia}
+\end{code}
+
+\section{Code}
+\begin{description}
+\item[codebox] Enables code framing with \textcolor{titleColor}{tcolorbox} (\textcolor{titleColor}{true} by default)
+\item[nocodebox] Completely disables \textcolor{titleColor}{tcolorbox} code framing
+\item[nocodeframe] Keeps \textcolor{titleColor}{tcolorbox} but without visible border
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ nocodebox,
+ nocodeframe
+]{Celestia}
+\end{code}
+
+\section{Footer}
+\begin{description}
+\item[nofooter] Completely removes the footer, except for the slide number
+\item[quartercirclefooter] Displays only the number in a quarter circle at the bottom right
+\item[fullbarfooter] Creates a complete bar with author/title/date and number in a circle
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ quartercirclefooter
+]{Celestia}
+\end{code}
+
+\section{Table of Contents}
+\begin{description}
+\item[compacttoc] Reduces vertical spacing between table of contents entries
+\item[twocolumntoc] Automatically distributes sections across two balanced columns
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ compacttoc,
+ twocolumntoc
+]{Celestia}
+\end{code}
+
+\section{Blocks}
+\begin{description}
+\item[block] Standard block for normal content
+\item[exampleblock] Block for examples
+\item[alertblock] Block for alerts
+\end{description}
+
+\section{Block Styles}
+\begin{description}
+\item[soberblock] The title adopts the main block color on the document's general background, while the body keeps a slightly tinted background (10\%)
+\item[softblock] The title and body share the same slightly tinted background (10\%), with the title in the corresponding main color
+\end{description}
+
+\begin{code}{latex}
+\usetheme[
+ soberblock
+]{Celestia}
+
+% or
+
+\usetheme[
+ softblock
+]{Celestia}
+\end{code}
+
+\section{Standout Pages}
+La commande \texttt{standout} transforme une diapositive en page spéciale, idéale pour les moments clés de la présentation : citations marquantes, chiffres essentiels, messages à retenir.
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/beamertools/README b/Master/texmf-dist/doc/latex/beamertools/README
new file mode 100644
index 00000000000..0fc7482f39a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/beamertools/README
@@ -0,0 +1,39 @@
+___________________
+The beamertools package
+v0.1
+
+This package provides a collection of programming tools for beamer.
+
+If you want to report any bugs or typos and corrections in the
+documentation, or ask for any new features, or suggest any
+improvements, or ask any questions about the package, then
+please use the issue tracker:
+
+ <https://github.com/xepersian/beamertools/issues>
+
+In doing so, please always explain your issue well enough,
+and always include a minimal working example showing the
+issue.
+
+You may also have conversations, ask questions and post answers
+without opening issues using the Discussions space:
+
+ <https://github.com/xepersian/beamertools/discussions>
+
+The announcements for the new releases of the package will
+also appear in the Discussions space under the Announcements
+category.
+
+Current version release date: 2025/01/09
+
+___________________________________________
+Vafa Khalighi
+
+Copyright (c) Vafa Khalighi 2025
+
+It may be distributed and/or modified under the LaTeX Project Public License,
+version 1.3c or higher (your choice). The latest version of
+this license is at: http://www.latex-project.org/lppl.txt
+
+This work is “author-maintained” (as per LPPL maintenance status)
+by Vafa Khalighi.
diff --git a/Master/texmf-dist/doc/latex/beamertools/beamertools.pdf b/Master/texmf-dist/doc/latex/beamertools/beamertools.pdf
new file mode 100644
index 00000000000..66bd00e322a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/beamertools/beamertools.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/fillpages/GFM-FP-LogoS.pdf b/Master/texmf-dist/doc/latex/fillpages/GFM-FP-LogoS.pdf
new file mode 100644
index 00000000000..10a2f3bd4c3
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fillpages/GFM-FP-LogoS.pdf
@@ -0,0 +1,69 @@
+%PDF-1.5
+%
+3 0 obj
+<< /Length 4 0 R
+ /Filter /FlateDecode
+>>
+stream
+x
+@ {^smVAp8Bء:j[ ߑ?_:Hu<zwj'xo]`?gEg4HD#NA1Gk=d@WX0482~`3ˮPo-(aҾh*I:R3K%IBKdՁi ){/&h3V'zM@
+endstream
+endobj
+4 0 obj
+ 172
+endobj
+2 0 obj
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+>>
+endobj
+5 0 obj
+<< /Type /Page
+ /Parent 1 0 R
+ /MediaBox [ 0 0 10.2416 11.596 ]
+ /Contents 3 0 R
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /I true
+ /CS /DeviceRGB
+ >>
+ /Resources 2 0 R
+>>
+endobj
+1 0 obj
+<< /Type /Pages
+ /Kids [ 5 0 R ]
+ /Count 1
+>>
+endobj
+6 0 obj
+<< /Creator (cairo 1.14.1 (http://cairographics.org))
+ /Producer (cairo 1.14.1 (http://cairographics.org))
+>>
+endobj
+7 0 obj
+<< /Type /Catalog
+ /Pages 1 0 R
+>>
+endobj
+xref
+0 8
+0000000000 65535 f
+0000000579 00000 n
+0000000286 00000 n
+0000000015 00000 n
+0000000264 00000 n
+0000000358 00000 n
+0000000644 00000 n
+0000000771 00000 n
+trailer
+<< /Size 8
+ /Root 7 0 R
+ /Info 6 0 R
+>>
+startxref
+823
+%%EOF
diff --git a/Master/texmf-dist/doc/latex/fillpages/GFM-FP-LogoS.svg b/Master/texmf-dist/doc/latex/fillpages/GFM-FP-LogoS.svg
new file mode 100644
index 00000000000..d8737ce006b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fillpages/GFM-FP-LogoS.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="12.802"
+ height="14.495"
+ viewBox="0 0 12.802 14.495"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="GFM-FP-LogoS.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.6"
+ inkscape:cx="-4.8038846"
+ inkscape:cy="14.476093"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1028"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1037.8672)">
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:6.0999999;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 6.2940256,1049.3204 5.3608584,0 -4.0000004,2.6918 -6.160715,0 z"
+ id="rect4140-8-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:6.0999999;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 6.2940266,1047.0973 5.3608584,0 -4.0000004,2.6918 -6.160715,0 z"
+ id="rect4140-6-6"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:6.0999999;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 6.1394976,1044.8746 5.3608584,0 -4.0000004,2.6918 -6.160715,0 z"
+ id="rect4140-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+</svg>
diff --git a/Master/texmf-dist/doc/latex/fillpages/README.md b/Master/texmf-dist/doc/latex/fillpages/README.md
new file mode 100644
index 00000000000..2aa88adffd6
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fillpages/README.md
@@ -0,0 +1,16 @@
+# fillpages package
+This package fills your document with blank or predefined pages to match a page count, that is suitable for printing (i.e. dividable by 4).
+
+There are three commands:
+\pagesDividableBy{<most likely 4, 8 or 16>}[<some optional offset i.e. 2>]
+\setFillPage{<put something in here, if you don't like blank pages>}
+\insertFillPages
+
+The last one defines the insertion point. There can be an arbitrary number of insertion points. Before every insertFillPages command there should be a clearpage command to assert, that there is a page break before, and avoid strange behaviour.
+
+# license, version, author
+This work is published under the LaTeX project public license 1.3.
+
+2025-01-07: version 1.0.0
+
+Created by Gabriel Ruprecht. \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/fillpages/fillpages-documentation.pdf b/Master/texmf-dist/doc/latex/fillpages/fillpages-documentation.pdf
new file mode 100644
index 00000000000..3ae14b806f9
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fillpages/fillpages-documentation.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/fillpages/fillpages-documentation.tex b/Master/texmf-dist/doc/latex/fillpages/fillpages-documentation.tex
new file mode 100644
index 00000000000..943a48acfe0
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fillpages/fillpages-documentation.tex
@@ -0,0 +1,201 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% Made by Gabriel Ruprecht %
+% %
+% This work is published under the %
+% LaTeX project public license 1.3 %
+% %
+% Package version 1.0.0 %
+% 2025-01-07 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\documentclass[11pt,a4paper]{scrartcl}
+\usepackage[utf8]{inputenc}
+\usepackage[english]{babel}
+\usepackage{graphicx}
+\usepackage{listings}
+\lstset
+{ %Formatting for code in appendix
+ language=TeX,
+ numbers=left,
+ stepnumber=1,
+ showstringspaces=false,
+ tabsize=1,
+ breaklines=true,
+ breakatwhitespace=false,
+ basicstyle=\ttfamily}
+
+
+\usepackage{xcolor}
+\usepackage{hyperref}
+\usepackage{parskip}
+
+\makeatletter
+%\def\FillPages{\makebox{\vspace*{50pt} \includegraphics[height=\f@size pt]{./GFM-FP-Logo}} }
+\def\FillPagesTiny{\includegraphics[height=\f@size pt]{./GFM-FP-LogoTiny}\hspace*{-3pt}}
+\def\FillPagesS{\hspace*{3pt}\includegraphics[height=\f@size pt]{./GFM-FP-LogoS}\hspace*{3pt}}
+\makeatother
+\title{Fill\FillPagesS Pages\FillPagesS Package\vskip 9pt\relax}
+\subtitle{Version 1.0.0}
+\author{Gabriel Ruprecht}
+
+
+\begin{document}
+\maketitle
+\section{Introduction}
+\subsection{About}
+The \textsf{Fill\FillPagesS Pages\FillPagesS Package} can be used, if you create a book, booklet or similar. In these cases you often print something, where your page count must be dividable by 4, 8 or 16. This package fills your document with the needed pages. By default, they are blank, but they may also have a pre-defined content. If you use this package, you have to compile at least two times. The first run counts the pages and inserting positions. This information is then used in the second run, to calculate the number of pages to be inserted.
+
+\subsection{License}
+This package is subject to the LaTeX Project Public License 1.3. You may do whatever you want with. If you change the package and redistribute it, please keep the credits.
+
+\section{Example document}
+The fastest way to see, how it works, is copying this document and play around a little bit:
+
+\begin{lstlisting}[numbers=none]
+\documentclass{report}
+\usepackage[utf8]{inputenc}
+\usepackage[latin,english]{babel}
+\usepackage{lipsum}
+
+\usepackage{fillpages}
+
+\pagesDividableBy{4}
+%\pagesDividableBy{4}[2] % with optional offset
+
+\setFillPage{2}{
+ABC
+
+DEF
+}
+
+\setFillPage{3}{
+123
+
+456
+}
+
+
+\begin{document}
+
+\lipsum
+
+\clearpage
+\insertFillPages
+\insertFillPages
+
+\lipsum
+\lipsum
+\pagenumbering{Roman}
+\lipsum
+\lipsum
+
+\clearpage
+\insertFillPages
+
+\lipsum
+
+\end{document}
+\end{lstlisting}
+
+\section{Commands}
+You have to define the number which the total page number should be devideable by. Then you define the insertion points for the fill pages. You can define content for any of these pages. After that, you have to run the document at least two times for a proper result. In the first run, the insertion points are counted and the regular page number is collected. On the second run, the pages are inserted.\bigskip
+
+\noindent\verb&\insertFillPages&\\ This command must be placed at the points, where insertion is allowed (insertion points). This can be done at multiple points. The total number of pages to be inserted is divided by the number of insertion points. If there are three insertion points and five pages will be inserted, the insertion will be \verb#1 1 2#. Previous to every \verb+\inserFillPages+ there should be a \verb+\clearpage+. Otherwise the page count will be miscalculated and might toggle.
+
+\noindent\verb&\pagesDividableBy{number}[offset]&\\ This defines the number the page number must be dividable by (default~=~4). If \verb+number+ is 4 and page count is 13, 3 pages will be inserted~(4*4=16; 13+3=16). If \verb+number+ is~4 and \verb+offset+ is 2, the same example will lead to 1 inserted page (3*4=12; 12+2=14; 13+1=14). You can make the page numbers also dividable by 5 with an offset of 3. There is no limitation. The result will always be the minimal number of inserted pages. Dividable by 4, offset 1 has the same result as dividable by 4, offset 5.
+
+\noindent\verb&\setFillPage{pagenumber}{content}&\\
+This creates a custom page, which will be used, if needed. By default all inserted pages are white, but if they shouldn't be white, you can define a content. I.e.
+\begin{lstlisting}[numbers=none]
+ \setFillPage{3}{This is the insert page three}
+\end{lstlisting}\vskip -8pt\relax
+will create a page with the text ''This is the insert page three''. If only 2 pages are needed, it won't be used. If more than 2 are used, it will be. You can define as many fill pages as you want, but only the required amount will appear in your document. The command is defined as long, which means, you are allowed to use paragraphs inside. It behaves almost like any other page in \LaTeX .
+
+\section{What the package uses}
+The package relies solely on standard \LaTeX -core functions.
+
+\section{How it works}
+The principle is really straight forward. The difficulty was to implement it bug free and robust (especially the idempotency).
+
+\begin{enumerate}
+\item First run:
+\begin{enumerate}
+\item Count all places, where pages can be inserted.
+\end{enumerate}
+\item Second run:
+\begin{enumerate}
+\item Calculate the number of total pages without the fill pages, that were inserted.
+\item Do a modulo division on this page count by target divisor (offset must be considered). It is actually not a modulo operation, but this is the principle behind it. Page count is 15, must be dividable by 4 (offset 0), 15\%4=3 $\rightarrow$ 1 page too less.
+\item This number of pages to be inserted is distributed across all insertion points.\\Example 1: 3 insertion points and 3 pages, each gets one page.\\Example 2: 3 insertion points and 4 pages, first two get one page, third one gets two pages. This is done by the total limit. At the first point total limit is 1.33 $\rightarrow$ 1 inserted. At the second point, limit is 2.66, 1 already inserted $\rightarrow$ insert 1. At the third insertion point the total limit is 4, 2 already inserted $\rightarrow$ insert 2.
+\end{enumerate}
+\end{enumerate}
+
+\section{References and interferences}
+To avoid any interference with other packages, I listed the most probable causes for interference.
+
+The package uses the \verb+\AtBeginDocument+ and \verb+\AtEndDocument+ document hook. If there is some issue with them, it won't work. I experienced some weird behaviour in koma classes with a beta-version of this package, which I couldn't explain. Therefore, it is mentioned here.
+
+The package writes the following lines to the aux-file:\begin{lstlisting}[breaklines, numbers=none]
+ \global\GFM@FiPa@numberOfFillPagePositions=<Number of fill page positions>}
+
+ \global\GFM@FiPa@numberOfInsertedPages=<Page count of fill pages>}
+\end{lstlisting}\vskip -8pt\relax
+\noindent Make sure, that they don't interfere with anything of other packages or with any of your counters. Due to the naming this shouldn't happen at all.
+
+
+\section{Known problems}
+\subsection{Page number toggles}
+If you have i.e. 10 pages and define dividable by 4, it should be 12 pages, which makes 2 fill pages. If the page number toggles between 11 and 13 every two runs, there are two possible reasons:
+\begin{enumerate}
+\item You didn't put a clearpage before the \verb+\insertFillPages+
+\item You defined a custom fill page which is bigger than one page and will result in two fill pages, though one should be inserted
+\end{enumerate}
+
+
+\section{Bug reports}
+Nothing to say here. You can post any bug reports on bitbucket, if you find some:
+\begin{quote}
+\url{https://bitbucket.org/maestro-glanz/fillpages/src/main/}
+\end{quote}
+If you don't have a bitbucket account and don't want to create one, you can post an email to \mbox{text\color{white}.\color{black}\hspace*{-7.5pt} inkerer.1904$@$gmail.com} and hope, that I read it within 3 month. Note:~Copying the mail address will fail. This is for spam precautions. You have to type it off your screen. This is a good memory exercise to keep your mind vital a flexible.
+
+\section{Revision history}
+\noindent
+\begin{tabular}{l l}
+2017/11/01:& version 0.1.0\\
+2025/01/07:& version 1.0.0
+\end{tabular}
+
+
+\end{document}
+
+\section{Before upload}
+Is the license in
+- the sty- and tex-files?
+- readme?
+
+Is the author name in
+- the sty- and tex-files?
+- readme?
+
+Is the version number in
+- the docu text?
+- the sty- and tex-files (+provides package param)?
+- readme?
+
+Is the correct revision date in
+- the docu text?
+- the sty- and tex-files?
+- readme?
+
+Is the repo link in
+- the docu text?
+- the sty- and tex-files? -> no
+- readme? -> no
+
+
+
+
+
+\chapter{fillpages} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/keytheorems/CHANGELOG.md b/Master/texmf-dist/doc/latex/keytheorems/CHANGELOG.md
index 48b4f9e29d0..4050d96127e 100644
--- a/Master/texmf-dist/doc/latex/keytheorems/CHANGELOG.md
+++ b/Master/texmf-dist/doc/latex/keytheorems/CHANGELOG.md
@@ -1,5 +1,10 @@
# Changelog for keytheorems package
+## [v0.2.3]
+- add many translations; some missing translation of "continuing from p."
+- add `manual-num` key
+- `leftmargin` and `rightmargin` now work correctly with tagging loaded
+
## [v0.2.2]
- fix implementation of `inherit-style` so it can contain thm keys
- add support for zref-clever in `refname` and `Refname`
@@ -53,6 +58,7 @@
## 0.1.0 - 2024-09-04
- First release
+[v0.2.3]: https://github.com/mbertucci47/keytheorems/compare/v0.2.2...v0.2.3
[v0.2.2]: https://github.com/mbertucci47/keytheorems/compare/v0.2.1...v0.2.2
[v0.2.1]: https://github.com/mbertucci47/keytheorems/compare/v0.1.8...v0.2.1
[v0.1.8]: https://github.com/mbertucci47/keytheorems/compare/v0.1.7...v0.1.8
diff --git a/Master/texmf-dist/doc/latex/keytheorems/keytheorems-doc.pdf b/Master/texmf-dist/doc/latex/keytheorems/keytheorems-doc.pdf
index 8e220a48c88..5eb96e99bda 100644
--- a/Master/texmf-dist/doc/latex/keytheorems/keytheorems-doc.pdf
+++ b/Master/texmf-dist/doc/latex/keytheorems/keytheorems-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/keytheorems/keytheorems-doc.tex b/Master/texmf-dist/doc/latex/keytheorems/keytheorems-doc.tex
index d80d4cd0baa..9008b4300c0 100644
--- a/Master/texmf-dist/doc/latex/keytheorems/keytheorems-doc.tex
+++ b/Master/texmf-dist/doc/latex/keytheorems/keytheorems-doc.tex
@@ -5,6 +5,7 @@
\usepackage{geometry}
\geometry{margin=1.5in}
\usepackage{tcolorbox}
+\PassOptionsToPackage{cachedir=keythms-doc-minted}{minted}
\tcbuselibrary{documentation,minted,breakable,hooks}
\ifTUTeX
@@ -15,21 +16,11 @@
\usepackage{amssymb}
\fi
\usetikzlibrary{cd}
+\usepackage{fontawesome5}
\usepackage{booktabs}
\usepackage{keytheorems}
-\usepackage{cleveref}
-
-%%% TEMPORARY (https://tex.stackexchange.com/q/730126/208544)
-\RemoveFromHook{label}[firstaid/cleveref]
-\makeatletter
-\AddToHook{label}[firstaid/cleveref]
- {\ifx
- \@currentcounter\@empty
- \else
- \firstaid@cref@updatelabeldata{\@currentcounter}%<--- was missing
- \fi}
-\makeatother
-%%% END TEMPORARY
+\usepackage{zref-clever}
+\zcsetup{nameinlink=false}
\makeatletter
\newcommand\keythmsversion{\@keythms@version}
@@ -265,7 +256,7 @@ These texts can be manually customized with the \refKey{title} and \refKey{conti
{initially\\ \cs{GetTranslation}\ttbraces{keythms\string_continues}\cs{pageref}\ttbraces{\#1}}
The code used to typeset the note produced by the \refKey{continues} key.
If English or an unknown language is used, defaults to \texttt{continuing from p.}\cs{,}\cs{pageref}\ttbraces{\#1}.
-Currently (likely inaccurate!) translations exist for French, German, Italian, Portuguese, and Spanish.
+Currently (likely inaccurate!) translations exist for several European languages.
\end{docKey}
\begin{docKey}{qed-symbol}
@@ -379,6 +370,22 @@ Some text
\end{docKey}
+\begin{docKey}{manual-num}
+ {=\marg{text}}
+ {initially unset}
+Use this to override the printed number of a theorem.
+It is useful for making ``starred'' versions of other theorems, perhaps to represent a reformulated or more difficult version.
+
+\begin{keythmscode}[]
+\begin{theorem}[manual-num=\ref*{foo}*]
+A reformulated version of \zcref[S]{foo}.
+\end{theorem}
+\begin{theorem}[manual-num=\faRocket] % requires fontawesome5
+Don't confuse your readers by changing the numbering without good reason.
+\end{theorem}
+\end{keythmscode}
+
+\end{docKey}
\begin{docKey}{continues}
{\sarg=\meta{label name}}
{initially unset}
@@ -657,7 +664,7 @@ Some text
Some more text
\end{prop}
\begin{theorem}
-Consider \cref{abc,def}. \Autoref{abc} \dots
+Consider \zcref{abc,def}. \Autoref{abc} \dots
\end{theorem}
\end{keythmscode}
@@ -861,19 +868,19 @@ In \refKey{headformat}, you may also use the traditional \pkg{amsthm} commands \
\end{docKey}
\begin{docKey}{postheadspace}
- {=\meta{length}}
+ {=\meta{skip expr}}
{initially |5pt plus 1pt minus 1pt|}
Do not use this with the \refKey{break} key.
\end{docKey}
\begin{docKey}{spaceabove}
- {=\meta{length}}
+ {=\meta{skip expr}}
{initially \cs{topsep}}
\end{docKey}
\begin{docKey}{spacebelow}
- {=\meta{length}}
+ {=\meta{skip expr}}
{initially \cs{topsep}}
\end{docKey}
@@ -1030,7 +1037,7 @@ For the AMS classes, this is initially |1.5pc|.
{=\meta{text}}
{initially \cs{GetTranslation}\ttbraces{keythms\string_listof\string_title}}
Defaults to ``List of Theorems'' if English or an unknown language is used.
-Currently French, German, Italian, Portuguese, and Spanish have (likely inaccurate!) translations.
+Currently several European languages have (likely inaccurate!) translations.
A translation can be added with a GitHub pull request or manually with
\begin{center}
\cs{DeclareTranslation}\marg{lang}\ttbraces{keythms\string_listof\string_title}\marg{text}.
@@ -1241,7 +1248,6 @@ The \LaTeX{} team has been working hard to support the creation of tagged PDFs (
The current |dev| formats make \pkg{amsthm} compatible with the kernel tagging code.
Most of \pkg{keytheorems} is supported too, and anything that doesn't work should be reported.
Explicitly not supported are the \refKey{tcolorbox} and \refKey{tcolorbox-no-titlebar} keys.
-There is only partial support for \refKey{leftmargin} and \refKey{rightmargin}, namely only the latter works.
To produce a tagged PDF, add \cs{DocumentMetadata} in the first line of your document (additional instructions are found on the Tagging Project \href{https://latex3.github.io/tagging-project/documentation/prototype-usage-instructions.html}{website}).
An example invocation might look like
diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/README.md b/Master/texmf-dist/doc/latex/latex-via-exemplos/README.md
index 2e2ed24e416..e089c7fc354 100644
--- a/Master/texmf-dist/doc/latex/latex-via-exemplos/README.md
+++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/README.md
@@ -80,7 +80,7 @@ Email: sadao at ufscar dot br
Institute: DFQM-UFSCar
-Copyright 2018-2024 Sadao Massago
+Copyright 2018-2025 by Sadao Massago
License
-------
diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/changelog.txt b/Master/texmf-dist/doc/latex/latex-via-exemplos/changelog.txt
index 8e337a0b6fa..ca53ab574bf 100644
--- a/Master/texmf-dist/doc/latex/latex-via-exemplos/changelog.txt
+++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/changelog.txt
@@ -1,3 +1,5 @@
+Version 2025-01-06
+ - Changes the abnt style table examples. Now, using tabularray-abnt.
Version 2024-12-31
- Added example of "quadro" (table with text content) of ABNT style
Version 2024-12-29
diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-abntex2.tex b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-abntex2.tex
index 49e471e6171..b380c15cd3f 100644
--- a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-abntex2.tex
+++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-abntex2.tex
@@ -235,7 +235,9 @@ Para tabelas curtas, use o comando \verb+\IBGEtab+ do \texttt{ABNTeX2} como na T
\nota{Tabela fluturante em conformidade com o ABNT} % nota é opcional no ABNT
}\end{table}
-Note que o \verb+\IBGEtab+ não funciona na tabela longa ainda (2024). Além disso, \texttt{ABNTeX2} ainda (2024) não tem o ambiente de \texttt{quadros} do ABNT. O interessado para usar o quadro, poderá consultar o \url{https://github.com/abntex/abntex2/wiki/HowToCriarNovoAmbienteListing}.
+Note que o \verb+\IBGEtab+ não funciona na tabela longa ainda (2024). Além disso, \texttt{ABNTeX2} ainda (2024) não tem o ambiente de \texttt{quadros} do ABNT.
+
+Quem precisar de tabelas e quadros longos (e curtos), use o pacote como o \texttt{tabularray-abnt} do \url{https://ctan.org/pkg/tabularray-abnt}.
\clearpage\thispagestyle{empty}\cleardoublepage
\chapter{Considerações Finais}
diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-abntexto.tex b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-abntexto.tex
index 05caffa6105..e35547e9af4 100644
--- a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-abntexto.tex
+++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-abntexto.tex
@@ -312,9 +312,9 @@ A tabela pequena pode ser inseridas no ambiente \texttt{table}, caso quer que se
\end{center}
\end{table}
-Não há suporte para tabelas longas (2024). Se precisar, use o pacote \texttt{tabularray} ou \texttt{xtab} e configure devidamente.
+Não há suporte para tabelas longas (2024). Também não há suporte para quadros ainda (2024).
-Também não há suporte para quadros ainda (2024).
+Quem precisar de tabelas e quadros longos (e curtos), use o pacote como o \texttt{tabularray-abnt} do \url{https://ctan.org/pkg/tabularray-abnt}.
\clearpage
\chapter{Citações}
diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.pdf b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.pdf
index 78f2bb026c5..1b0c1125b19 100644
--- a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.pdf
+++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.tex b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.tex
index dc709d2c6ad..64e4622da3b 100644
--- a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.tex
+++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.tex
@@ -1049,8 +1049,9 @@
% Decima primeira atualização (0.5.11): 08 de dezembro de 2024
% Decima segunda atualização: 19 de dezembro de 2024
% Decima terceira atualização: 29 de dezembro de 2024
-% Decima quarta atualização
-\date{31 de dezembro de 2024}
+% Decima quarta atualização: 31 de dezembro de 2024
+% Decima quinta atualização:
+\date{06 de janeiro de 2025}
%%%%%%%%%%%%%%%%%%%%%%%
% Documet start here
@@ -1064,7 +1065,7 @@
\thispagestyle{empty}
-Copyright \textcopyright 2018--2024 por Sadao Massago.
+Copyright \textcopyright 2018--2025 por Sadao Massago.
Todos os direitos reservados.
Este documento é software livre; podendo ser redistribuído e/ou modificado de acordo com os termos da Licença Pública do Projeto LaTeX (LPPL); versão 1.3c da Licença, ou (se for sua opção) qualquer versão posterior.
Veja \url{http://www.latex-project.org/lppl.txt}.
@@ -1161,7 +1162,8 @@ Apêndice~G descreve alguns aplicativos livres interessantes que auxilia os usu
% Sorocaba, julho de 2021.
% Sorocaba, maio de 2022.
% Sorocaba, outubro de 2023.
-Sorocaba, dezembro de 2024.
+% Sorocaba, dezembro de 2024.
+Sorocaba, janeiro de 2025.
\
@@ -7133,8 +7135,8 @@ row{Z} = {fg=blue}, % última linha
\end{ltxlisting}
O \texttt{tablarray} implementa também a funcionalidade da tabela longa correspondente que pode ser usado pelo ambiente \texttt{longtblr}, que é mesmo que \texttt{tblr} com a primeira opção opcional como \texttt{long}, % tblr com a opção \texttt{long} não ficará mesmo que longtblr
-mas não consegue configurar perfeitamente para \texttt{ABNT} somente com comandos padrão, por não conseguir saber se a tabela cabe ou não em uma única página (2024) (Para ajustar como ABNT, veja a Seção~\ref{sec:abnt:tabela} do Capítulo~\ref{cap:abnt}, na página~\pageref{sec:abnt:tabela}).
-Mas, se a tabela ocupar mais de uma página, poderá efetuar a configuração similar a \texttt{ABNT} como segue.
+mas não consegue configurar perfeitamente para Associação Brasileira das Normas Técnicas (\texttt{ABNT})\index{ABNT} somente com comandos padrão, por não conseguir saber se a tabela cabe ou não em uma única página (2024) (Para ajustar como \texttt{ABNT}, use o pacote \texttt{tabularray-abnt} explicado na Seção~\ref{sec:abnt:tabela} do Capítulo~\ref{cap:abnt}, na página~\pageref{sec:abnt:tabela}).
+Como um exemplo de ajuste de tablas, segue uma configuração similar a \texttt{ABNT} no caso de tabela ocupar mais de uma página.
\begin{singlespacing}
\begin{lstlisting}
@@ -7155,7 +7157,8 @@ Mas, se a tabela ocupar mais de uma página, poderá efetuar a configuração si
\UseTblrTemplate{caption-text}{default}
\UseTblrTemplate{firsthead-text}{default} % acrescentar o firsthead-text
}
-\DefTblrTemplate{capcont}{default}{ % redefinindo, para \par funcionar (senão, será ignorado)
+ % redefinindo o título das páginas do meio
+\DefTblrTemplate{capcont}{default}{
\UseTblrTemplate{caption-tag}{default}
\UseTblrTemplate{caption-sep}{default}
\UseTblrTemplate{caption-text}{default}
@@ -7171,7 +7174,7 @@ Mas, se a tabela ocupar mais de uma página, poderá efetuar a configuração si
% último rodapé para inserir fonte
\DefTblrTemplate{lastfoot-text}{default}{} % inicialmente vazio
\DefTblrTemplate{lastfoot}{default}{ % rodapé da última página
- \UseTblrTemplate{lastfoot-text}{default} % colocar o lastfoot-text
+ \UseTblrTemplate{lastfoot-text}{default} % colocar somente o lastfoot-text
}
% tamanho das fontes
\SetTblrStyle{firsthead-text,lasthead-text,conthead-text}{\footnotesize}
@@ -7180,7 +7183,7 @@ Mas, se a tabela ocupar mais de uma página, poderá efetuar a configuração si
\end{lstlisting}
\end{singlespacing}
-no \texttt{preamble} para que a tabela do Exemplo~\ref{ex15:table:longtblr} fique compatível como \texttt{ABNT}. Note que \verb+\legend+ é o comando de \texttt{memoir} usado pelo \texttt{ABNTeX2}. Se não estiver usando o \texttt{ABNTeX2} ou \texttt{memoir}, deverá substituir com outra, ou providenciar algo como
+no \texttt{preamble} para que a tabela do Exemplo~\ref{ex15:table:longtblr} fique similar ao \texttt{ABNT}. Note que \verb+\legend+ é um comando de \texttt{memoir} usado pelo \texttt{ABNTeX2}. Se não estiver usando o \texttt{ABNTeX2} ou \texttt{memoir}, deverá substituir com outra, ou providenciar algo como
\begin{lstlisting}
\providecommand{\legend}[1]{\par \medskip #1 \smallskip}
\end{lstlisting}
@@ -7228,7 +7231,7 @@ Acumulado do ano & 5,79 & 7,8997 \\
% onde \verb+\legend+ é o comando da classe \texttt{abntex2}.
Observe que, nos argumentos dos comandos de configuração, o espaço serão eliminados, exceto quando estiver dentro do outro comando. Isto melhor a precisão dos cálculos necessários. Assim, usa-se o espaço não quebrável (``\verb+~+'').
-O pacote \texttt{tabularray} também disponibiliza o ambiente \texttt{talltblr}\index{talltblr} que pode ser usado dentro do ambiente \texttt{figure}, mas que aceitam os mesmos parâmetros do \texttt{longtblr}, permitindo, por exemplo, colocar rodapé da tabela, entre outros.
+O pacote \texttt{tabularray} também disponibiliza o ambiente \texttt{talltblr}\index{talltblr} que pode ser usado dentro do ambiente \texttt{table}, mas que aceitam os mesmos parâmetros do \texttt{longtblr}, permitindo, por exemplo, colocar rodapé da tabela, entre outros.
Com o uso de \texttt{siunitx}, poderá lidar com tabelas que tem números flutuantes\index{tabelas!com números}, como no Exemplo~\ref{ex15:siunitx:table}.
@@ -9634,7 +9637,7 @@ Neste capítulo, vamos estudar uma classe e arquivos de suporte da referência b
A classe padrão para diagramar os documentos como trabalho de conclusão de cursos, monografias em geral, teses e dissertações em \texttt{ABNT} é a classe \texttt{abntex2}\index{abntex2} que foi implementado sobre a classe \texttt{memoir}, herdando diversas funcionalidades. Para saber estas funcionalidades adicionais, consulte o manual do \texttt{memoir}.
\section{Documentos em ABNT}
-Para o documento em ABNT, usamos a classe \texttt{abntex2} como em
+Para o documento em ABNT, usamos a classe \texttt{abntex2}\index{abntex2@ABNTeX2} (\cite{book:abnt2:araujo}) como em
\begin{lstlisting}
\documentclass[12pt,a4paper,openright,oneside,english,brazil]{abntex2}
\end{lstlisting}
@@ -9701,7 +9704,7 @@ Em seguida, inclua diretamente no documento como uma página (e não como um des
A classe \texttt{abntex2} aceita a opção \texttt{article} para diagramar artigos, mas na maioria dos casos, não é exigido que artigos sigam a norma ABNT, podendo ou não, requerer suas referências em ABNT.
\section{Documento ABNT usando \texttt{ABNTexto}}
-A classe \texttt{ABNTexto}\index{ABNTexto} que está na fase de desenvolvimento é uma alternativa leve para \texttt{ABNTeX2}, para diagramar em \texttt{ABNT}. Enquanto que \texttt{ABNTeX2} usa a classe \texttt{memoir} e diversos pacotes para maior flexibilidade, \texttt{ABNTexto} usa a classe \texttt{article} e muitos poucos pacotes, tornando muito leve.
+A classe \texttt{ABNTexto}\index{ABNTexto} (\cite{book:abntexto:abreu}) que está na fase de desenvolvimento é uma alternativa leve para \texttt{ABNTeX2}, para diagramar em \texttt{ABNT}. Enquanto que \texttt{ABNTeX2} usa a classe \texttt{memoir} e diversos pacotes para maior flexibilidade, \texttt{ABNTexto} usa a classe \texttt{article} e muitos poucos pacotes, tornando muito leve.
Para usar a última versão desta classe sem instalar, abaixe o arquivo \texttt{abntexto.cls} do \texttt{CTAN} (\url{https://ctan.org/}) e mantenha junto ao arquivo \texttt{.tex}.
%Sobre os comandos, veja a documentação disponível em \cite{book:abntexto:abreu}.
@@ -9847,7 +9850,7 @@ Também poderá usar o \texttt{biblatex}. Veja o Marques (2018) para detalhes.
\section{Usando o estilo ABNT no Bib\LaTeX}
-Também poderá elaborar referências bibliográficas no estilo ABNT usando o Bib\LaTeX{} que é recomendado.
+Também poderá elaborar referências bibliográficas no estilo ABNT usando o Bib\LaTeX{} que é recomendado (\cite{book:biblatex-abnt:marques}).
Para isso, coloque a opção \texttt{style=abnt}\index{biblatex!abnt} na opção de chamada do pacote \texttt{biblatex}.
@@ -10055,177 +10058,250 @@ Para verificar se está com o novo estilo, veja se \texttt{URL} (endereço da in
\section{Tabelas em ABNT}\label{sec:abnt:tabela}
Tanto o \texttt{ABNTeX2}, como o \texttt{ABNTexto}, implementa sua forma de criar tabelas curtas em \texttt{ABNT}, mas ainda não tem a funcionalidade para tabelas longas (2024).
-As tabelas no \texttt{ABNT} devem obedecer as normas do Instituto Brasileiro de Geográfica e Estatística (IBGE)\index{IBGE}. Para ter conformidade com o estilo de IBGE (que ABNT adota), poderá usar o pacote \texttt{tabularray}, mas requer ajustes. Para isso, coloque o código a seguir, após carregar o pacote \texttt{tabularray}.
+As tabelas no \texttt{ABNT} devem obedecer as normas do Instituto Brasileiro de Geográfica e Estatística (IBGE)\index{IBGE}. Para ter conformidade com o estilo de IBGE (que \texttt{ABNT} adota), poderá usar o pacote \texttt{tabularray}, mas requer ajustes.
+Um pacote que efetua tal ajuste é o \texttt{tabularray-abnt}\index{tabularray-abnt} que implementa o estilo \texttt{abnt} para tabelas e \texttt{quadro} para quadros (tabela para apresentação de conteúdo textual em vez de dados numérico). O pacote também implementa o ``wrapper'' \texttt{abnttblr} , \texttt{tallabnttblr} e \texttt{longabnttblr} que aplica o tema \texttt{abnt} sobre \texttt{tblr} , \texttt{talltblr} e \texttt{longtblr}, com a possibilidade de alterar a fonte usada pelo comando \verb+\SetAbntTblrFont+. Como este pacote é muito recente (2025), o sistema TeX pode não vir com ele. Assim, abaixe o arquivo \texttt{tabularray-abnt.sty} do ctan (\url{https://ctan.org/pkg/tabularray-abnt}) e instale manualmente ou deixe junto como o arquivo \texttt{.tex} para usar-ló. Para usar, coloque a opção \verb+\theme=abnt+ ou \verb+theme=quadro+ no parâmetro opcional de \texttt{talltblr} (ou \texttt{tblr} com opção \texttt{tall}) ou \texttt{longtblr} (ou \texttt{tblr} com opção \texttt{long}), ou use a versão \texttt{abnt} correspondente.
-\begin{singlespacing}
-\begin{lstlisting}
-% texto adicional no cabeçalho
-\DefTblrTemplate{firsthead-text}{default}{\par~\hfill(continua)} % primeira página
-\DefTblrTemplate{lasthead-text}{defalt}{\par~\hfill(conclusão)} % última página
-\DefTblrTemplate{conthead-text}{default}{\par~\hfill(continuação)} % páginas do meio (default é em ingles, sem \par)
-% primeiro cabeçalho
-\makeatletter
- \DefTblrTemplate{caption}{default}{
- \UseTblrTemplate{caption-tag}{default}
- \UseTblrTemplate{caption-sep}{default}
- \UseTblrTemplate{caption-text}{default}
- % like \ifdefined, but with csname
- \ifcsname tblr@abnt@spanpages@\roman{table}\endcsname % if span pages
- \UseTblrTemplate{firsthead-text}{default} % acrescentar o firsthead-text
- \fi
- }
-\makeatother
+
+% Para isso, coloque o código a seguir, após carregar o pacote \texttt{tabularray}.
+%
+%\begin{singlespacing}
+%\begin{lstlisting}
+%% texto adicional no cabeçalho
+%\DefTblrTemplate{firsthead-text}{default}{\par~\hfill(continua)} % primeira página
+%\DefTblrTemplate{lasthead-text}{default}{\par~\hfill(conclusão)} % última página
+%\DefTblrTemplate{conthead-text}{default}{\par~\hfill(continuação)} % páginas do meio (default é em ingles, sem \par)
+%% primeiro cabeçalho
+%\makeatletter
+% \DefTblrTemplate{caption}{default}{
+% \UseTblrTemplate{caption-tag}{default}
+% \UseTblrTemplate{caption-sep}{default}
+% \UseTblrTemplate{caption-text}{default}
+% % like \ifdefined, but with csname
+% \ifcsname tblr@abnt@spanpages@\roman{table}\endcsname % if span pages
+% \UseTblrTemplate{firsthead-text}{default} % acrescentar o firsthead-text
+% \fi
+% }
+%\makeatother
+%%%
+%% redefinindo o título do último cabeçalho
+%\DefTblrTemplate{lasthead}{default}{\normalsize
+% \UseTblrTemplate{caption-tag}{default}
+% \UseTblrTemplate{caption-sep}{default}
+% \UseTblrTemplate{caption-text}{default}
+% \UseTblrTemplate{lasthead-text}{default} % acrescenttar o lasthead-text
+%}
+%\DefTblrTemplate{capcont}{default}{ % redefinindo, para \par funcionar (senão, será ignorado)
+% \UseTblrTemplate{caption-tag}{default}
+% \UseTblrTemplate{caption-sep}{default}
+% \UseTblrTemplate{caption-text}{default}
+% \UseTblrTemplate{conthead-text}{default}
+%}
+%% desativando rodapé inicial e do meio
+%\DefTblrTemplate{firstfoot,middlefoot}{default}{}
%%
-% redefinindo o título do último cabeçalho
-\DefTblrTemplate{lasthead}{default}{\normalsize
- \UseTblrTemplate{caption-tag}{default}
- \UseTblrTemplate{caption-sep}{default}
- \UseTblrTemplate{caption-text}{default}
- \UseTblrTemplate{lasthead-text}{defalt} % acrescenttar o lasthead-text
-}
-\DefTblrTemplate{capcont}{default}{ % redefinindo, para \par funcionar (senão, será ignorado)
- \UseTblrTemplate{caption-tag}{default}
- \UseTblrTemplate{caption-sep}{default}
- \UseTblrTemplate{caption-text}{default}
- \UseTblrTemplate{conthead-text}{default}
-}
-% desativando rodapé inicial e do meio
-\DefTblrTemplate{firstfoot,middlefoot}{default}{}
+%% último rodapé para inserir fonte e nota
+%\DefTblrTemplate{lastfoot}{default}{ % rodapé da última página
+% \UseTblrTemplate{lastfoot-text}{default} % colocar o lastfoot-text
+% \UseTblrTemplate{lastfoot-text-note}{default} % colocar o lastfoot-text-note
+%}
+%% texto do último rodapé
+%\DefTblrTemplate{lastfoot-text}{default}{} % inicialmente vazio
+%\DefTblrTemplate{lastfoot-text-note}{default}{} % inicialmente vazio
+%% tamanho das fontes
+%\SetTblrStyle{firsthead-text,lasthead-text,conthead-text}{\footnotesize}
+%\SetTblrStyle{caption,lasthead,capcont}{\normalsize}
+%\SetTblrStyle{lastfoot}{\footnotesize}
%
-% último rodapé para inserir fonte e nota
-\DefTblrTemplate{lastfoot}{default}{ % rodapé da última página
- \UseTblrTemplate{lastfoot-text}{default} % colocar o lastfoot-text
- \UseTblrTemplate{lastfoot-text-note}{default} % colocar o lastfoot-text-note
-}
-% texto do último rodapé
-\DefTblrTemplate{lastfoot-text}{default}{} % inicialmente vazio
-\DefTblrTemplate{lastfoot-text-note}{default}{} % inicialmente vazio
-% tamanho das fontes
-\SetTblrStyle{firsthead-text,lasthead-text,conthead-text}{\footnotesize}
-\SetTblrStyle{caption,lasthead,capcont}{\normalsize}
-\SetTblrStyle{lastfoot}{\footnotesize}
-
-\makeatletter
-% comando para legenda
-
-% https://www.reddit.com/r/LaTeX/comments/116wtwp/how_get_the_next_line_with_indentation/
-% \hangindent=2em\hangafter=1
-% indentar a rpóxima linha por \hangindent não funciona no tblr?
-\newlength{\Tblr@Format@Source@text@width}%
-\newsavebox\Tblr@Format@Source@label@box%
-\providecommand{\Tblr@Format@Source}[2][Fonte]{\par \medskip%
- \setlength{\Tblr@Format@Source@text@width}{\textwidth}%
- % if argument is empty, nothings for #1
- \def\tempa{}\def\tempb{#1}%
- \ifx\tempa\tempb
- \else%
- \sbox{\Tblr@Format@Source@label@box}{#1: }%
- \addtolength{\Tblr@Format@Source@text@width}{-\wd\Tblr@Format@Source@label@box}% subtract label width
- \usebox\Tblr@Format@Source@label@box% write label
- \fi%
- \parbox[t]{\Tblr@Format@Source@text@width}{\linespread{1}\@currsize
- #2% dentro de tabular par aalinhamento e com espaçamento simples
- }%
- \smallskip
-} %
-% Fonte no último rodapé
-\newcommand\SetTblrSource[2][Fonte]{%
- % https://texfaq.org/FAQ-empty
- \def\tempa{}%
- \def\tempb{#1}%
- \ifx\tempa\tempb% if argument is empty
- \DefTblrTemplate{lastfoot-text}{default}{}%
- \else
- \DefTblrTemplate{lastfoot-text}{default}{\Tblr@Format@Source[#1]{#2}}%
- \fi
-}
-% Nota no último rodapé
-\newcommand\SetTblrNote[2][Nota]{%
- % https://texfaq.org/FAQ-empty
- \def\tempa{}%
- \def\tempb{#1}%
- \ifx\tempa\tempb% if argument is empty
- \DefTblrTemplate{lastfoot-text-append}{default}{}%
- \else
- \par\DefTblrTemplate{lastfoot-text-note}{default}{\Tblr@Format@Source[#1]{#2}}%
- \fi
-}
-
-% To save span page status
%\makeatletter
- \newif\iftblr@abnt@mark@spanpages% if span pages, put corresponding command to aux file
- \tblr@abnt@mark@spanpagesfalse % initially false
- % tblr with long optional option
- \AddToHook{env/tblr/before}
- {
- \tblr@abnt@mark@spanpagestrue
- }
- \AddToHook{env/tblr/after}
- {
- \tblr@abnt@mark@spanpagesfalse
- \DefTblrTemplate{lastfoot-text}{default}{}
- \DefTblrTemplate{lastfoot-text-note}{default}{}
- }
- % longtblr
- \AddToHook{env/longtblr/before}
- {
- \tblr@abnt@mark@spanpagestrue
- }
- \AddToHook{env/longtblr/after}
- {
- \tblr@abnt@mark@spanpagesfalse
- \DefTblrTemplate{lastfoot-text}{default}{}
- \DefTblrTemplate{lastfoot-text-note}{default}{}
- }
- % talltblr
- \AddToHook{env/talltblr/before}
- {
- \tblr@abnt@mark@spanpagestrue
- }
- \AddToHook{env/talltblr/after}
- {
- \tblr@abnt@mark@spanpagesfalse
- \DefTblrTemplate{lastfoot-text}{default}{}
- \DefTblrTemplate{lastfoot-text-note}{default}{}
- }
- % if change pages, mark as span pages on aux file
- \AddToHook{shipout/after}
- {
- \iftblr@abnt@mark@spanpages
- % from https://tex.stackexchange.com/questions/115932/on-the-basics-of-writing-to-reading-from-auxiliary-files-aux-toc-etc
- \immediate\write\@auxout{\gdef\string\tblr@abnt@spanpages@\roman{table}{true}}
- \fi
- %\tblr@abnt@mark@spanpagesfalse
- % https://tex.stackexchange.com/questions/566884/setting-a-newif-to-false-ignored-on-first-check-in-custom-itemize-environment
- % to the associated commands act globally
- \global\let\iftblr@abnt@mark@spanpages\iffalse
- }
-\makeatother
-\end{lstlisting}
-\end{singlespacing}
-
-O código ficou um pouco longo, mas isto configura tanto o \texttt{talltblr} como o \texttt{longtblr} (e \texttt{tblr} com opção \texttt{long} ou \texttt{tall}) e funciona tanto na tabela de uma página como no caso de ocupar mais de uma página.
-
-Para usar no \texttt{abntexto}, ainda precisa acrescentar o código.
+%% comando para legenda
+%
+%% https://www.reddit.com/r/LaTeX/comments/116wtwp/how_get_the_next_line_with_indentation/
+%% \hangindent=2em\hangafter=1
+%% indentar a rpóxima linha por \hangindent não funciona no tblr?
+%\newlength{\Tblr@Format@Source@text@width}%
+%\newsavebox\Tblr@Format@Source@label@box%
+%\providecommand{\Tblr@Format@Source}[2][Fonte]{\par \medskip%
+% \setlength{\Tblr@Format@Source@text@width}{\textwidth}%
+% % if argument is empty, nothings for #1
+% \def\tempa{}\def\tempb{#1}%
+% \ifx\tempa\tempb
+% \else%
+% \sbox{\Tblr@Format@Source@label@box}{#1: }%
+% \addtolength{\Tblr@Format@Source@text@width}{-\wd\Tblr@Format@Source@label@box}% subtract label width
+% \usebox\Tblr@Format@Source@label@box% write label
+% \fi%
+% \parbox[t]{\Tblr@Format@Source@text@width}{\linespread{1}\@currsize
+% #2% dentro de tabular par aalinhamento e com espaçamento simples
+% }%
+% \smallskip
+%} %
+%% Fonte no último rodapé
+%\newcommand\SetTblrSource[2][Fonte]{%
+% % https://texfaq.org/FAQ-empty
+% \def\tempa{}%
+% \def\tempb{#1}%
+% \ifx\tempa\tempb% if argument is empty
+% \DefTblrTemplate{lastfoot-text}{default}{}%
+% \else
+% \DefTblrTemplate{lastfoot-text}{default}{\Tblr@Format@Source[#1]{#2}}%
+% \fi
+%}
+%% Nota no último rodapé
+%\newcommand\SetTblrNote[2][Nota]{%
+% % https://texfaq.org/FAQ-empty
+% \def\tempa{}%
+% \def\tempb{#1}%
+% \ifx\tempa\tempb% if argument is empty
+% \DefTblrTemplate{lastfoot-text-append}{default}{}%
+% \else
+% \par\DefTblrTemplate{lastfoot-text-note}{default}{\Tblr@Format@Source[#1]{#2}}%
+% \fi
+%}
+%
+%% To save span page status
+%%\makeatletter
+% \newif\iftblr@abnt@mark@spanpages% if span pages, put corresponding command to aux file
+% \tblr@abnt@mark@spanpagesfalse % initially false
+% % tblr with long optional option
+% \AddToHook{env/tblr/before}
+% {
+% \tblr@abnt@mark@spanpagestrue
+% }
+% \AddToHook{env/tblr/after}
+% {
+% \tblr@abnt@mark@spanpagesfalse
+% \DefTblrTemplate{lastfoot-text}{default}{}
+% \DefTblrTemplate{lastfoot-text-note}{default}{}
+% }
+% % longtblr
+% \AddToHook{env/longtblr/before}
+% {
+% \tblr@abnt@mark@spanpagestrue
+% }
+% \AddToHook{env/longtblr/after}
+% {
+% \tblr@abnt@mark@spanpagesfalse
+% \DefTblrTemplate{lastfoot-text}{default}{}
+% \DefTblrTemplate{lastfoot-text-note}{default}{}
+% }
+% % talltblr
+% \AddToHook{env/talltblr/before}
+% {
+% \tblr@abnt@mark@spanpagestrue
+% }
+% \AddToHook{env/talltblr/after}
+% {
+% \tblr@abnt@mark@spanpagesfalse
+% \DefTblrTemplate{lastfoot-text}{default}{}
+% \DefTblrTemplate{lastfoot-text-note}{default}{}
+% }
+% % if change pages, mark as span pages on aux file
+% \AddToHook{shipout/after}
+% {
+% \iftblr@abnt@mark@spanpages
+% % from https://tex.stackexchange.com/questions/115932/on-the-basics-of-writing-to-reading-from-auxiliary-files-aux-toc-etc
+% \immediate\write\@auxout{\gdef\string\tblr@abnt@spanpages@\roman{table}{true}}
+% \fi
+% %\tblr@abnt@mark@spanpagesfalse
+% % https://tex.stackexchange.com/questions/566884/setting-a-newif-to-false-ignored-on-first-check-in-custom-itemize-environment
+% % to the associated commands act globally
+% \global\let\iftblr@abnt@mark@spanpages\iffalse
+% }
+%\makeatother
+%\end{lstlisting}
+%\end{singlespacing}
+%
+%O código ficou um pouco longo, mas isto configura tanto o \texttt{talltblr} como o \texttt{longtblr} (e \texttt{tblr} com opção \texttt{long} ou \texttt{tall}) e funciona tanto na tabela de uma página como no caso de ocupar mais de uma página.
+%
+%Para usar no \texttt{abntexto}, ainda precisa acrescentar o código.
+%
+%\begin{singlespacing}
+%\begin{lstlisting}
+%\ExplSyntaxOn
+% \DefTblrTemplate{caption-lot}{default}
+% {
+% \tl_if_empty:NTF \lTblrEntryTl
+% { \tl_set_eq:NN \l__tblr_caption_short_tl \lTblrCaptionTl }
+% { \tl_set_eq:NN \l__tblr_caption_short_tl \lTblrEntryTl }
+% %\addcontentsline { lot } { table }
+% % { \protect\numberline { \thetable } { \l__tblr_caption_short_tl } }
+% %adicionando na lista pelo comando de abntexto
+% \addtoext{lot}{lofi}{\protect\lotlabelbox{\thetable} {\l__tblr_caption_short_tl}}%
+% }
+%\ExplSyntaxOff
+%\end{lstlisting}
+%\end{singlespacing}
-\begin{singlespacing}
-\begin{lstlisting}
-\ExplSyntaxOn
- \DefTblrTemplate{caption-lot}{default}
- {
- \tl_if_empty:NTF \lTblrEntryTl
- { \tl_set_eq:NN \l__tblr_caption_short_tl \lTblrCaptionTl }
- { \tl_set_eq:NN \l__tblr_caption_short_tl \lTblrEntryTl }
- %\addcontentsline { lot } { table }
- % { \protect\numberline { \thetable } { \l__tblr_caption_short_tl } }
- %adicionando na lista pelo comando de abntexto
- \addtoext{lot}{lofi}{\protect\lotlabelbox{\thetable} {\l__tblr_caption_short_tl}}%
- }
-\ExplSyntaxOff
-\end{lstlisting}
-\end{singlespacing}
+Agora, supondo que o \texttt{tabularray} (e \texttt{tabularray-abnt}) com ajuste ao uso de \texttt{booktabs} por \verb+\UseTblrLibrary{booktabs}+ e também foi carregado os pacotes \texttt{url} (ou \texttt{hyperref}) e \texttt{xcolor}. Então poderá diagramar as tabelas normalmente com o \texttt{tallabnttblr} e \texttt{longabnttblr}, passando a fonte e nota adicional com o parâmetro \texttt{remark},
+%no com auxilio do comando \verb+\SetTblrSource+ e \verb+\SetTblrNote+ para tabela flutuante que foi definido no \texttt{preamble},
+como no Exemplo~\ref{ex19:abnt-table}, cuja a saída foi omitida.
-Agora, supondo que o \texttt{tabularray} com ajuste ao uso de \texttt{booktabs} por \verb+\UseTblrLibrary{booktabs}+ e também foi carregado os pacotes \texttt{url} (ou \texttt{hyperref}) e \texttt{xcolor}. Então poderá diagramar as tabelas normalmente com o \texttt{talltblr} e \texttt{longtblr}, com auxilio do comando \verb+\SetTblrSource+ e \verb+\SetTblrNote+ para tabela flutuante que foi definido no \texttt{preamble}, como no Exemplo~\ref{ex19:abnt-table}, cuja a saída foi omitida.
+%\begin{singlespacing}
+%\begin{lstlisting}[caption={ex19-abnt-table.tex},label={ex19:abnt-table}]
+%A Tabela Tabela~\ref{tab:abnt:flutuante} é o que auto posiciona. Para tabela flutuante, poderá usar \texttt{tabular} ou similar normalmente, mas neste exemplo, foi usado o \texttt{talltblr} que aceita mesmos parâmetros de \texttt{longtblr} como o rodapé, etc, mas que pode ser colocado dentro do ambiente \texttt{table}.
+%
+%\begin{table}[hbp!]
+%\centering
+%\SetTblrSource{Elaboração do autor} % Usando comando definido no preamble premabulo
+%\begin{talltblr}
+%[
+% caption={Um título},
+% label={tab:abnt:flutuante},
+%]
+%{
+% colspec = {XX}, % colunas de largura automatica
+% row{even} = {gray!15}, % linha par em cinza
+%}
+%\toprule %\hline
+% produto & preço \\
+%\midrule %\hline
+% cenouras (500g) & R\$0,50 \\
+% cogumelos (vidro de 500g) & R\$5,00 \\
+% batata (1Kg) & R\$1,20 \\ \midrule % \hline
+% total & R\$6,70 \\
+%\bottomrule %\hline
+%\end{talltblr}
+%\end{table}
+%
+%A Tabela~\ref{tab:abnt:longa} foi criado pelo ambiente \texttt{longtblr} (que é mesmo que \texttt{tblr} com opção ``long'' no primeiro parâmetro do argumento), que requer duas compilações seguidas para ajustar corretamente devido a configuração no preambulo.
+%
+%\begin{center}
+%% Configurando a legenda pelo comando definido no preambulo
+%\SetTblrSource{\url{https://blog.nubank.com.br/ipca-2022/}\\
+%\url{https://brasilindicadores.com.br/poupanca/}}
+%\SetTblrNote{Pode colocar apenas uma nota que é opcional}
+%\begin{longtblr}
+%[%
+% caption = {Inflação (IPCA) e juro de poupança de 2022}, % titulo
+% label={tab:abnt:longa}, % rotulo para referências cruzadas
+%]
+%{
+% colspec = {XXX}, % colunas de largura automatica
+% rowhead = 1, % primeira linha será repatida em todas páginas
+% row{1} = {font=\bfseries}, % linha de título
+% row{even} = {gray!50}, % linha par em cinza
+% row{Z} = {font=\bfseries,white}, % última linha
+%}
+%\toprule
+%Mês & Inglação & Poupança \\
+%\midrule
+%Janeiro & 0,54 & 0,5608 \\
+%Fevereiro & 1,01 & 0,5000 \\
+%Março & 1,62 & 0,5976 \\
+%Abril & 1,06 & 0,5558 \\
+%Maio & 0,47 & 0,6671 \\
+%Junho & 0,67 & 0,6491 \\
+%Julho & -0,68 & 0,6639 \\
+%Agosto & -0,36 & 0,7421 \\
+%Setembro & -0,29 & 0,6814 \\
+%Outubro & 0,59 & 0,6501 \\
+%Novembro & 0,41 & 0,6515 \\
+%Dezembro & 0,62 & 0,7082 \\
+%\bottomrule
+%Acumulado do ano & 5,79 & 7,8997 \\
+%\begin{tblr}
+%\end{lstlisting}
+%\end{singlespacing}
\begin{singlespacing}
\begin{lstlisting}[caption={ex19-abnt-table.tex},label={ex19:abnt-table}]
@@ -10233,11 +10309,12 @@ A Tabela Tabela~\ref{tab:abnt:flutuante} é o que auto posiciona. Para tabela fl
\begin{table}[hbp!]
\centering
-\SetTblrSource{Elaboração do autor} % Usando comando definido no preamble premabulo
\begin{talltblr}
[
+ theme=abnt, % Formatar como ABNT
caption={Um título},
label={tab:abnt:flutuante},
+ reamrk{Fonte}={Elaboração do autor}, % Usando comando definido no preamble premabulo
]
{
colspec = {XX}, % colunas de largura automatica
@@ -10257,18 +10334,18 @@ A Tabela Tabela~\ref{tab:abnt:flutuante} é o que auto posiciona. Para tabela fl
A Tabela~\ref{tab:abnt:longa} foi criado pelo ambiente \texttt{longtblr} (que é mesmo que \texttt{tblr} com opção ``long'' no primeiro parâmetro do argumento), que requer duas compilações seguidas para ajustar corretamente devido a configuração no preambulo.
\begin{center}
-% Configurando a legenda pelo comando definido no preambulo
-\SetTblrSource{\url{https://blog.nubank.com.br/ipca-2022/}\\
-\url{https://brasilindicadores.com.br/poupanca/}}
-\SetTblrNote{Pode colocar apenas uma nota que é opcional}
\begin{longtblr}
[%
+ theme=abnt, % Formatar como ABNT
caption = {Inflação (IPCA) e juro de poupança de 2022}, % titulo
label={tab:abnt:longa}, % rotulo para referências cruzadas
+ reamrk{Fonte}={\url{https://blog.nubank.com.br/ipca-2022/}\\
+\url{https://brasilindicadores.com.br/poupanca/}},
+ remark{Nota}={Pode colocar uma nota que é opcional},
]
{
colspec = {XXX}, % colunas de largura automatica
- rowhead = 1, % primeira linha será repatida em todas páginas
+ rowhead = 1, % primeira linha será repetida em todas as páginas
row{1} = {font=\bfseries}, % linha de título
row{even} = {gray!50}, % linha par em cinza
row{Z} = {font=\bfseries,white}, % última linha
@@ -10290,90 +10367,101 @@ Novembro & 0,41 & 0,6515 \\
Dezembro & 0,62 & 0,7082 \\
\bottomrule
Acumulado do ano & 5,79 & 7,8997 \\
-\begin{tblr}
+\begin{longtblr}
\end{lstlisting}
\end{singlespacing}
Se preferir, poderá reduzir as fontes do corpo da tabela para \verb+\footnotesize+, o que já é exigido em várias instituições que usam a norma \texttt{ABNT}. Para tal, poderá colocar a tabela entre \verb+\begin{footnotesize}+ e \verb+\end{footnotesize}+.
-Se preferir, poderá criar um ambiente para que isto seja feito automaticamente.
+Para que isto seja feita automaticamente, use o comando \verb+\SetAbntTblrFont{\footnotesize}+ que altera as fonte no ambiente \texttt{abnttblr}, \texttt{tallabnttblr} e \texttt{longabnttblr}. Em seguida, troque \texttt{tblr}, \texttt{talltblr} e \texttt{longtblr} para correspondente \texttt{abnt}.
-\begin{remark}
-O ambiente \texttt{xtabular} do pacote \texttt{xtab} apresenta o comando para saber se tabela cabe ou não em uma única página (por exemplo, poderá testar se ocupa mais de uma página por \verb+\ifnum\PWSTlastpage > 1+), mas não há configuração padrão para repetir o nome da tabela na página seguinte (o que é feito na tabelas de IBGE).
-\end{remark}
+%Se preferir, poderá criar um ambiente para que isto seja feito automaticamente.
-No \texttt{ABNT}, tabelas com descrições qualitativas (textos em vez de números) é denominado de ``quadros''\index{quadro}. A classe \texttt{ABNTeX2} não implementa o ``quadro''. Se pretende usar, precisará providenciar o ambiente de quadros, lista de quadros, etc.
-Para ambiente flutuante, poderá efetuar com o pacote \texttt{float}\index{float}. Para o caso de quadro longa, poderá implementar sobre a tabela longa, mas no caso de usar o \texttt{tabularray}, poderá implementar como tema em vez do ambiente, acrescentando um pouco mais de códigos no \texttt{preamble} anterior.
+%\begin{remark}
+%O ambiente \texttt{xtabular} do pacote \texttt{xtab} apresenta o comando para saber se tabela cabe ou não em uma única página (por exemplo, poderá testar se ocupa mais de uma página por \verb+\ifnum\PWSTlastpage > 1+), mas não há configuração padrão para repetir o nome da tabela na página seguinte (o que é feito na tabelas de IBGE).
+%\end{remark}
-O código a seguir, assume que está usando a classe \texttt{abntex2} que é baseado \texttt{memoir}, usando o seu recurso em vez do pacote \texttt{float}. O código deve ser acrescentado no código do \texttt{preamble} para tabelas apresentada anteriormente.
+No \texttt{ABNT}, tabelas com descrições qualitativas (textos em vez de números) é denominado de ``quadros''\index{quadro}. As classes \texttt{ABNTeX2} e \texttt{ABNTexto} não implementa o ``quadro'' ainda (2024).
+O pacote \texttt{tabularray-abnt} implementa o tema \texttt{quadro} para esta finalidade.
-\begin{singlespacing}
-\begin{lstlisting}
-% quadros (requer classe derivado de memoir como o abntex2)
-%----------------------------------------------------------
-% Nomes
-\newcommand{\quadroname}{Quadro}
-\newcommand{\listquadroname}{Lista de quadros}
-\addto\captionsbrazil{% portugues-brasil
- \renewcommand{\quadroname}{Quadro}
- \renewcommand{\listquadroname}{Lista de quadros}
-}
-\addto\captionsenglish{% ingles
- \renewcommand{\quadroname}{Text table}
- \renewcommand{\listquadroname}{List of text table}
-}
+Note que na tabela (tabela de apresentação de dados numéricos), não deve ter fechamento lateral, devendo ser fechado na parte superior e inferior, mas não deve haver linhas horizontais no corpo da tabela. Também deve ter linha de titulo das colunas no começo da tabela, separada de corpo da tabela pela linha horizontal. No caso de tabelas longas que ocupam mais de uma página, estas linhas de títulos devem ser repetidos em todas páginas.
-% usando comandos do memoir
-%\newfloat[chapter]{quadro}{loq}{\quadroname}
-%\counterwithout{quadro}{chapter}
-\newfloat{quadro}{loq}{\quadroname}
-\newlistof{listadequadros}{loq}{\listquadroname}
-%\newlistentry[chapter]{quadro}{loq}{0}
-\newlistentry{quadro}{loq}{0}
-
-\cftsetindents{quadro}{0em}{2.3em}
-\renewcommand{\cftquadroname}{\quadroname\space}
-\renewcommand*{\cftquadroaftersnum}{\hfill\textendash\hfill}
-
-% gravando na lista separada de tabelas
-\ExplSyntaxOn
-\DefTblrTemplate{caption-lot}{quadro}%
-{%
- \addtocounter{table}{-1}% não contar como tabela
- \stepcounter{quadro}% contar como quadro
- \tl_if_empty:NTF \lTblrEntryTl
- {\tl_set_eq:NN \l__tblr_caption_short_tl \lTblrCaptionTl}
- {\tl_set_eq:NN \l__tblr_caption_short_tl \lTblrEntryTl}
- %\addcontentsline{lot}{table}%
- % {\protect\numberline{\thetable}{\l__tblr_caption_short_tl}}
- \addcontentsline{loq}{quadro}%
- {\protect\numberline{\thequadro}{\l__tblr_caption_short_tl}}
-}
-\ExplSyntaxOff
+No quadro (tabela de apresentação de dados não numéricos), deve ter fechamento e grades divisório.
-% Atenção! Não deve haver espaço extra entre chaves e nomes!
-\DefTblrTemplate{caption-tag}{quadro}{\quadroname\hspace{0.25em}\thequadro}
+%Se pretende usar, precisará providenciar o ambiente de quadros, lista de quadros, etc.
+%Para ambiente flutuante, poderá efetuar com o pacote \texttt{float}\index{float}. Para o caso de quadro longa, poderá implementar sobre a tabela longa, mas no caso de usar o \texttt{tabularray}, poderá implementar como tema em vez do ambiente, acrescentando um pouco mais de códigos no \texttt{preamble} anterior.
+%
+%O código a seguir, assume que está usando a classe \texttt{abntex2} que é baseado \texttt{memoir}, usando o seu recurso em vez do pacote \texttt{float}. O código deve ser acrescentado no código do \texttt{preamble} para tabelas apresentada anteriormente.
+%
+%\begin{singlespacing}
+%\begin{lstlisting}
+%% quadros (requer classe derivado de memoir como o abntex2)
+%%----------------------------------------------------------
+%% Nomes
+%\newcommand{\quadroname}{Quadro}
+%\newcommand{\listquadroname}{Lista de quadros}
+%\addto\captionsbrazil{% portugues-brasil
+% \renewcommand{\quadroname}{Quadro}
+% \renewcommand{\listquadroname}{Lista de quadros}
+%}
+%\addto\captionsenglish{% ingles
+% \renewcommand{\quadroname}{Text table}
+% \renewcommand{\listquadroname}{List of text table}
+%}
+%
+%% usando comandos do memoir
+%%\newfloat[chapter]{quadro}{loq}{\quadroname}
+%%\counterwithout{quadro}{chapter}
+%\newfloat{quadro}{loq}{\quadroname}
+%\newlistof{listadequadros}{loq}{\listquadroname}
+%%\newlistentry[chapter]{quadro}{loq}{0}
+%\newlistentry{quadro}{loq}{0}
+%
+%\cftsetindents{quadro}{0em}{2.3em}
+%\renewcommand{\cftquadroname}{\quadroname\space}
+%\renewcommand*{\cftquadroaftersnum}{\hfill\textendash\hfill}
+%
+%% gravando na lista separada de tabelas
+%\ExplSyntaxOn
+%\DefTblrTemplate{caption-lot}{quadro}%
+%{%
+% \addtocounter{table}{-1}% não contar como tabela
+% \stepcounter{quadro}% contar como quadro
+% \tl_if_empty:NTF \lTblrEntryTl
+% {\tl_set_eq:NN \l__tblr_caption_short_tl \lTblrCaptionTl}
+% {\tl_set_eq:NN \l__tblr_caption_short_tl \lTblrEntryTl}
+% %\addcontentsline{lot}{table}%
+% % {\protect\numberline{\thetable}{\l__tblr_caption_short_tl}}
+% \addcontentsline{loq}{quadro}%
+% {\protect\numberline{\thequadro}{\l__tblr_caption_short_tl}}
+%}
+%\ExplSyntaxOff
+%
+%% Atenção! Não deve haver espaço extra entre chaves e nomes!
+%\DefTblrTemplate{caption-tag}{quadro}{\quadroname\hspace{0.25em}\thequadro}
+%
+%% Definindo o tema
+%% Atenção! Não deve haver espaço extra entre chaves e nomes no \SetTblrTemplate
+%\NewTblrTheme{quadro}{%
+% \SetTblrTemplate{caption-tag}{quadro}%
+% \SetTblrTemplate{caption-lot}{quadro}%
+%}
+%\end{lstlisting}
+%\end{singlespacing}
+%
+%Com isso, poderá usar a tabela e quadros, como no Exemplo~\ref{ex19:abnt-quadro}. A distinção entre tabela e quadro será feito pelo \verb+theme=quadro,+ na primeira opção do parâmetro opcional de \texttt{longtblr} ou \texttt{talltblr}.
-% Definindo o tema
-% Atenção! Não deve haver espaço extra entre chaves e nomes no \SetTblrTemplate
-\NewTblrTheme{quadro}{%
- \SetTblrTemplate{caption-tag}{quadro}%
- \SetTblrTemplate{caption-lot}{quadro}%
-}
-\end{lstlisting}
-\end{singlespacing}
-
-Com isso, poderá usar a tabela e quadros, como no Exemplo~\ref{ex19:abnt-quadro}. A distinção entre tabela e quadro será feito pelo \verb+theme=quadro,+ na primeira opção do parâmetro opcional de \texttt{longtblr} ou \texttt{talltblr}.
+O tema ``quadro'' configurará para quadro no modo \texttt{ABNT}, como no Exemplo~\ref{ex19:abnt-quadro}. A distinção entre tabela e quadro será feito pelo \verb+theme=quadro,+ na primeira opção do parâmetro opcional de \texttt{longtblr} ou \texttt{talltblr} (ou da versão \texttt{abnt} correspondente).
\begin{singlespacing}
\begin{lstlisting}[caption={ex19-abnt-quadro.tex},label={ex19:abnt-quadro}]
-Sem a opção do tema, será produzido a tabela. Note que na tabela não pode fechar os laterais (Exemplo~\ref{tab:talltblr:simples}).
+Sem a opção do tema ``quadro'', será produzido a tabela. Note que na tabela não pode fechar os laterais (Exemplo~\ref{tab:talltblr:simples}).
-\SetTblrSource{Elaboração do autor}
\begin{table}[hbp!]
-\begin{talltblr}
+\begin{tallabnttblr}
[
caption={Tabela curta simples},
label={tab:talltblr:simples},
+ remark{Fonte}={Elaboração do autor},
]
{
colspec = {XX},
@@ -10382,18 +10470,18 @@ Sem a opção do tema, será produzido a tabela. Note que na tabela não pode fe
nome & valor \\
a & 1 \\ \midrule
c & 2 \\ \bottomrule
-\end{talltblr}
+\end{tallabnttblr}
\end{table}
O quadro é produzido pelo tema \texttt{quadro} como no Exemplo~\ref{quadro:longo}. Note que, quadro deve fechar todos os lados e fazer divisório.
-\SetTblrSource{Elaboração do autor}
-\SetTblrNote{Usando o tema quadro para produzir quadro}
\begin{longtblr}
[
- theme=quadro,
+ theme=quadro, % um quadro
caption={Um quadro longo simples},
label={quadro:longo},
+ remark{Fonte}={Elaboração do autor},
+ remark{Nota}={Usando o tema quadro para produzir quadro},
]
{
colspec = {XX},
@@ -10404,7 +10492,7 @@ linha 2 & texto 2 \\
linha 3 & texto 3 \\
linha 4 & texto 4 \\
linha 5 & texto 5 \\
-\pagebreak % quebrando página para teste
+%\pagebreak % quebrando página para teste
linha 6 & texto 6 \\
linha 7 & texto 7 \\
linha 8 & texto 8 \\
@@ -10415,11 +10503,12 @@ linha 10 & texto 10 \\
Quadro flutuante será produzido pelo ambiente \texttt{quadro}, como no Quadro~\ref{quadro:flutuante}.
\begin{quadro}[hbp!]
-\SetTblrSource{Elaboração do autor}
\begin{talltblr}
[
+ theme=quadro, % um quadro
caption={Quadro flutuante simples},
label={quadro:flutuante},
+ remark{Fonte}={Elaboração do autor},
]
{
colspec = {XX},
@@ -10432,188 +10521,198 @@ Nome 2 & Sobrenome 2 \\
\end{lstlisting}
\end{singlespacing}
-A lista de quadros para configuração anterior, será produzida com o comando \verb+\listadequadros+. Para não constar no sumário, use a versão ``*''.
-
-Para a classe \texttt{abntexto}, a definição de novo ambiente estilo tabelas é feito pelo \verb+\definelegendplace+. Para este caso, também não vamos usar o pacote \texttt{float} para compatibilizar com ambientes já existentes. Acrescente o código seguinte no \texttt{preamble} já com configuração de tabelas anteriores, observando que o tema criado é \texttt{texttab} em vez de \texttt{quadro} para uniformidade do idioma.
-
-\begin{singlespacing}
-\begin{lstlisting}
-% quadro (texttab -- text table)
-\newcommand{\texttabname}{Quadro}
-\newcommand{\listtexttabname}{Lista de quadros}
-\addto\captionsbrazil{% portugues-brasil
- \renewcommand{\texttabname}{Quadro}
- \renewcommand{\listtexttabname}{Lista de quadros}
-}
-\addto\captionsenglish{% ingles
- \renewcommand{\texttabname}{Text table}
- \renewcommand{\listtexttabname}{List of text table}
-}
-
-% ABNTexto
-\ExplSyntaxOn
- \definelegendplace{texttab}{Quadro}{quad.\,}{lott} % nova entrada de legenda
-
- \DefTblrTemplate {caption-lot}{texttab}
- {
- \addtocounter{table}{-1}% não contar como table
- % contador criado pelo \definelegendplace{texttab} não é \c@textab, mas counttexttab que requer incrementar pelo comando de TeX.
- \global\advance\counttexttab by 1% contar como texttab
- \tl_if_empty:NTF \lTblrEntryTl
- {\tl_set_eq:NN \l__tblr_caption_short_tl \lTblrCaptionTl}
- {\tl_set_eq:NN \l__tblr_caption_short_tl \lTblrEntryTl}
- %adicionando no sumário pelo comando de abntexto
- \addtoext{lott}{lotti}{\protect\lottlabelbox{\the\counttexttab} {\l__tblr_caption_short_tl}}%
- }
-\ExplSyntaxOff
-
-% Atenção! Não deve haver espaço entre chaves e parametros
-\DefTblrTemplate{caption-tag}{texttab}{\texttabname\hspace{0.25em}\the\counttexttab}
-
-% Atenção! Não deve haver espaço entre chaves e parametros, no \SetTblrTemplate
-\NewTblrTheme{texttab}{
- \SetTblrTemplate{caption-lot}{texttab}
- \SetTblrTemplate{caption-tag}{texttab}
-}
-\end{lstlisting}
-\end{singlespacing}
-
-Para produzir quadros, basta usar o tema \texttt{texttab} que foi criada, como no Exemplo~\ref{ex19:abnt-quadro-abntexto}.
-
-\begin{singlespacing}
-\begin{lstlisting}[caption={ex19-abnt-quadro-abntexto.tex},label={ex19:abnt-quadro-abntexto}]
-Sem a opção do tema, será produzido a tabela. Note que na tabela não pode fechar os laterais (Exemplo~\ref{tab:talltblr:simples}).
-
-\SetTblrSource{Elaboração do autor}
-\begin{table}[hbp!]
-\begin{talltblr}
-[
- caption={Tabela curta simples},
- label={tab:talltblr:simples},
-]
-{
- colspec = {XX},
-}
-\toprule
-nome & valor \\
-a & 1 \\ \midrule
-c & 2 \\ \bottomrule
-\end{talltblr}
-\end{table}
-
-O quadro é produzido pelo tema \texttt{texttab} como no Exemplo~\ref{quadro:longo}. Note que, quadro deve fechar todos os lados e fazer divisório.
-
-\SetTblrSource{Elaboração do autor}
-\SetTblrNote{Usando o tema quadro para produzir quadro}
-\begin{longtblr}
-[
- theme=texttab,
- caption={Um quadro longo simples},
- label={quadro:longo},
-]
-{
- colspec = {XX},
- vlines,hlines, % fazer grade
-}
-linha 1 & texto 1 \\
-linha 2 & texto 2 \\
-linha 3 & texto 3 \\
-linha 4 & texto 4 \\
-linha 5 & texto 5 \\
-\pagebreak % quebrando página para teste
-linha 6 & texto 6 \\
-linha 7 & texto 7 \\
-linha 8 & texto 8 \\
-linha 9 & texto 9 \\
-linha 10 & texto 10 \\
-\end{longtblr}
-
-Quadro flutuante poderá ser produzido pelo ambiente \texttt{table} com \texttt{talltblr} dentro, como no Quadro~\ref{quadro:flutuante}.
-
-\begin{table}[hbp!]
-\SetTblrSource{Elaboração do autor}
-\begin{talltblr}
-[
- theme=texttab,
- caption={Quadro flutuante simples},
- label={quadro:flutuante},
-]
-{
- colspec = {XX},
- vlines,hlines, % grades
-}
-Nome 1 & Sobrenome 1 \\
-Nome 2 & Sobrenome 2 \\
-\end{talltblr}
-\end{table}
-
-Contagem está sincronizado com o \verb+\legend+ como no Quadro~\ref{quadro:curto}.
-
-\legend{texttab}{Teste do quadro curto não flutuante}
-\src{Elaboração do autor}
-\label{quadro:curto}
-\place{Quadro curto não flutuante aqui.}
+A diferença entre \texttt{tblr}/\texttt{talltblr}/\texttt{longtblr} com
+\texttt{abnttblr}/\texttt{tallabnttblr}/\texttt{longabnttblr} e que nas versões \texttt{abnt} pode configurar a fonte da tabela com \verb+\SetAbntTblrFont+, além de já aplicar o tema \texttt{abnt} por padrão.
+
+ No \texttt{ABNTeX2}, a tebela ou quadro curto produzido pelo \verb+\IBGEtab+\index{IBGEtab@\verb+\IBGEtab+} com o ambiente \texttt{table} ou \texttt{quadro} estará em sincronismo com os produzidos pelo tema \texttt{abnt} ou \texttt{quadro} nos ambientes de \texttt{tabularray} ou \texttt{tabualrray-abnt}.
+
+ No caso da classe \texttt{ABNTexto}, o ambiente \texttt{quadro} não é providenciado. Então use o ambiente \texttt{table} para o caso de querer usar o quadro curto flutuante. Em vez do ambiente quadro, terá a entrada de legenda \texttt{quadro} que estará em sincronismo com o tema \texttt{quadro} do \texttt{tblr} e similar.
+
+%A lista de quadros para configuração anterior, será produzida com o comando \verb+\listadequadros+. Para não constar no sumário, use a versão ``*''.
-\end{lstlisting}
-\end{singlespacing}
+A lista de quadros poderá ser produzido pelo comando \verb+\listadequadros+. No caso de \texttt{ABNTeX2} ou derivados da classe \texttt{memoir}, use a versão ``*'' para não constar no sumário.
+No caso de \texttt{abntexto}, terá o comando \verb+makeloq+ para lista de quadros, que funcionará de mesma forma que \verb+\makelot+.
-Para criar lista de quadros, use o comando
-\begin{singlespacing}
-\begin{lstlisting}
-\notoc\nonum\chapter{Lista de quadros}
-\makelott+
-\end{lstlisting}
-\end{singlespacing}
+%Para a classe \texttt{abntexto}, a definição de novo ambiente estilo tabelas é feito pelo \verb+\definelegendplace+. Para este caso, também não vamos usar o pacote \texttt{float} para compatibilizar com ambientes já existentes. Acrescente o código seguinte no \texttt{preamble} já com configuração de tabelas anteriores, observando que o tema criado é \texttt{texttab} em vez de \texttt{quadro} para uniformidade do idioma.
+%
+%\begin{singlespacing}
+%\begin{lstlisting}
+%% quadro (texttab -- text table)
+%\newcommand{\texttabname}{Quadro}
+%\newcommand{\listtexttabname}{Lista de quadros}
+%\addto\captionsbrazil{% portugues-brasil
+% \renewcommand{\texttabname}{Quadro}
+% \renewcommand{\listtexttabname}{Lista de quadros}
+%}
+%\addto\captionsenglish{% ingles
+% \renewcommand{\texttabname}{Text table}
+% \renewcommand{\listtexttabname}{List of text table}
+%}
+%
+%% ABNTexto
+%\ExplSyntaxOn
+% \definelegendplace{texttab}{Quadro}{quad.\,}{lott} % nova entrada de legenda
+%
+% \DefTblrTemplate {caption-lot}{texttab}
+% {
+% \addtocounter{table}{-1}% não contar como table
+% % contador criado pelo \definelegendplace{texttab} não é \c@textab, mas counttexttab que requer incrementar pelo comando de TeX.
+% \global\advance\counttexttab by 1% contar como texttab
+% \tl_if_empty:NTF \lTblrEntryTl
+% {\tl_set_eq:NN \l__tblr_caption_short_tl \lTblrCaptionTl}
+% {\tl_set_eq:NN \l__tblr_caption_short_tl \lTblrEntryTl}
+% %adicionando no sumário pelo comando de abntexto
+% \addtoext{lott}{lotti}{\protect\lottlabelbox{\the\counttexttab} {\l__tblr_caption_short_tl}}%
+% }
+%\ExplSyntaxOff
+%
+%% Atenção! Não deve haver espaço entre chaves e parametros
+%\DefTblrTemplate{caption-tag}{texttab}{\texttabname\hspace{0.25em}\the\counttexttab}
+%
+%% Atenção! Não deve haver espaço entre chaves e parametros, no \SetTblrTemplate
+%\NewTblrTheme{texttab}{
+% \SetTblrTemplate{caption-lot}{texttab}
+% \SetTblrTemplate{caption-tag}{texttab}
+%}
+%\end{lstlisting}
+%\end{singlespacing}
+%
+%Para produzir quadros, basta usar o tema \texttt{texttab} que foi criada, como no Exemplo~\ref{ex19:abnt-quadro-abntexto}.
+%
+%\begin{singlespacing}
+%\begin{lstlisting}[caption={ex19-abnt-quadro-abntexto.tex},label={ex19:abnt-quadro-abntexto}]
+%Sem a opção do tema, será produzido a tabela. Note que na tabela não pode fechar os laterais (Exemplo~\ref{tab:talltblr:simples}).
+%
+%\SetTblrSource{Elaboração do autor}
+%\begin{table}[hbp!]
+%\begin{talltblr}
+%[
+% caption={Tabela curta simples},
+% label={tab:talltblr:simples},
+%]
+%{
+% colspec = {XX},
+%}
+%\toprule
+%nome & valor \\
+%a & 1 \\ \midrule
+%c & 2 \\ \bottomrule
+%\end{talltblr}
+%\end{table}
+%
+%O quadro é produzido pelo tema \texttt{texttab} como no Exemplo~\ref{quadro:longo}. Note que, quadro deve fechar todos os lados e fazer divisório.
+%
+%\SetTblrSource{Elaboração do autor}
+%\SetTblrNote{Usando o tema quadro para produzir quadro}
+%\begin{longtblr}
+%[
+% theme=texttab,
+% caption={Um quadro longo simples},
+% label={quadro:longo},
+%]
+%{
+% colspec = {XX},
+% vlines,hlines, % fazer grade
+%}
+%linha 1 & texto 1 \\
+%linha 2 & texto 2 \\
+%linha 3 & texto 3 \\
+%linha 4 & texto 4 \\
+%linha 5 & texto 5 \\
+%\pagebreak % quebrando página para teste
+%linha 6 & texto 6 \\
+%linha 7 & texto 7 \\
+%linha 8 & texto 8 \\
+%linha 9 & texto 9 \\
+%linha 10 & texto 10 \\
+%\end{longtblr}
+%
+%Quadro flutuante poderá ser produzido pelo ambiente \texttt{table} com \texttt{talltblr} dentro, como no Quadro~\ref{quadro:flutuante}.
+%
+%\begin{table}[hbp!]
+%\SetTblrSource{Elaboração do autor}
+%\begin{talltblr}
+%[
+% theme=texttab,
+% caption={Quadro flutuante simples},
+% label={quadro:flutuante},
+%]
+%{
+% colspec = {XX},
+% vlines,hlines, % grades
+%}
+%Nome 1 & Sobrenome 1 \\
+%Nome 2 & Sobrenome 2 \\
+%\end{talltblr}
+%\end{table}
+%
+%Contagem está sincronizado com o \verb+\legend+ como no Quadro~\ref{quadro:curto}.
+%
+%\legend{texttab}{Teste do quadro curto não flutuante}
+%\src{Elaboração do autor}
+%\label{quadro:curto}
+%\place{Quadro curto não flutuante aqui.}
+%
+%\end{lstlisting}
+%\end{singlespacing}
+%
+%Para criar lista de quadros, use o comando
+%\begin{singlespacing}
+%\begin{lstlisting}
+%\notoc\nonum\chapter{Lista de quadros}
+%\makelott+
+%\end{lstlisting}
+%\end{singlespacing}
-Se tiver pouco espaço entre figuras ?? com o nome das figuras na lista de figuras, ou similares, poderá aumentar com o comando
+No caso de \texttt{ABNTexto}, se tiver pouco espaço entre ``FIGURA ??'' com o nome das figuras na lista de figuras, ou similares, poderá aumentar com os comandos
\begin{singlespacing}
\begin{lstlisting}
\renewcommand{\loflabelwidth}{7.5em} % da lista de figuras
\renewcommand{\lotlabelwidth}{7.5em} % da lista de tabelas
-\renewcommand{\lottlabelwidth}{8em} % da lista de quadros
+\renewcommand{\loqlabelwidth}{8em} % da lista de quadros
\end{lstlisting}
\end{singlespacing}
-Para criar o quadro no documento genérico, use o pacote \texttt{float} como segue, o que deve ser colocado junto com definição de tabelas \texttt{ABNT}.
-
-\begin{singlespacing}
-\begin{lstlisting}
-% quadros
-\newcommand{\quadroname}{Quadro}
-\newcommand{\listofquadrosname}{Lista de quadros}
-
-\newcommand{\listadeqadros}{\listof{quadro}{\listofquadrosname}}
-
-\newfloat{quadro}{tbp}{loq}%[chapter]
-%\counterwithout{quadro}{chapter} desvincular no capítulo
-
-%% We need to use \hspace and \enskip, but not ~ or \space,
-%% since we want a correct hangindent caption paragraph.
-
-%Atenção! Não pode haver espaço entre chaves e parametros
-\DefTblrTemplate {caption-tag} {quadro} {\quadroname\hspace{0.25em}\thequadro}
-
-%Atenção! Não pode haver espaço entre chaves e parametros
-\NewTblrTheme{quadro}{
- \SetTblrTemplate{caption-tag}{quadro}
- \SetTblrTemplate{caption-lot}{quadro}
-}
-
-\ExplSyntaxOn
-\DefTblrTemplate { caption-lot } { quadro }
-{
- \addtocounter{table}{-1}
- \stepcounter{quadro}
- \tl_if_empty:NTF \lTblrEntryTl
- { \tl_set_eq:NN \l__tblr_caption_short_tl \lTblrCaptionTl }
- { \tl_set_eq:NN \l__tblr_caption_short_tl \lTblrEntryTl }
- \addcontentsline { loq } { table }
- { \protect\numberline { \thequadro } { \l__tblr_caption_short_tl } }
-}
-\ExplSyntaxOff
-\end{lstlisting}
-\end{singlespacing}
+%Para criar o quadro no documento genérico, use o pacote \texttt{float} como segue, o que deve ser colocado junto com definição de tabelas \texttt{ABNT}.
+%
+%\begin{singlespacing}
+%\begin{lstlisting}
+%% quadros
+%\newcommand{\quadroname}{Quadro}
+%\newcommand{\listofquadrosname}{Lista de quadros}
+%
+%\newcommand{\listadeqadros}{\listof{quadro}{\listofquadrosname}}
+%
+%\newfloat{quadro}{tbp}{loq}%[chapter]
+%%\counterwithout{quadro}{chapter} desvincular no capítulo
+%
+%%% We need to use \hspace and \enskip, but not ~ or \space,
+%%% since we want a correct hangindent caption paragraph.
+%
+%%Atenção! Não pode haver espaço entre chaves e parametros
+%\DefTblrTemplate {caption-tag} {quadro} {\quadroname\hspace{0.25em}\thequadro}
+%
+%%Atenção! Não pode haver espaço entre chaves e parametros
+%\NewTblrTheme{quadro}{
+% \SetTblrTemplate{caption-tag}{quadro}
+% \SetTblrTemplate{caption-lot}{quadro}
+%}
+%
+%\ExplSyntaxOn
+%\DefTblrTemplate { caption-lot } { quadro }
+%{
+% \addtocounter{table}{-1}
+% \stepcounter{quadro}
+% \tl_if_empty:NTF \lTblrEntryTl
+% { \tl_set_eq:NN \l__tblr_caption_short_tl \lTblrCaptionTl }
+% { \tl_set_eq:NN \l__tblr_caption_short_tl \lTblrEntryTl }
+% \addcontentsline { loq } { table }
+% { \protect\numberline { \thequadro } { \l__tblr_caption_short_tl } }
+%}
+%\ExplSyntaxOff
+%\end{lstlisting}
+%\end{singlespacing}
%%%%%%%%%%%%%% APÊNDICE %%%%%%%%%%
@@ -13798,7 +13897,7 @@ Mas, pelo menos podemos tentar conhecer os pacotes e classes populares existente
\clearpage\thispagestyle{empty}\cleardoublepage
\backmatter
% Referências Bibliográficas
-\nocite{*}
+%\nocite{*}
\phantomsection
\bibliography{latex-via-exemplos}
% \bibliographystyle{amsalpha}
diff --git a/Master/texmf-dist/doc/latex/neoschool/README.md b/Master/texmf-dist/doc/latex/neoschool/README.md
new file mode 100644
index 00000000000..1cc0f6ed02d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/neoschool/README.md
@@ -0,0 +1,13 @@
+README file for neoschool class 1.0.0 [2025/01/04]
+
+neoschool is a document class designed for secondary school teachers. Features pre-configured templates, color themes, and specialized environments for educational documents. Simplifies LaTeX usage in education through integration of common packages and multilingual support.
+
+Copyright 2025 Razik Ikhlef
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
diff --git a/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.pdf b/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.pdf
new file mode 100644
index 00000000000..d0fd9fe9788
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.tex b/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.tex
new file mode 100644
index 00000000000..d8f73939daf
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.tex
@@ -0,0 +1,1398 @@
+\documentclass[
+ french,
+ margin=2cm
+]{neoschool}
+
+\title{La classe \texttt{neoschool}}
+\author{Version : 1.0.0 \quad\textemdash{}\quad Auteur : Razik Ikhlef}
+\date{04/01/2025}
+
+\begin{document}
+
+\maketitle
+
+La classe \texttt{neoschool} propose aux enseignants du secondaire un
+ensemble d'outils pour concevoir leurs documents pédagogiques (évaluations,
+supports de cours, fiches d'exercices avec leur correction, etc). Pour répondre
+aux différents besoins, elle propose huit thèmes de couleurs prédéfinis, des
+options de classe variées pour la mise en page et la typographie, des
+environnements spécialisés, des commandes dédiées et différents styles
+d'en-têtes préformatés pour chaque type de document. Elle intègre plusieurs
+dizaines d'extensions LaTeX couramment utilisées (voir la liste ci-dessous), ce
+qui allège considérablement le préambule et évite autant que possible les
+incompatibilités. Multilingue, elle prend en charge le français, l'anglais et
+l'allemand.
+
+\tableofcontents
+
+\section{Extensions chargées}
+
+Les extensions suivantes sont automatiquement chargées par la classe \texttt{neoschool}.
+
+\texttt{adforn}, \texttt{adjustbox}, \texttt{algpseudocode}, \texttt{amssymb}, \texttt{babel}, \texttt{bookmark}, \texttt{calc}, \texttt{changespace}, \texttt{cuted}, \texttt{environ}, \texttt{fancyvrb}, \texttt{fontawesome5}, \texttt{forest}, \texttt{iftex}, \texttt{ifthen}, \texttt{kvoptions}, \texttt{lastpage}, \texttt{marginnote}, \texttt{microtype}, \texttt{mismath} (qui charge \texttt{mathtools}), \texttt{multicol}, \texttt{needspace}, \texttt{pdftexcmds}, \texttt{pgffor}, \texttt{pgfplots}, \texttt{qrcode}, \texttt{scrlayer-scrpage}, \texttt{silence}, \texttt{siunitx}, \texttt{tabularray}, \texttt{tasks}, \texttt{tcolorbox} (avec l'option \texttt{most} qui charge les extensions \texttt{listings} et \texttt{minted}), \texttt{textcase}, \texttt{tikz}, \texttt{tikzpagenodes}, \texttt{tikzsymbols}, \texttt{ulem} (avec l'option \texttt{normalem}), \texttt{xcolor} (avec les options \texttt{table}, \texttt{svgnames}, \texttt{dvipsnames} et \texttt{x11names}), \texttt{xhfill}, \texttt{xkeyval}, \texttt{xsim} (avec les options \texttt{use-files} et \texttt{clear-aux}), \texttt{xstring}.
+
+La compilation en \texttt{pdflatex} charge les extensions \texttt{fonttenc} (avec l'option \texttt{T1}), \texttt{inputenc} (avec l'option \texttt{utf8}), \texttt{newpxtext} et \texttt{newpxmath}. La compilation en \texttt{lualatex} rend disponible les extensions \texttt{fontspec}, \texttt{luacas}, \texttt{lua-ul}, \texttt{luacolor} et applique les polices \texttt{TeX Gyre PagellaX} et \texttt{TeX Gyre Heros} en plus de \texttt{newpxmath}.
+
+L'options \texttt{graphics} charge les extensions \texttt{graphicx} et \texttt{wrapfig}, l'option \texttt{draft} les extensions \texttt{blindtext} et \texttt{lipsum} et l'option \texttt{mathastext} l'extension \texttt{mathastext}.
+
+L'option \texttt{math} charge les extensions \texttt{annotate-equations}, \texttt{bm}, \texttt{cancel}, \texttt{mathrsfs}, \texttt{nncomma}, \texttt{numprint}, \texttt{tdsfrmath} (avec les options \texttt{suite} et \texttt{taupe}), \texttt{tkz-euclide}, \texttt{witharrows} et \texttt{xlop}.
+
+L'option \texttt{notes} permet d'afficher des notes encadrées et à fond coloré dans les marges gauche et droite, de façon alternée. Elle charge l'extension \texttt{todonotes}.
+
+L'option \texttt{apmep}, qui permet de compiler directement les sujets d'annales de l'association du même nom, définit une ensemble de commandes mathématiques et charge les extensions \texttt{esvect}, \texttt{fourier-ons}, \texttt{numprint} (avec l'option \texttt{np}), \texttt{pstricks} (et de nombreux paquets de l'écosystème \texttt{pstricks}), \texttt{tabularx} et \texttt{textcomp}.
+
+L'option \texttt{mathics} permet de faire du calcul formel via \texttt{mathics} (version libre de \texttt{mathematica}) et charge les extensions \texttt{asymptote} et \texttt{latexalpha2}.
+
+\section{Options de configuration}
+
+\subsection{Langue}
+
+\begin{itemize}
+\item
+ \textbf{english, french, german} : active les traductions et
+ conventions liées à chaque langue. Ces options affectent les intitulés des théorèmes et environnements, la typographie et les conventions mathématiques.
+\item
+ \textbf{nofrenchlist} : désactive le style français des listes (remet
+ des points à la place des tirets).
+\item
+ \textbf{frenchlistaspar} : traite les listes comme des paragraphes en
+ français.
+\item
+ \textbf{frenchmath} : applique les conventions mathématiques
+ françaises (majuscules et lettres grecques droites).
+\end{itemize}
+
+\subsection{Apparence globale}
+
+\subsubsection{Thèmes prédéfinis}
+
+L'option \textbf{theme} = \texttt{nom-du-theme} définit
+le thème de couleurs du document. Les thèmes disponibles sont : \texttt{cyprus}, \texttt{kassio}, \texttt{frost}, \texttt{spring}, \texttt{arbutus}, \texttt{duo}, \texttt{navy}, \texttt{royal}. La plupart d'entre eux sont inspirés des \textit{ef-themes} pour \textit{emacs} de Protesilaos Stavrou.
+
+\subsubsection{Modes de couleur}
+
+\begin{itemize}
+\item \textbf{normal} : utilise des couleurs différentes pour chaque type
+ d'environnement.
+\item \textbf{unicolor} : utilise une couleur unique pour tous les
+ environnements :
+ \begin{itemize}
+ \item la couleur du titre est utilisée comme base ;
+ \item les variations sont obtenues par transparence.
+ \end{itemize}
+\item \textbf{print} : convertit toutes les couleurs en noir pour
+ l'impression.
+\item \textbf{gradientheadpalette} : utilise un dégradé de la couleur du titre pour les autres titres (sections, sous-sections, titre de théorèmes, etc.).
+\end{itemize}
+
+\subsubsection{Personnalisation des couleurs}
+
+\begin{itemize}
+\item \textbf{globalcolor} = \texttt{couleur} : définit la
+ couleur du texte.
+\item \textbf{titlecolor} = \texttt{couleur} ou \textbf{titlehexcolor} = \texttt{code hex} : définit la
+ couleur du titre.
+\item \textbf{headcolor} = \texttt{couleur} : définit la
+ couleur des en-têtes de section.
+\item \textbf{subcolor} = \texttt{couleur} : définit la
+ couleur des sous-sections.
+\item \textbf{subsubcolor} = \texttt{couleur} : définit la
+ couleur des sous-sous-sections.
+\item \textbf{headfootcolor} = \texttt{couleur} : définit
+ la couleur des en-têtes et pieds de page.
+\end{itemize}
+
+\subsubsection{Options d'affichage}
+
+\begin{itemize}
+\item \textbf{noframe} : supprime les cadres des environnements.
+\item \textbf{noback} : supprime les fonds colorés.
+\item \textbf{nocodeframe} : supprime les cadres des blocs de code.
+\item \textbf{scale} : harmonise les dimensions des polices en \texttt{lualatex}.
+\end{itemize}
+
+\subsection{Personnalisation du résumé}
+
+L'option \texttt{abstracttitle} permet de personnaliser
+le titre de l'environnement \texttt{abstract} :
+
+\begin{code}{latex}
+% Dans le préambule
+\documentclass[abstracttitle=Résumé]{neoschool}
+
+% Dans le document
+\begin{abstract}
+ Contenu du résumé...
+\end{abstract}
+\end{code}
+
+\subsection{Typographie}
+
+\begin{itemize}
+\item \textbf{sfbody} : active la police sans empattements pour le corps du
+ texte.
+\item \textbf{sfall} : active la police sans empattements pour tout le
+ document.
+\item \textbf{mathastext} : utilise la police de texte pour les
+ mathématiques.
+\item \textbf{mainface} = \texttt{police} : police
+ principale du document.
+\item \textbf{mainfaceoptions} = \texttt{options} : options
+ de la police principale.
+\item \textbf{sansface} = \texttt{police} : police sans
+ empattements.
+\item \textbf{sansfaceoptions} = \texttt{options} : options
+ de la police sans empattements.
+\item \textbf{monoface} = \texttt{police} : police à chasse
+ fixe.
+\item \textbf{monofaceoptions} = \texttt{options} : options
+ de la police à chasse fixe.
+\item \textbf{mathface} = \texttt{police} : police
+ mathématique.
+\item \textbf{mathfaceoptions} = \texttt{options} : options
+ de la police mathématique (uniquement en \texttt{pdflatex}).
+\item \textbf{facefamily} = \texttt{famille} : famille de
+ polices complète.
+\item \textbf{facefamilyoptions} = \texttt{options} :
+ options de la famille de polices.
+\end{itemize}
+
+\subsection{Mise en page}
+
+\subsubsection{Marges et espacement}
+
+\begin{itemize}
+\item \textbf{margin} = \texttt{longueur} : définit la
+ largeur des marges horizontales (2,5 cm par défaut) ; les marges verticales s'adaptent en conséquence.
+\item \textbf{notes} = \texttt{longueur} : active les \textit{todonotes}
+ dans les marges et définit leur largeur.
+\item \textbf{noindent} : supprime l'indentation des paragraphes.
+\item \textbf{indent} = \texttt{longueur} : définit la
+ largeur de l'indentation (1 em par défaut).
+\item \textbf{compact} :
+ \begin{itemize}
+ \item réduit l'espacement entre les paragraphes ;
+ \item diminue les marges des environnements ;
+ \item compresse l'interligne.
+ \end{itemize}
+\end{itemize}
+
+\subsubsection{Options de sortie}
+
+\begin{itemize}
+\item \textbf{2a5toa4} : affiche deux fois la même page A5 sur une page A4 en mode paysage.
+\item \textbf{2a4toa3} : affiche deux fois la même page A4 sur une page A3 en mode paysage.
+\item \textbf{4a5toa3} : affiche quatre fois la même page A5 sur une page A3.
+\item \textbf{2toa3} : affiche deux pages A4 quelconques sur une page A3 en mode paysage.
+\item \textbf{bookleta5} : génère un livret en A5 (quatre pages par feuille A4).
+\item \textbf{bookleta4} : génère un livret en A4 (quatre pages par feuille A3).
+\end{itemize}
+
+\subsubsection{En-têtes et pieds de page}
+
+\begin{itemize}
+
+\item
+ \textbf{fullheader} : active l'en-tête et le pied de page complets.
+ \begin{itemize}
+ \item En-tête : type de document à gauche, titre au centre et niveau de classe à
+ droite.
+ \item Pied de page : date à gauche, établissement au centre et pagination
+ à droite.
+ \end{itemize}
+\item \textbf{headrule} : ajoute un filet sous l'en-tête.
+\item \textbf{footrule} : ajoute un filet au-dessus du pied de page.
+\item \textbf{headfootrule} : active les deux filets.
+\end{itemize}
+
+\section{Styles de document}
+
+\subsection{Styles de titre}
+
+\subsubsection{Styles d'examen}
+
+\begin{itemize}
+
+\item \textbf{exam} : style complet pour examens avec en-tête détaillé.
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[exam]{neoschool}
+
+\neoheader{
+ type = Devoir surveillé,
+ school = Lycée Poincarré,
+ level = Terminale,
+ duration = 2h,
+ calculator = true % ou false ou exam
+}
+\end{code}
+
+\begin{itemize}
+
+\item \textbf{shortexam} : style compact pour examens avec en-tête simplifié.
+\item \textbf{mockexam} : style pour épreuves type baccalauréat ou brevet blancs
+ avec page de garde normalisée.
+\end{itemize}
+
+\subsubsection{Styles d'évaluation}
+
+\begin{itemize}
+
+\item \textbf{eval} : style standard pour évaluations.
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[eval]{neoschool}
+
+\neoheader{
+ type = Contrôle,
+ school = Collège Alan Turing,
+ level = Quatrième
+}
+\end{code}
+
+\begin{itemize}
+\item \textbf{evalicons} : ajoute des icônes à l'en-têtes \texttt{evel}.
+\item \textbf{evalgrade} : ajoute un bandeau de notation.
+\item \textbf{evaliconsgrade} : style complet avec icônes et notation.
+\item \textbf{shorteval} : style compact pour évaluations.
+\end{itemize}
+
+\subsubsection{Styles avec bulles}
+
+\begin{itemize}
+\item \textbf{bubbles} : style avec fond à bulles colorées.
+\item \textbf{shortbubbles} : version compacte du style bulles.
+\end{itemize}
+
+\subsubsection{Autres styles de titre}
+
+\begin{itemize}
+\item \textbf{titleornament} : ajoute des ornements en-dessous du titre.
+\item \textbf{titlerule} : ajoute un filet sous le titre.
+\item \textbf{titlemidrule} : ajoute un filet central sous le titre.
+\item \textbf{titlefullrule} : ajoute un filet en pleine largeur sous le titre.
+\item \textbf{fancybox} : titre avec boîte grise élégante.
+\item \textbf{onlytitleleft} : affiche uniquement le titre, aligné à gauche.
+\item \textbf{onlytitle} : affiche uniquement le titre, centré.
+\item \textbf{onlytitleright} : affiche uniquement titre, aligné à droite.
+\item \textbf{shorttitle} : style de titre compact.
+\item \textbf{shortlesson} : style compact pour les leçons.
+\end{itemize}
+
+\subsection{Configuration de l'en-tête}
+
+L'en-tête du document peut être configuré avec la commande
+\texttt{\textbackslash neoheader} :
+
+\begin{code}{latex}
+\neoheader{
+ type = {Type de document},
+ school = {Nom de l'établissement},
+ academy = {Nom de l'académie},
+ level = {Niveau de classe},
+ duration = {Durée},
+ calculator = {true/false/exam},
+ leftcontent = {\faIcon{...}},
+ rightcontent = {\faIcon{...}},
+}
+\end{code}
+
+\subsection{Options de formatage des titres}
+
+\subsubsection{Styles globaux}
+
+\begin{itemize}
+\item \textbf{headstyle} = \texttt{style} : style de police
+ pour tous les en-têtes (\texttt{sffamily} par défaut).
+ \begin{itemize}
+ \item Sections, sous-sections, etc.
+ \item En-têtes de théorèmes et exercices.
+ \end{itemize}
+\begin{code}{latex}
+\documentclass[headstyle=rmfamily]{neoschool}
+\end{code}
+\item \textbf{headweight} = \texttt{graisse} : graisse pour
+ tous les en-têtes (\texttt{bfseries} par défaut).
+\begin{code}{latex}
+\documentclass[
+ headstyle=sffamily,
+ headweight=mdseries
+]{neoschool}
+\end{code}
+\item \textbf{headshape} = \texttt{forme} : forme pour tous
+ les en-têtes (\texttt{scshape} par défaut).
+\begin{code}{latex}
+\documentclass[
+ headstyle=sffamily,
+ headshape=upshape
+]{neoschool}
+\end{code}
+\end{itemize}
+
+\subsubsection{Style du titre principal}
+
+\begin{itemize}
+\item \textbf{titlestyle} = \texttt{style} : style pour le
+ titre principal (hérite de \texttt{headstyle}).
+\item \textbf{titleweight} = \texttt{graisse} : graisse du
+ titre principal (hérite de \texttt{headweight}).
+\item \textbf{titleshape} = \texttt{forme} : forme du titre
+ principal (\texttt{upshape} par défaut).
+\item \textbf{titlealign} = \texttt{alignement} :
+ alignement du titre (\texttt{center} par défaut).
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[
+ titlestyle=sffamily,
+ titleweight=bfseries,
+ titleshape=upshape,
+ titlealign=left
+]{neoschool}
+\end{code}
+
+\subsubsection{Style des sections}
+
+\begin{itemize}
+\item \textbf{sectionnumstyle} = \texttt{style} : style de
+ numérotation.
+ \begin{itemize}
+ \item \texttt{circle} : numéro encerclé.
+ \item \texttt{box} : numéro encadré.
+ \item \texttt{dash} : tiret après le numéro.
+ \item \texttt{plain} : numéro simple.
+ \end{itemize}
+\item \textbf{sectiontextstyle} = \texttt{style} : style du
+ texte.
+ \begin{itemize}
+ \item \texttt{sc} : petites capitales.
+ \item \texttt{upper} : majuscules.
+ \item \texttt{lower} : minuscules.
+ \end{itemize}
+\item \textbf{sectionstyle} = \texttt{style} : style global
+ de la section.
+ \begin{itemize}
+ \item \texttt{ornaments} : avec ornements décoratifs.
+ \item \texttt{underline} : souligné.
+ \item \texttt{normal} : style simple.
+ \item \texttt{highlighted} : avec surlignage.
+ \item \texttt{shadedline} : avec ligne ombrée.
+ \end{itemize}
+\item \textbf{sectionalign} = \texttt{alignement} :
+ alignement des sections.
+ \begin{itemize}
+ \item \texttt{left} : à gauche.
+ \item \texttt{center} : centré
+ \item \texttt{right} : à droite.
+ \end{itemize}
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[
+ sectionnumstyle=circle,
+ sectiontextstyle=upper,
+ sectionstyle=highlighted,
+ sectionalign=left
+]{neoschool}
+\end{code}
+
+\subsubsection{Style des en-têtes/pieds de page}
+
+\begin{itemize}
+\item \textbf{headfootstyle} = \texttt{style} : style des
+ en-têtes/pieds de page (basé sur \texttt{headstyle}).
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[headfootstyle=sffamily]{neoschool}
+\end{code}
+
+\subsubsection{Exemple complet de configuration}
+
+\begin{code}{latex}
+\documentclass[
+ % Style global
+ headstyle=sffamily,
+ headweight=bfseries,
+ headshape=scshape,
+
+ % Titre principal
+ titlestyle=sffamily,
+ titleweight=bfseries,
+ titleshape=upshape,
+ titlealign=center,
+
+ % Sections
+ sectionnumstyle=circle,
+ sectiontextstyle=upper,
+ sectionstyle=highlighted,
+ sectionalign=left,
+
+ % En-têtes/pieds de page
+ headfootstyle=sffamily
+]{neoschool}
+\end{code}
+
+\section{Disposition des contenus}
+
+\subsection{Positionnement absolu d'objets}
+
+La commande \texttt{\textbackslash positionobject} permet de placer
+précisément un élément sur la page :
+
+\begin{code}{latex}
+% Syntaxe
+\positionobject{x-shift}{y-shift}{scale}{contenu}
+
+\begin{itemize}
+\item \texttt{x-shift} : décalage horizontal depuis le coin
+ supérieur gauche.
+\item \texttt{y-shift} : décalage vertical depuis le coin
+ supérieur gauche.
+\item \texttt{scale} : facteur d'échelle pour le contenu.
+\item \texttt{contenu} : élément à positionner (image,
+ texte, etc.).
+\end{itemize}
+
+% Exemple : Image en haut à droite
+\positionobject{15cm}{1cm}{0.5}{\includegraphics{logo.png}}
+
+% Exemple : Texte en bas de page
+\positionobject{2cm}{25cm}{1}{Note de bas de page spéciale}
+\end{code}
+
+\subsection{Mise en page à deux colonnes}
+
+La commande \textbf{\textbackslash splitcontent} permet de diviser le
+contenu horizontalement :
+
+\begin{code}{latex}
+% Syntaxe : \splitcontent[largeur1][espace]{contenu1}{contenu2}
+
+% Exemple avec valeurs personnalisées
+\splitcontent[0.6][0.05]{
+ Cette partie occupe 60 %
+ de la largeur totale
+}{
+ Cette partie occupe 35 %
+ (5 % d'espace entre les deux)
+}
+
+% Exemple avec valeurs par défaut (50 % / 50 %)
+\splitcontent{
+ Première colonne
+}{
+ Seconde colonne
+}
+\end{code}
+
+\subsection{Environnements côte à côte}
+
+L'environnement \texttt{sidebyside} permet de créer des
+boîtes à deux colonnes avec des styles cohérents :
+
+\begin{code}{latex}
+\begin{sidebyside}[options]
+ % Contenu gauche
+ \tcblower
+ % Contenu droit
+\end{sidebyside}
+\end{code}
+
+Les options sont celles de \texttt{tcolorbox}.
+
+\begin{code}{latex}
+\begin{sidebyside}[
+ title=Comparaison,
+ colback=exampleColor!5,
+ colbacklower=exampleColor!10
+]
+ Première version
+ \tcblower
+ Version améliorée
+\end{sidebyside}
+\end{code}
+
+\subsection{Association texte et image}
+
+La commande \textbf{\textbackslash textwithimage} combine texte et image~:
+
+\begin{code}{latex}
+% Syntaxe : \textwithimage[*]{largeur_image}{échelle_image}{texte}{chemin_image}
+% L'étoile (*) inverse la position de l'image (droite par défaut)
+
+% Image à droite (30 % de la largeur)
+\textwithimage{0.3}{0.95}{
+ Ce texte décrit l'image ci-contre...
+}{images/figure.png}
+
+% Image à gauche (40 % de la largeur)
+\textwithimage*{0.4}{0.9}{
+ Description à droite de l'image...
+}{images/schema.png}
+\end{code}
+
+\subsection{QR codes et contenus}
+
+La commande \textbf{\textbackslash withqrcode} intègre un QR code avec
+du contenu associé :
+
+\begin{code}{latex}
+% Syntaxe : \withqrcode[*][taille]{url}{contenu}
+% L'étoile (*) place le QR code à droite (gauche par défaut)
+
+% QR code à gauche (2 cm par défaut)
+\withqrcode{https://example.com}{
+ Scanner pour plus d'informations
+}
+
+% QR code de 3cm à droite
+\withqrcode*[3cm]{https://exercises.com}{
+ Accéder aux exercices en ligne
+}
+\end{code}
+
+\subsection{Grilles et papiers}
+
+\subsubsection{Grilles personnalisables}
+
+\begin{itemize}
+\item \textbf{\textbackslash grid} : grille à petits carreaux.
+\end{itemize}
+
+\begin{code}{latex}
+\grid[blue]{10cm}{5cm} % Grille bleue de 10 x 5 cm
+\end{code}
+
+\begin{itemize}
+\item \textbf{\textbackslash customgrid} : grille avec espacement.
+ personnalisé
+\end{itemize}
+
+\begin{code}{latex}
+\customgrid[red][4mm][4mm]{12cm}{8cm} % Grille rouge, mailles de 4 mm
+\end{code}
+
+\begin{itemize}
+\item \textbf{\textbackslash frenchgrid} : grille à grands carreaux de type Seyès.
+\end{itemize}
+
+\begin{code}{latex}
+\frenchgrid{15cm}{10cm} % Grille de type cahier français
+\end{code}
+
+\subsubsection{Pages entières}
+
+\begin{itemize}
+\item \textbf{\textbackslash notebook} : page de type cahier avec lignes horizontales et
+ marge rouge.
+\end{itemize}
+
+\begin{code}{latex}
+\notebook % Active le style cahier ligné
+\end{code}
+
+\begin{itemize}
+\item \textbf{\textbackslash nbminorgrid} : page entièrement recouverte de petits carreaux.
+\end{itemize}
+
+\begin{code}{latex}
+\nbminorgrid % Active le quadrillage fin
+\end{code}
+
+\begin{itemize}
+\item \textbf{\textbackslash nbmajorgrid} : page entièrement recouverte de grands carreaux.
+\end{itemize}
+
+\begin{code}{latex}
+\nbmajorgrid % Active le quadrillage Seyès
+\end{code}
+
+\subsection{Boîtes simples}
+
+L'environnement \texttt{neobox} permet de créer rapidement des boîtes simples. Il existe en deux variantes : \texttt{neobox} avec cadre et \texttt{neobox*} sans cadre visible :
+
+\begin{code}{latex}
+% Boîte standard
+\begin{neobox}[colframe=blue,colback=blue!5]
+ Texte dans une boîte...
+\end{neobox}
+
+% Boîte sans cadre avec fond coloré
+\begin{neobox*}[colback=gray!10]
+ Texte sur fond gris...
+\end{neobox*}
+\end{code}
+
+\section{Exercices}
+
+\subsection{Exercices et évaluations}
+
+\subsubsection{Configuration des exercices}
+
+L'environnement \texttt{exercise} accepte les options
+suivantes.
+
+\begin{itemize}
+\item \textbf{points} = \texttt{nombre} : nombre de points
+ de l'exercice.
+\item \textbf{level} = \texttt{nombre} : niveau de
+ difficulté (affiché sous forme d'étoiles).
+\item \textbf{subtitle} = \texttt{texte} : sous-titre ou
+ description de l'exercice.
+\item \textbf{icon} = \texttt{icône} : icône personnalisée
+ (utilise la bibliothèque d'icônes \textit{Font Awesome}).
+\item \textbf{topic} = \texttt{thème} : thème ou chapitre
+ concerné.
+\item \textbf{subject} = \texttt{matière} : matière
+ concernée.
+\item \textbf{ID} = \texttt{identifiant} : identifiant
+ unique pour référencement.
+\item \textbf{template} = \texttt{style} : style
+ d'affichage spécifique pour cet exercice.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{exercise}[
+ points=4,
+ level=2,
+ subtitle=Dérivation,
+ icon=\faPencil,
+ topic=Analyse,
+ subject=Mathématiques,
+ ID=der01,
+ template=elegant-box
+]
+ Calculer la dérivée de la fonction $f$ définie sur $]0 ; +\infty[$
+ par $f(x)=x^2\ln(x)$.
+\end{exercise}
+
+L'environnement \texttt{solution} doit immédiatement suivre l'environnement \texttt{exercise} correspondant. La correction des exercices ne s'affiche pas par défaut.
+
+\begin{solution}
+ On utilise la formule du produit...
+\end{solution}
+
+% Pour référencer l'exercice ailleurs :
+Comme vu dans l'exercice~\exercisenumber{der01}.
+\end{code}
+
+\subsubsection{Options globales}
+
+\begin{itemize}
+\item \textbf{exerciseicons} : active les icônes pour tous les exercices.
+\item \textbf{answers} : affiche automatiquement toutes les corrections des exercices.
+\item \textbf{shuffle} : mélange les choix de réponse dans les QCM.
+\item \textbf{sectionthmcounter} : numérote les exercices par section.
+\item \textbf{sharedexcounter} : partage le compteur avec les théorèmes.
+\end{itemize}
+
+\subsubsection{Templates d'exercices}
+
+La classe offre de nombreux styles prédéfinis pour les exercices.
+
+\begin{itemize}
+\item \textbf{box} : boîte standard avec bordure et titre.
+\item \textbf{elegant-box} : boîte avec barre latérale colorée.
+\item \textbf{shaded-box} : boîte avec ombrage et titre en bannière.
+\item \textbf{slanted-box} : boîte avec titre en bandeau incliné.
+\item \textbf{sober-box} : boîte minimaliste avec titre en couleur.
+\item \textbf{classic-box} : boîte classique avec titre en bandeau.
+\item \textbf{classy-box} : boîte sophistiquée avec titre décoratif.
+\item \textbf{rect-box} : boîte rectangulaire simple.
+\item \textbf{rect-box-outlined} : boîte rectangulaire avec contour.
+\item \textbf{num-box} : boîte numérotée compacte.
+\item \textbf{num-box-outlined} : boîte numérotée avec contour.
+\item \textbf{ex-num-box} : boîte ``Ex.'' numérotée.
+\item \textbf{ex-num-box-outlined} : boîte ``Ex.'' numérotée avec contour.
+\item \textbf{box-hrule} : boîte avec règle horizontale.
+\item \textbf{box-hrule-out} : boîte avec règle horizontale et contour.
+\item \textbf{box-hrule-in} : boîte avec règle horizontale intérieure.
+\item \textbf{boxed} : simple boîte avec titre.
+\item \textbf{boxed-out} : boîte avec contour et titre.
+\item \textbf{inline} : texte en ligne avec titre.
+\item \textbf{section} : titre de type section.
+\item \textbf{subsection} : titre de type sous-section.
+\item \textbf{terminal} : style console avec icône terminal.
+\item \textbf{block} : style minimaliste.
+\item \textbf{hrule} : avec règle horizontale.
+\end{itemize}
+
+Pour définir un template pour tout le document, il suffit d'utiliser la commande \texttt{\textbackslash xsimsetup} dans la préambule :
+
+\begin{code}{latex}
+\xsimsetup{
+ exercise/template = elegant-box, % template des exercices
+ solution/template = sol-box % template des solutions
+}
+\end{code}
+
+\subsubsection{QCM et choix multiples}
+
+\begin{itemize}
+\item \textbf{choices} : pour les QCM à réponse unique.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{exercise}[points=2,ID=qcm01]
+ Quelle est la dérivée de $e^x$ ?
+ \begin{choices}
+ \choice $x e^x$
+ \choice[\correct] $e^x$
+ \choice $e^{x-1}$
+ \choice $\ln(x)$
+ \end{choices}
+\end{exercise}
+\end{code}
+
+\begin{itemize}
+
+\item
+ \textbf{checkboxes} : pour les QCM à réponses multiples.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{exercise}[points=3,ID=qcm02]
+ Parmi ces nombres, lesquels sont premiers ?
+ \begin{checkboxes}
+ \checkbox[\correct*] 2
+ \checkbox[\correct*] 3
+ \checkbox 4
+ \checkbox[\correct*] 5
+ \end{checkboxes}
+\end{exercise}
+\end{code}
+
+\section{Environnements mathématiques}
+
+\subsection{Styles de théorèmes}
+
+Les styles suivants sont disponibles pour tous les environnements de
+type théorème : \textbf{amslikethm} (style minimaliste), \textbf{boxedthm}, \textbf{classicthm}, \textbf{classythm}, \textbf{elegantthm}, \textbf{shadedthm}, \textbf{slantedthm}, \textbf{soberthm}.
+
+Options communes :
+
+\begin{itemize}
+\item \textbf{title} = \texttt{texte} : titre du théorème.
+\item \textbf{label} = \texttt{nom} : étiquette pour
+ référencement.
+\item \textbf{colback} = \texttt{couleur} : couleur de fond.
+\item \textbf{colframe} = \texttt{couleur} : couleur du
+ cadre.
+\item \textbf{coltitle} = \texttt{couleur} : couleur du
+ titre.
+\item \textbf{fonttitle} = \texttt{commandes} : style du
+ titre.
+\end{itemize}
+
+\subsection{Options de numérotation}
+
+\begin{itemize}
+\item \textbf{sectionthmcounter} : compteurs relatifs à chaque section.
+\item \textbf{sharedthmcounter} : compteur partagé entre tous les
+ environnements.
+\item \textbf{theoremgroup} : regroupe certains environnements de théorèmes.
+\item \textbf{thmgroupcounter} : active un compteur pour les groupes.
+\end{itemize}
+
+\subsection{Environnements mathématiques}
+
+\begin{itemize}
+\item \textbf{theorem} : pour les théorèmes.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{theorem}[title=Théorème de Pythagore,label=pyth]
+ Dans un triangle rectangle, le carré de
+ l'hypoténuse est égal à la somme des carrés
+ des deux autres côtés.
+\end{theorem}
+
+% Référencement :
+D'après le théorème~\ref{thm:pyth}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{lemma} : pour les lemmes.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{lemma}[title=Lemme préparatoire,label=prep]
+ Contenu du lemme...
+\end{lemma}
+
+% Référencement :
+Selon le lemme~\ref{lem:prep}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{corollary} : pour les corollaires.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{corollary}[
+ title=Réciproque de Pythagore,
+ label=pythrecip
+]
+ Si $a^2 + b^2 = c^2$, alors le triangle est
+ rectangle en $A$.
+\end{corollary}
+
+% Référencement :
+Selon le corollaire~\ref{cor:pythrecip}
+\end{code}
+
+\begin{itemize}
+\item \textbf{proposition} : pour les propositions (\textbf{propo} pour le
+ référencement).
+\item \textbf{property} : pour les propriétés (\textbf{prop} pour le
+ référencement).
+\item \textbf{definition} : pour les définitions (\textbf{def} pour le
+ référencement).
+\item \textbf{method} : pour les méthodes (\textbf{meth} pour le
+ référencement).
+\item \textbf{activity} : pour les activités (\textbf{act} pour le
+ référencement).
+\item \textbf{application} : pour les applications (\textbf{appl} pour le
+ référencement).
+\item \textbf{remark} : pour les remarques.
+\item \textbf{remarks} : pour une série de remarques.
+\item \textbf{example} : pour les exemples.
+\item \textbf{examples} : pour une série d'exemples.
+\end{itemize}
+
+\section{Code informatique}
+
+La classe \texttt{neoschool} propose deux options pour la
+gestion du code.
+
+\begin{itemize}
+\item \textbf{listings} (par défaut) : utilise l'extension \texttt{listings}.
+\item \textbf{minted} : utilise l'extension \texttt{minted} (qui nécessite le langage \textit{Python} et sa bibliothèque
+ \texttt{Pygments}).
+\end{itemize}
+
+\subsection{Option listings}
+
+\subsubsection{Styles de code disponibles}
+
+\begin{itemize}
+\item \textbf{lststyle} = \texttt{style} : style de
+ coloration.
+ \begin{itemize}
+ \item \texttt{colorful} : coloration complète (par défaut).
+ \item \texttt{minimal} : style minimaliste.
+ \item \texttt{academic} : style ``académique'' avec numéros de ligne.
+ \item \texttt{modern} : style ``moderne'' avec fond coloré.
+ \end{itemize}
+\end{itemize}
+
+\subsubsection{Boîtes de code personnalisées}
+
+La classe définit l'environnement \texttt{code} dont la structure est la suivante :
+
+\begin{lstlisting}[style=latex]
+\begin{code}[options]{langage}[titre][style-boite]
+ code source...
+\end{code}
+\end{lstlisting}
+
+Styles de boîtes : \textbf{box-minimal}, \textbf{box-fancy}, \textbf{box-classic}, \textbf{box-elegant}, \textbf{box-diagonal}, \textbf{box-bevel}, \textbf{box-corner}, \textbf{box-rounded}, \textbf{box-downhill}, \textbf{box-bottomtitle}, \textbf{box-bottomtitlef}.
+
+\begin{lstlisting}[language=TeX]
+\begin{code}[numbers=left]{python}[Exemple de fonction][box-fancy]
+def hello(name):
+ print(f"Hello, {name}!")
+\end{code}
+\end{lstlisting}
+
+\subsubsection{Langages et styles préconfigurés}
+
+\begin{itemize}
+\item Python
+\item Java
+\item C++
+\item JavaScript
+\item SQL
+\item LaTeX
+\item Bash
+\item Assembly
+\item Lisp
+\item JSON
+\item YAML
+\item TOML
+\item CSV
+\item Markdown
+\end{itemize}
+
+\subsubsection{Commandes additionnelles}
+
+\begin{itemize}
+\item \textbf{\textbackslash codeinline} : code en ligne.
+\end{itemize}
+
+\begin{code}{latex}
+\codeinline[python]{print("Hello")}
+\end{code}
+
+\begin{itemize}
+
+\item \textbf{\textbackslash codeinput} : code chargé depuis un fichier.
+\end{itemize}
+
+\begin{code}{latex}
+\codeinput[options]{langage}{fichier.py}[titre][style-boite]
+\end{code}
+
+\subsection{Option minted}
+
+Lorsque l'option \textbf{minted} est activée, les environnements de code utilisent \texttt{Pygments} pour la coloration
+syntaxique. L'environnement \texttt{code} est également disponible avec l'option \texttt{minted}, avec la même syntaxe :
+
+\begin{lstlisting}[language=TeX]
+\usemintedstyle{tango}
+\begin{code}[linenos,highlightlines={2,3}]{python}[Fonction][box-fancy]
+def greet(name):
+ message = f"Hello, {name}!"
+ print(message)
+ return message
+\end{code}
+\end{lstlisting}
+
+\section{Notes et annotations}
+
+\subsection{Notes marginales}
+
+Les notes peuvent être placées dans la marge avec différentes options :
+
+\begin{itemize}
+\item \textbf{\textbackslash tdnote} : notes colorées et encadrées dans la
+ marge, alternant entre gauche et droite.
+\end{itemize}
+
+\begin{code}{latex}
+\tdnote{Point important à retenir}
+\tdnote[backgroundcolor=blue!5]{Note avec fond bleu clair}
+\end{code}
+
+\begin{itemize}
+\item \textbf{\textbackslash boxnote/\textbackslash tdmark} : l'extension \texttt{todonote} ne permettant pas de placer des notes directement dans des environnements, il est nécessaire d'utiliser un point d'ancrage (\textbf{\textbackslash tdmark}) ayant le même label que le contenu de la note proprement dite (\textbf{\textbackslash boxnote}).
+\end{itemize}
+
+\begin{code}{latex}
+\boxnote[thm1]{Ce théorème est important}
+\begin{theorem}
+ \tdmark[thm1] % Point de référence pour la note (même label)
+ Contenu du théorème...
+\end{theorem}
+\end{code}
+
+Les options possibles pour les notes sont les suivantes.
+
+\begin{itemize}
+\item \textbf{backgroundcolor} = \texttt{couleur} : couleur
+ de fond.
+\item \textbf{color} = \texttt{couleur} : couleur du texte.
+\item \textbf{bordercolor} = \texttt{couleur} : couleur de
+ la bordure.
+\item \textbf{width} = \texttt{longueur} : largeur de la
+ note.
+\item \textbf{linecolor} = \texttt{couleur} : couleur de la
+ ligne de référence.
+\end{itemize}
+
+\subsection{Admonitions}
+
+Les environnements d'admonition permettent de mettre en avant des
+informations importantes. Chaque type a sa propre couleur et icône par
+défaut.
+
+\begin{itemize}
+\item \textbf{note} : remarques générales.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{note}[Remarque importante][\faInfo]
+ Points à retenir...
+\end{note}
+\end{code}
+
+\begin{itemize}
+\item \textbf{info} : informations complémentaires.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{info}[Pour aller plus loin]
+ Informations additionnelles...
+\end{info}
+\end{code}
+
+\begin{itemize}
+\item \textbf{warning} : avertissements.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{warning}[Attention !][\faExclamationTriangle]
+ Points critiques à ne pas oublier...
+\end{warning}
+\end{code}
+
+\begin{itemize}
+\item \textbf{important} : points essentiels.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{important}[Point clé]
+ Concept fondamental...
+\end{important}
+\end{code}
+
+\begin{itemize}
+\item \textbf{tip} : conseils et astuces.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{tip}[Astuce de calcul][\faLightbulb]
+ Une méthode plus rapide...
+\end{tip}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{reminder} : points à retenir.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{reminder}[À mémoriser]
+ Formules essentielles...
+\end{reminder}
+\end{code}
+
+\begin{itemize}
+\item \textbf{summary} : résumés.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{summary}[En bref]
+ Points principaux du chapitre...
+\end{summary}
+\end{code}
+
+\begin{itemize}
+\item \textbf{toolbox} : boîte à outils.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{toolbox}[Outils nécessaires]
+ \begin{itemize}
+ \item Calculatrice
+ \item Règle graduée
+ \item Compas
+ \end{itemize}
+\end{toolbox}
+\end{code}
+
+Toutes les admonitions acceptent trois paramètres optionnels :
+
+\begin{itemize}
+\item un titre optionnel ;
+\item une icône personnalisée ;
+\item des options de personnalisation (couleurs, bordures).
+\end{itemize}
+
+\section{Notation et correction}
+
+\subsection{Outils de notation}
+
+\begin{itemize}
+\item \textbf{\textbackslash gradingstrip} : bandeau de notation (note et appréciation).
+\end{itemize}
+
+\begin{code}{latex}
+% Bandeau simple
+\gradingstrip
+
+% Bandeau avec total spécifié
+\gradingstrip[20]
+\end{code}
+
+L'option \textbf{totalpoints} définit le nombre total de points par défaut.
+
+\begin{code}{latex}
+\documentclass[totalpoints=20]{neoschool}
+\end{code}
+
+\begin{itemize}
+
+\item \textbf{\textbackslash mrk, \textbackslash mrks} : points dans la
+ marge.
+\end{itemize}
+
+\begin{code}{latex}
+% Un point
+\mrk[Bien vu !]{1} % Marge droite avec commentaire
+\mrk*{1} % Marge gauche
+
+% Plusieurs points
+\mrks{3} % 3 points marge droite
+\mrks*[Barème]{3} % 3 points marge gauche avec texte
+\end{code}
+
+\subsection{Zones de réponse}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash answerfield} : zone de réponse avec fond coloré.
+\end{itemize}
+
+\begin{code}{latex}
+% Zone pleine largeur, 3 lignes
+\answerfield{3}
+
+% Zone 80% largeur, 5 lignes
+\answerfield[0.8\linewidth]{5}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash answerframe} : zone de réponse encadrée.
+\end{itemize}
+
+\begin{code}{latex}
+% Cadre pleine largeur, 3 lignes
+\answerframe{3}
+
+% Cadre 80% largeur, 5 lignes
+\answerframe[0.8\linewidth]{5}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash vardots} : ligne pointillée de longueur
+ variable.
+\end{itemize}
+
+\begin{code}{latex}
+% Ligne pointillée pleine largeur
+\vardots
+
+% Ligne pointillée de 5cm
+\vardots[5cm]
+\end{code}
+
+\subsection{Marqueurs et symboles}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash cmark} : symbole de validation (\cmark)
+\item
+ \textbf{\textbackslash xmark} : symbole d'erreur (\xmark)
+\item
+ \textbf{\textbackslash unchecked} : case à cocher vide \unchecked
+\item
+ \textbf{\textbackslash done} : case cochée avec \done
+\item
+ \textbf{\textbackslash wontfix} : case cochée avec \wontfix
+\end{itemize}
+
+\begin{code}{latex}
+\begin{itemize}
+ \unchecked Objectif 1 à réaliser
+ \done Objectif 2 terminé
+ \wontfix Objectif 3 abandonné
+\end{itemize}
+\end{code}
+
+\subsection{Compétences et évaluation}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash competencies} : tableau d'évaluation par
+ compétences.
+\end{itemize}
+
+\begin{code}{latex}
+\competencies{
+ Calculer une dérivée\\
+ Étudier les variations\\
+ Résoudre une équation
+}
+\end{code}
+
+Le tableau affiche automatiquement :
+\begin{itemize}
+\item 4 niveaux de maîtrise avec émojis ;
+\item des cases à cocher pour l'évaluation.
+\end{itemize}
+
+\section{Commandes mathématiques et outils spéciaux}
+
+\subsection{Commandes
+mathématiques}\label{commandes-mathuxe9matiques}
+
+\subsubsection{Mise en valeur et
+coloration}\label{mise-en-valeur-et-coloration}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash mhl} : surlignage d'expressions mathématiques.
+\end{itemize}
+
+\begin{code}{latex}
+% Surlignage jaune par défaut
+$\mhl{x^2}$
+
+% Surlignage personnalisé
+$\mhl[blue!20]{f'(x)}$
+
+% Dans une équation sur plusieurs lignes
+\begin{align*}
+ f(x) &= x^2 + \mhl{2x} + 1 \\
+ f'(x) &= 2x + \mhl{2}
+\end{align*}
+\end{code}
+
+\begin{itemize}
+
+\item
+ \textbf{\textbackslash mc} : coloration d'expressions mathématiques.
+\end{itemize}
+
+\begin{code}{latex}
+% Couleur du thème par défaut
+$\mc{f(x)}$
+
+% Couleur personnalisée
+$\mc[red]{g(x)}$
+
+% Dans une équation
+\[ \mc{f'(x)} = \lim_{h \to 0} \mc[blue]{\frac{f(x+h)-f(x)}{h}} \]
+\end{code}
+
+\subsubsection{Support APMEP}
+
+Lorsque l'option \textbf{apmep} est activée, les commandes suivantes sont disponibles.
+\begin{itemize}
+\item Commandes de vecteurs :
+\end{itemize}
+
+\begin{code}{latex}
+\vect{u} % Vecteur u avec flèche
+\vectt{AB} % Vecteur AB avec espacement
+\end{code}
+
+\begin{itemize}
+\item Repères et coordonnées :
+\end{itemize}
+
+\begin{code}{latex}
+\Oij % Repère (O; i,j)
+\Oijk % Repère (O; i,j,k)
+\Ouv % Repère (O; u,v)
+\end{code}
+
+\begin{itemize}
+\item Commandes spéciales :
+\end{itemize}
+
+\begin{code}{latex}
+\euro % Symbole euro
+\cg % Crochet gauche
+\cd % Crochet droit
+\pg % Plus grand ou égal
+\pp % Plus petit ou égal
+\barre{x} % x surligné
+\ds % \displaystyle
+\end{code}
+
+\subsection{Outils spéciaux}
+
+\subsubsection{Arbres et graphes}
+
+\begin{itemize}
+\item
+ Arbres avec \emph{l}xtension \texttt{forest} :
+\end{itemize}
+
+\begin{code}{latex}
+\begin{neotree}
+A
+ [B
+ [D]
+ [E]
+ ]
+ [C
+ [F]
+ [G]
+ ]
+\end{neotree}
+
+% Avec poids sur les arêtes
+\begin{neotree}
+A
+ [B, w=\frac{1}{3}
+ [D]
+ [E]
+ ]
+ [C, w=\frac{2}{3}]
+\end{neotree}
+\end{code}
+
+\begin{itemize}
+\item
+ Graphes (uniquement avec une compilation en \texttt{lualatex}) :
+\end{itemize}
+
+\begin{code}{latex}
+\neograph{
+ A -- {B, C, D, F},
+ B -- {C, D, F},
+ C -> ["3"] D,
+ D -- [bend left=10] {E},
+ E -- [bend left=10] {D},
+ E -- [bend left=10] {F},
+ F -- [bend left=10] {E},
+ A -- [loop] A
+}
+\end{code}
+
+\subsubsection{Grille mathématique}
+
+L'environnement \texttt{mathgrid} permet de disposer
+des équations en grille :
+
+\begin{code}{latex}
+\begin{mathgrid}{3}
+ \neoline
+ \neocol{
+ T &= 7xx+9x\\
+ &= (7+9)x \\
+ &= 16x
+ }
+ \neocol{
+ U &= 8x^{2}-5x^{2}+x^{2}\\
+ &= (8-5+1)x^{2} \\
+ &= 4x^{2}
+ }
+ \neocol{
+ V &= 5a^{2}-6a\\
+ &= a(5a-6)
+ }
+ \neoline
+ \neocol[2]{
+ W &= 5a^{2}-6a+3+7a^{2}+a-6\\
+ &= (5+7)a^{2}+(-6+1)a+(3-6)\\
+ &= 12a^{2}-5a-3
+ }
+ \neocol{
+ A &= 2x + 3x\\
+ &= 5x
+ }
+\end{mathgrid}
+\end{code}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/neoschool/neoschool.pdf b/Master/texmf-dist/doc/latex/neoschool/neoschool.pdf
new file mode 100644
index 00000000000..5ddb2fccadf
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/neoschool/neoschool.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/neoschool/neoschool.tex b/Master/texmf-dist/doc/latex/neoschool/neoschool.tex
new file mode 100644
index 00000000000..c58862155df
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/neoschool/neoschool.tex
@@ -0,0 +1,1629 @@
+\documentclass[
+ margin=2cm
+]{neoschool}
+
+\title{The \texttt{neoschool} Class}
+\author{Version : 1.0.0 \quad\textemdash{}\quad Author : Razik Ikhlef}
+\date{2025/01/04}
+
+\begin{document}
+\maketitle
+
+The \texttt{neoschool} class provides secondary school
+teachers with a comprehensive set of tools to create their educational
+documents (assessments, course materials, exercise sheets with
+solutions, etc.). To meet various needs, it offers eight predefined
+color themes, diverse class options for layout and typography,
+specialized environments, dedicated commands, and different preformatted
+header styles for each type of document. It integrates dozens of
+commonly used LaTeX packages (see list below), which significantly
+reduces the preamble and avoids compatibility issues as much as
+possible. It's multilingual, supporting French, English, and German.
+
+\tableofcontents
+
+\section{Loaded Packages}
+
+The following packages are automatically loaded by the
+\texttt{neoschool} class:
+
+\texttt{adforn}, \texttt{adjustbox}, \texttt{algpseudocode},
+\texttt{amssymb}, \texttt{babel}, \texttt{bookmark}, \texttt{calc},
+\texttt{changespace}, \texttt{cuted}, \texttt{environ},
+\texttt{fancyvrb}, \texttt{fontawesome5}, \texttt{forest},
+\texttt{iftex}, \texttt{ifthen}, \texttt{kvoptions}, \texttt{lastpage},
+\texttt{marginnote}, \texttt{microtype}, \texttt{mismath} (which loads
+\texttt{mathtools}), \texttt{multicol}, \texttt{needspace},
+\texttt{pdftexcmds}, \texttt{pgffor}, \texttt{pgfplots},
+\texttt{qrcode}, \texttt{scrlayer-scrpage}, \texttt{silence},
+\texttt{siunitx}, \texttt{tabularray}, \texttt{tasks},
+\texttt{tcolorbox} (with the \texttt{most} option loading
+\texttt{listings} and \texttt{minted} packagess), \texttt{textcase},
+\texttt{tikz}, \texttt{tikzpagenodes}, \texttt{tikzsymbols},
+\texttt{ulem} (with \texttt{normalem} option), \texttt{xcolor} (with
+\texttt{table}, \texttt{svgnames}, \texttt{dvipsnames}, and
+\texttt{x11names} options), \texttt{xhfill}, \texttt{xkeyval},
+\texttt{xsim} (with \texttt{use-files} and \texttt{clear-aux} options),
+\texttt{xstring}.
+
+Compilation in \texttt{pdflatex} loads \texttt{fonttenc} (with
+\texttt{T1} option), \texttt{inputenc} (with \texttt{utf8} option),
+\texttt{newpxtext}, and \texttt{newpxmath}. Compilation in
+\texttt{lualatex} makes available \texttt{fontspec}, \texttt{luacas},
+\texttt{lua-ul}, \texttt{luacolor} packagess and applies
+\texttt{TeX\ Gyre\ PagellaX} and \texttt{TeX\ Gyre\ Heros} fonts in
+addition to \texttt{newpxmath}.
+
+The \texttt{graphics} option loads \texttt{graphicx} and
+\texttt{wrapfig}, the \texttt{draft} option loads \texttt{blindtext} and
+\texttt{lipsum}, and the \texttt{mathastext} option loads the
+\texttt{mathastext} packages.
+
+The \texttt{math} option loads \texttt{annotate-equations}, \texttt{bm},
+\texttt{cancel}, \texttt{mathrsfs}, \texttt{nncomma}, \texttt{numprint},
+\texttt{tdsfrmath} (with \texttt{suite} and \texttt{taupe} options),
+\texttt{tkz-euclide}, \texttt{witharrows}, and \texttt{xlop}.
+
+The \texttt{notes} option enables colored and framed notes in the left
+and right margins alternately and loads the \texttt{todonotes}
+packages.
+
+The \texttt{apmep} option, which allows direct compilation of
+examination papers from the association of the same name, defines a set
+of mathematical commands and loads \texttt{esvect},
+\texttt{fourier-ons}, \texttt{numprint} (with \texttt{np} option),
+\texttt{pstricks} (and many packages from the \texttt{pstricks}
+ecosystem), \texttt{tabularx}, and \texttt{textcomp}.
+
+The \texttt{mathics} option enables computer algebra via
+\texttt{mathics} (free version of \texttt{mathematica}) and loads
+\texttt{asymptote} and \texttt{latexalpha2} packagess.
+
+\section{Configuration Options}
+
+\subsection{Language}
+
+\begin{itemize}
+\item
+ \textbf{english, french, german}: Activates translations and
+ conventions for each language. These options affect theorem and
+ environment titles, typography, and mathematical conventions.
+\item
+ \textbf{nofrenchlist}: Disables French-style lists (restores dots
+ instead of dashes).
+\item
+ \textbf{frenchlistaspar}: Treats lists as paragraphs in French.
+\item
+ \textbf{frenchmath}: Applies French mathematical conventions (upright
+ capitals and Greek letters).
+\end{itemize}
+
+\subsection{Global Appearance}
+
+\subsubsection{Predefined Themes}
+
+The \textbf{theme} = \texttt{theme-name} option sets the document's color theme.
+Available themes are: \texttt{cyprus}, \texttt{kassio}, \texttt{frost},
+\texttt{spring}, \texttt{arbutus}, \texttt{duo}, \texttt{navy}, \texttt{royal}.
+Most of them are inspired by the \textit{ef-themes} for \textit{Emacs} by
+Protesilaos Stavrou.
+
+\subsubsection{Color Modes}
+
+\begin{itemize}
+\item
+ \textbf{normal}: Uses different colors for each type of environment.
+\item
+ \textbf{unicolor}: Uses a single color for all environments:
+
+ \begin{itemize}
+ \item
+ The title color is used as the base
+ \item
+ Variations are obtained through transparency
+ \end{itemize}
+\item
+ \textbf{print}: Converts all colors to black for printing.
+\item
+ \textbf{gradientheadpalette}: Uses a gradient of the title color for
+ other headings (sections, subsections, theorem titles, etc.).
+\end{itemize}
+
+\subsubsection{Custom Colors}
+
+\begin{itemize}
+\item
+ \textbf{globalcolor} = \texttt{color}: Sets the text
+ color.
+\item
+ \textbf{titlecolor} = \texttt{color} or
+ \textbf{titlehexcolor} = \texttt{hex code}: Sets the
+ title color.
+\item
+ \textbf{headcolor} = \texttt{color}: Sets the section
+ header color.
+\item
+ \textbf{subcolor} = \texttt{color}: Sets the
+ subsection color.
+\item
+ \textbf{subsubcolor} = \texttt{color}: Sets the
+ subsubsection color.
+\item
+ \textbf{headfootcolor} = \texttt{color}: Sets the
+ header and footer color.
+\end{itemize}
+
+\subsubsection{Display Options}
+
+\begin{itemize}
+\item
+ \textbf{noframe}: Removes environment frames.
+\item
+ \textbf{noback}: Removes colored backgrounds.
+\item
+ \textbf{nocodeframe}: Removes code block frames.
+\item
+ \textbf{scale}: Harmonizes font dimensions in
+ \texttt{lualatex}.
+\end{itemize}
+
+\subsection{Abstract Customization}
+
+The \texttt{abstracttitle} option allows customization
+of the \texttt{abstract} environment title:
+
+\begin{code}{latex}
+\documentclass[abstracttitle=Summary]{neoschool}
+
+% In the document
+\begin{abstract}
+ Abstract content...
+\end{abstract}
+\end{code}
+
+\subsection{Typography}
+
+\begin{itemize}
+\item
+ \textbf{sfbody}: Activates sans-serif font for body text.
+\item
+ \textbf{sfall}: Activates sans-serif font for the entire document.
+\item
+ \textbf{mathastext}: Uses text font for mathematics.
+\item
+ \textbf{mainface} = \texttt{font}: Main document
+ font.
+\item
+ \textbf{mainfaceoptions} = \texttt{options}: Main
+ font options.
+\item
+ \textbf{sansface} = \texttt{font}: Sans-serif font.
+\item
+ \textbf{sansfaceoptions} = \texttt{options}:
+ Sans-serif font options.
+\item
+ \textbf{monoface} = \texttt{font}: Monospace font.
+\item
+ \textbf{monofaceoptions} = \texttt{options}:
+ Monospace font options.
+\item
+ \textbf{mathface} = \texttt{font}: Mathematical font.
+\item
+ \textbf{mathfaceoptions} = \texttt{options}:
+ Mathematical font options (only in
+ \texttt{pdflatex}).
+\item
+ \textbf{facefamily} = \texttt{family}: Complete font
+ family.
+\item
+ \textbf{facefamilyoptions} = \texttt{options}: Font
+ family options.
+\end{itemize}
+
+\subsection{Layout}
+
+\subsubsection{Margins and Spacing}
+
+\begin{itemize}
+\item
+ \textbf{margin} = \texttt{length}: Sets horizontal
+ margin width (2.5cm default); vertical margins adjust accordingly.
+\item
+ \textbf{notes} = \texttt{length}: Activates
+ \emph{todonotes} in margins and sets their width.
+\item
+ \textbf{noindent}: Removes paragraph indentation.
+\item
+ \textbf{indent} = \texttt{length}: Sets indentation
+ width (1em default).
+\item
+ \textbf{compact}:
+
+ \begin{itemize}
+ \item
+ Reduces paragraph spacing
+ \item
+ Decreases environment margins
+ \item
+ Compresses line spacing
+ \end{itemize}
+\end{itemize}
+
+\subsubsection{Output Options}
+
+\begin{itemize}
+\item
+ \textbf{2a5toa4}: Displays two copies of A5 page on A4 in landscape.
+\item
+ \textbf{2a4toa3}: Displays two copies of A4 page on A3 in landscape.
+\item
+ \textbf{4a5toa3}: Displays four copies of A5 page on A3.
+\item
+ \textbf{2toa3}: Displays two different A4 pages on A3 in landscape.
+\item
+ \textbf{bookleta5}: Generates A5 booklet (four pages per A4 sheet).
+\item
+ \textbf{bookleta4}: Generates A4 booklet (four pages per A3 sheet).
+\end{itemize}
+
+\subsubsection{Headers and Footers}
+
+\begin{itemize}
+\item
+ \textbf{fullheader}: Activates complete header and footer.
+
+ \begin{itemize}
+ \item
+ Header: document type on left, title in center, class level on
+ right.
+ \item
+ Footer: date on left, institution in center, pagination on right.
+ \end{itemize}
+\item
+ \textbf{headrule}: Adds line under header.
+\item
+ \textbf{footrule}: Adds line above footer.
+\item
+ \textbf{headfootrule}: Activates both lines.
+\end{itemize}
+
+\section{Document Styles}
+
+\subsection{Title Styles}
+
+\subsubsection{Exam Styles}
+
+\begin{itemize}
+\item
+ \textbf{exam}: Complete style for exams with detailed header.
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[exam]{neoschool}
+
+\neoheader{
+ type = Test,
+ school = Poincarré High School,
+ level = Senior Year,
+ duration = 2h,
+ calculator = true % or false or exam
+}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{shortexam}: Compact style for exams with simplified header.
+\item
+ \textbf{mockexam}: Style for mock exams with standardized cover page.
+\end{itemize}
+
+\subsubsection{Assessment Styles}
+
+\begin{itemize}
+\item
+ \textbf{eval}: Standard style for assessments.
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[eval]{neoschool}
+
+\neoheader{
+ type = Quiz,
+ school = Alan Turing Middle School,
+ level = 8th Grade
+}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{evalicons}: Adds icons to \texttt{eval}
+ header.
+\item
+ \textbf{evalgrade}: Adds grading banner.
+\item
+ \textbf{evaliconsgrade}: Complete style with icons and grading.
+\item
+ \textbf{shorteval}: Compact style for assessments.
+\end{itemize}
+
+\subsubsection{Bubble Styles}
+
+\begin{itemize}
+\item
+ \textbf{bubbles}: Style with colored bubble background.
+\item
+ \textbf{shortbubbles}: Compact version of bubble style.
+\end{itemize}
+
+\subsubsection{Other Title Styles}
+
+\begin{itemize}
+\item
+ \textbf{titleornament}: Adds ornaments below title.
+\item
+ \textbf{titlerule}: Adds line under title.
+\item
+ \textbf{titlemidrule}: Adds center line under title.
+\item
+ \textbf{titlefullrule}: Adds full-width line under title.
+\item
+ \textbf{fancybox}: Title with elegant gray box.
+\item
+ \textbf{onlytitleleft}: Displays only title, left-aligned.
+\item
+ \textbf{onlytitle}: Displays only title, centered.
+\item
+ \textbf{onlytitleright}: Displays only title, right-aligned.
+\item
+ \textbf{shorttitle}: Compact title style.
+\item
+ \textbf{shortlesson}: Compact style for lessons.
+\end{itemize}
+
+\subsection{Header Configuration}
+
+The document header can be configured with the
+\texttt{\textbackslash neoheader} command:
+
+\begin{code}{latex}
+\neoheader{
+ type = {Document Type},
+ school = {School Name},
+ academy = {Academy Name},
+ level = {Grade Level},
+ duration = {Duration},
+ calculator = {true/false/exam},
+ leftcontent = {\faIcon{...}},
+ rightcontent = {\faIcon{...}},
+}
+\end{code}
+
+\subsection{Title Formatting Options}
+
+\subsubsection{Global Styles}
+
+\begin{itemize}
+\item
+ \textbf{headstyle} = \texttt{style}: Font style for
+ all headers (\texttt{sffamily} default).
+
+ \begin{itemize}
+ \item
+ Sections, subsections, etc.
+ \item
+ Theorem and exercise headers.
+ \end{itemize}
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[headstyle=rmfamily]{neoschool}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{headweight} = \texttt{weight}: Weight for all
+ headers (\texttt{bfseries} default).
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[
+ headstyle=sffamily,
+ headweight=mdseries
+]{neoschool}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{headshape} = \texttt{shape}: Shape for all
+ headers (\texttt{scshape} default).
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[
+ headstyle=sffamily,
+ headshape=upshape
+]{neoschool}
+\end{code}
+
+\subsubsection{Main Title Style}
+
+\begin{itemize}
+\item
+ \textbf{titlestyle} = \texttt{style}: Style for main
+ title (inherits from \texttt{headstyle}).
+\item
+ \textbf{titleweight} = \texttt{weight}: Weight for
+ main title (inherits from \texttt{headweight}).
+\item
+ \textbf{titleshape} = \texttt{shape}: Shape for main
+ title (\texttt{upshape} default).
+\item
+ \textbf{titlealign} = \texttt{alignment}: Title
+ alignment (\texttt{center} default).
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[
+ titlestyle=sffamily,
+ titleweight=bfseries,
+ titleshape=upshape,
+ titlealign=left
+]{neoschool}
+\end{code}
+
+\subsubsection{Section Style}
+
+\begin{itemize}
+\item
+ \textbf{sectionnumstyle} = \texttt{style}: Numbering
+ style.
+
+ \begin{itemize}
+ \item
+ \texttt{circle}: Circled number.
+ \item
+ \texttt{box}: Boxed number.
+ \item
+ \texttt{dash}: Dash after number.
+ \item
+ \texttt{plain}: Simple number.
+ \end{itemize}
+\item
+ \textbf{sectiontextstyle} = \texttt{style}: Text
+ style.
+
+ \begin{itemize}
+ \item
+ \texttt{sc}: Small caps.
+ \item
+ \texttt{upper}: Uppercase.
+ \item
+ \texttt{lower}: Lowercase.
+ \end{itemize}
+\item
+ \textbf{sectionstyle} = \texttt{style}: Global
+ section style.
+
+ \begin{itemize}
+ \item
+ \texttt{ornaments}: With decorative ornaments.
+ \item
+ \texttt{underline}: Underlined.
+ \item
+ \texttt{normal}: Simple style.
+ \item
+ \texttt{highlighted}: With highlighting.
+ \item
+ \texttt{shadedline}: With shaded line.
+ \end{itemize}
+\item
+ \textbf{sectionalign} = \texttt{alignment}: Section
+ alignment.
+
+ \begin{itemize}
+ \item
+ \texttt{left}: Left-aligned.
+ \item
+ \texttt{center}: Centered.
+ \item
+ \texttt{right}: Right-aligned.
+ \end{itemize}
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[
+ sectionnumstyle=circle,
+ sectiontextstyle=upper,
+ sectionstyle=highlighted,
+ sectionalign=left
+]{neoschool}
+\end{code}
+
+\subsubsection{Header/Footer Style}
+
+\begin{itemize}
+\item
+ \textbf{headfootstyle} = \texttt{style}:
+ Header/footer style (based on \texttt{headstyle}).
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[headfootstyle=sffamily]{neoschool}
+\end{code}
+
+\subsubsection{Complete Configuration
+Example}
+
+\begin{code}{latex}
+\documentclass[
+ % Global style
+ headstyle=sffamily,
+ headweight=bfseries,
+ headshape=scshape,
+
+ % Main title
+ titlestyle=sffamily,
+ titleweight=bfseries,
+ titleshape=upshape,
+ titlealign=center,
+
+ % Sections
+ sectionnumstyle=circle,
+ sectiontextstyle=upper,
+ sectionstyle=highlighted,
+ sectionalign=left,
+
+ % Headers/footers
+ headfootstyle=sffamily
+]{neoschool}
+\end{code}
+
+\section{Content Layout}
+
+\subsection{Absolute Object
+Positioning}
+
+The \texttt{\textbackslash positionobject} command allows precise
+placement of elements on the page:
+
+\begin{code}{latex}
+\positionobject{x-shift}{y-shift}{scale}{content}
+
+\begin{itemize}
+\item \texttt{x-shift}: Horizontal offset from top-left corner.
+\item \texttt{y-shift}: Vertical offset from top-left corner.
+\item \texttt{scale}: Scale factor for content.
+\item \texttt{content}: Element to position (image, text, etc.).
+\end{itemize}
+
+% Example: Image in top-right corner
+\positionobject{15cm}{1cm}{0.5}{\includegraphics{logo.png}}
+
+% Example: Special footer text
+\positionobject{2cm}{25cm}{1}{Special footer note}
+\end{code}
+
+\subsection{Two-Column Layout}
+
+The \textbf{\textbackslash splitcontent} command divides content horizontally:
+
+\begin{code}{latex}
+% Example with custom values
+\splitcontent[0.6][0.05]{
+ This part takes up 60%
+ of total width
+}{
+ This part takes up 35%
+ (5% space between)
+}
+
+% Example with default values (50% / 50%)
+\splitcontent{
+ First column
+}{
+ Second column
+}
+\end{code}
+
+\subsection{Side-by-Side
+Environments}
+
+The \texttt{sidebyside} environment creates two-column
+boxes with consistent styling:
+
+\begin{code}{latex}
+\begin{sidebyside}[options]
+ % Left content
+ \tcblower
+ % Right content
+\end{sidebyside}
+\end{code}
+
+Options are those of \texttt{tcolorbox}.
+
+\begin{code}{latex}
+\begin{sidebyside}[
+ title=Comparison,
+ colback=exampleColor!5,
+ colbacklower=exampleColor!10
+]
+ First version
+ \tcblower
+ Improved version
+\end{sidebyside}
+\end{code}
+
+\subsection{Text and Image
+Combination}
+
+The \textbf{\textbackslash textwithimage} command combines text and image:
+
+\begin{code}{latex}
+% Star (*) reverses image position (right by default)
+
+% Image on right (30% width)
+\textwithimage{0.3}{0.95}{
+ This text describes the adjacent image...
+}{images/figure.png}
+
+% Image on left (40% width)
+\textwithimage*{0.4}{0.9}{
+ Description to the right of the image...
+}{images/schema.png}
+\end{code}
+
+\subsection{QR Codes and Content}
+
+The \textbf{\textbackslash withqrcode} command integrates a QR code with associated
+content:
+
+\begin{code}{latex}
+% Star (*) places QR code on right (left by default)
+
+% QR code on left (2cm default)
+\withqrcode{https://example.com}{
+ Scan for more information
+}
+
+% 3cm QR code on right
+\withqrcode*[3cm]{https://exercises.com}{
+ Access online exercises
+}
+\end{code}
+
+\subsection{Grids and Papers}
+
+\subsubsection{Custom Grids}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash grid}: Small square grid.
+\end{itemize}
+
+\begin{code}{latex}
+\grid[blue]{10cm}{5cm} % Blue grid 10 x 5 cm
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash customgrid}: Grid with custom spacing.
+\end{itemize}
+
+\begin{code}{latex}
+\customgrid[red][4mm][4mm]{12cm}{8cm} % Red grid, 4mm mesh
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash frenchgrid}: Seyes-style grid.
+\end{itemize}
+
+\begin{code}{latex}
+\frenchgrid{15cm}{10cm} % French-style notebook grid
+\end{code}
+
+\subsubsection{Full Pages}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash notebook}: Notebook-style page with horizontal lines and red
+ margin.
+\end{itemize}
+
+\begin{code}{latex}
+\notebook % Activates lined notebook style
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash nbminorgrid}: Page fully covered with small squares.
+\end{itemize}
+
+\begin{code}{latex}
+\nbminorgrid % Activates fine grid
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash nbmajorgrid}: Page fully covered with large squares.
+\end{itemize}
+
+\begin{code}{latex}
+\nbmajorgrid % Activates Seyes grid
+\end{code}
+
+\subsection{Simple Boxes}
+
+The \texttt{neobox} environment provides a quick way to create simple boxes. It comes in two variants: \texttt{neobox} with frame and \texttt{neobox*} without visible frame:
+
+\begin{code}{latex}
+% Standard box
+\begin{neobox}[colframe=blue,colback=blue!5]
+ Text in a box...
+\end{neobox}
+
+% Frameless box with colored background
+\begin{neobox*}[colback=gray!10]
+ Text on gray background...
+\end{neobox*}
+\end{code}
+
+\section{Exercises}
+
+\subsection{Exercises and
+Assessments}
+
+\subsubsection{Exercise Configuration}
+
+The \texttt{exercise} environment accepts the following
+options:
+
+\begin{itemize}
+\item
+ \textbf{points} = \texttt{number}: Points for the
+ exercise.
+\item
+ \textbf{level} = \texttt{number}: Difficulty level
+ (displayed as stars).
+\item
+ \textbf{subtitle} = \texttt{text}: Exercise subtitle
+ or description.
+\item
+ \textbf{icon} = \texttt{icon}: Custom icon (uses Font
+ Awesome library).
+\item
+ \textbf{topic} = \texttt{theme}: Related theme or
+ chapter.
+\item
+ \textbf{subject} = \texttt{subject}: Related subject.
+\item
+ \textbf{ID} = \texttt{identifier}: Unique identifier
+ for referencing.
+\item
+ \textbf{template} = \texttt{style}: Specific display
+ style for this exercise.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{exercise}[
+ points=4,
+ level=2,
+ subtitle=Derivatives,
+ icon=\faPencil,
+ topic=Analysis,
+ subject=Mathematics,
+ ID=der01,
+ template=elegant-box
+]
+ Calculate the derivative of the function $f$ defined on $]0 ; +\infty[$
+ by $f(x)=x^2\ln(x)$.
+\end{exercise}
+
+The \texttt{solution} environment must immediately follow its corresponding \texttt{exercise} environment. Exercise solutions are not displayed by default.
+
+\begin{solution}
+ We use the product rule...
+\end{solution}
+
+% To reference the exercise elsewhere:
+As seen in exercise~\exercisenumber{der01}.
+\end{code}
+
+\subsubsection{Global Options}
+
+\begin{itemize}
+\item
+ \textbf{exerciseicons}: Activates icons for all exercises.
+\item
+ \textbf{answers}: Automatically displays all exercise solutions.
+\item
+ \textbf{shuffle}: Randomizes answer choices in multiple choice
+ questions.
+\item
+ \textbf{sectionthmcounter}: Numbers exercises by section.
+\item
+ \textbf{sharedexcounter}: Shares counter with theorems.
+\end{itemize}
+
+\subsubsection{Exercise Templates}
+
+The class offers numerous predefined styles for exercises:
+
+\begin{itemize}
+\item
+ \textbf{box}: Standard box with border and title.
+\item
+ \textbf{elegant-box}: Box with colored sidebar.
+\item
+ \textbf{shaded-box}: Box with shading and banner title.
+\item
+ \textbf{slanted-box}: Box with slanted banner title.
+\item
+ \textbf{sober-box}: Minimalist box with colored title.
+\item
+ \textbf{classic-box}: Classic box with banner title.
+\item
+ \textbf{classy-box}: Sophisticated box with decorative title.
+\item
+ \textbf{rect-box}: Simple rectangular box.
+\item
+ \textbf{rect-box-outlined}: Rectangular box with outline.
+\item
+ \textbf{num-box}: Compact numbered box.
+\item
+ \textbf{num-box-outlined}: Numbered box with outline.
+\item
+ \textbf{ex-num-box}: Numbered ``Ex.'' box.
+\item
+ \textbf{ex-num-box-outlined}: Numbered ``Ex.'' box with outline.
+\item
+ \textbf{box-hrule}: Box with horizontal rule.
+\item
+ \textbf{box-hrule-out}: Box with horizontal rule and outline.
+\item
+ \textbf{box-hrule-in}: Box with inner horizontal rule.
+\item
+ \textbf{boxed}: Simple box with title.
+\item
+ \textbf{boxed-out}: Box with outline and title.
+\item
+ \textbf{inline}: Inline text with title.
+\item
+ \textbf{section}: Section-style title.
+\item
+ \textbf{subsection}: Subsection-style title.
+\item
+ \textbf{terminal}: Console style with terminal icon.
+\item
+ \textbf{block}: Minimalist style.
+\item
+ \textbf{hrule}: With horizontal rule.
+\end{itemize}
+
+To set a template for the entire document, use the
+\texttt{\textbackslash xsimsetup} command in the preamble:
+
+\begin{code}{latex}
+\xsimsetup{
+ exercise/template = elegant-box, % exercise template
+ solution/template = sol-box % solution template
+}
+\end{code}
+
+\subsubsection{Multiple Choice Questions}
+
+\begin{itemize}
+\item
+ \textbf{choices}: For single-answer MCQs.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{exercise}[points=2,ID=mcq01]
+ What is the derivative of $e^x$?
+ \begin{choices}
+ \choice $x e^x$
+ \choice[\correct] $e^x$
+ \choice $e^{x-1}$
+ \choice $\ln(x)$
+ \end{choices}
+\end{exercise}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{checkboxes}: For multiple-answer MCQs.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{exercise}[points=3,ID=mcq02]
+ Which of these numbers are prime?
+ \begin{checkboxes}
+ \checkbox[\correct*] 2
+ \checkbox[\correct*] 3
+ \checkbox 4
+ \checkbox[\correct*] 5
+ \end{checkboxes}
+\end{exercise}
+\end{code}
+
+\section{Math Environments}
+
+\subsection{Theorem Styles}
+
+The following styles are available for all theorem-type environments:
+\textbf{amslikethm} (minimalist style), \textbf{boxedthm},
+\textbf{classicthm}, \textbf{classythm}, \textbf{elegantthm},
+\textbf{shadedthm}, \textbf{slantedthm}, \textbf{soberthm}.
+
+Common options:
+
+\begin{itemize}
+\item
+ \textbf{title} = \texttt{text}: Theorem title.
+\item
+ \textbf{label} = \texttt{name}: Label for
+ referencing.
+\item
+ \textbf{colback} = \texttt{color}: Background color.
+\item
+ \textbf{colframe} = \texttt{color}: Frame color.
+\item
+ \textbf{coltitle} = \texttt{color}: Title color.
+\item
+ \textbf{fonttitle} = \texttt{commands}: Title style.
+\end{itemize}
+
+\subsection{Numbering Options}
+
+\begin{itemize}
+\item
+ \textbf{sectionthmcounter}: Counters relative to each section.
+\item
+ \textbf{sharedthmcounter}: Counter shared between all environments.
+\item
+ \textbf{theoremgroup}: Groups certain theorem environments.
+\item
+ \textbf{thmgroupcounter}: Activates counter for groups.
+\end{itemize}
+
+\subsection{Mathematical
+Environments}
+
+\begin{itemize}
+\item
+ \textbf{theorem}: For theorems.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{theorem}[title=Pythagorean Theorem,label=pyth]
+ In a right triangle, the square of the
+ hypotenuse equals the sum of squares
+ of the other two sides.
+\end{theorem}
+
+% Referencing:
+According to theorem~\ref{thm:pyth}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{lemma}: For lemmas.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{lemma}[title=Preparatory Lemma,label=prep]
+ Lemma content...
+\end{lemma}
+
+% Referencing:
+According to lemma~\ref{lem:prep}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{corollary}: For corollaries.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{corollary}[
+ title=Pythagorean Converse,
+ label=pythrecip
+]
+ If $a^2 + b^2 = c^2$, then the triangle is
+ right-angled at $A$.
+\end{corollary}
+
+% Referencing:
+According to corollary~\ref{cor:pythrecip}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{proposition}: For propositions (\textbf{propo} for
+ referencing).
+\item
+ \textbf{property}: For properties (\textbf{prop} for referencing).
+\item
+ \textbf{definition}: For definitions (\textbf{def} for referencing).
+\item
+ \textbf{method}: For methods (\textbf{meth} for referencing).
+\item
+ \textbf{activity}: For activities (\textbf{act} for referencing).
+\item
+ \textbf{application}: For applications (\textbf{appl} for
+ referencing).
+\item
+ \textbf{remark}: For remarks.
+\item
+ \textbf{remarks}: For a series of remarks.
+\item
+ \textbf{example}: For examples.
+\item
+ \textbf{examples}: For a series of examples.
+\end{itemize}
+
+\section{Listings}
+
+The \texttt{neoschool} class offers two options for
+code handling.
+
+\begin{itemize}
+\item
+ \textbf{listings} (default): Uses the
+ \texttt{listings} package.
+\item
+ \textbf{minted}: Uses the \texttt{minted} package
+ (requires Python and the \texttt{Pygments} library).
+\end{itemize}
+
+\subsection{\texttt{listings} Option}
+
+\subsubsection{Available Code Styles}
+
+\begin{itemize}
+\item
+ \textbf{lststyle} = \texttt{style}: Coloring style.
+
+ \begin{itemize}
+ \item
+ \texttt{colorful}: Complete coloring (default).
+ \item
+ \texttt{minimal}: Minimalist style.
+ \item
+ \texttt{academic}: ``Academic'' style with line
+ numbers.
+ \item
+ \texttt{modern}: ``Modern'' style with colored
+ background.
+ \end{itemize}
+\end{itemize}
+
+\subsubsection{Custom Code Boxes}
+
+The class defines the \texttt{code} environment with
+the following structure:
+
+\begin{lstlisting}[language=TeX]
+\begin{code}[options]{language}[title][box-style]
+ source code...
+\end{code}
+\end{lstlisting}
+
+Box styles: \textbf{box-minimal}, \textbf{box-fancy},
+\textbf{box-classic}, \textbf{box-elegant}, \textbf{box-diagonal},
+\textbf{box-bevel}, \textbf{box-corner}, \textbf{box-rounded},
+\textbf{box-downhill}, \textbf{box-bottomtitle},
+\textbf{box-bottomtitlef}.
+
+\begin{lstlisting}[language=TeX]
+\begin{code}[numbers=left]{python}[Function Example][box-fancy]
+def hello(name):
+ print(f"Hello, {name}!")
+\end{code}
+\end{lstlisting}
+
+\subsubsection{Preconfigured Languages and
+Styles}
+
+\begin{itemize}
+\item
+ Python
+\item
+ Java
+\item
+ C++
+\item
+ JavaScript
+\item
+ SQL
+\item
+ LaTeX
+\item
+ Bash
+\item
+ Assembly
+\item
+ Lisp
+\item
+ JSON
+\item
+ YAML
+\item
+ TOML
+\item
+ CSV
+\item
+ Markdown
+\end{itemize}
+
+\subsubsection{Additional Commands}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash codeinline}: Inline code.
+\end{itemize}
+
+\begin{code}{latex}
+\codeinline[python]{print("Hello")}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash codeinput}: Code loaded from file.
+\end{itemize}
+
+\begin{code}{latex}
+\codeinput[options]{language}{file.py}[title][box-style]
+\end{code}
+
+\subsection{\texttt{minted} Option}
+
+When the \textbf{minted} option is activated, code environments use
+\texttt{Pygments} for syntax highlighting. The
+\texttt{code} environment is also available with the
+\texttt{minted} option, using the same syntax:
+
+\begin{code}{latex}
+\usemintedstyle{tango}
+\begin{code}[linenos,highlightlines={2,3}]{python}[Function][box-fancy]
+def greet(name):
+ message = f"Hello, {name}!"
+ print(message)
+ return message
+\end{code}
+\end{code}
+
+\section{Notes and Annotations}
+
+\subsection{Margin Notes}
+
+Notes can be placed in the margin with different options:
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash tdnote}: Colored and framed notes in the margin, alternating
+ between left and right.
+\end{itemize}
+
+\begin{code}{latex}
+\tdnote{Important point to remember}
+\tdnote[backgroundcolor=blue!5]{Note with light blue background}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash boxnote}/\textbf{\textbackslash tdmark}: Since the \texttt{todonote}
+ package doesn't allow direct note placement in environments, use an
+ anchor point (\textbf{\textbackslash tdmark}) with the same label as the note content
+ (\textbf{\textbackslash boxnote}).
+\end{itemize}
+
+\begin{code}{latex}
+\boxnote[thm1]{This theorem is important}
+\begin{theorem}
+ \tdmark[thm1] % Reference point for note (same label)
+ Theorem content...
+\end{theorem}
+\end{code}
+
+Available note options:
+
+\begin{itemize}
+\item
+ \textbf{backgroundcolor} = \texttt{color}: Background
+ color.
+\item
+ \textbf{color} = \texttt{color}: Text color.
+\item
+ \textbf{bordercolor} = \texttt{color}: Border color.
+\item
+ \textbf{width} = \texttt{length}: Note width.
+\item
+ \textbf{linecolor} = \texttt{color}: Reference line
+ color.
+\end{itemize}
+
+\subsection{Admonitions}
+
+Admonition environments highlight important information. Each type has
+its default color and icon.
+
+\begin{itemize}
+\item
+ \textbf{note}: General remarks.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{note}[Important Note][\faInfo]
+ Points to remember...
+\end{note}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{info}: Additional information.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{info}[Further Reading]
+ Additional information...
+\end{info}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{warning}: Warnings.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{warning}[Caution!][\faExclamationTriangle]
+ Critical points to remember...
+\end{warning}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{important}: Essential points.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{important}[Key Point]
+ Fundamental concept...
+\end{important}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{tip}: Tips and tricks.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{tip}[Calculation Tip][\faLightbulb]
+ A faster method...
+\end{tip}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{reminder}: Points to remember.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{reminder}[Memorize]
+ Essential formulas...
+\end{reminder}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{summary}: Summaries.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{summary}[In Brief]
+ Main chapter points...
+\end{summary}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{toolbox}: Toolbox.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{toolbox}[Required Tools]
+ \begin{itemize}
+ \item Calculator
+ \item Ruler
+ \item Compass
+ \end{itemize}
+\end{toolbox}
+\end{code}
+
+All admonitions accept three optional parameters: - An optional title -
+A custom icon - Customization options (colors, borders)
+
+\section{Grading and Correction}
+
+\subsection{Grading Tools}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash gradingstrip}: Grading banner (grade and comments).
+\end{itemize}
+
+\begin{code}{latex}
+\gradingstrip
+
+% Banner with specified total
+\gradingstrip[20]
+\end{code}
+
+The \textbf{totalpoints} option sets the default total points.
+
+\begin{code}{latex}
+\documentclass[totalpoints=20]{neoschool}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash mrk}, \textbf{\textbackslash mrks}: Points in margin.
+\end{itemize}
+
+\begin{code}{latex}
+\mrk[Well done!]{1} % Right margin with comment
+\mrk*{1} # Left margin
+
+% Multiple points
+\mrks{3} % 3 points right margin
+\mrks*[Scale]{3} % 3 points left margin with text
+\end{code}
+
+\subsection{Answer Areas}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash answerfield}: Answer area with colored background.
+\end{itemize}
+
+\begin{code}{latex}
+\answerfield{3}
+
+% Area 80% width, 5 lines
+\answerfield[0.8\linewidth]{5}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash answerframe}: Framed answer area.
+\end{itemize}
+
+\begin{code}{latex}
+\answerframe{3}
+
+% Frame 80% width, 5 lines
+\answerframe[0.8\linewidth]{5}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash vardots}: Variable-length dotted line.
+\end{itemize}
+
+\begin{code}{latex}
+\vardots
+
+% 5cm dotted line
+\vardots[5cm]
+\end{code}
+
+\subsection{Markers and Symbols}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash cmark}: Check mark symbol (✓)
+\item
+ \textbf{\textbackslash xmark}: Error symbol (✗)
+\item
+ \textbf{\textbackslash unchecked}: Empty checkbox
+\item
+ \textbf{\textbackslash done}: Checked box with ✓
+\item
+ \textbf{\textbackslash wontfix}: Checked box with ✗
+\end{itemize}
+
+\begin{code}{latex}
+\begin{itemize}
+ \unchecked Goal 1 to complete
+ \done Goal 2 completed
+ \wontfix Goal 3 abandoned
+\end{itemize}
+\end{code}
+
+\subsection{Skills and Assessment}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash competencies}: Skills assessment table.
+\end{itemize}
+
+\begin{code}{latex}
+\competencies{
+ Calculate derivatives\\
+ Study variations\\
+ Solve equations
+}
+\end{code}
+
+The table automatically displays: - 4 mastery levels with emojis -
+Checkboxes for assessment
+
+\section{Math Commands and Special
+Tools}
+
+\subsection{Math Commands}
+
+\subsubsection{Highlighting and Coloring}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash mhl}: Highlighting math expressions.
+\end{itemize}
+
+\begin{code}{latex}
+$\mhl{x^2}$
+
+% Custom highlighting
+$\mhl[blue!20]{f'(x)}$
+
+% In multi-line equations
+\begin{align*}
+ f(x) &= x^2 + \mhl{2x} + 1 \\
+ f'(x) &= 2x + \mhl{2}
+\end{align*}
+\end{code}
+
+\begin{itemize}
+\item
+ \textbf{\textbackslash mc}: Coloring math expressions.
+\end{itemize}
+
+\begin{code}{latex}
+$\mc{f(x)}$
+
+% Custom color
+$\mc[red]{g(x)}$
+
+% In equation
+\[ \mc{f'(x)} = \lim_{h \to 0} \mc[blue]{\frac{f(x+h)-f(x)}{h}} \]
+\end{code}
+
+\subsubsection{APMEP Support}
+
+When the \textbf{apmep} option is activated, the following commands
+become available:
+
+\begin{itemize}
+\item
+ Vector commands:
+\end{itemize}
+
+\begin{code}{latex}
+\vect{u} % Vector u with arrow
+\vectt{AB} % Vector AB with spacing
+\end{code}
+
+\begin{itemize}
+\item
+ Reference frames and coordinates:
+\end{itemize}
+
+\begin{code}{latex}
+\Oij % Frame (O; i,j)
+\Oijk % Frame (O; i,j,k)
+\Ouv % Frame (O; u,v)
+\end{code}
+
+\begin{itemize}
+\item
+ Special commands:
+\end{itemize}
+
+\begin{code}{latex}
+\euro % Euro symbol
+\cg % Left bracket
+\cd % Right bracket
+\pg % Greater than or equal
+\pp % Less than or equal
+\barre{x} % Overlined x
+\ds % \displaystyle
+\end{code}
+
+\subsection{Special Tools}
+
+\subsubsection{Trees and Graphs}
+
+\begin{itemize}
+\item
+ Trees with \texttt{forest} package:
+\end{itemize}
+
+\begin{code}{latex}
+\begin{neotree}
+A
+ [B
+ [D]
+ [E]
+ ]
+ [C
+ [F]
+ [G]
+ ]
+\end{neotree}
+
+% With edge weights
+\begin{neotree}
+A
+ [B, w=\frac{1}{3}
+ [D]
+ [E]
+ ]
+ [C, w=\frac{2}{3}]
+\end{neotree}
+\end{code}
+
+\begin{itemize}
+\item
+ Graphs (only with \texttt{lualatex} compilation):
+\end{itemize}
+
+\begin{code}{latex}
+\neograph{
+ A -- {B, C, D, F},
+ B -- {C, D, F},
+ C -> ["3"] D,
+ D -- [bend left=10] {E},
+ E -- [bend left=10] {D},
+ E -- [bend left=10] {F},
+ F -- [bend left=10] {E},
+ A -- [loop] A
+}
+\end{code}
+
+\subsubsection{Math Grid}
+
+The \texttt{mathgrid} environment allows arranging
+equations in a grid:
+
+\begin{code}{latex}
+\begin{mathgrid}{3}
+ \neoline
+ \neocol{
+ T &= 7xx+9x\\
+ &= (7+9)x \\
+ &= 16x
+ }
+ \neocol{
+ U &= 8x^{2}-5x^{2}+x^{2}\\
+ &= (8-5+1)x^{2} \\
+ &= 4x^{2}
+ }
+ \neocol{
+ V &= 5a^{2}-6a\\
+ &= a(5a-6)
+ }
+ \neoline
+ \neocol[2]{
+ W &= 5a^{2}-6a+3+7a^{2}+a-6\\
+ &= (5+7)a^{2}+(-6+1)a+(3-6)\\
+ &= 12a^{2}-5a-3
+ }
+ \neocol{
+ A &= 2x + 3x\\
+ &= 5x
+ }
+\end{mathgrid}
+\end{code}
+
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/reledmac/doc-more/page-typesetting-columns.pdf b/Master/texmf-dist/doc/latex/reledmac/doc-more/page-typesetting-columns.pdf
index fc1cf0d3af0..bb035b54764 100644
--- a/Master/texmf-dist/doc/latex/reledmac/doc-more/page-typesetting-columns.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/doc-more/page-typesetting-columns.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/1-criticalendnotes.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/1-criticalendnotes.pdf
index 7454d1cce01..8e8823eaf02 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/1-criticalendnotes.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/1-criticalendnotes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/1-criticalnotes.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/1-criticalnotes.pdf
index 51238cf5712..8837cf96c51 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/1-criticalnotes.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/1-criticalnotes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/1-sidenotes.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/1-sidenotes.pdf
index fa4b8cdbb5e..9b35be0ccce 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/1-sidenotes.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/1-sidenotes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/1-tabular.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/1-tabular.pdf
index 80a889d85b0..29c2bf76181 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/1-tabular.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/1-tabular.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/1-verses-doublenumbering.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/1-verses-doublenumbering.pdf
index 4881557ce02..5f66355d4d3 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/1-verses-doublenumbering.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/1-verses-doublenumbering.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/1-verses.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/1-verses.pdf
index 3caf07a14ac..c9eb0a0fae2 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/1-verses.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/1-verses.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-antilabe.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-antilabe.pdf
index 7c94d43d135..4e7a5356b5f 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-antilabe.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-antilabe.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-cross_referencing.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-cross_referencing.pdf
index 0278d89b9f0..b001dcf5bd6 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-cross_referencing.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-cross_referencing.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-footnote_spacing.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-footnote_spacing.pdf
index 542174e6f05..1da7f5a400c 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-footnote_spacing.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-footnote_spacing.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-glossaries.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-glossaries.pdf
index 3ecab9d63bb..4c5cac47736 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-glossaries.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-glossaries.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-indexing.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-indexing.pdf
index 607860d6e6f..f57e55d7401 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-indexing.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-indexing.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-lemma_disambigution.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-lemma_disambigution.pdf
index 26e21be7b93..bc0eb94b3c1 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-lemma_disambigution.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-lemma_disambigution.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-line_numbers_in_header.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-line_numbers_in_header.pdf
index b1dca2b1174..2fc1098da48 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-line_numbers_in_header.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-line_numbers_in_header.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-linespacing.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-linespacing.pdf
index 499104658be..463b921c2c2 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-linespacing.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-linespacing.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-manuscript-apparatus.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-manuscript-apparatus.pdf
index f5f58e81d62..2eba7764073 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-manuscript-apparatus.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-manuscript-apparatus.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-notes-width.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-notes-width.pdf
index abaf67b4f6f..b989e8ca4fa 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-notes-width.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-notes-width.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-one_series_per_pstart.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-one_series_per_pstart.pdf
index 3cda9762d0e..c6935d4ee39 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-one_series_per_pstart.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-one_series_per_pstart.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-performances.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-performances.pdf
index c543daa1685..5b0cd689f40 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-performances.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-performances.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-reledmac-right-to-left.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-reledmac-right-to-left.pdf
index 9030d23e946..962b25a4a24 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-reledmac-right-to-left.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-reledmac-right-to-left.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-subdivision-number-in-header.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-subdivision-number-in-header.pdf
index 53b0429efc5..9ae345af894 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-subdivision-number-in-header.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-subdivision-number-in-header.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
index 7872a6a918e..ec7ce29b75b 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/2-titles_not_in_line_numbering.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/2-titles_not_in_line_numbering.pdf
index d751ef78ffe..9be7ef41a74 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/2-titles_not_in_line_numbering.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/2-titles_not_in_line_numbering.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_columns_different_languages.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_columns_different_languages.pdf
index d05683ac0ac..44598e50777 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_columns_different_languages.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_columns_different_languages.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_mwe.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_mwe.pdf
index 71adb5d7bb3..2887c4e28e7 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_mwe.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_mwe.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
index 3d12b5b07bb..5c9a05d0039 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
index 36e59042160..a7284c1a286 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
index df79382ca80..79eb6f85473 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
index d68d98ff29c..4f4080d62c4 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_default.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_default.pdf
index 448dea3da89..10d4db57ba2 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_default.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_default.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
index 37ac4daee67..f80c8f0c0cf 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nomax.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
index d69077e19b3..447663b5235 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nosync.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
index 692832cc520..1687788aef6 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_shifted.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
index bf85737443f..a5d9a31af85 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
index e9fb82d3458..c635ad428af 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
index 6136c9957b8..5494c3e31f4 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_columns_alignment.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_columns_alignment.pdf
index 0fea810dc61..12697bfd9f5 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_columns_alignment.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_columns_alignment.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
index b492f691216..b93ac6382c7 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_inside-outside-columns.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_inside-outside-columns.pdf
index d4643edcb39..5930b9c800e 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_inside-outside-columns.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_inside-outside-columns.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_one_series_per_pstart.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
index 09f3b726021..b6a80ca0ab2 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_long_notes.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_long_notes.pdf
index 4ccf4308cd4..d575d13b126 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_long_notes.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_long_notes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
index 000ffd301c6..6e5c34815b1 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
index 3baa1de9869..ddd3549b70b 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
index 7a63bced17a..65d9cd5e646 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
index e68462600d2..140600034e4 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_verse_text_between.pdf b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_verse_text_between.pdf
index 120bdeb43a4..111add0bfaa 100644
--- a/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_verse_text_between.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/examples/4-reledpar_verse_text_between.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/migration.pdf b/Master/texmf-dist/doc/latex/reledmac/migration.pdf
index 1512a20fea9..5390e6ff37e 100644
--- a/Master/texmf-dist/doc/latex/reledmac/migration.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/migration.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/reledmac.pdf b/Master/texmf-dist/doc/latex/reledmac/reledmac.pdf
index bf4c1a04d6d..00cf8700120 100644
--- a/Master/texmf-dist/doc/latex/reledmac/reledmac.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/reledmac.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/reledmac/reledpar.pdf b/Master/texmf-dist/doc/latex/reledmac/reledpar.pdf
index 09730ec178a..d9a20c2744f 100644
--- a/Master/texmf-dist/doc/latex/reledmac/reledpar.pdf
+++ b/Master/texmf-dist/doc/latex/reledmac/reledpar.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/scrlayer-fancyhdr/LICENSE.md b/Master/texmf-dist/doc/latex/scrlayer-fancyhdr/LICENSE.md
index 99a6973749b..1863f2f61a2 100644
--- a/Master/texmf-dist/doc/latex/scrlayer-fancyhdr/LICENSE.md
+++ b/Master/texmf-dist/doc/latex/scrlayer-fancyhdr/LICENSE.md
@@ -13,7 +13,7 @@ Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle
Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01
-oder später. Dieses Werk hat den LPPL-Verwaltungs-Status „maintained”
+oder später. Dieses Werk hat den LPPL-Verwaltungs-Status „maintained”.
Der aktuelle Verwalter und Autor dieses Werks ist Markus Kohm.
----------------------------------------------------------------------------
diff --git a/Master/texmf-dist/doc/latex/scrlayer-fancyhdr/README.md b/Master/texmf-dist/doc/latex/scrlayer-fancyhdr/README.md
index b1776008e38..2586d43cbde 100644
--- a/Master/texmf-dist/doc/latex/scrlayer-fancyhdr/README.md
+++ b/Master/texmf-dist/doc/latex/scrlayer-fancyhdr/README.md
@@ -2,10 +2,14 @@
------------------------------------------------------------------------------
-LaTeX package `scrlayer-fancyhdr`
-Copyright (c) 2008—2022 Markus Kohm
-Release: 2022-07-08 v0.2.2
-License: LPPL 1.3c (see LICENSE.md)
+LaTeX package `scrlayer-fancyhdr`
+
+Copyright (c) 2008—2025 Markus Kohm
+
+Release: 2025-01-08 v0.3.1
+
+License: LPPL 1.3c (see LICENSE.md)
+
CTAN Location: https://ctan.org/pkg/scrlayer-fancyhdr
------------------------------------------------------------------------------
@@ -22,7 +26,10 @@ Before KOMA-Script v3.33 `scrlayer-fancyhdr` was part of KOMA-Script itself.
It still depends on KOMA-Script package
[`scrlayer`](https://www.ctan.org/pkg/scrlayer) at least version 3.33. It
also depends on [`fancyhdr`](https://www.ctan.org/pkg/fancyhdr). Currently
-version 3 and 4 up to 4.0.1 are supported and tested.
+version 3 and 4 up to 4.0.1 are supported and tested. Basic functionality also
+works with version 5 and has been tested up to 5.1. But several new features
+of [`fancyhdr`](https://www.ctan.org/pkg/fancyhdr) version 5 are currently not
+tested with `scrlayer-fancyhdr`.
## Status
diff --git a/Master/texmf-dist/doc/latex/scrlayer-fancyhdr/scrlayer-fancyhdr.pdf b/Master/texmf-dist/doc/latex/scrlayer-fancyhdr/scrlayer-fancyhdr.pdf
index 1ebb80f9a34..cd28378687d 100644
--- a/Master/texmf-dist/doc/latex/scrlayer-fancyhdr/scrlayer-fancyhdr.pdf
+++ b/Master/texmf-dist/doc/latex/scrlayer-fancyhdr/scrlayer-fancyhdr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tabularray-abnt/changelog.txt b/Master/texmf-dist/doc/latex/tabularray-abnt/changelog.txt
index 9daa7e6ee18..fb8b1eaa39f 100644
--- a/Master/texmf-dist/doc/latex/tabularray-abnt/changelog.txt
+++ b/Master/texmf-dist/doc/latex/tabularray-abnt/changelog.txt
@@ -1,2 +1,4 @@
+2025-01-06
+ - Added global counter for table/quadro to fix bug that mix page span status for table and quadro.
2025-01-03
-- first public release
+ - first public release
diff --git a/Master/texmf-dist/doc/latex/tabularray-abnt/tabularray-abnt-pt-br.pdf b/Master/texmf-dist/doc/latex/tabularray-abnt/tabularray-abnt-pt-br.pdf
index af64a6be548..f5730637c57 100644
--- a/Master/texmf-dist/doc/latex/tabularray-abnt/tabularray-abnt-pt-br.pdf
+++ b/Master/texmf-dist/doc/latex/tabularray-abnt/tabularray-abnt-pt-br.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tabularray-abnt/tabularray-abnt-pt-br.tex b/Master/texmf-dist/doc/latex/tabularray-abnt/tabularray-abnt-pt-br.tex
index 6ebf28dd5d5..6881afce3f3 100644
--- a/Master/texmf-dist/doc/latex/tabularray-abnt/tabularray-abnt-pt-br.tex
+++ b/Master/texmf-dist/doc/latex/tabularray-abnt/tabularray-abnt-pt-br.tex
@@ -77,7 +77,7 @@
\title{Tabularray-abnt: tema abnt para tabularray}
\author{Sadao Massago}
-\date{03/01/2025}
+\date{06/01/2025}
%%%%%%%%%%%%%%%%%%%%%
% INÍCIO DO DOCUMENTO
diff --git a/Master/texmf-dist/doc/latex/tikz-bpmn/README.md b/Master/texmf-dist/doc/latex/tikz-bpmn/README.md
new file mode 100644
index 00000000000..573ad22b338
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tikz-bpmn/README.md
@@ -0,0 +1,10 @@
+Version: 2025-01-07
+
+This Tikz library provides primitives for drawing Business Process Modelling and Notation (BPMN) models.
+It includes tasks, subprocesses, events, task markers and gateways.
+The symbols aim to follow the BPMN standard [https://www.omg.org/bpmn/] as closely as possible.
+Please refer to the documentation for further information.
+
+Author: Sander J.J. Leemans, RWTH Aachen University, Germany
+
+This material is subject to the LaTeX Project Public License 1.3c.
diff --git a/Master/texmf-dist/doc/latex/tikz-bpmn/tikz-bpmn-doc.pdf b/Master/texmf-dist/doc/latex/tikz-bpmn/tikz-bpmn-doc.pdf
new file mode 100644
index 00000000000..a896411446a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tikz-bpmn/tikz-bpmn-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tikz-bpmn/tikz-bpmn-doc.tex b/Master/texmf-dist/doc/latex/tikz-bpmn/tikz-bpmn-doc.tex
new file mode 100644
index 00000000000..d68bbd3fc7d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tikz-bpmn/tikz-bpmn-doc.tex
@@ -0,0 +1,333 @@
+\documentclass{article}
+
+\usepackage{booktabs,multirow,tabularx,tikz,amssymb,amsmath}
+\usetikzlibrary{bpmn}
+
+\title{The Tikz BPMN package}
+\author{Sander J.J. Leemans}
+
+\begin{document}
+ \maketitle
+
+ This manual describes the BPMN Tikz package, used to draw BPMN models.
+
+ \def\event#1{
+ \eventsymbol{#1}
+ &
+ \eventcode{#1}
+ }
+
+ \def\eventsymbol#1{
+ \begin{tikzpicture}[baseline]
+ \node [#1] {};
+ \end{tikzpicture}
+ }
+ \def\eventcode#1{
+ \texttt{\textbackslash{}node [#1] \{\};}
+ }
+
+ \def\boundary#1{
+ \begin{tikzpicture}[baseline]
+ \node [task, label={[#1]225:}] {};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [task, label=\{[#1]225:\}] \{\};}
+ }
+
+ \section{Usage}
+ Place the file \texttt{tikzlibrarybpmn.code.tex} in the same folder as your .tex file, and include \verb!\usetikzlibrary{bpmn}! in the preamble of your .text file.
+
+ \subsection{Gateways}
+ \begin{tabularx}{\linewidth}{cX}
+ \toprule
+ Symbol & code\\
+ \midrule
+ \event{exclusive gateway}\newline\eventcode{xor gateway}\\
+ \event{parallel gateway}\newline\eventcode{and gateway}\\
+ \event{inclusive gateway}\newline\eventcode{or gateway}\\
+ \event{eventbased gateway}\\
+ \bottomrule
+ \end{tabularx}
+
+ \subsection{Events}
+ \begin{tabularx}{\linewidth}{cX}
+ \toprule
+ Symbol & code\\
+ \midrule
+ \event{start event}\\
+ \event{end event}\\
+ \midrule
+ \event{message start event}\\
+ \event{catching message intermediate event}\\
+ \event{throwing message intermediate event}\\
+ \event{message end event}\\
+ \midrule
+ \event{timer start event}\\
+ \eventsymbol{timer event}
+ &
+ \texttt{\textbackslash{}node [timer event] \{\};}\newline
+ \texttt{\textbackslash{}node [intermediate timer event] \{\};}
+ \\
+ \midrule
+ \event{throwing compensation intermediate event}\\
+ \event{throwing compensation end event}\\
+ \midrule
+ \eventsymbol{error event} & \eventcode{error event} \newline \eventcode{throwing error end event}\\
+ \midrule
+ \event{signal start event}\\
+ \event{catching signal intermediate event} \newline \eventcode{signal intermediate event}\\
+ \event{throwing signal intermediate event}\\
+ \event{signal end event}\\
+ \bottomrule
+ \end{tabularx}
+
+ \subsubsection{Background colour}
+ The background colour is an optional argument for several event styles, and required to be set if the background is not white for correct rendering.
+ The default can be set using
+ \verb=\colorlet{defaultbackgroundcolour}{new default colour}= after loading the package.
+
+ \subsection{Tasks \& sub-processes}
+ \begin{tabularx}{\linewidth}{cX}
+ \toprule
+ Symbol & code\\
+ \midrule
+ \begin{tikzpicture}[baseline]
+ \node [task] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [task] \{A\};}
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [compensation task] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [compensation task] \{A\};}
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [loop task] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [loop task] \{A\};} \newline
+ requires the \texttt{amssymb} and \texttt{amsmath} packages
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [multiinstance task] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [multiinstance task] \{A\};}
+ \\
+
+ \midrule
+
+ \begin{tikzpicture}[baseline]
+ \node [manual task] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [manual task] \{A\};}
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [receive task] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [receive task] \{A\};}
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [script task] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [script task] \{A\};}
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [send task] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [send task] \{A\};}
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [service task] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [service task] \{A\};}
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [user task] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [user task] \{A\};}
+ \\
+ \bottomrule
+ \end{tabularx}
+
+ \begin{tabularx}{\linewidth}{cX}
+ \toprule
+ Symbol & code\\
+ \midrule
+ \begin{tikzpicture}[baseline]
+ \node [subprocess] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [subprocess] \{A\};} \newline
+ \texttt{\textbackslash{}node [collapsed subprocess] \{A\};}
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [adhoc subprocess] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [adhoc subprocess] \{A\};} \newline
+ \texttt{\textbackslash{}node [collapsed adhoc subprocess] \{A\};}
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [compensation subprocess] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [compensation subprocess] \{A\};} \newline
+ \texttt{\textbackslash{}node [collapsed compensation subprocess] \{A\};}
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [loop subprocess] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [loop subprocess] \{A\};} \newline
+ \texttt{\textbackslash{}node [collapsed loop subprocess] \{A\};} \newline
+ requires the \texttt{amssymb} and \texttt{amsmath} packages
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [multiinstance subprocess] {A};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [multiinstance subprocess] \{A\};} \newline
+ \texttt{\textbackslash{}node [collapsed multiinstance subprocess] \{A\};}
+ \\
+
+ \midrule
+
+ \multirow{2}{*}{\begin{tikzpicture}[baseline]
+ \node [expanded subprocess] {};
+ \end{tikzpicture}}
+ &
+ \texttt{\textbackslash{}node [expanded subprocess] \{\};}\newline
+ use in combination with the \verb=fit= key
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [expanded adhoc subprocess] {};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [expanded adhoc subprocess] \{\};}\newline
+ use in combination with the \verb=fit= key
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [expanded compensation subprocess] {};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [expanded compensation subprocess] \{\};}\newline
+ use in combination with the \verb=fit= key
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [expanded loop subprocess] {};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [expanded loop subprocess] \{\};}\newline
+ use in combination with the \verb=fit= key
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [expanded multiinstance subprocess] {};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [expanded multiinstance subprocess] \{\};}\newline
+ use in combination with the \verb=fit= key
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [subprocess label=A] {};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [subprocess label=A] \{\};}\newline
+ use in combination with the \verb=fit= key
+ \\
+ \bottomrule
+ \end{tabularx}
+
+ \subsection{Event sub-processes}
+ \begin{tabularx}{\linewidth}{cX}
+ \toprule
+ Symbol & code\\
+ \midrule
+ \event{message subprocess event}\\
+ \event{timer subprocess event}\\
+ \event{signal subprocess event}\\
+ \event{compensation subprocess event}\\
+ \event{error subprocess event}\\
+ \midrule
+ \event{message noninterrupting subprocess event}\\
+ \event{timer noninterrupting subprocess event}\\
+ \event{signal noninterrupting subprocess event}\\
+ \midrule
+ \event{message event subprocess}\\
+ \event{timer event subprocess}\\
+ \event{signal event subprocess}\\
+ \event{compensation event subprocess}\\
+ \event{error event subprocess}\\
+ \midrule
+ \event{message noninterrupting event subprocess}\\
+ \event{timer noninterrupting event subprocess}\\
+ \event{signal noninterrupting event subprocess}\\
+ \bottomrule
+ \end{tabularx}
+
+ \subsection{Boundary events}
+ In the following, the number 225 controls the position of the boundary event (in degrees).
+ Naturally, a label can be used on any node.
+ To connect associations to a label, use the style \texttt{name=}.
+
+ \noindent\begin{tabularx}{\linewidth}{cX}
+ \toprule
+ Symbol & code\\
+ \midrule
+ \boundary{timer boundary event}\\
+ \boundary{message boundary event}\\
+ \boundary{signal boundary event}\\
+ \boundary{compensation boundary event}\\
+ \boundary{error boundary event}\\
+ \boundary{timer noninterrupting boundary event}\\
+ \boundary{message noninterrupting boundary event}\\
+ \boundary{signal noninterrupting boundary event}\\
+ \bottomrule
+ \end{tabularx}
+
+ All boundary events use fill to draw over the border of the parent node, and accept an argument for the fill colour.
+ The default fill colour can be changed using \verb=\colorlet{defaultbackgroundcolour}{new default colour}= after loading the package.
+
+ \subsection{Data}
+ \begin{tabularx}{\linewidth}{cX}
+ \toprule
+ Symbol & code\\
+ \midrule
+ \event{data object}\\
+ \event{data collection}\\
+ \event{data store}\\
+ \bottomrule
+ \end{tabularx}
+
+
+ \subsection{Resources}
+ \begin{tabularx}{\linewidth}{cX}
+ \toprule
+ Symbol & code\\
+ \midrule
+ \begin{tikzpicture}[baseline]
+ \node [pool] {\phantom{ABCDEF}\strut};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [pool] \{\};} \newline
+ use in combination with the \verb=fit= key
+ \\
+ \begin{tikzpicture}[baseline]
+ \node [pool label=A] {\phantom{ABCDEF}\strut};
+ \end{tikzpicture}
+ &
+ \texttt{\textbackslash{}node [pool label=A] \{\};} \newline
+ use in combination with the \verb=fit= key
+ \\
+ \bottomrule
+ \end{tabularx}
+
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/README.md b/Master/texmf-dist/doc/latex/tkz-elements/README.md
index 3c53ea16eb2..e1f8622bb09 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/README.md
+++ b/Master/texmf-dist/doc/latex/tkz-elements/README.md
@@ -1,10 +1,10 @@
# tkz-elements — for euclidean geometry
-Release 3.00c 2024/11/23
+Release 3.10c 2025/01/01
## Description
-`tkz-elements v.3.00c` is the new version of a library written in lua, allowing to make all the necessary calculations to define the objects of a Euclidean geometry figure. You need to compile with `LuaLaTeX`. With `tkz-elements`, the definitions and calculations are only done with `Lua`.
+`tkz-elements v.3.10c` is the new version of a library written in lua, allowing to make all the necessary calculations to define the objects of a Euclidean geometry figure. You need to compile with `LuaLaTeX`. With `tkz-elements`, the definitions and calculations are only done with `Lua`.
The main possibility of programmation proposed is oriented "object programming" with object classes like point, line, triangle, circle and ellipse. For the moment, once the calculations are done, it is `tkz-euclide` or `TikZ` which allows the drawings. You can use the option `mini` with `tkz-euclide` to load only the modules required for tracing.
@@ -55,13 +55,24 @@ your LaTeX document:
If you use the `xcolor` package, load that package before `tkz-euclide` to avoid
package conflicts.
+It's possible to use the environment `tkzelements` istead of the directive `\directlua` but in this case, you need to load the package `luacode`.
+
## Examples
Some examples will be stored on my site : [http://altermundus.fr](http://altermundus.fr).
-An important example `Golden Arbelos` using the package is on the site. All the files of the documentation
-are on the site.
+An important example `Golden Arbelos` using the package is on the site. All the files of the documentation are on the site.
## History
+ - version 3.10c
+ - Most of the functions have been optimized, and some have been commented on.
+ - Object classes have been enhanced with new attributes. For a triangle, you can directly access the semiperimeter, area, inradius and circumradius. In some classes, the `exradius` attribute is replaced by `circumradius`.
+ - For rectangle, square and circle, `perimeter` and `area` have been added.
+ - For line, new methods appear: `is_parallel`, `is_orthogonal` and `is_equidistant`. The latter allows you to determine whether a point is equidistant from the two points defining the line. The `swap` argument is available for all triangle creations. The result is now a single triangle, the second is obtained with `swap`.
+ - It is now possible to define an isosceles triangle from a straight line (segment) with length `isosceles_s`. You can use `isosceles_a` or the old `isosceles` method if you're using an angle. I've added a new test for triangles: `is_acute`. The `two_angles` method is identical to `asa`.
+ - The line , circle and triangle classes are complemented by methods with complicated names: `c_l_pp`, `c_ll_p`, `c_c_pp` and `c_cc_p`. These methods allow you to determine, from a line or circle, one or more circles tangent to lines or circles and passing through points. So `c_l_pp` means to create a circle tangent to a line (l) and passing through two points (pp). The first `c` reminds us that we're looking for a circle, the second group between `_` and `_` indicates the tangent objects (c or l) and the last indicates the points through which the circle passes.
+ - In the documentation, I've added a section on important geometry theorems (
+ Viviani, Reuschle, Thébault,Varignon, Wittenbauer, Soddy, Six circles ... to be completed ...). Examples of new methods and attributes have also been added.
+
- version 3.00c
- It is now possible to use the `directlua` primitive to perform `lua` code. In this case, tables and scaling can be reset using the `init_elements` function. You can still use the `tkzelements` environment, but only if you load the `luacode` package.
- Examples have been added to the `transfers` section.
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex
index 2d5665f879b..d1524ea0088 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex
@@ -25,8 +25,10 @@ This class is defined by two points: the center and a point through which the ci
\Iattr{circle}{south} & |C.AB.south| & |z.S = C.OA.south| \\
\Iattr{circle}{east} & |C.AB.east| & |z.E = C.OA.east| \\
\Iattr{circle}{west} & |C.AB.west| & |z.W = C.OA.west| \\
-\Iattr{circle}{opp} & |z.Ap = C.AB.opp| & [\ref{ssub:example_circle_attributes}] \\
+\Iattr{circle}{opp} & |z.Ap = C.AB.opp| & [\ref{ssub:example_circle_attributes}] \\
\Iattr{circle}{ct} & |L = C.AB.ct| [ \ref{ssub:example_circle_attributes} ] \\
+\Iattr{circle}{perimeter} & |p = C.AB.perimeter| [\ref{ssub:attributes_perimeter_and_area}] \\
+\Iattr{circle}{area} & |a = C.AB.area| [\ref{ssub:attributes_perimeter_and_area}] \\
\bottomrule %
\end{tabular}
\egroup
@@ -85,6 +87,41 @@ init_elements ()
\end{minipage}
% subsubsection example_circle_attributes (end)
+
+\subsubsection{Attributes perimeter and area} % (fold)
+\label{ssub:attributes_perimeter_and_area}
+
+ \pgfkeys{/pgf/number format/.cd,std,precision=4}
+ \let\pmpn\pgfmathprintnumber
+
+\begin{mybox}
+\begin{Verbatim}
+ \directlua{
+ z.A = point : new (1, 2)
+ z.B = point : new (4, 3)
+ C.AB = circle : new (z.A,z.B)
+ p = C.AB.perimeter
+ a = C.AB.area
+ }
+Let be two points $A$ and $B$. The circle of center $A$ passing
+through $B$ has perimeter \pmpn{\tkzUseLua{p}} $cm$
+and area \pmpn{\tkzUseLua{a} }$cm^2$.
+
+\end{Verbatim}
+
+\end{mybox}
+
+\directlua{
+z.A = point : new (1, 2)
+z.B = point : new (4, 3)
+C.AB = circle : new (z.A,z.B)
+p = C.AB.perimeter
+a = C.AB.area
+}
+Let be two points $A$ and $B$.
+The circle of center $A$ passing through $B$ has perimeter \pmpn{\tkzUseLua{p}} $cm$ and area \pmpn{\tkzUseLua{a} }$cm^2$.
+
+% subsubsection attributes_perimeter_and_area (end)
% subsection attributes_of_a_circle (end)
\newpage
@@ -102,6 +139,19 @@ init_elements ()
\Igfct{circle}{radius(O,r)} & |C.OA = circle : radius (z.O,2)| & center $O$ radius =2 cm; [\ref{ssub:method_imeth_circle_radius}]\\
\Igfct{circle}{diameter(A,B)} & |C.OA = circle :diameter(z.A,z.B)| & diameter $[AB]$; [\ref{ssub:method_imeth_circle_diameter}] \\
\midrule
+ \textbf{Reals} &&\\
+\midrule
+\Imeth{circle}{power (pt)} &| r = C.OA: power (z.M)| & [\ref{ssub:power_v1} ; \ref{ssub:power_v2} ; \ref{sub:apollonius_circle_v1_with_inversion} ] \\
+\midrule
+ \textbf{Strings} &&\\
+ \midrule
+ \Imeth{circle}{circles\_position (C1)} & result = string & [\ref{ssub:circles_position}] \\
+ \midrule
+ \textbf{Booleans} &&\\
+\midrule
+\Imeth{circle}{in\_out (pt)} & |C.OA : in_out (z.M)| & [\ref{ssub:in_out_for_circle_and_disk}] \\
+\Imeth{circle}{in\_out\_disk (pt)} & |C.OA : in_out_disk (z.M)| & [\ref{ssub:in_out_for_circle_and_disk}] \\
+\Imeth{circle}{is\_tangent (L)} & |C.OA : is_tangent (L.CD)| & [\ref{ssub:method_imeth_circle_is__tangent}] \\
\textbf{Points} &&\\
\midrule
\Imeth{circle}{antipode (pt)} & |z.C = C.OA: antipode (z.B)| & $[BC]$ = diameter; [\ref{ssub:method_imeth_circle_antipode}] \\
@@ -126,14 +176,9 @@ init_elements ()
\Imeth{circle}{orthogonal\_through(pta,ptb)}&|C=C.OA:orthogonal_through (z.z1,z.z2)| & [\ref{ssub:method_imeth_circle_orthogonal_through}]\\
\Imeth{circle}{midcircle (C)} & |C.inv = C.OA: midcircle (C.EF)| & [\ref{ssub:midcircle}] \\
\Imeth{circle}{radical\_circle (C1<,C2>)} & or only (C1) & [\ref{ssub:radical_circle}] \\
-\midrule
- \textbf{Miscellaneous} &&\\
-\midrule
-\Imeth{circle}{power (pt)} &| r = C.OA: power (z.M)| & [\ref{ssub:power_v1} ; \ref{ssub:power_v2} ; \ref{sub:apollonius_circle_v1_with_inversion} ] \\
-\Imeth{circle}{in\_out (pt)} & |C.OA : in_out (z.M)| & [\ref{ssub:in_out_for_circle_and_disk}] \\
-\Imeth{circle}{in\_out\_disk (pt)} & |C.OA : in_out_disk (z.M)| & [\ref{ssub:in_out_for_circle_and_disk}] \\
-\Imeth{circle}{draw ()} & for further use &\\
-\Imeth{circle}{circles\_position (C1)} & result = string & [\ref{ssub:circles_position}] \\
+\Imeth{circle}{c\_c\_pp(pt,pt)} &|C1,C2=C.A:c_cc_p (z.P,z.Q)| & [\ref{ssub:method_c__c__pp}] \\
+\Imeth{circle}{c\_cc\_p(C,pt)} &|C1,C2=C.A:c_cc_p (C.B,z.P)| & [\ref{ssub:method_c_cc_p}] \\
+\Imeth{circle}{c\_lc\_p(L,pt,<inside>)} &|C1,C2=C.A:c_cc_p (L.AB,z.P)| & [\ref{ssub:method_c_lc_p}] \\
\bottomrule
\end{tabular}
\egroup
@@ -268,6 +313,60 @@ z.T = C.through
\end{minipage}
% subsubsection method_imeth_circle_diameter (end)
+\subsubsection{Method \Imeth{circle}{is\_tangent}} % (fold)
+\label{ssub:method_imeth_circle_is__tangent}
+
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+\directlua{
+ z.A = point: new (0,0)
+ z.B = point: new (0,2)
+ C.AB = circle: new (z.A,z.B)
+ z.C = point: new (2,-2)
+ z.D = point: new (2,3)
+ L.CD = line : new (z.C,z.D)
+ if C.AB : is_tangent (L.CD)
+ then tex.print("L.CD tangent to C.AB")
+ else
+ tex.print("L.CD no tangent to C.AB")
+ end
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircle(A,B)
+\tkzDrawLines(C,D)
+\tkzDrawPoints(A,...,D)
+\tkzLabelPoints[below left](A,C)
+\tkzLabelPoints[above right](B,D)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+ \directlua{
+ z.A = point: new (0,0)
+ z.B = point: new (0,2)
+ C.AB = circle: new (z.A,z.B)
+ z.C = point: new (2,-2)
+ z.D = point: new (2,3)
+ L.CD = line : new (z.C,z.D)
+ if C.AB : is_tangent (L.CD) then
+ tex.print("L.CD tangent to C.AB")
+ else
+ tex.print("L.CD no tangent to C.AB")
+ end
+ }
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle(A,B)
+ \tkzDrawLines(C,D)
+ \tkzDrawPoints(A,...,D)
+ \tkzLabelPoints[below left](A,C)
+ \tkzLabelPoints[above right](B,D)
+ \end{tikzpicture}
+\end{minipage}
+
+
+% subsubsection method_imeth_circle_is__tangent (end)
\subsubsection{Method \Imeth{circle}{antipode}} % (fold)
\label{ssub:method_imeth_circle_antipode}
This method is used to define a point that is diametrically opposed to a point on a given circle.
@@ -703,7 +802,7 @@ z.A2 = L.TA2.pb
\end{minipage}
% subsubsection method_imeth_circle_external__similitude (end)
-
+\newpage
\subsubsection{Method \Imeth{circle}{radical\_center (C1,C2)}} % (fold)
\label{ssub:radical_center}
@@ -781,88 +880,97 @@ z.H = L.OOp : projection (z.X)
\end{minipage}
% subsubsection radical_center (end)
+\newpage
\subsubsection{Method \Imeth{circle}{radical\_axis}(C)} % (fold)
\label{ssub:method_imeth_circle_radical__axis_c}
The radical line, also called the radical axis, is the locus of points of equal circle power with respect to two nonconcentric circles. By the chordal theorem, it is perpendicular to the line of centers (Dörrie 1965). [\href{https://mathworld.wolfram.com/RadicalLine.html}{Weisstein, Eric W. "Radical Line." From MathWorld--A Wolfram Web Resource.} ]
\vspace{6pt}
-\paragraph{Radical axis v1} % (fold)
+Radical axis v1
\label{par:radical_axis_v1}
+\vspace{6pt}
+\begin{minipage}{.5\textwidth}
\begin{Verbatim}
\directlua{%
init_elements ()
-scale = .75
-z.X = point : new (0,0)
-z.B = point : new (2,2)
-z.Y = point : new (7,1)
-z.Ap = point : new (8,-1)
-L.XY = line : new (z.X,z.Y)
-C.XB = circle : new (z.X,z.B)
-C.YAp = circle : new (z.Y,z.Ap)
-z.E,z.F = get_points (C.XB : radical_axis (C.YAp))
-z.A = C.XB : point (0.4)
-T.ABAp = triangle: new (z.A,z.B,z.Ap)
-z.O = T.ABAp.circumcenter
-C.OAp = circle : new (z.O,z.Ap)
-_,z.Bp = intersection (C.OAp,C.YAp)
-L.AB = line : new (z.A,z.B)
-L.ApBp = line : new (z.Ap,z.Bp)
-z.M = intersection (L.AB,L.ApBp)
-z.H = L.XY : projection (z.M)
+scale = .75
+z.X = point: new (0,0)
+z.B = point: new (2,2)
+z.Y = point: new (7,1)
+z.Ap = point: new (8,-1)
+L.XY = line : new (z.X,z.Y)
+C.XB = circle : new (z.X,z.B)
+C.YAp = circle : new (z.Y,z.Ap)
+z.E,z.F= get_points(C.XB:radical_axis(C.YAp))
+z.A = C.XB : point (0.4)
+T.ABAp = triangle: new (z.A,z.B,z.Ap)
+z.O = T.ABAp.circumcenter
+C.OAp = circle : new (z.O,z.Ap)
+_,z.Bp = intersection (C.OAp,C.YAp)
+L.AB = line : new (z.A,z.B)
+L.ApBp = line : new (z.Ap,z.Bp)
+z.M = intersection (L.AB,L.ApBp)
+z.H = L.XY : projection (z.M)
}
-\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircles(X,B Y,A')
- \tkzDrawArc[dashed,delta=30](O,A')(A)
- \tkzDrawPoints(A,B,A',B',M,H,X,Y,O,E,F)
- \tkzDrawLines[red](A,M A',M X,Y E,F)
- \tkzDrawLines[red,add=1 and 3](M,H)
-\end{tikzpicture}
\end{Verbatim}
-
-\directlua{%
-init_elements ()
-scale = .75
-z.X = point : new (0,0)
-z.B = point : new (2,2)
-z.Y = point : new (7,1)
-z.Ap = point : new (8,-1)
-L.XY = line : new (z.X,z.Y)
-C.XB = circle : new (z.X,z.B)
-C.YAp = circle : new (z.Y,z.Ap)
-z.E,z.F = get_points (C.XB : radical_axis (C.YAp))
-z.A = C.XB : point (0.4)
-T.ABAp = triangle: new (z.A,z.B,z.Ap)
-z.O = T.ABAp.circumcenter
-C.OAp = circle : new (z.O,z.Ap)
-_,z.Bp = intersection (C.OAp,C.YAp)
-L.AB = line : new (z.A,z.B)
-L.ApBp = line : new (z.Ap,z.Bp)
-z.M = intersection (L.AB,L.ApBp)
-z.H = L.XY : projection (z.M)
-}
-
-\begin{center}
- \begin{tikzpicture}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(X,B Y,A')
\tkzDrawArc[dashed,delta=30](O,A')(A)
\tkzDrawPoints(A,B,A',B',M,H,X,Y,O,E,F)
\tkzDrawLines[red](A,M A',M X,Y E,F)
\tkzDrawLines[red,add=1 and 3](M,H)
- \end{tikzpicture}
-\end{center}
-% paragraph radical_axis_v1 (end)
+\end{tikzpicture}
+\end{Verbatim}
+
+ \directlua{%
+ init_elements ()
+ scale = .4
+ z.X = point : new (0,0)
+ z.B = point : new (2,2)
+ z.Y = point : new (7,1)
+ z.Ap = point : new (8,-1)
+ L.XY = line : new (z.X,z.Y)
+ C.XB = circle : new (z.X,z.B)
+ C.YAp = circle : new (z.Y,z.Ap)
+ z.E,z.F = get_points (C.XB : radical_axis (C.YAp))
+ z.A = C.XB : point (0.4)
+ T.ABAp = triangle: new (z.A,z.B,z.Ap)
+ z.O = T.ABAp.circumcenter
+ C.OAp = circle : new (z.O,z.Ap)
+ _,z.Bp = intersection (C.OAp,C.YAp)
+ L.AB = line : new (z.A,z.B)
+ L.ApBp = line : new (z.Ap,z.Bp)
+ z.M = intersection (L.AB,L.ApBp)
+ z.H = L.XY : projection (z.M)
+ }
+ \begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(X,B Y,A')
+ \tkzDrawArc[dashed,delta=30](O,A')(A)
+ \tkzDrawPoints(A,B,A',B',M,H,X,Y,O,E,F)
+ \tkzDrawLines[red](A,M A',M X,Y E,F)
+ \tkzDrawLines[red,add=1 and 3](M,H)
+ \end{tikzpicture}
+ \end{center}
+\end{minipage}
-\paragraph{Radical axis v2} % (fold)
+\vspace{6pt}
+Radical axis v2
\label{par:radical_axis_v2}
+\vspace{6pt}
+\begin{minipage}{.5\textwidth}
\begin{Verbatim}
\directlua{%
init_elements ()
-scale = 1.25
+scale = .5
z.O = point : new (-1,0)
z.Op = point : new (4,-1)
z.B = point : new (0,2)
@@ -879,38 +987,42 @@ L.MK,L.MKp = C.OpD : tangent_from (z.M)
_,z.K = get_points (L.MK)
_,z.Kp = get_points (L.MKp)
}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircles(O,B O',D)
- \tkzDrawLine(E,F)
- \tkzDrawLine[add=.25 and .25](O,O')
- \tkzDrawLines[add = 0 and .5](M,T M,T' M,K M,K')
- \tkzDrawCircle(M,T)
- \tkzDrawPoints(O,O',T,M,T',K,K')
- \tkzLabelPoints(O,O',T,T',K,K',M)
+ \tkzGetNodes
+ \tkzDrawCircles(O,B O',D)
+ \tkzDrawLine(E,F)
+ \tkzDrawLine[add=.25 and .25](O,O')
+ \tkzDrawLines[add = 0 and .5](M,T M,T'
+ M,K M,K')
+ \tkzDrawCircle(M,T)
+ \tkzDrawPoints(O,O',T,M,T',K,K')
+ \tkzLabelPoints(O,O',T,T',K,K',M)
\end{tikzpicture}
\end{Verbatim}
-
-\directlua{%
-init_elements ()
-scale =1.25
-z.O = point : new (-1,0)
-z.Op = point : new (4,-1)
-z.B = point : new (0,2)
-z.D = point : new (4,0)
-C.OB = circle : new (z.O,z.B)
-C.OpD = circle : new (z.Op,z.D)
-L.EF = C.OB : radical_axis (C.OpD)
-z.E,z.F = get_points (L.EF)
-z.M = L.EF : point (.75)
-L.MT,L.MTp = C.OB : tangent_from (z.M)
-_,z.T = get_points (L.MT)
-_,z.Tp = get_points (L.MTp)
-L.MK,L.MKp = C.OpD : tangent_from (z.M)
-_,z.K = get_points (L.MK)
-_,z.Kp = get_points (L.MKp)
-}
-
+
+ \directlua{%
+ init_elements ()
+ scale =.5
+ z.O = point : new (-1,0)
+ z.Op = point : new (4,-1)
+ z.B = point : new (0,2)
+ z.D = point : new (4,0)
+ C.OB = circle : new (z.O,z.B)
+ C.OpD = circle : new (z.Op,z.D)
+ L.EF = C.OB : radical_axis (C.OpD)
+ z.E,z.F = get_points (L.EF)
+ z.M = L.EF : point (.75)
+ L.MT,L.MTp = C.OB : tangent_from (z.M)
+ _,z.T = get_points (L.MT)
+ _,z.Tp = get_points (L.MTp)
+ L.MK,L.MKp = C.OpD : tangent_from (z.M)
+ _,z.K = get_points (L.MK)
+ _,z.Kp = get_points (L.MKp)
+ }
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -923,41 +1035,49 @@ _,z.Kp = get_points (L.MKp)
\tkzLabelPoints(O,O',T,T',K,K',M)
\end{tikzpicture}
\end{center}
-% paragraph radical_axis_v2 (end)
+\end{minipage}
-\paragraph{Radical axis v3} % (fold)
+
+
+Radical axis v3
\label{par:radical_axis_v3}
+\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \directlua{%
+\directlua{%
init_elements ()
- z.O = point : new (0,0)
- z.B = point : new (4,0)
- z.Op = point : new (6,0)
- C.OB = circle : new (z.O,z.B)
- C.OpB = circle : new (z.Op,z.B)
- L.EF = C.OB : radical_axis (C.OpB)
- z.E,z.F = get_points(L.EF)
- z.M = L.EF : point (0.2)
- L = C.OB : tangent_from (z.M)
- _,z.T = get_points (L)
- L = C.OpB : tangent_from (z.M)
- _,z.Tp = get_points (L)
+scale =.5
+z.O = point : new (0,0)
+z.B = point : new (4,0)
+z.Op = point : new (6,0)
+C.OB = circle : new (z.O,z.B)
+C.OpB = circle : new (z.Op,z.B)
+L.EF = C.OB : radical_axis (C.OpB)
+z.E,z.F = get_points(L.EF)
+z.M = L.EF : point (0.2)
+L = C.OB : tangent_from (z.M)
+_,z.T = get_points (L)
+L = C.OpB : tangent_from (z.M)
+_,z.Tp = get_points (L)
}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircles(O,B O',B)
- \tkzDrawSegments(M,T M,T')
- \tkzDrawSegments(E,F)
- \tkzDrawLine[add=.5 and .5](O,O')
- \tkzDrawPoints(O,B,O',E,F,M,T,T')
- \tkzLabelPoints(O,O',B,E,F,T,T')
- \tkzDrawArc(M,T')(T)
+ \tkzGetNodes
+ \tkzDrawCircles(O,B O',B)
+ \tkzDrawSegments(M,T M,T')
+ \tkzDrawSegments(E,F)
+ \tkzDrawLine[add=.5 and .5](O,O')
+ \tkzDrawPoints(O,B,O',E,F,M,T,T')
+ \tkzLabelPoints(O,O',B,E,F,T,T')
+ \tkzDrawArc(M,T')(T)
\end{tikzpicture}
\end{Verbatim}
-
\directlua{%
init_elements ()
+scale =.5
z.O = point : new (0,0)
z.B = point : new (4,0)
z.Op = point : new (6,0)
@@ -971,7 +1091,6 @@ _,z.T = get_points (L)
L = C.OpB : tangent_from (z.M)
_,z.Tp = get_points (L)
}
-
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -984,42 +1103,49 @@ _,z.Tp = get_points (L)
\tkzDrawArc(M,T')(T)
\end{tikzpicture}
\end{center}
+\end{minipage}
% paragraph radical_axis_v3 (end)
-\paragraph{Radical axis v4} % (fold)
+Radical axis v4
\label{par:radical_axis_v4}
+\begin{minipage}{.5\textwidth}
\begin{Verbatim}
\directlua{%
init_elements ()
- z.O = point : new (0,0)
- z.B = point : new (5,0)
- z.Op = point : new (3,0)
- C.OB = circle : new (z.O,z.B)
- C.OpB = circle : new (z.Op,z.B)
- L.EF = C.OB : radical_axis (C.OpB)
- z.E,z.F = get_points(L.EF)
- z.H = L.EF.mid
- z.M = L.EF : point (.8)
- _,L = C.OB : tangent_from (z.M)
- _,z.T = get_points (L)
- _,L = C.OpB : tangent_from (z.M)
- _,z.Tp = get_points (L)
-}
+scale =.5
+z.O = point : new (0,0)
+z.B = point : new (5,0)
+z.Op = point : new (3,0)
+C.OB = circle : new (z.O,z.B)
+C.OpB = circle : new (z.Op,z.B)
+L.EF = C.OB : radical_axis (C.OpB)
+z.E,z.F = get_points(L.EF)
+z.H = L.EF.mid
+z.M = L.EF : point (.8)
+_,L = C.OB : tangent_from (z.M)
+_,z.T = get_points (L)
+_,L = C.OpB : tangent_from (z.M)
+_,z.Tp = get_points (L)}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircles(O,B O',B)
- \tkzDrawSegments(M,T M,T')
- \tkzDrawSegments(E,F)
- \tkzDrawLine[add=.3 and .3](O,H)
- \tkzDrawPoints(O,O',B,E,H,M)
- \tkzLabelPoints[below right](O,O',E,F,M,T,T')
- \tkzDrawArc(M,B)(T)
+ \tkzGetNodes
+ \tkzDrawCircles(O,B O',B)
+ \tkzDrawSegments(M,T M,T')
+ \tkzDrawSegments(E,F)
+ \tkzDrawLine[add=.3 and .3](O,H)
+ \tkzDrawPoints(O,O',B,E,H,M)
+ \tkzLabelPoints[below right](O,O',E,F,M,T,T')
+ \tkzDrawArc(M,B)(T)
\end{tikzpicture}
\end{Verbatim}
\directlua{%
init_elements ()
+scale =.5
z.O = point : new (0,0)
z.B = point : new (5,0)
z.Op = point : new (3,0)
@@ -1047,6 +1173,7 @@ init_elements ()
\tkzDrawArc(M,B)(T)
\end{tikzpicture}
\end{center}
+\end{minipage}
% paragraph radical_axis_v4 (end)
% subsubsection method_imeth_circle_radical__axis_c (end)
@@ -1189,61 +1316,65 @@ In geometry, two circles are said to be orthogonal if their respective tangent l
This method determines a circle with a given centre, orthogonal to a circle that is also given.
-\begin{Verbatim}
-\directlua{%
-init_elements ()
- scale = .6
- z.C_1 = point: new (0,0)
- z.C_2 = point: new (8,0)
- z.A = point: new (5,0)
- C = circle: new (z.C_1,z.A)
- z.S,z.T = get_points (C: orthogonal_from (z.C_2))
-}
-\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircles(C_1,T C_2,T)
- \tkzDrawSegments(C_1,T C_2,T)
- \tkzDrawLine(C_1,C_2)
- \tkzMarkRightAngle[fill=teal,%
- opacity=.2,size=1](C_1,T,C_2)
- \tkzDrawPoints(C_1,C_2,T)
- \tkzLabelPoints(C_1,C_2)
- \tkzLabelPoints[above](T)
- \tkzLabelSegment[left](C_1,T){r}
- \tkzLabelSegments[right](C_2,T){$\gamma$}
- \tkzLabelSegment[below](C_1,C_2){d}
- \tkzLabelCircle[left=10pt](C_1,T)(180){Circle 1}
- \tkzLabelCircle[right=10pt](C_2,T)(180){Circle 2}
-\end{tikzpicture}
-\end{Verbatim}
-
-\directlua{%
-init_elements ()
-scale = .6
-z.C_1 = point: new (0,0)
-z.C_2 = point: new (8,0)
-z.A = point: new (5,0)
-C = circle: new (z.C_1,z.A)
-z.S,z.T = get_points (C: orthogonal_from (z.C_2))
-}
-
-\begin{center}
+\vspace{6pt}
+\begin{minipage}{.5\textwidth}
+ \begin{Verbatim}
+ \directlua{%
+ init_elements ()
+ scale = .6
+ z.C_1 = point: new (0,0)
+ z.C_2 = point: new (8,0)
+ z.A = point: new (5,0)
+ C = circle: new (z.C_1,z.A)
+ z.S,z.T = get_points (C: orthogonal_from (z.C_2))
+ }
\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircles(C_1,T C_2,T)
- \tkzDrawSegments(C_1,T C_2,T)
- \tkzDrawLine(C_1,C_2)
- \tkzMarkRightAngle[fill=teal,opacity=.2,size=.5](C_1,T,C_2)
- \tkzDrawPoints(C_1,C_2,T)
- \tkzLabelPoints(C_1,C_2)
- \tkzLabelPoints[above](T)
- \tkzLabelSegment[left](C_1,T){r}
- \tkzLabelSegments[right](C_2,T){$\gamma$}
- \tkzLabelSegment[below](C_1,C_2){d}
- \tkzLabelCircle[left=10pt](C_1,T)(180){Circle 1}
- \tkzLabelCircle[right=10pt](C_2,T)(180){Circle 2}
+ \tkzGetNodes
+ \tkzDrawCircles(C_1,T C_2,T)
+ \tkzDrawSegments(C_1,T C_2,T)
+ \tkzDrawLine(C_1,C_2)
+ \tkzMarkRightAngle[fill=teal,%
+ opacity=.2,size=1](C_1,T,C_2)
+ \tkzDrawPoints(C_1,C_2,T)
+ \tkzLabelPoints(C_1,C_2)
+ \tkzLabelPoints[above](T)
+ \tkzLabelSegment[left](C_1,T){r}
+ \tkzLabelSegments[right](C_2,T){$\gamma$}
+ \tkzLabelSegment[below](C_1,C_2){d}
+ \tkzLabelCircle[left=10pt](C_1,T)(180){Circle 1}
+ \tkzLabelCircle[right=10pt](C_2,T)(180){Circle 2}
\end{tikzpicture}
-\end{center}
+ \end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+ \directlua{%
+ init_elements ()
+ scale = .25
+ z.C_1 = point: new (0,0)
+ z.C_2 = point: new (8,0)
+ z.A = point: new (5,0)
+ C = circle: new (z.C_1,z.A)
+ z.S,z.T = get_points (C: orthogonal_from (z.C_2))
+ }
+ \begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(C_1,T C_2,T)
+ \tkzDrawSegments(C_1,T C_2,T)
+ \tkzDrawLine(C_1,C_2)
+ \tkzMarkRightAngle[fill=teal,opacity=.2,size=.5](C_1,T,C_2)
+ \tkzDrawPoints(C_1,C_2,T)
+ \tkzLabelPoints(C_1,C_2)
+ \tkzLabelPoints[above](T)
+ \tkzLabelSegment[left](C_1,T){r}
+ \tkzLabelSegments[right](C_2,T){$\gamma$}
+ \tkzLabelSegment[below](C_1,C_2){d}
+ \tkzLabelCircle[left=10pt](C_1,T)(180){Circle 1}
+ \tkzLabelCircle[right=10pt](C_2,T)(180){Circle 2}
+ \end{tikzpicture}
+ \end{center}
+\end{minipage}
+
% subsubsection method_imeth_circle_orthogonal__from_pt (end)
@@ -1294,7 +1425,7 @@ init_elements ()
\end{minipage}
% subsubsection method_imeth_circle_orthogonal__through (end)
-\subsubsection{midcircle} % (fold)
+\subsubsection{Method \Imeth{circle}{mmidcircle}} % (fold)
\label{ssub:midcircle}
\begin{minipage}{0.95\linewidth }
@@ -1906,8 +2037,7 @@ init_elements ()
if position == "inside tangent"
then color = "orange"
else color = "blue" end
-}
-
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(A,a)
@@ -1936,6 +2066,568 @@ if position == "inside tangent" then color = "orange" else color = "blue" end
\end{minipage}
% subsubsection circles__position (end)
+
+\subsubsection{Method \Imeth{circle}{c\_c\_pp}} % (fold)
+\label{ssub:method_c__c__pp}
+
+Find a circle tangent to a circle and passing through two given points. If one of the points is on the inside and the other on the outside, then there's no solution.
+
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+\directlua{
+ init_elements ()
+ scale =.75
+ z.A = point: new (5,4)
+ z.B = point: new (3,0)
+ z.O = point: new (0,0)
+ z.C = point: new (1,0)
+ L.AB = line: new ( z.A,z.B )
+ C.OC = circle: new (z.O,z.C)
+ C1,C2 = C.OC: c_c_pp (z.A,z.B)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines[red](A,B)
+\tkzDrawCircle[red](O,C)
+\tkzDrawPoints(A,B,C,O)
+ \tkzDrawCircles[cyan](O1,T1 O2,T2)
+ \tkzDrawPoints(O1,O2,T1,T2)
+ \tkzLabelPoints(O1,O2,T1,T2,A,B)
+ \tkzLabelPoints(O,C,A,B)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\directlua{
+ init_elements ()
+ scale =.75
+ z.A = point: new (5,4)
+ z.B = point: new (3,0)
+ z.O = point: new (0,0)
+ z.C = point: new (1,0)
+ L.AB = line: new ( z.A,z.B )
+ C.OC = circle: new (z.O,z.C)
+ C1,C2 = C.OC: c_c_pp (z.A,z.B)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines[red](A,B)
+\tkzDrawCircle[red](O,C)
+\tkzDrawPoints(A,B,C,O)
+ \tkzDrawCircles[cyan](O1,T1 O2,T2)
+ \tkzDrawPoints(O1,O2,T1,T2)
+ \tkzLabelPoints(O1,O2,T1,T2,A,B)
+ \tkzLabelPoints(O,C,A,B)
+\end{tikzpicture}
+\end{minipage}
+
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+\directlua{
+ init_elements ()
+ z.A = point: new (3,0)
+ z.B = point: new (0,-3)
+ z.O = point: new (0,0)
+ z.C = point: new (1,0)
+ L.AB = line: new ( z.A,z.B )
+ C.OC = circle: new (z.O,z.C)
+ C1,C2 = C.OC: c_c_pp (z.A,z.B)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines[red](A,B)
+\tkzDrawCircle[red](O,C)
+\tkzDrawPoints(A,B,C,O)
+ \tkzDrawCircles[cyan](O1,T1 O2,T2)
+ \tkzDrawPoints(T1,T2)
+ \tkzLabelPoints(O1,O2,T1,T2,A,B)
+ \tkzLabelPoints(O,C,A,B)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\directlua{
+ init_elements ()
+ z.A = point: new (3,0)
+ z.B = point: new (0,-3)
+ z.O = point: new (0,0)
+ z.C = point: new (1,0)
+ L.AB = line: new ( z.A,z.B )
+ C.OC = circle: new (z.O,z.C)
+ C1,C2 = C.OC: c_c_pp (z.A,z.B)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines[red](A,B)
+\tkzDrawCircle[red](O,C)
+\tkzDrawPoints(A,B,C,O)
+ \tkzDrawCircles[cyan](O1,T1 O2,T2)
+ \tkzDrawPoints(T1,T2)
+ \tkzLabelPoints(O1,O2,T1,T2,A,B)
+ \tkzLabelPoints(O,C,A,B)
+\end{tikzpicture}
+\end{minipage}
+
+Special case: the two points are equidistant from the center of the circle
+
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+\directlua{
+ init_elements ()
+ scale =.5
+ z.A = point: new (2,3)
+ z.B = point: new (2,-3)
+ z.O = point: new (0,0)
+ z.C = point: new (1,0)
+ L.AB = line: new ( z.A,z.B )
+ C.OC = circle: new (z.O,z.C)
+ C1,C2 = C.OC: c_c_pp (z.A,z.B)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\directlua{
+ init_elements ()
+ scale =.5
+ z.A = point: new (2,3)
+ z.B = point: new (2,-3)
+ z.O = point: new (0,0)
+ z.C = point: new (1,0)
+ L.AB = line: new ( z.A,z.B )
+ C.OC = circle: new (z.O,z.C)
+ C1,C2 = C.OC: c_c_pp (z.A,z.B)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines[red](A,B)
+\tkzDrawCircles[red](O,C)
+\tkzDrawPoints(A,B,C,O)
+\tkzDrawCircles[cyan](O1,T1 O2,T2)
+\tkzLabelPoints(O,C,A,B)
+\end{tikzpicture}
+\end{minipage}
+
+The line $(AB)$ is tangent to the circle. Only one circle answers the question.
+
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+ \directlua{
+ init_elements ()
+ scale =.5
+ z.A = point: new (1,5)
+ z.B = point: new (1,-3)
+ z.O = point: new (0,0)
+ z.C = point: new (1,0)
+ L.AB = line: new ( z.A,z.B )
+ C.OC = circle: new (z.O,z.C)
+ C1,C2 = C.OC: c_c_pp (z.A,z.B)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+ }
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\directlua{
+ init_elements ()
+ scale =.5
+ z.A = point: new (1,5)
+ z.B = point: new (1,-3)
+ z.O = point: new (0,0)
+ z.C = point: new (1,0)
+ L.AB = line: new ( z.A,z.B )
+ C.OC = circle: new (z.O,z.C)
+ C1,C2 = C.OC: c_c_pp (z.A,z.B)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines[red](A,B)
+\tkzDrawCircles[red](O,C)
+\tkzDrawPoints(A,B,C,O)
+\tkzDrawCircles[cyan](O1,T1 O2,T2)
+\tkzLabelPoints(O,C,A,B)
+\end{tikzpicture}
+\end{minipage}
+Another special case occurs when the straight line $(AB)$ is tangent to the initial circle, and it's even possible for points $A$ and $B$ to be equidistant from the center and for the straight line to be tangent to the circle. Here too, a single circle answers the question
+
+
+\begin{minipage}{.5\textwidth}
+ \begin{Verbatim}
+ \directlua{
+ init_elements ()
+ z.A = point: new (1,3)
+ z.B = point: new (1,-3)
+ z.O = point: new (0,0)
+ z.C = point: new (1,0)
+ L.AB = line: new ( z.A,z.B )
+ C.OC = circle: new (z.O,z.C)
+ C1,C2 = C.OC: c_c_pp (z.A,z.B)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+ }
+ \end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+ \directlua{
+ init_elements ()
+ z.A = point: new (1,3)
+ z.B = point: new (1,-3)
+ z.O = point: new (0,0)
+ z.C = point: new (1,0)
+ L.AB = line: new ( z.A,z.B )
+ C.OC = circle: new (z.O,z.C)
+ C1,C2 = C.OC: c_c_pp (z.A,z.B)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+ }
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[red](A,B)
+ \tkzDrawCircles[red](O,C)
+ \tkzDrawPoints(A,B,C,O)
+ \tkzDrawCircles[cyan](O1,T1 O2,T2)
+ \tkzLabelPoints(O,C,A,B)
+ \end{tikzpicture}
+\end{minipage}
+
+% subsubsection method_c__c__pp (end)
+
+\subsubsection{Method \Imeth{circle}{c\_cc\_p}} % (fold)
+\label{ssub:method_c_cc_p}
+Circle tangent to two circles passing through a point
+
+Let's begin with the general case. The two circles are disjoint, and point
+$P$ lies outside both of them. Notice that the two solution circles intersect at two points, one of which is the given point $P$. To determine the second intersection point, I used a similitude. This approach leads to an intriguing special case known as the Arbelos configuration. In this arrangement, the solution circles are also tangent at point $P$. One of the circles, in this case, is the Pappus circle.
+
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+init_elements()
+scale =.75
+z.A = point : new ( 0 , 0 )
+z.TA = point : new ( 3 , 0 )
+z.B = point : new ( 6 , 2 )
+z.TB = point : new ( 6 , 1 )
+z.P = point : new ( 3 , 6 )
+C.A = circle : new (z.A,z.TA)
+C.B = circle : new (z.B,z.TB)
+C1,C2= C.A : c_cc_p (C.B,z.P)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles[thick](A,TA B,TB)
+\tkzDrawCircles[red](O1,T1 O2,T2)
+\tkzDrawPoints(A,B,O1,O2)
+\tkzLabelPoints(A,B)
+\tkzDrawPoints[size=3](P)
+\tkzLabelPoints[above](P)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+init_elements()
+scale = .75
+z.A = point : new ( 0 , 0 )
+z.TA = point : new ( 3 , 0 )
+z.B = point : new ( 6 , 2 )
+z.TB = point : new ( 6 , 1 )
+z.P = point : new ( 3 , 6 )
+C.A = circle : new (z.A,z.TA)
+C.B = circle : new (z.B,z.TB)
+C1,C2= C.A : c_cc_p (C.B,z.P)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles[thick](A,TA B,TB)
+\tkzDrawCircles[red](O1,T1 O2,T2)
+\tkzDrawPoints(A,B,O1,O2)
+\tkzLabelPoints(A,B)
+\tkzDrawPoints[size=3](P)
+\tkzLabelPoints[above](P)
+\end{tikzpicture}
+\end{minipage}
+
+\vspace{6pt}
+The first special case involves two given tangent circles. The point $P$ is not the point of tangency of the Pappus circle.
+
+\vspace{6pt}
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+z.A = point : new ( 0 , 0 )
+z.TA = point : new ( 2 , 0 )
+z.B = point : new ( 3 , 0 )
+z.TB = point : new ( 2 , 0 )
+z.P = point : new ( 3 , 4 )
+C.A = circle : new (z.A,z.TA)
+C.B = circle : new (z.B,z.TB)
+C1,C2 = C.A : c_cc_p (C.B,z.P)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+z.A = point : new ( 0 , 0 )
+z.TA = point : new ( 2 , 0 )
+z.B = point : new ( 3 , 0 )
+z.TB = point : new ( 2 , 0 )
+z.P = point : new ( 3 , 4 )
+C.A = circle : new (z.A,z.TA)
+C.B = circle : new (z.B,z.TB)
+C1,C2 = C.A : c_cc_p (C.B,z.P)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles[thick](A,TA B,TB)
+\tkzDrawCircles[red](O1,T1 O2,T2)
+\tkzDrawPoints(A,B,O1,O2)
+\tkzDrawPoints[size = 3](P)
+\tkzLabelPoints(A,B)
+\tkzLabelPoints[above](P)
+\end{tikzpicture}
+\end{minipage}
+
+\vspace{6pt}
+
+Here's the Arbelos configuration
+
+\vspace{6pt}
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+z.A = point : new ( 0 , 0 )
+z.TA = point : new ( 2 , 0 )
+z.B = point : new ( 3 , 0 )
+z.TB = point : new ( 2 , 0 )
+C.A = circle : new (z.A,z.TA)
+C.B = circle : new (z.B,z.TB)
+z.I = C.A: external_similitude (C.B)
+z.t1,z.t2 = C.A : common_tangent (C.B)
+z.TD = C.B : antipode(z.TB)
+z.TE = C.A : antipode(z.TA)
+z.O = midpoint(z.TD,z.TE)
+C.O = circle : new (z.O,z.TD)
+z.P = C.O : tangent_from (z.I).pb
+C1,C2 = C.A : c_cc_p (C.B,z.P)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+z.A = point : new ( 0 , 0 )
+z.TA = point : new ( 2 , 0 )
+z.B = point : new ( 3 , 0 )
+z.TB = point : new ( 2 , 0 )
+C.A = circle : new (z.A,z.TA)
+C.B = circle : new (z.B,z.TB)
+z.I = C.A: external_similitude (C.B)
+z.t1,z.t2 = C.A : common_tangent (C.B)
+z.TD = C.B : antipode(z.TB)
+z.TE = C.A : antipode(z.TA)
+z.O = midpoint(z.TD,z.TE)
+C.O = circle : new (z.O,z.TD)
+z.P = C.O : tangent_from (z.I).pb
+C1,C2 = C.A : c_cc_p (C.B,z.P)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles[thick](A,TA B,TB)
+\tkzDrawCircles[red](O1,T1 O2,T2)
+\tkzDrawPoints(A,B,O1,O2)
+\tkzLabelPoints(A,B)
+\tkzDrawPoints[size=3](P)
+\tkzLabelPoints[above](P)
+\end{tikzpicture}
+\end{minipage}
+
+\vspace{6pt}
+If the point $P$ is not the contact point of the Pappus circle, we return to the general case.
+
+\vspace{6pt}
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+z.A = point : new ( 0 , 0 )
+z.TA = point : new ( 2 , 0 )
+z.B = point : new ( 3 , 0 )
+z.TB = point : new ( 2 , 0 )
+C.A = circle : new (z.A,z.TA)
+C.B = circle : new (z.B,z.TB)
+z.I = C.A: external_similitude (C.B)
+z.t1,z.t2 = C.A : common_tangent (C.B)
+z.TD = C.B : antipode(z.TB)
+z.TE = C.A : antipode(z.TA)
+z.O = midpoint(z.TD,z.TE)
+C.O = circle : new (z.O,z.TD)
+z.P = C.O : tangent_from (z.I).pb
+C1,C2 = C.A : c_cc_p (C.B,z.P)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+z.A = point : new ( 0 , 0 )
+z.TA = point : new ( 2 , 0 )
+z.B = point : new ( 3 , 0 )
+z.TB = point : new ( 2 , 0 )
+C.A = circle : new (z.A,z.TA)
+C.B = circle : new (z.B,z.TB)
+z.I = C.A: external_similitude (C.B)
+z.t1,z.t2 = C.A : common_tangent (C.B)
+z.TD = C.B : antipode(z.TB)
+z.TE = C.A : antipode(z.TA)
+z.O = midpoint(z.TD,z.TE)
+C.O = circle : new (z.O,z.TD)
+z.P = C.O : tangent_from (z.I).pb
+C1,C2 = C.A : c_cc_p (C.B,z.P)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles[thick](A,TA B,TB)
+\tkzDrawCircles[red](O1,T1 O2,T2)
+\tkzDrawPoints(A,B,O1,O2)
+\tkzLabelPoints(A,B)
+\tkzDrawPoints[size=3](P)
+\tkzLabelPoints[above](P)
+\end{tikzpicture}
+\end{minipage}
+% subsubsection method_c_cc_p (end)
+
+\subsubsection{Method c\_lc\_p} % (fold)
+\label{ssub:method_c_lc_p}
+
+Circle tangent to a line and a circle passing through a given point.
+
+First, let's look at the general case. The point and the circle are in the same half-plane with respect to the line.
+The point is neither on the line nor on the circle.
+
+There are 4 circles verifying the conditions. Two are tangent externally, and two internally to the initial circle. The latter two are obtained with the \code{inside} argument.
+
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+ \directlua{
+ z.A = point : new (0 , 0)
+ z.B = point : new (4 , 0 )
+ L.AB = line : new (z.A,z.B)
+ z.O = point : new (3 , 3)
+ z.T = point : new (3 , 2)
+ z.P = point : new (2 , .25)
+ C.OT = circle : new (z.O , z.T)
+ C1,C2 = C.OT : c_lc_p (L.AB , z.P)
+ z.O1 = C1.center
+ z.O2 = C2.center
+ C3,C4 = C.OT : c_lc_p (L.AB , z.P,inside)
+ z.O3 = C3.center
+ z.O4 = C4.center
+ }
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles[thick](O,T)
+ \tkzDrawCircles[red](O1,P O2,P)
+ \tkzDrawCircles[cyan](O3,P O4,P)
+ \tkzDrawLines[thick](A,B)
+ \tkzDrawPoints[size = 2](P)
+ \tkzDrawPoints(A,B,O,O1,O2,O3,O4)
+ \tkzLabelPoints(A,B,O,O1,O2,O3,O4)
+ \tkzLabelPoints[above](P)
+ \end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+ \directlua{
+ init_elements()
+ z.A = point : new (0 , 0)
+ z.B = point : new (4 , 0 )
+ L.AB = line : new (z.A,z.B)
+ z.O = point : new (3 , 3)
+ z.T = point : new (3 , 2)
+ z.P = point : new (2 , .25)
+ C.OT = circle : new (z.O , z.T)
+ C1,C2 = C.OT : c_lc_p (L.AB , z.P)
+ z.O1 = C1.center
+ z.O2 = C2.center
+ C3,C4 = C.OT : c_lc_p (L.AB , z.P,inside)
+ z.O3 = C3.center
+ z.O4 = C4.center
+ }
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles[thick](O,T)
+ \tkzDrawCircles[red](O1,P O2,P)
+ \tkzDrawCircles[cyan](O3,P O4,P)
+ \tkzDrawLines[thick](A,B)
+ \tkzDrawPoints[size = 2](P)
+ \tkzDrawPoints(A,B,O,O1,O2,O3,O4)
+ \tkzLabelPoints(A,B,O,O1,O2,O3,O4)
+ \tkzLabelPoints[above](P)
+ \end{tikzpicture}
+\end{minipage}
+% subsubsection method_c_lc_p (end)
% subsection methods_of_the_class_circle (end)
% section class_circle (end)
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex
index 3d46a029b56..91eda324308 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex
@@ -30,11 +30,11 @@ The attributes are :
\Iattr{line}{slope} & Slope of the line & [\ref{ssub:example_class_line}] \\
\Iattr{line}{length} &|l = L.AB.length|& [\ref{sub:transfer_from_lua_to_tex} ; \ref{ssub:example_class_line}] \\
\Iattr{line}{north\_pa} & & [\ref{ssub:example_class_line}] \\
-\Iattr{line}{north\_pb} & &\\
-\Iattr{line}{south\_pa} & &\\
-\Iattr{line}{south\_pb} & & [\ref{ssub:example_class_line}] \\
-\Iattr{line}{east} & &\\
-\Iattr{line}{west} & &\\
+\Iattr{line}{north\_pb} & & \\
+\Iattr{line}{south\_pa} & & \\
+\Iattr{line}{south\_pb} & & \\
+\Iattr{line}{east} & & \\
+\Iattr{line}{west} & & \\
\Iattr{line}{vec} & |V.AB = L.AB.vec|& defines $\overrightarrow{AB}$ [\ref{sec:class_vector}] \\
\bottomrule
\end{tabular}
@@ -53,8 +53,8 @@ z.m = L.ab.mid
z.w = L.ab.west
z.e = L.ab.east
z.r = L.ab.north_pa
-z.s = L.ab.south_pb
-sl = L.ab.slope
+z.s = L.ab.south_pb
+sl = L.ab.slope
len = L.ab.length
}
@@ -172,6 +172,17 @@ Here's the list of methods for the \tkzNameObj{line} object. The results can be
\midrule
\Igfct{line}{new(pt, pt)} & |L.AB = line : new(z.A,z.B)| & Create line $(AB)$ ; [\ref{sub:altshiller}] \\
\midrule
+\textbf{Real} &&\\
+\midrule
+\Imeth{line}{distance (pt)} & |d = L.AB : distance (z.C)| & [\ref{ssub:method_imeth_line_distance}; \ref{ssub:example_distance_and_projection}] \\
+\Imeth{line}{slope ()} & |a = L.AB : slope()| & better is L.AB.slope; [\ref{ssub:example_class_line}]\\
+\textbf{Boolean} &&\\
+\midrule
+\Imeth{line}{in\_out (pt)} & |b = L.AB: in_out(z.C)| & b=true if $C\in (AB)$ ; [\ref{ssub:method_imeth};\ref{ssub:in_out_for_a_line}] \\
+\Imeth{line}{in\_out\_segment(pt)} & |b = L.AB:in_out_segment(z.C)| & b=true if $C\in [AB$] [\ref{ssub:method_imeth_line_in__in__out__segment}] \\
+\Imeth{line}{is\_parallel(L)} & & \\
+\Imeth{line}{is\_orthogonal(L)} & & \\
+\Imeth{line}{is\_equidistant(pt)} & & \\\midrule
\textbf{Points} &&\\
\midrule
\Imeth{line}{gold\_ratio ()} & |z.C=L.AB : gold_ratio()| & [\ref{sub:gold_ratio_with_segment} ; \ref{sub:the_figure_pappus_circle} ; \ref{sub:bankoff_circle} ] \\
@@ -193,25 +204,26 @@ Here's the list of methods for the \tkzNameObj{line} object. The results can be
\Imeth{line}{report(d,pt)} &|z.M=L.AB: report(2,z.N)| &|MN=2|; $AB\parallel MN$ ; [ex. \ref{ssub:method_report}]\\
\Imeth{line}{colinear\_at(pt,k)} &|z.D=L.AB: colinear_at(z.C,2)| &|CD=2AB|; $AB\parallel CD$ ; [ex. \ref{ssub:method_imeth_line_colinear__at}]\\
\midrule
+
\textbf{Lines} &&\\
\midrule
\Imeth{line}{ll\_from ( pt )} &|L.CD=L.AB: ll_from(z.C)| &$(CD) \parallel (AB)$; [\ref{ssub:new_line_from_a_defined_line}] \\
\Imeth{line}{ortho\_from ( pt )} &|L.CD=L.AB: ortho_from(z.C)|&$(CD) \perp (AB)$; [\ref{ssub:newline_ortho_from}] \\
\Imeth{line}{mediator ()} & |L.uv=L.AB: mediator()| & perpendicular bisector of $(A,B)$ \footnote{You can use |perpendicular_bisector| intead of \tkzname{mediator}.}; [\ref{ssub:method_imeth_line_mediator}]\\
\midrule
+
\textbf{Triangles}&&\\
\midrule
\Imeth{line}{equilateral (<swap>)} & |T.ABC=L.AB:equilateral()| & $(\overrightarrow{AB},\overrightarrow{AC})>0$ or $<0$ with swap \footnote{Triangles are defined in the direct sense of rotation, unless the "swap" option is present.}; [\ref{ssub:object_rotation}] \\
\Imeth{line}{isosceles (an<,swap>)}&|T.ABC=L.AB:isosceles(math.pi/6)|& [\ref{ssub:method_imeth_line_isosceles}]\\
+\Imeth{line}{isosceles\_a (an<,swap>)}& same as |isosceles| & \\
+\Imeth{line}{isosceles\_s (an<,swap>)}&|T.ABC=L.AB:isosceles_s(4)| AC=BC = 4& \\
\Imeth{line}{two\_angles (an,an)} &|T.ABC=L.AB:two_angles(an,an)|&note \footnote{The given side is between the two angles} [\ref{ssub:triangle_with_two__angles}] \\
\Imeth{line}{school ()} & 30°,60°, 90° & \\
-\Imeth{line}{sss (r,r)} & $AC=r$ $BC=r$ & [\ref{ssub:triangle_with_three_given_sides}] \\
-\Imeth{line}{sas (r,an)} & $AC =r$ $\widehat{BAC} = an$ & [\ref{ssub:triangle_with_three_given_sides}] \\
-\Imeth{line}{ssa (r,an)} & $AC =r$ $\widehat{ABC} = an$& [\ref{ssub:triangle_with_three_given_sides}]\\
-\midrule
-\textbf{Squares}&&\\
-\midrule
-\Imeth{line}{square ()} &|S.AB=L.AB : square () | & create a square |S.AB|.\footnote{ |_,_,z.C,z.D = get_points(S.AB)|}; [\ref{ssub:object_rotation}] \\
+\Imeth{line}{half (<swap>)} & T.ABC = L.AB:half() $\widehat{B}$ = 90° and 2BC = AB& \\
+\Imeth{line}{sss (r,r<,swap>)} & $AC=r$ $BC=r$ & [\ref{ssub:triangle_with_three_given_sides}] \\
+\Imeth{line}{sas (r,an<,swap>)} & $AC =r$ $\widehat{BAC} = an$ & [\ref{ssub:triangle_with_three_given_sides}] \\
+\Imeth{line}{ssa (r,an<,swap>)} & $AC =r$ $\widehat{ABC} = an$& [\ref{ssub:triangle_with_three_given_sides}]\\
\bottomrule
\end{tabular}
\egroup
@@ -227,20 +239,30 @@ Here's the list of methods for the \tkzNameObj{line} object. The results can be
\toprule
\textbf{Methods} & \textbf{Comments} & \\
\midrule
+\textbf{Squares}&&\\
+\midrule
+\Imeth{line}{square ()} &|S.AB=L.AB : square () | & create a square |S.AB|.\footnote{ |_,_,z.C,z.D = get_points(S.AB)|}; [\ref{ssub:object_rotation}] \\
+\midrule
\textbf{Sacred triangles}&&\\
\midrule
\Imeth{line}{gold (<swap>)} &|T.ABC=L.AB:gold()| & right in $B$ and $AC = \varphi \times AB $; [\ref{line:met}] \\
\Imeth{line}{euclide (<swap>)} &|T.ABC=L.AB:euclide()| &$AB=AC$ ; $(\overrightarrow{AB},\overrightarrow{AC}) = \pi/5$; [\ref{line:met}] \\
\Imeth{line}{golden (<swap>)} &|T.ABC=L.AB:golden()| &
$(\overrightarrow{AB},\overrightarrow{AC}) = 2\times \pi/5$ ; [\ref{line:met}] \\
-\Imeth{line}{divine ()} & & [\ref{line:met}] \\
-\Imeth{line}{egyptian ()} & & [\ref{line:met}] \\
-\Imeth{line}{cheops ()} & & [\ref{line:met}] \\
+\Imeth{line}{sublime (<swap>)} & = golden & [\ref{line:met}] \\
+\Imeth{line}{divine (<swap>)} & & [\ref{line:met}] \\
+\Imeth{line}{golden\_gnomon (<swap>)} & = devine & [\ref{line:met}] \\
+\Imeth{line}{egyptian (<swap>)} & & [\ref{line:met}] \\
+\Imeth{line}{pythagoras (<swap>)} & = egyptian & [\ref{line:met}] \\
+\Imeth{line}{isis (<swap>)} & = egyptian & [\ref{line:met}] \\
+\Imeth{line}{cheops (<swap>)} & & [\ref{line:met}] \\
\midrule
\textbf{Circles} &&\\
\midrule
\Imeth{line}{circle ()} & |C.AB = L.AB : circle ()| & center pa through pb \\
\Imeth{line}{apollonius (r)} & |C.apo = L.AB : apollonius (2)|& Set of points tq. |MA/MB = 2|; [\ref{ssub:apollonius_circle_ma_mb_k}] \\
+\Imeth{line}{c\_l\_pp (pt,pt)} & |C1,C2 = L.AB : c_l_pp(z.M,z.N)| & [\ref{ssub:c_l_pp}] \\
+\Imeth{line}{c\_ll\_p (pt,pt)} & |C1,C2 = L.AB : c_ll_p(z.C,z.P)| & [\ref{ssub:method_c__ll__p}] \\
\midrule
\textbf{Transformations} &&\\
\midrule
@@ -248,51 +270,380 @@ Here's the list of methods for the \tkzNameObj{line} object. The results can be
\Imeth{line}{translation ( obj )} & |new obj = L.AB : translation (obj)|& [\ref{ssub:example_translation}] \\
\Imeth{line}{projection ( obj )} & |z.H = L.AB : projection (z.C)| & $CH \perp (AB)$ and $H\in (AB)$; [\ref{ssub:example_projection_of_several_points}; \ref{ssub:example_combination_of_methods}]\\
... & & [ \ref{ssub:example_projection_of_several_points}; \ref{ssub:example_combination_of_methods}]\\
-\midrule
-\textbf{Miscellaneous} &&\\
-\midrule
-\Imeth{line}{distance (pt)} & |d = L.Ab : distance (z.C)| & [\ref{ssub:example_distance_and_projection}] \\
-\Imeth{line}{in\_out (pt)} & |b = L.AB: in_out(z.C)| & b=true if $C\in (AB)$ ; [\ref{ssub:in_out_for_a_line}] \\
-\Imeth{line}{slope ()} & |a = L.AB : slope()| & better is L.AB.slope; [\ref{ssub:example_class_line}]\\
-\Imeth{line}{in\_out\_segment (pt)} & |b = L.AB : in_out_segment(z.C)| & b=true if $C\in [AB$] \\
\bottomrule
\end{tabular}
\egroup
\end{minipage}
+\subsubsection{Method \Imeth{line}{distance}} % (fold)
+\label{ssub:method_imeth_line_distance}
+
+This method gives the distance from a point to a straight line.
+
+\vspace{6pt}
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+\directlua{
+function calc_distance (L,p)
+ if L : in_out (p)
+ then
+ return point.abs(p-L.pa)/L.length
+ else
+ return 0
+ end
+end
+z.A = point: new (0,0)
+z.B = point: new (2,4)
+z.X = point: new (3,6)
+z.Y = point: new (2,0)
+L.AB = line : new (z.A,z.B)
+dx = calc_distance (L.AB,z.X)
+dy = calc_distance (L.AB,z.Y)
+}
+\tkzUseLua{k}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLine(A,B)
+ \tkzDrawPoints(A,B,X,Y)
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoint(X){X : \tkzUseLua{dx}}
+ \tkzLabelPoint(Y){Y : \tkzUseLua{dy}}
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\directlua{
+ z.A = point : new (0 , 0)
+ z.B = point : new (4 , 3)
+ z.C = point : new (1 , 5)
+ L.AB = line : new (z.A,z.B)
+ d = L.AB : distance (z.C)
+ l = L.AB.length
+ z.H = L.AB : projection (z.C)
+}
+\begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B C,H)
+ \tkzDrawPoints(A,B,C,H)
+ \tkzLabelPoints(A,B,C,H)
+ \tkzLabelSegment[above right=2em,draw](C,H){$CH = \tkzUseLua{d}$}
+ \tkzLabelSegment[below right=1em,draw](A,B){$AB = \tkzUseLua{l}$}
+ \end{tikzpicture}
+\end{center}
+
+\end{minipage}
+% subsubsection method_imeth_line_distance (end)
+
+\subsubsection{Method \Imeth{line}{in\_out}} % (fold)
+\label{ssub:method_imeth}
+
+This method shows whether a point belongs to a straight line.
+
+\vspace{6pt}
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+\directlua{
+function calc_ratio (L,p)
+ if L : in_out (p)
+ then
+ return point.abs(p-L.pa)/L.length
+ else
+ return 0
+ end
+end
+z.A = point: new (0,0)
+z.B = point: new (2,4)
+z.X = point: new (3,6)
+z.Y = point: new (2,0)
+L.AB = line : new (z.A,z.B)
+dx = calc_ratio (L.AB,z.X)
+dy = calc_ratio (L.AB,z.Y)
+}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLine(A,B)
+ \tkzDrawPoints(A,B,X,Y)
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoint(X){X : \tkzUseLua{dx}}
+ \tkzLabelPoint(Y){Y : \tkzUseLua{dy}}
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\directlua{
+function calc_distance (L,p)
+ if L : in_out (p)
+ then
+ return point.abs(p-L.pa)/L.length
+ else
+ return 0
+ end
+end
+z.A = point: new (0,0)
+z.B = point: new (2,4)
+z.X = point: new (3,6)
+z.Y = point: new (2,0)
+L.AB = line : new (z.A,z.B)
+dx = calc_distance (L.AB,z.X)
+dy = calc_distance (L.AB,z.Y)
+}
+\begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLine(A,B)
+ \tkzDrawPoints(A,B,X,Y)
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoint(X){X : \tkzUseLua{dx}}
+ \tkzLabelPoint(Y){Y : \tkzUseLua{dy}}
+ \end{tikzpicture}
+\end{center}
+\end{minipage}
+
+% subsubsection method_imeth (end)
+
+\subsubsection{Method \Imeth{line}{in\_in\_out\_segment}} % (fold)
+\label{ssub:method_imeth_line_in__in__out__segment}
+
+Variant of the previous method; indicates whether a point is on or off a segment.
+
+\vspace{6pt}
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+ \directlua{
+ function foo (L,p)
+ if L : in_out_segment (p)
+ then
+ return "in"
+ else
+ return "out"
+ end
+ end
+ z.A = point: new (0,0)
+ z.B = point: new (2,4)
+ z.X = point: new (-1,-2)
+ z.Y = point: new (1,2)
+ L.AB = line : new (z.A,z.B)
+ bx = foo(L.AB,z.X)
+ by = foo(L.AB,z.Y)
+ }
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLine(A,B)
+ \tkzDrawPoints(A,B,X,Y)
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoint(X){X : \tkzUseLua{bx}}
+ \tkzLabelPoint(Y){Y : \tkzUseLua{by}}
+ \end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+ \directlua{
+ function foo (L,p)
+ if L : in_out_segment (p)
+ then
+ return "in"
+ else
+ return "out"
+ end
+ end
+ z.A = point: new (0,0)
+ z.B = point: new (2,4)
+ z.X = point: new (-1,-2)
+ z.Y = point: new (1,2)
+ L.AB = line : new (z.A,z.B)
+ bx = foo(L.AB,z.X)
+ by = foo(L.AB,z.Y)
+ }
+ \begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLine(A,B)
+ \tkzDrawPoints(A,B,X,Y)
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoint(X){X : \tkzUseLua{bx}}
+ \tkzLabelPoint(Y){Y : \tkzUseLua{by}}
+ \end{tikzpicture}
+ \end{center}
+
+\end{minipage}
+
+% subsubsection method_imeth_line_in__in__out__segment (end)
+
+\subsubsection{Method \Imeth{line}{is\_parallel}} % (fold)
+\label{ssub:method_imeth_line_is__parallel}
+
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+\directlua{
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 4 , 2 )
+L.AB = line : new (z.A,z.B)
+z.C = point : new ( 1 , 2 )
+z.D = point : new ( 5 , 4 )
+L.CD = line : new (z.C,z.D)
+if L.AB:is_parallel (L.CD)
+then tex.print("parallel")
+else tex.print("no parallel")
+end
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B C,D)
+\tkzDrawPoints(A,B,C,D)
+\tkzLabelPoints(A,B,C,D)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+ \directlua{
+ z.A = point : new ( 0 , 0 )
+ z.B = point : new ( 4 , 2 )
+ L.AB = line : new (z.A,z.B)
+ z.C = point : new ( 1 , 2 )
+ z.D = point : new ( 5 , 4 )
+ L.CD = line : new (z.C,z.D)
+ if L.AB:is_parallel (L.CD) then tex.print("parallel") else tex.print("no parallel") end
+ }
+ \begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B C,D)
+ \tkzDrawPoints(A,B,C,D)
+ \tkzLabelPoints(A,B,C,D)
+ \end{tikzpicture}
+ \end{center}
+\end{minipage}
+
+% subsubsection method_imeth_line_is__parallel (end)
+
+\subsubsection{Method \Imeth{line}{is\_orthogonal}} % (fold)
+\label{ssub:method_imeth_line_is__orthogonal}
+
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+ \directlua{
+ z.A = point : new (0 , 0 )
+ z.B = point : new (0 , 4 )
+ L.AB = line : new (z.A,z.B)
+ z.C = point : new (3 , 4 )
+ L.BC = line : new (z.B,z.C)
+ if L.AB:is_orthogonal (L.BC)
+ then tex.print("orthogonal")
+ else tex.print("no orthogonal")
+ end
+ }
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B B,C A,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B,C)
+ \end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+ \directlua{
+ z.A = point : new ( 0 , 0 )
+ z.B = point : new ( 0 , 4 )
+ L.AB = line : new (z.A,z.B)
+ z.C = point : new ( 3 , 4 )
+ L.BC = line : new (z.B,z.C)
+ if L.AB:is_orthogonal (L.BC) then
+ tex.print("orthogonal") else
+ tex.print("no orthogonal")
+ end
+ }
+ \begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B B,C A,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B,C)
+ \end{tikzpicture}
+ \end{center}
+\end{minipage}
+% subsubsection method_imeth_line_is__orthogonal (end)
+
+\subsubsection{Method \Imeth{line}{is\_equidistant}} % (fold)
+\label{ssub:method_imeth_line_is__equidistant}
+
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+\directlua{
+ z.A = point : new (0 , 0 )
+ z.B = point : new (0 , 4 )
+ z.C = point : new (4 , 4 )
+ L.AC = line : new (z.A,z.C)
+ if L.AC:is_equidistant (z.B)
+ then tex.print("equidistant")
+ else tex.print("no equidistant")
+ end
+ }
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B B,C A,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B,C)
+ \end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\directlua{
+ z.A = point : new (0 , 0 )
+ z.B = point : new (0 , 4 )
+ z.C = point : new (4 , 4 )
+ L.AC = line : new (z.A,z.C)
+ if L.AC:is_equidistant (z.B)
+ then tex.print("equidistant")
+ else tex.print("no equidistant")
+ end
+ }
+ \begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B B,C A,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B,C)
+ \end{tikzpicture}
+ \end{center}
+\end{minipage}
+
+% subsubsection method_imeth_line_is__equidistant (end)
+
\subsubsection{Method \Imeth{line}{report}} % (fold)
\label{ssub:method_report}
|report (d,pt)| If the point is absent, the transfer is made from the first point that defines the line.
+\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
\directlua{%
init_elements ()
- z.A = point : new (1,-1)
- z.B = point : new (5,0)
- L.AB = line : new ( z.A , z.B )
- z.M = point : new (2,3)
- z.N = L.AB : report (3,z.M)
- z.O = L.AB : report (3)
- }
- \begin{tikzpicture}
+z.A = point : new (0,0)
+z.B = point : new (4,3)
+L.AB = line : new ( z.A , z.B )
+z.M = point : new (0,2)
+z.N = L.AB : report (2.5,z.M)
+z.O = L.AB : report (2.5)
+}
+\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSegments(A,B M,N)
\tkzDrawPoints(A,B,M,N,O)
\tkzLabelPoints(A,B,M,N,O)
- \end{tikzpicture}
- \end{Verbatim}
+\end{tikzpicture}
+\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
\directlua{%
init_elements ()
-z.A = point : new (1,-1)
-z.B = point : new (5,0)
-L.AB = line : new ( z.A , z.B )
-z.M = point : new (2,3)
-z.N = L.AB : report (3,z.M)
-z.O = L.AB : report (3)
+z.A = point : new (0,0)
+z.B = point : new (4,3)
+L.AB = line : new ( z.A , z.B )
+z.M = point : new (0,2)
+z.N = L.AB : report (2.5,z.M)
+z.O = L.AB : report (2.5)
}
\begin{tikzpicture}
\tkzGetNodes
@@ -320,7 +671,7 @@ init_elements ()
}
\begin{tikzpicture}
\tkzGetNodes
- \tkzDrawPolygons(A,B,C)
+ \tkzDrawPolygons(A,B,C)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C)
@@ -344,7 +695,7 @@ init_elements ()
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
- \tkzDrawPolygons(A,B,C)
+ \tkzDrawPolygons(A,B,C)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C)
@@ -374,7 +725,7 @@ init_elements ()
T.SY = T.abc : symmedian ()
z.Ka,z.Kb,z.Kc = get_points (T.SY)
L.Kb = T.abc : symmedian_line (1)
- _,z.Kb = get_points(L.Kb)
+ _,z.Kb = get_points(L.Kb)
}
\begin{tikzpicture}
\tkzGetNodes
@@ -400,7 +751,7 @@ init_elements ()
z.Ka,z.Kb,
z.Kc = get_points (T.SY)
L.Kb = T.abc : symmedian_line (1)
- _,z.Kb = get_points(L.Kb)
+ _,z.Kb = get_points(L.Kb)
}
\begin{tikzpicture}
\tkzGetNodes
@@ -434,10 +785,10 @@ init_elements ()
z.D = T.ABD.pc
z.E = T.ABE.pc
}
-\hspace{\fill}
+\hspace{\fill}
\begin{tikzpicture}[gridded]
\tkzGetNodes
- \tkzDrawPolygons(A,B,C A,B,D A,B,E)
+ \tkzDrawPolygons(A,B,C A,B,D A,B,E)
\tkzDrawPoints(A,B,C,D,E)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C,D,E)
@@ -461,7 +812,7 @@ init_elements ()
\begin{center}
\begin{tikzpicture}[gridded]
\tkzGetNodes
- \tkzDrawPolygons(A,B,C A,B,D A,B,E)
+ \tkzDrawPolygons(A,B,C A,B,D A,B,E)
\tkzDrawPoints(A,B,C,D,E)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C,D,E)
@@ -474,7 +825,6 @@ init_elements ()
\subsubsection{Triangle with side between side and angle} % (fold)
\label{ssub:triangle_with_side_between_side_and_angle}
-In some cases, two solutions are possible.
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
@@ -484,13 +834,14 @@ init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 5 , 0 )
L.AB = line : new ( z.A , z.B )
- T.ABC,T.ABD = L.AB : ssa (value(3),math.pi/6)
+ T.ABC = L.AB : ssa (value(3),math.pi/6)
+ T.ABD = L.AB : ssa (value(3),math.pi/6,swap)
z.C = T.ABC.pc
z.D = T.ABD.pc
}
\begin{tikzpicture}[gridded]
\tkzGetNodes
- \tkzDrawPolygons(A,B,C A,B,D)
+ \tkzDrawPolygons(A,B,C A,B,D)
\tkzDrawPoints(A,B,C,D)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C,D)
@@ -507,7 +858,8 @@ init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 5 , 0 )
L.AB = line : new ( z.A , z.B )
- T.ABC,T.ABD = L.AB : ssa (value(3),math.pi/6)
+ T.ABC = L.AB : ssa (value(3),math.pi/6)
+ T.ABD = L.AB : ssa (value(3),math.pi/6,swap)
z.C = T.ABC.pc
z.D = T.ABD.pc
}
@@ -515,7 +867,7 @@ init_elements ()
\begin{center}
\begin{tikzpicture}[gridded]
\tkzGetNodes
- \tkzDrawPolygons(A,B,C A,B,D)
+ \tkzDrawPolygons(A,B,C A,B,D)
\tkzDrawPoints(A,B,C,D)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C,D)
@@ -537,10 +889,10 @@ The side lengths are proportional to the lengths given in the table. They depend
\begin{tabular}{ll}
\toprule
\textbf{Name} & \textbf{definition} \\
-\midrule
+\midrule
\Imeth{line}{gold (<swap>)} & Right triangle with $a=\varphi$, $b=1$ and $c=\sqrt{\varphi}$\\
\Imeth{line}{golden (<swap>)} & Right triangle $b=\varphi$, $c=1$ ; half of gold rectangle \\
-\Imeth{line}{divine ()} & Isosceles $a=\varphi$, $b=c=1$ and $\beta = \gamma=\pi/5$ \\
+\Imeth{line}{divine ()} & Isosceles $a=\varphi$, $b=c=1$ and $\beta = \gamma=\pi/5$ \\
\Imeth{line}{pythagoras ()} & $a=5$, $b=4$, $c=3$ and other names: isis or egyptian\\
\Imeth{line}{sublime ()} & Isosceles $a=1$, $b=c=\varphi$ and $\beta =\gamma=2\pi/5$ ; other name: euclid\\
\Imeth{line}{cheops ()} & Isosceles $a=2$, $b=c=\varphi$ and height = $\sqrt{\varphi}$ \\
@@ -569,7 +921,7 @@ init_elements ()
}
\begin{tikzpicture}
\tkzGetNodes
- \tkzDrawPolygons(A,B,C A,B,D A,B,E A,B,F A,B,G A,B,H)
+ \tkzDrawPolygons(A,B,C A,B,D A,B,E A,B,F A,B,G A,B,H)
\tkzDrawPoints(A,...,H)
\tkzLabelPoints(A,...,H)
\end{tikzpicture}
@@ -596,7 +948,7 @@ init_elements ()
}
\begin{tikzpicture}
\tkzGetNodes
- \tkzDrawPolygons(A,B,C A,B,D A,B,E A,B,F A,B,G A,B,H)
+ \tkzDrawPolygons(A,B,C A,B,D A,B,E A,B,F A,B,G A,B,H)
\tkzDrawPoints(A,...,H)
\tkzLabelPoints(A,...,H)
\end{tikzpicture}
@@ -891,7 +1243,7 @@ init_elements ()
\subsubsection{Method \Imeth{line}{mediator}} % (fold)
\label{ssub:method_imeth_line_mediator}
-In Mathworld, the mediator is the plane through the midpoint of a line segment and perpendicular to that segment, also called a mediating plane. The term "mediator" was introduced by J. Neuberg (Altshiller-Court 1979, p. 298). Here, I have adopted the French term and the mediator or
+In Mathworld, the mediator is the plane through the midpoint of a line segment and perpendicular to that segment, also called a mediating plane. The term "mediator" was introduced by J. Neuberg (Altshiller-Court 1979, p. 298). Here, I have adopted the French term and the mediator or
the perpendicular bisector of a line segment, is a line segment perpendicular to the segment and passing through the midpoint of this segment.
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
@@ -1166,10 +1518,10 @@ init_elements ()
\begin{Verbatim}
\directlua{%
init_elements ()
- z.A = point : new ( 0 , 0 )
+ z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 1 )
- z.E = point : new ( 0 , 2 )
- z.F = point : new ( 3 , 3 )
+ z.E = point : new ( 0 , 2 )
+ z.F = point : new ( 3 , 3 )
z.G = point : new ( 4 , 2 )
L.AB = line : new ( z.A , z.B )
T.EFG = triangle : new (z.E,z.F,z.G)
@@ -1188,10 +1540,10 @@ init_elements ()
\begin{minipage}{.5\textwidth}
\directlua{%
init_elements ()
- z.A = point : new ( 0 , 0 )
+ z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 1 )
- z.E = point : new ( 0 , 2 )
- z.F = point : new ( 3 , 3 )
+ z.E = point : new ( 0 , 2 )
+ z.F = point : new ( 3 , 3 )
z.G = point : new ( 4 , 2 )
L.AB = line : new ( z.A , z.B )
T.EFG = triangle : new (z.E,z.F,z.G)
@@ -1256,8 +1608,6 @@ init_elements ()
\tkzLabelSegment[above left,draw](C,H){$CH = \tkzUseLua{d}$}
\end{tikzpicture}
\end{center}
-
-
\end{minipage}
% \caption{Method distance with line object}
@@ -1271,10 +1621,10 @@ init_elements ()
\directlua{%
init_elements ()
z.A = point : new ( 0 , 0 )
- z.B = point : new ( 6 , 0 )
+ z.B = point : new ( 6 , 0 )
L.AB =line: new (z.A,z.B)
C.apo = L.AB : apollonius (2)
- z.O,z.C = get_points ( C.apo )
+ z.O,z.C = get_points ( C.apo )
z.D = C.apo : antipode (z.C)
z.P = C.apo : point (0.30)
}
@@ -1299,10 +1649,10 @@ init_elements ()
\directlua{%
init_elements ()
z.A = point : new ( 0 , 0 )
-z.B = point : new ( 6 , 0 )
+z.B = point : new ( 6 , 0 )
L.AB =line: new (z.A,z.B)
C.apo = L.AB : apollonius (2)
-z.O,z.C = get_points ( C.apo )
+z.O,z.C = get_points ( C.apo )
z.D = C.apo : antipode (z.C)
z.P = C.apo : point (0.30)
}
@@ -1330,6 +1680,488 @@ z.P = C.apo : point (0.30)
Remark: |\tkzUseLua{length(z.P,z.A)/length(z.P,z.B)}| = \tkzUseLua{length(z.P,z.A)/length(z.P,z.B)}
% subsubsection apollonius_circle_ma_mb_k (end)
+\subsubsection{Method \Imeth{line}{c\_l\_pp}} % (fold)
+\label{ssub:c_l_pp}
+Circle tangent to a line passing through two points.
+
+First, consider the general case: a straight line $(AB)$ and two points, $M$ and $N$. We are tasked with finding the circle that is tangent to the line and passes through the two points. We will focus on the straight line $(AB)$ and apply a specific method designed for such cases.
+The method takes into account the following special cases:
+\begin{itemize}
+ \item line $(MN)$ is perpendicular to the line $(AB)$;
+ \item line $(MN)$ is parallel to line $(AB)$;
+ \item these points are on either side of the line $(AB)$;
+ \item one of the points lies on the line $(AB)$.
+\end{itemize}
+
+\vspace{6pt}
+\begin{minipage}{0.4\textwidth}
+\begin{Verbatim}
+ \directlua{
+ init_elements ()
+ scale = .75
+ z.A = point : new ( 0 , 0 )
+ z.B = point : new ( 8 , 0 )
+ z.M = point : new ( 1 , 1 )
+ z.N = point : new ( 2 , 5 )
+ L.AB = line:new(z.A,z.B)
+ C1,C2 = L.AB : c_l_pp (z.M,z.N)
+ z.O1 = C1.center
+ z.O2 = C2.center
+ z.T1 = C1.through
+ z.T2 = C2.through
+ }
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B M,N)
+ \tkzDrawCircles(O1,T1 O2,T2)
+ \tkzDrawPoints(A,B,M,N)
+ \tkzLabelPoints(A,B,M,N)
+ \tkzDrawPoints(A,B,M,N,O1,T1,O2,T2)
+ \end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.6\textwidth}
+\directlua{
+init_elements ()
+scale =.75
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 6 , 0 )
+z.M = point : new ( 1 , 1 )
+z.N = point : new ( 2 , 5 )
+L.AB = line:new(z.A,z.B)
+C1,C2 = L.AB : c_l_pp(z.M,z.N)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B M,N)
+\tkzDrawCircles(O1,T1 O2,T2)
+\tkzDrawPoints(A,B,M,N)
+\tkzLabelPoints(A,B,M,N)
+\tkzDrawPoints(A,B,M,N,O1,T1,O2,T2)
+\end{tikzpicture}
+\end{minipage}
+
+\vspace{6pt}
+Let's look at the impossible case: the points are on either side of the line. The method returns \code{nil} and \code{nil}.
+
+\begin{minipage}{0.4\textwidth}
+\begin{Verbatim}
+\directlua{
+init_elements ()
+scale =.75
+z.A = point :new (0, 0)
+z.B = point :new (6, 0)
+z.M = point :new (1, 1)
+z.N = point :new (3 ,-5)
+L.AB = line:new(z.A,z.B)
+L.MN = line:new(z.M,z.N)
+z.I = intersection(L.AB,L.MN)
+C1,C2 = L.AB : c_l_pp(z.M,z.N)
+if C1 == nil
+ then
+ tex.print('\\message{Error: Argument is nil}')
+ tex.print('Error: Argument is nil')
+else
+ z.C = C1.center
+ z.Cp = C2.center
+ z.T = C1.through
+ z.Tp = C2.through
+end
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B M,N)
+\tkzDrawPoints(A,B,M,N)
+\tkzLabelPoints(A,B,M,N)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.6\textwidth}
+\directlua{
+init_elements ()
+scale =.75
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 6 , 0 )
+z.M = point : new ( 1 , 1 )
+z.N = point : new ( 3 , -5 )
+L.AB = line:new(z.A,z.B)
+L.MN = line:new(z.M,z.N)
+z.I = intersection(L.AB,L.MN)
+C1,C2 = L.AB : c_l_pp(z.M,z.N)
+if C1 == nil
+ then
+ tex.print('\\message{Error: Argument is nil}')
+ tex.print('Error: Argument is nil')
+else
+ z.C = C1.center
+ z.Cp = C2.center
+ z.T = C1.through
+ z.Tp = C2.through
+end
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B M,N)
+\tkzDrawPoints(A,B,M,N)
+\tkzLabelPoints(A,B,M,N)
+\end{tikzpicture}
+\end{minipage}
+
+\vspace{6pt}
+Let's look at the case where the line $(MN)$ is parallel to the initial line.
+
+
+\begin{minipage}{0.4\textwidth}
+\begin{Verbatim}
+ \directlua{
+ init_elements ()
+ z.A = point : new ( 0 , 0 )
+ z.B = point : new ( 8 , 0 )
+ z.M = point : new ( 0 , 3 )
+ z.N = point : new ( 5 , 3 )
+ L.AB = line:new(z.A,z.B)
+ C1,C2 = L.AB : c_l_pp(z.M,z.N)
+ z.O1 = C1.center
+ z.O2 = C2.center
+ z.T1 = C1.through
+ z.T2 = C2.through
+ }
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B M,N)
+ \tkzDrawCircles(O1,T1)
+ \tkzDrawPoints(A,B,M,N)
+ \tkzDrawPoints(A,B,M,N)
+ \tkzLabelPoints(A,B,M,N)
+ \end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.4\textwidth}
+\directlua{
+init_elements ()
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 8 , 0 )
+z.M = point : new ( 0 , 3 )
+z.N = point : new ( 5 , 3 )
+L.AB = line:new(z.A,z.B)
+C1,C2 = L.AB : c_l_pp(z.M,z.N)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B M,N)
+\tkzDrawCircles(O1,T1)
+\tkzDrawPoints(A,B,M,N)
+\tkzDrawPoints(A,B,M,N)
+\tkzLabelPoints(A,B,M,N)
+\end{tikzpicture}
+\end{minipage}
+
+
+\vspace{6pt}
+Where the line is perpendicular to the initial line.
+
+\vspace{6pt}
+\begin{minipage}{0.4\textwidth}
+\begin{Verbatim}
+\directlua{
+init_elements ()
+scale = .75
+z.A = point : new(0, 0 )
+z.B = point : new(6, 0 )
+z.M = point : new(1, 1 )
+z.N = point : new(1, 5 )
+L.AB = line:new(z.A,z.B)
+C1,C2 = L.AB : c_l_pp(z.M,z.N)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.6\textwidth}
+\directlua{
+init_elements ()
+scale = .75
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 6 , 0 )
+z.M = point : new ( 1 , 1 )
+z.N = point : new ( 1 , 5 )
+L.AB = line:new(z.A,z.B)
+C1,C2 = L.AB : c_l_pp(z.M,z.N)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B M,N)
+\tkzDrawCircles(O1,T1 O2,T2)
+\tkzDrawPoints(A,B,M,N)
+\tkzLabelPoints(A,B,M,N)
+\tkzDrawPoints(A,B,M,N,O1,T1,O2,T2)
+\end{tikzpicture}
+\end{minipage}
+
+The last special case is when one of the points is on the initial line. In this case, there's only one solution.
+
+\vspace{6pt}
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+init_elements ()
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 5 , 0 )
+z.M = point : new ( 1 , 0 )
+z.N = point : new ( 3 , 5 )
+L.AB = line:new(z.A,z.B)
+L.MN = line:new(z.M,z.N)
+z.I = intersection(L.AB,L.MN)
+C1,C2 = L.AB : c_l_pp(z.M,z.N)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B M,N)
+\tkzDrawCircles(O1,T1 O2,T2)
+\tkzDrawPoints(A,B,M,N)
+\tkzLabelPoints(A,B,M,N)
+\tkzDrawPoints(A,B,M,N,O1,T1,O2,T2)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+init_elements ()
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 5 , 0 )
+z.M = point : new ( 1 , 0 )
+z.N = point : new ( 3 , 5 )
+L.AB = line:new(z.A,z.B)
+L.MN = line:new(z.M,z.N)
+z.I = intersection(L.AB,L.MN)
+C1,C2 = L.AB : c_l_pp(z.M,z.N)
+z.O1 = C1.center
+z.O2 = C2.center
+z.T1 = C1.through
+z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B M,N)
+\tkzDrawCircles(O1,T1 O2,T2)
+\tkzDrawPoints(A,B,M,N)
+\tkzLabelPoints(A,B,M,N)
+\tkzDrawPoints(A,B,M,N,O1,T1,O2,T2)
+\end{tikzpicture}
+\end{minipage}
+% subsubsection c_l_pp (end)
+
+\subsubsection{Method \Imeth{line}{c\_ll\_p}} % (fold)
+\label{ssub:method_c__ll__p}
+
+
+
+Let's consider two straight lines $(AB)$ and $(AC)$ and a point $P$ not belonging to these lines.
+Is there a circle through $P$ tangent to these two lines?
+
+The following example shows that there are two solutions using the method linked to the line. A more natural method, linked to the $ABC$ triangle, can also be used.
+
+\vspace{6pt}
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+ \directlua{
+ init_elements()
+ scale =.75
+ z.A = point : new ( 0 , 0 )
+ z.B = point : new ( 6 , 0 )
+ L.AB = line : new ( z.A,z.B )
+ z.C = point : new ( 6 , 4 )
+ L.AC = line : new ( z.A,z.C )
+ T = triangle : new (z.A,z.B,z.C)
+ z.P = point : new ( 3 , 1 )
+ C1,C2 = L.AB : c_ll_p (z.C,z.P)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+ }
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[thick](A,B A,C)
+ \tkzDrawCircles[red](O1,T1 O2,T2)
+ \tkzDrawPoints(A,B,C,P)
+ \tkzLabelPoints(A,B,C,P)
+ \end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+init_elements()
+ scale = .75
+ z.A = point : new ( 0 , 0 )
+ z.B = point : new ( 6 , 0 )
+ L.AB = line : new ( z.A,z.B )
+ z.C = point : new ( 6 , 4 )
+ L.AC = line : new ( z.A,z.C )
+ T = triangle : new (z.A,z.B,z.C)
+ z.P = point : new ( 3 , 1 )
+ C1,C2 = L.AB : c_ll_p (z.C,z.P)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+}
+\begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[thick](A,B A,C)
+ \tkzDrawCircles[red](O1,T1 O2,T2)
+ \tkzDrawPoints(A,B,C,P)
+ \tkzLabelPoints(A,B,C,P)
+ \end{tikzpicture}
+\end{center}
+\end{minipage}
+
+\vspace{6pt}
+
+The first special case is where the point $P$ lies on the bisector of $A$.
+
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+init_elements()
+scale =.75
+ z.A = point : new (0 , 0)
+ z.B = point : new (6 , 0)
+ L.AB = line : new ( z.A,z.B)
+ z.C = point : new ( 6 , 4)
+ L.AC = line : new ( z.A,z.C )
+ T = triangle : new (z.A,z.B,z.C)
+ L.bi = bisector(z.A,z.B,z.C)
+ z.P = L.bi :point (0.4)
+ C1,C2 = L.AB : c_ll_p (z.C,z.P)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B A,C A,P)
+ \tkzDrawCircles(O1,T1 O2,T2)
+ \tkzDrawPoints(A,B,C,P)
+ \tkzLabelPoints(A,B,C,P)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+init_elements()
+scale = .75
+ z.A = point : new (0 , 0)
+ z.B = point : new (6 , 0)
+ L.AB = line : new ( z.A,z.B)
+ z.C = point : new ( 6 , 4)
+ L.AC = line : new ( z.A,z.C )
+ T = triangle : new (z.A,z.B,z.C)
+ L.bi = bisector(z.A,z.B,z.C)
+ z.P = L.bi :point (0.4)
+ C1,C2 = L.AB : c_ll_p (z.C,z.P)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+}
+\begin{center}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B A,C A,P)
+ \tkzDrawCircles(O1,T1 O2,T2)
+ \tkzDrawPoints(A,B,C,P)
+ \tkzLabelPoints(A,B,C,P)
+\end{tikzpicture}
+\end{center}
+\end{minipage}
+
+
+\vspace{6pt}
+A first special case is when the point $P$ lies on one of the lines
+
+\vspace{6pt}
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+init_elements()
+scale =.75
+ z.A = point:new(0, 0)
+ z.B = point:new(6, 0)
+ L.AB = line:new(z.A,z.B)
+ z.C = point:new(6, 4)
+ L.AC = line:new(z.A,z.C)
+ T = triangle:new(z.A,z.B,z.C)
+ z.P = point:new(3, 2)
+ L.bi = bisector(z.A,z.B,z.C)
+ z.I = L.bi:point(0.4)
+ C1,C2 = L.AB : c_ll_p (z.C,z.P)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawLines(A,B A,C A,I)
+ \tkzDrawCircles(O1,T1 O2,T2)
+ \tkzDrawPoints(A,B,C,P,I)
+ \tkzLabelPoints(A,B,C,P,I)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+init_elements()
+scale = .75
+ z.A = point : new ( 0 , 0 )
+ z.B = point : new ( 6 , 0 )
+ L.AB = line : new ( z.A,z.B )
+ z.C = point : new ( 6 , 4 )
+ L.AC = line : new ( z.A,z.C )
+ T = triangle : new (z.A,z.B,z.C)
+ z.P = point : new ( 3 , 2 )
+ L.bi = bisector(z.A,z.B,z.C)
+ z.I = L.bi.pb
+ C1,C2 = L.AB : c_ll_p (z.C,z.P)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+}
+\begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines(A,B A,C A,I)
+ \tkzDrawCircles(O1,T1 O2,T2)
+ \tkzDrawPoints(A,B,C,P,I)
+ \tkzLabelPoints(A,B,C,P,I)
+ \end{tikzpicture}
+\end{center}
+\end{minipage}
+
+%subsubsection method_c__ll__p (end)
+
% subsection methods_from_class_line (end)
% section class_line (end)
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-misc.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-misc.tex
index 0266a2feb5c..ac2641f52cd 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-misc.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-misc.tex
@@ -21,9 +21,9 @@
\Igfct{math}{islinear (z1,z2,z3) } & Are the points aligned? (z2-z1) $\parallel$ (z3-z1) ? \\
\Igfct{math}{isortho (z1,z2,z3)} & (z2-z1) $\perp$ (z3-z1) ? boolean\\
\Igfct{math}{get\_angle (z1,z2,z3)} & the vertex is z1 [\ref{sub:get_angle}] \\
-\Igfct{math}{bisector (z1,z2,z3)} & L.Aa = bisector (z.A,z.B,z.C) from A [\ref{sub:get_angle}] \\
-\Igfct{math}{bisector\_ext (z1,z2,z3)} & L.Aa = bisector_ext (z.A,z.B,z.C) from A \\
-\Igfct{math}{altitude (z1,z2,z3)} & altitude from z1 \\
+\Igfct{misc}{bisector (z1,z2,z3)} & L.Aa = bisector (z.A,z.B,z.C) from A [\ref{sub:get_angle}] \\
+\Igfct{misc}{bisector\_ext (z1,z2,z3)} & L.Aa = bisector_ext (z.A,z.B,z.C) from A \\
+\Igfct{misc}{altitude (z1,z2,z3)} & altitude from z1 \\
\Igfct{package}{set\_lua\_to\_tex (list)} & set\_lua\_to\_tex('a','n') defines |\a| and |\n| \\
%parabola (a,b,c) & to get \\
\Igfct{math}{value (v) } & apply |scale * value | \\
@@ -31,6 +31,8 @@
\Igfct{math}{angle\_normalize (an) } & to get a value between 0 and $2\pi$ \\
\Igfct{misc}{barycenter (\{z1,n1\},\{z2,n2\}, ...)} & barycenter of list of points \\
\Igfct{math}{solve\_quadratic (a,b,c) } & gives the solution of $ax^2+bx+c =0$ a,b,c real or complex [\ref{ssub:function_solve__quadratic}] \\
+\Igfct{misc}{midpoint (z1,z2)} & midpoint of the segment [\ref{ssub:euler_ellipse}] \\
+\Igfct{misc}{midpoints (z1,z2,...,zn)} & midpoints of z1z2, z2z3 etc. z1zn [\ref{sub:varignon_s_theorem}]\\
\bottomrule
\end{tabular}
\egroup
@@ -38,9 +40,33 @@
\subsection{Length of a segment} % (fold)
\label{sub:length_of_a_segment}
|length(z.A,z.B)| is a shortcut for |point.abs(z.A-z.B)|. This avoids the need to use complexes.
+It's also a shortcut for L.AB = line:new(z.A,z.B) and l = L.AB.length. Depending on the context, you'll need to choose the most appropriate method.
% subsection length_of_a_segment (end)
+\subsection{Midpoint and midpoints} % (fold)
+\label{sub:midpoint_and_midpoints}
+As with length, a shortcut is available, e.g. |z.M = midpoint(z.A,z.B)|. If a straight line is required, then use: |z.M = L.AB.mid|.
+
+The aim here is to determine the midpoints of a polygon. For example, considering a triangle $abc$, we can obtain the middles of the sides, after defining the triangle |T.abc = triangle:new(z.a,z.b,z.c)|, the middles are the vertices of the medial triangle |z.ma,z.mb,z.mc = T.abc : medial()|.
+
+\code{midpoints} is a shortcut for defining midpoints without using triangles:
+
+ |z.mc,z.ma,z.mb = midpoints(z.a,z.b,z.c)|.
+
+ The medial triangle can be omitted with |z.mc,z.ma,z.mb = midpoints(get_points(T.abc))|.
+% subsection midpoint_and_midpoints (end)
+
+\subsection{Bisector} % (fold)
+\label{sub:bisector}
+As shown in the previous table, |bisector (z1,z2,z3)| defines the bisector of vertex |z1|.
+% subsection bisector (end)
+
+\subsection{Barycenter} % (fold)
+\label{sub:misc_barycenter}
+
+Explanations are given here: \ref{sub:barycenter}
+% subsection barycenter (end)
\subsection{Harmonic division with tkzphi } % (fold)
\label{sub:harmonic_division_with_tkzphi}
@@ -80,7 +106,7 @@ init_elements ()
\hspace*{\fill}
% subsection harmonic_division_with_tkzphi (end)
-\subsection{Function islinear} % (fold)
+\subsection{Function islinear or is\_linear} % (fold)
\label{sub:function_islinear}
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
@@ -210,14 +236,9 @@ init_elements ()
tex.print('slope normalized of (ac) : '..tostring(angle\_normalize(angle))..'\\\\')
angle = point.arg (z.d-z.a)
tex.print('slope of (ad) : '..tostring(angle)..'\\\\')
- tex.print('slope normalized of (acd) : '..tostring(angle\_normalize(angle))..'\\\\')
+ tex.print('slope normalized of (ad) : '..tostring(angle\_normalize(angle))..'\\\\')
}
-\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawLines[red](a,b a,c a,d)
- \tkzDrawPoints(a,b,c,d)
- \tkzLabelPoints(a,b,c,d)
-\end{tikzpicture}
+
\end{Verbatim}
\directlua{%
init_elements ()
@@ -237,14 +258,30 @@ tex.print('slope of (ad) : '..tostring(angle)..'\\\\')
tex.print('slope normalized of (ad) : '..tostring(angle_normalize(angle))..'\\\\')
}
- \hspace*{\fill}
-\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawLines[red](a,b a,c a,d)
- \tkzDrawPoints(a,b,c,d)
- \tkzLabelPoints(a,b,c,d)
-\end{tikzpicture}
- \hspace*{\fill}
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[red](a,b a,c a,d)
+ \tkzDrawPoints(a,b,c,d)
+ \tkzLabelPoints(a,b,c,d)
+ \end{tikzpicture}
+\end{Verbatim}
+
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+ \begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawLines[red](a,b a,c a,d)
+ \tkzDrawPoints(a,b,c,d)
+ \tkzLabelPoints(a,b,c,d)
+ \end{tikzpicture}
+ \end{center}
+\end{minipage}
+
+
+
% subsection normalized_angles (end)
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-parallelogram.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-parallelogram.tex
index d6a1187ff36..3ff936a8a8a 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-parallelogram.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-parallelogram.tex
@@ -105,7 +105,7 @@ z.I = P.new.center
\end{tabular}
\egroup
-\subsubsection{parallelogram with fourth method} % (fold)
+\subsubsection{Parallelogram with fourth method} % (fold)
\label{ssub:parallelogram_with_fourth_method}
% subsubsection parallelogram_with_fourth_method (end)
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex
index 7dba1b80224..5dcea5febce 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex
@@ -3,7 +3,7 @@
\section{Class \Iclass{point}} % (fold)
\label{sec:class_point}
-The foundation of the entire framework is the \Iclass{point} class. This class is hybrid in the sense that it deals with both points in a plane and complex numbers. The principle is as follows: the plane is equipped with an orthonormal basis, which allows us to determine the position of a point using its abscissa and ordinate coordinate. Similarly, any complex number can be viewed simply as a pair of real numbers (its real part and its imaginary part). We can then designate the plane as the complex plane, and the complex number $x+iy$ is represented by the point of the plane with coordinates $(x,y)$. Thus the point $A$ will have coordinates stored in the object $z.A$. Coordinates are attributes of the "point" object, along with type, argument, and modulus.
+The foundation of the entire framework is the \Iclass{point} class. This class is hybrid in the sense that it deals with both points in a plane and complex numbers. The principle is as follows: the plane is equipped with an orthonormal basis, which allows us to determine the position of a point using its abscissa and ordinate coordinate. Similarly, any complex number can be viewed simply as a pair of real numbers (its real part and its imaginary part). We can then designate the plane as the complex plane, and the complex number $x+iy$ is represented by the point of the plane with coordinates $(x,y)$. Thus the point $A$ will have coordinates stored in the object $z.A$. Coordinates are attributes of the \code{point} object, along with type, argument, and modulus.
@@ -19,13 +19,14 @@ The creation of a point is done using the following method, but there are other
\tikz\node[minimum width=\size,font=\small,
draw, fill=cyan!10,
- rectangle split, rectangle split parts=5
+ rectangle split, rectangle split parts=6
] {
\texttt{re (real)}
\nodepart{two}\texttt{im (real)}
\nodepart{three}\texttt{type = 'point'}
\nodepart{four}\texttt{argument (rad)}
\nodepart{five}\texttt{modulus (cm)}
+ \nodepart{six}\texttt{mtx (matrix)}
};
\hspace{\fill} \texttt{Methods}\hspace{\fill}
@@ -51,13 +52,14 @@ The creation of a point is done using the following method, but there are other
\tikz\node[minimum width=\size,font=\small,
draw, fill=cyan!10,
- rectangle split, rectangle split parts=5
+ rectangle split, rectangle split parts=6
] {
\texttt{re = 1}
\nodepart{two}\texttt{im = 2}
\nodepart{three}\texttt{type = 'point'}
\nodepart{four}\texttt{argument = atan(2)}
\nodepart{five}\texttt{modulus = $\sqrt{5}$}
+ \nodepart{six}\texttt{mtx = \{\{1\},\{2\}\}}
};
\hspace{\fill} \texttt{Methods}\hspace{\fill}
@@ -106,6 +108,7 @@ This is the creation of a fixed point with coordinates 1 and 2 and which is name
\Iattr{point}{type} & |z.A.type = 'point'| & \\
\Iattr{point}{argument} & |z.A.argument| $\approx$ |0.78539816339745| & [\ref{ssub:example_point_attributes}] \\
\Iattr{point}{modulus} & |z.A.modulus| $\approx$ |2.2360...| =$\sqrt{5}$ & [\ref{ssub:example_point_attributes}] \\
+ \Iattr{point}{mtx} & |z.A.mtx = = {{1},{2}}| & [\ref{ssub:example_point_attributes}] \\
\bottomrule
\end{tabular}
\egroup
@@ -181,9 +184,9 @@ Attributes of \texttt{z.M}
\item \texttt{z.M.type} = 'point'
\item \texttt{z.M.argument} = $\theta \approx \pmpn{\tkzUseLua{z.M.argument}}$ rad
\item \texttt{z.M.modulus} = $|z_M| =\sqrt{5}\approx \pmpn{\tkzUseLua{z.M.modulus}}$ cm
+ \item \texttt{z.M.mtx} = \tkzUseLua{z.M.mtx : print ()}
\end{itemize}
\end{mybox}
-
};
\end{scope}
\end{tikzpicture}
@@ -191,10 +194,33 @@ Attributes of \texttt{z.M}
\MakeShortVerb{\|}
-% \caption{Class Point}
+\subsubsection{Attribute \Iattr{point}{mtx}} % (fold)
+\label{ssub:attribute_iattr_point_mtx}
+
+This method allows the point to be used in conjunction with matrices.
+
+\vspace{6pt}
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+ \directlua{
+ z.A = point : new (2,-1)
+ z.A.mtx : print ()
+ }
+\end{Verbatim}
+\end{minipage}
+ \begin{minipage}{.5\textwidth}
+ \begin{center}
+ \directlua{
+ z.A = point : new (2,-1)
+ z.A.mtx : print ()
+ }
+ \end{center}
+ \end{minipage}
+% subsubsection attribute_iattr_point_mtx (end)
% subsubsection example_point_attributes (end)
% subsection attributes_of_a_point (end)
+
\subsubsection{Argand diagram} % (fold)
\label{ssub:argand_diagram}
\normalsize
@@ -445,7 +471,7 @@ init_elements ()
\subsubsection{Method \Imeth{point}{orthogonal (d)}} % (fold)
\label{ssub:orthogonal_method}
-Let $O$ be the origin of the plane. The "orthogonal (d)" method is used to obtain a point $B$ from a point $A$ such that $\overrightarrow{OB}\perp \overrightarrow{OA}$ with $OB=OA$ if $d$ is empty, otherwise $OB = d$.
+Let $O$ be the origin of the plane. The \code{orthogonal (d)} method is used to obtain a point $B$ from a point $A$ such that $\overrightarrow{OB}\perp \overrightarrow{OA}$ with $OB=OA$ if $d$ is empty, otherwise $OB = d$.
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
@@ -588,22 +614,24 @@ Rotate a triangle by an angle of $\pi/6$ around $O$.
\directlua{%
init_elements ()
scale = .75
- z.O = point : new ( -1 , -1 )
- z.A = point : new ( 2 , 0 )
- z.B = point : new ( 5 , 0 )
- L.AB = line : new (z.A,z.B)
- T.ABC = L.AB : equilateral ()
- S.fig = L.AB : square ()
- _,_,z.E,z.F = get_points ( S.fig )
- S.new = z.O : rotation (math.pi/3,S.fig)
- _,_,z.Ep,z.Fp = get_points ( S.new )
+ z.O = point: new(-1, -1)
+ z.A = point: new(2, 0)
+ z.B = point: new(5, 0)
+ L.AB = line: new(z.Az.B)
+ T.ABC = L.AB: equilateral()
+ S.fig = L.AB: square ()
+ _,_,
+ z.E,z.F = get_points(S.fig)
+ S.new = z.O : rotation(math.pi/3,S.fig)
+ _,_,z.Ep,z.Fp = get_points( S.new )
z.C = T.ABC.pc
- T.ApBpCp = z.O : rotation (math.pi/3,T.ABC)
+ T.ApBpCp = z.O : rotation(math.pi/3,T.ABC)
z.Ap,z.Bp,z.Cp = get_points ( T.ApBpCp)
}
\begin{tikzpicture}
\tkzGetNodes
- \tkzDrawPolygons(A,B,C A',B',C' A,B,E,F A',B',E',F')
+ \tkzDrawPolygons(A,B,C A',B',C'%
+ A,B,E,F A',B',E',F')
\tkzDrawPoints (A,B,C,A',B',C',O)
\tkzLabelPoints (A,B,C,A',B',C',O)
\tkzDrawArc[delta=0,->](O,A)(A')
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-quadrilateral.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-quadrilateral.tex
index 55484fa41a0..ec9765ea6d3 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-quadrilateral.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-quadrilateral.tex
@@ -161,4 +161,5 @@ end
\end{minipage}
% subsubsection inscribed_quadrilateral (end)
+
% subsection quadrilateral_methods (end) \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-regular.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-regular.tex
index b4034f92454..51cf6fff5d6 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-regular.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-regular.tex
@@ -1,7 +1,7 @@
\newpage
\section{Class \Iclass{regular polygon}} % (fold)
-\subsection{regular\_polygon attributes} % (fold)
+\subsection{Regular\_polygon attributes} % (fold)
\label{sub:regular_polygon_attributes}
\begin{mybox}
@@ -21,7 +21,7 @@ Creation | RP.IA = regular_polygon : new (z.I,z.A,6)|
\Iattr{regular}{circle} & defines the circle with center I passing through A \\
\Iattr{regular}{type} & |RP.IA.type= 'regular\_polygon'| \\
\Iattr{regular}{side} & |s = RP.IA.side| ; s = length of side\\
-\Iattr{regular}{exradius}& |S.AB.exradius| ; radius of the circumscribed circle \\
+\Iattr{regular}{circumradius}& |S.AB.circumradius| ; radius of the circumscribed circle \\
\Iattr{regular}{inradius}& |S.AB.inxradius| ; radius of the inscribed circle \\
\Iattr{regular}{proj} & |RP.IA.proj| ; projection of the center on one side \\
\Iattr{regular}{angle} & |RP.IA.angle| ; angle formed by the center and 2 consecutive vertices \\
@@ -80,7 +80,7 @@ scale = .75
% subsubsection pentagon (end)
% subsection regular_polygon_attributes (end)
-\subsection{regular\_polygon methods} % (fold)
+\subsection{Regular\_polygon methods} % (fold)
\label{sub:regular_polygon_methods}
\bgroup
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-square.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-square.tex
index 1a5b69bba53..edfdaca4746 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-square.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-square.tex
@@ -24,7 +24,7 @@ Creation | S.AB = square : new (z.A,z.B,z.C,z.D)|
\Iattr{square}{type} & |S.AB.type= 'square'| & \\
\Iattr{square}{side} & |s = S.AB.center| & s = length of side \\
\Iattr{square}{center} & |z.I = S.AB.center| & center of the square \\
-\Iattr{square}{exradius} & |S.AB.exradius| & radius of the circumscribed circle \\
+\Iattr{square}{circumradius} & |S.AB.circumradius| & radius of the circumscribed circle \\
\Iattr{square}{inradius} & |S.AB.inxradius| & radius of the inscribed circle \\
\Iattr{square}{proj} & |S.AB.proj| & projection of the center on one side \\
\Iattr{square}{ab} & |S.AB.ab| & line passing through two vertices \\
@@ -59,7 +59,7 @@ z.H = S.new.proj
\tkzLabelPoints(A,B,H,I)
\tkzLabelPoints[above](C,D)
\tkzDrawSegments(I,B I,H)
-\tkzLabelSegment[sloped](I,B){\pmpn{\tkzUseLua{S.new.exradius}}}
+\tkzLabelSegment[sloped](I,B){\pmpn{\tkzUseLua{S.new.circumradius}}}
\tkzLabelSegment[sloped](I,H){\pmpn{\tkzUseLua{S.new.inradius}}}
\tkzLabelSegment[sloped](D,C){\pmpn{\tkzUseLua{S.new.side}}}
\end{tikzpicture}
@@ -85,7 +85,7 @@ init_elements ()
\tkzLabelPoints(A,B,H,I)
\tkzLabelPoints[above](C,D)
\tkzDrawSegments(I,B I,H)
- \tkzLabelSegment[sloped](I,B){\pmpn{\tkzUseLua{S.new.exradius}}}
+ \tkzLabelSegment[sloped](I,B){\pmpn{\tkzUseLua{S.new.circumradius}}}
\tkzLabelSegment[sloped](I,H){\pmpn{\tkzUseLua{S.new.inradius}}}
\tkzLabelSegment[sloped](D,C){\pmpn{\tkzUseLua{S.new.side}}}
\end{tikzpicture}
@@ -162,6 +162,7 @@ z.I = S.side.center
\end{tikzpicture}
\end{minipage}
% subsubsection square_with_side_method (end)
+
% subsubsection example_square_attributes (end)
% subsection square_methods (end) \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex
index af4dac7c7ba..1ca2f6e0691 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex
@@ -37,6 +37,10 @@ The triangle object is created using the \Imeth{triangle}{new} method, for examp
\Iattr{triangle}{ab}& Line defined by the first two points of the triangle\\
\Iattr{triangle}{bc}& Line defined by the last two points \\
\Iattr{triangle}{ca}& Line defined by the last and the first points of the triangle\\
+\Iattr{triangle}{semiperimeter}& semiperimeter of the triangle \\
+\Iattr{triangle}{area}& area of the triangle \\
+\Iattr{triangle}{inradius}& radius of the incircle\\
+\Iattr{triangle}{circumradius}& radius of the circumcircle \\
\bottomrule %
\end{tabular}
\egroup
@@ -170,6 +174,17 @@ init_elements ()
\midrule
\Imeth{triangle}{new} (a, b ,c) & |T.ABC = triangle : new (z.A,z.B,z.C)|& [\ref{sub:triangle_attributes_angles}] \footnote{|T| or |T.name| with what you want for name, is possible.} \\
\midrule
+\textbf{Booleans}&&\\
+\midrule
+\Imeth{triangle}{in\_out (pt)} & Boolean. Test if |pt| is inside the triangle\\
+\Imeth{triangle}{check\_equilateral ()} & Boolean. Test if the triangle is equilateral\\
+\Imeth{triangle}{check\_acutangle ()} & Boolean. Test if the triangle is acutangle\\
+\midrule
+ \textbf{Reals} &&\\
+ \midrule
+ \Imeth{triangle}{area ()} & $ \mathcal{A}$| = T.ABC: area ()| better T.ABC.area\\
+ \Imeth{triangle}{barycentric\_coordinates(pt)} & Triples of numbers corresponding to masses placed at the vertices\\
+ \midrule
\textbf{Points} &&\\
\midrule
\Imeth{triangle}{lemoine\_point ()} & |T.ABC : lemoine_point ()| intersection of the symmedians & [\ref{ssub:method_imeth_line_isosceles}]\\
@@ -203,6 +218,7 @@ init_elements ()
\Imeth{triangle}{nine\_points () } & 9 Points of the euler circle & [\ref{ssub:method_imeth_triangle_nine__points}] \\
\Imeth{triangle}{parallelogram ()} & |z.D = T.ABC : parallelogram ()| \tkzar ABCD parallelogram& [\ref{sub:director_circle}]\\
+
\midrule
\textbf{Lines} &&\\
\midrule
@@ -220,6 +236,7 @@ init_elements ()
\Imeth{triangle}{antiparallel(pt,n)} & n=0 antiparallel through pt to $(BC)$, n=1 to $(AC)$ etc.& [\ref{sub:antiparallel_through_lemoine_point}]\\
\midrule
+
\textbf{Circles} &&\\
\midrule
\Imeth{triangle}{euler\_circle ()} & C.|NP = T.ABC : euler_circle ()| \tkzar $N$ euler point
@@ -248,6 +265,8 @@ init_elements ()
\Imeth{triangle}{pedal\_circle ()} & Circumscribed circle of the podar triangle & [\ref{ssub:method_imeth_triangle_pedal}]\\
\Imeth{triangle}{conway\_circle ()} & Circumscribed circle of Conway points & [\ref{ssub:method_imeth_triangle_conway}]\\
+
+\Imeth{triangle}{c\_ll\_p (pt)} & circle tgt to two side through pt [\ref{ssub:tr_method_c__ll__p}]\\
\bottomrule
\end{tabular}
\end{minipage}
@@ -304,13 +323,6 @@ init_elements ()
\Imeth{triangle}{steiner\_circumellipse ()} & [ex. \ref{ssub:steiner_inellipse_and_circumellipse}] \\
\Imeth{triangle}{euler\_ellipse ()} & [ex. (\ref{ssub:euler_ellipse}]\\
- \midrule
- \textbf{Miscellaneous} &\\
-\midrule
-\Imeth{triangle}{area ()} & $ \mathcal{A}$| = T.ABC: area ()|\\
-\Imeth{triangle}{barycentric\_coordinates(pt)}& Triples of numbers corresponding to masses placed at the vertices\\
-\Imeth{triangle}{in\_out (pt)} & Boolean. Test if |pt| is inside the triangle\\
-\Imeth{triangle}{check\_equilateral ()} & Boolean. Test if the triangle is equilateral\\
\bottomrule
\end{tabular}
\end{center}
@@ -2484,8 +2496,67 @@ init_elements ()
\end{Verbatim}
% subsubsection harmonic_division_and_bisector (end)
+\subsubsection{Method \Imeth{triangle}{c\_ll\_p}} % (fold)
+\label{ssub:tr_method_c__ll__p}
+
+See [\ref{ssub:method_c__ll__p}] for special cases. Please note that the arguments are not the same as for the \code{line} class.
+
+\vspace{6pt}
+\begin{minipage}{.5\textwidth}
+ \begin{Verbatim}
+\directlua{
+init_elements()
+ z.A = point : new ( 0 , 0 )
+ z.B = point : new ( 8 , 0 )
+ L.AB = line : new ( z.A,z.B )
+ z.C = point : new ( 6 , 4 )
+ L.AC = line : new ( z.A,z.C )
+ T = triangle : new (z.A,z.B,z.C)
+ z.P = point : new ( 3 , 1 )
+ C1,C2 = T : c_ll_p (z.P)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+}
+\begin{tikzpicture}
+\tkzGetNodes
+ \tkzDrawLines[thick](A,B A,C B,C)
+ \tkzDrawCircles[red](O1,T1 O2,T2)
+ \tkzDrawPoints(A,B,C,P)
+ \tkzLabelPoints(A,B,C,P)
+\end{tikzpicture}
+ \end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\directlua{
+init_elements()
+ z.A = point : new ( 0 , 0 )
+ z.B = point : new ( 8 , 0 )
+ L.AB = line : new ( z.A,z.B )
+ z.C = point : new ( 6 , 4 )
+ L.AC = line : new ( z.A,z.C )
+ T = triangle : new (z.A,z.B,z.C)
+ z.P = point : new ( 3 , 1 )
+ C1,C2 = T : c_ll_p (z.P)
+ z.O1 = C1.center
+ z.T1 = C1.through
+ z.O2 = C2.center
+ z.T2 = C2.through
+}
+ \begin{center}
+\begin{tikzpicture}
+\tkzGetNodes
+ \tkzDrawLines[thick](A,B A,C B,C)
+ \tkzDrawCircles[red](O1,T1 O2,T2)
+ \tkzDrawPoints(A,B,C,P)
+ \tkzLabelPoints(A,B,C,P)
+\end{tikzpicture}
+ \end{center}
+
+\end{minipage}
-%
+% subsubsection method_c__ll__p (end)
% % subsection methods_of_the_class_triangle (end)
% % section class_triangle (end)
\endinput
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-convention.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-convention.tex
index 49afe50798b..bc7b8f223f4 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-convention.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-convention.tex
@@ -39,7 +39,7 @@ At present, the only obligation is to store the points in the table |z| \footno
As for the conventions for designating |name| you must adhere to Lua conventions in particular cases.
\begin{enumerate}
- \item The use of prime can be problematic. If the point name contains more than one symbol and ends with |p| then when passing into \pkg{TikZ} or \pkg{tkz-euclide}, the letters |p| will be replaced by |'| using the macro \tkzcname{tkzGetNodes}; \index{prime}
+ \item The use of prime can be problematic. If the point name contains more than one symbol and ends with |p| then when passing into \pkg{tkz-euclide}, the letters |p| will be replaced by |'| using the macro \tkzcname{tkzGetNodes}; \index{prime}
\item Alternatively, for a more explicit code, suppose you want to designate a point as "euler". You could, for example, write |euler = ...|, and at the end of the code for the transfer, |z.E = euler|. It is also possible to use a temporary name |euler| and to replace it in \TIKZ{}. Either at the time of placing the labels, or for example by using |pgfnodealias{E}{euler}|. This possibility also applies in other cases: prime, double prime, etc.
\end{enumerate}
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex
index bb5d40e3728..4672d6982e8 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex
@@ -1320,6 +1320,7 @@ z.K = L.K.pb
\subsection{Gold division} % (fold)
\label{sub:gold_division}
+\begin{minipage}{.5\textwidth}
\begin{Verbatim}
\directlua{%
init_elements ()
@@ -1339,50 +1340,54 @@ L.EG = line:new (z.E,z.G)
z.C = intersection (L.EG,L.AB)
z.O = C.AB: antipode (z.B)
}
- \begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawArc[delta=5](O,B)(G)
- \tkzDrawCircles(A,B B,A)
- \tkzDrawSegments(A,E B,E O,I)
- \tkzDrawSegments[purple](J,E A,G G,I K,G E,G)
- \tkzMarkSegments[mark=s||](A,E B,E O,A)
- \tkzDrawPoints(A,B,C,E,I,J,G,O,K)
- \tkzLabelPoints(A,B,C,E,I,J,G,O,K)
- \end{tikzpicture}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawArc[delta=5](O,B)(G)
+\tkzDrawCircles(A,B B,A)
+\tkzDrawSegments(A,E B,E O,I)
+\tkzDrawSegments[purple](J,E A,G G,I K,G E,G)
+\tkzMarkSegments[mark=s||](A,E B,E O,A)
+\tkzDrawPoints(A,B,C,E,I,J,G,O,K)
+\tkzLabelPoints(A,B,C,E,I,J,G,O,K)
+\end{tikzpicture}
\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+ \directlua{%
+ init_elements ()
+ scale = .75
+ z.A = point: new (0,0)
+ z.B = point: new (2.5,0)
+ L.AB = line: new (z.A,z.B)
+ C.AB = circle: new (z.A,z.B)
+ C.BA = circle: new (z.B,z.A)
+ z.J = L.AB: midpoint ()
+ L.JB = line:new (z.J,z.B)
+ z.F,z.E = intersection (C.AB , C.BA)
+ z.I,_ = intersection (L.AB , C.BA)
+ z.K = L.JB : midpoint ()
+ L.mediator = L.JB: mediator ()
+ z.G = intersection (L.mediator,C.BA)
+ L.EG = line:new (z.E,z.G)
+ z.C = intersection (L.EG,L.AB)
+ z.O = C.AB: antipode (z.B)
+ }
-\directlua{%
-init_elements ()
-z.A = point: new (0,0)
-z.B = point: new (2.5,0)
-L.AB = line: new (z.A,z.B)
-C.AB = circle: new (z.A,z.B)
-C.BA = circle: new (z.B,z.A)
-z.J = L.AB: midpoint ()
-L.JB = line:new (z.J,z.B)
-z.F,z.E = intersection (C.AB , C.BA)
-z.I,_ = intersection (L.AB , C.BA)
-z.K = L.JB : midpoint ()
-L.mediator = L.JB: mediator ()
-z.G = intersection (L.mediator,C.BA)
-L.EG = line:new (z.E,z.G)
-z.C = intersection (L.EG,L.AB)
-z.O = C.AB: antipode (z.B)
-}
+ \begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawArc[delta=5](O,B)(G)
+ \tkzDrawCircles(A,B B,A)
+ \tkzDrawSegments(A,E B,E O,I)
+ \tkzDrawSegments[purple](J,E A,G G,I K,G E,G)
+ \tkzMarkSegments[mark=s||](A,E B,E O,A)
+ \tkzDrawPoints(A,B,C,E,I,J,G,O,K)
+ \tkzLabelPoints(A,B,C,E,I,J,G,O,K)
+ \end{tikzpicture}
+ \end{center}
+\end{minipage}
-\begin{center}
- \begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawArc[delta=5](O,B)(G)
- \tkzDrawCircles(A,B B,A)
- \tkzDrawSegments(A,E B,E O,I)
- \tkzDrawSegments[purple](J,E A,G G,I K,G E,G)
- \tkzMarkSegments[mark=s||](A,E B,E O,A)
- \tkzDrawPoints(A,B,C,E,I,J,G,O,K)
- \tkzLabelPoints(A,B,C,E,I,J,G,O,K)
- \end{tikzpicture}
-\end{center}
% subsection gold_division (end)
@@ -1562,7 +1567,7 @@ z.G = L.tb.pb
\subsection{Euler relation} % (fold)
\label{sub:euler_relation}
-\begin{minipage}{.5\textwidth}
+
\begin{Verbatim}
\directlua{%
init_elements ()
@@ -1593,8 +1598,7 @@ init_elements ()
\tkzMarkRightAngles[fill=gray!20,opacity=.4](C,H,I A,K,J)
\end{tikzpicture}
\end{Verbatim}
-\end{minipage}
-\begin{minipage}{.5\textwidth}
+
\directlua{%
init_elements ()
z.A = point: new (0 , 0)
@@ -1626,8 +1630,6 @@ _,z.E = intersection (L.Ow, C.OA)
\end{tikzpicture}
\end{center}
-
-\end{minipage}
% subsection euler_relation (end)
\subsection{External angle} % (fold)
@@ -1636,7 +1638,7 @@ _,z.E = intersection (L.Ow, C.OA)
\begin{Verbatim}
\directlua{%
init_elements ()
- scale = .75
+ scale = .5
z.A = point: new (0 , 0)
z.B = point: new (5 , 0)
z.C = point: new (-2 , 4)
@@ -1689,8 +1691,6 @@ z.E = z.C: symmetry (z.B)
\tkzLabelPoints(A,B,D)
\end{tikzpicture}
\end{center}
-
-
\end{minipage}
% subsection external_angle (end)
@@ -1762,35 +1762,36 @@ z.E = intersection (L.LL,L.AD)
\subsection{Feuerbach theorem} % (fold)
\label{sub:nine_points}
-\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
+
+
\begin{Verbatim}
\directlua{%
init_elements ()
- scale = 1.5
- z.A = point: new (0 , 0)
- z.B = point: new (5 , -.5)
- z.C = point: new (-.5 , 3)
- T.ABC = triangle: new (z.A,z.B,z.C)
- z.O = T.ABC.circumcenter
- z.N = T.ABC.eulercenter
- z.I,z.K = get_points(T.ABC: in_circle())
- z.H = T.ABC.ab : projection (z.I)
- z.Ap,
- z.Bp,
- z.Cp = get_points (T.ABC : medial ())
- C.IH = circle:new (z.I,z.H)
- C.NAp = circle:new (z.N,z.Ap)
- C.OA = circle:new (z.O,z.A)
- z.U = C.OA.south
- z.L = C.NAp.south
- z.M = C.NAp.north
- z.X = T.ABC.ab: projection (z.C)
- L.CU = line: new (z.C,z.U)
- L.ML = line: new (z.M,z.L)
- z.P = L.CU: projection (z.A)
- z.Q = L.CU: projection (z.B)
- L.LH = line: new (z.L,z.H)
- z.F = intersection (L.LH,C.IH) % feuerbach
+scale = .75
+ z.A = point: new (0 , 0)
+ z.B = point: new (5 , -.5)
+ z.C = point: new (-.5 , 3)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ z.O = T.ABC.circumcenter
+ z.N = T.ABC.eulercenter
+ z.I,z.K = get_points(T.ABC: in_circle())
+ z.H = T.ABC.ab : projection (z.I)
+ z.Ap,
+ z.Bp,
+ z.Cp = get_points (T.ABC : medial ())
+ C.IH = circle:new (z.I,z.H)
+ C.NAp = circle:new (z.N,z.Ap)
+ C.OA = circle:new (z.O,z.A)
+ z.U = C.OA.south
+ z.L = C.NAp.south
+ z.M = C.NAp.north
+ z.X = T.ABC.ab: projection (z.C)
+ L.CU = line: new (z.C,z.U)
+ L.ML = line: new (z.M,z.L)
+ z.P = L.CU: projection (z.A)
+ z.Q = L.CU: projection (z.B)
+ L.LH = line: new (z.L,z.H)
+ z.F = intersection (L.LH,C.IH) % feuerbach
}
\begin{tikzpicture}
@@ -1805,11 +1806,10 @@ init_elements ()
\tkzLabelPoints(A,B,C,N,H,A',B',C',U,L,M,P,Q,F,I)
\end{tikzpicture}
\end{Verbatim}
-\end{minipage}
-\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
+
\directlua{%
init_elements ()
-scale = 1
+scale =1.25
z.A = point: new (0 , 0)
z.B = point: new (5 , -.5)
z.C = point: new (-.5 , 3)
@@ -1848,7 +1848,7 @@ z.F = intersection (L.LH,C.IH) % feuerbach
\end{tikzpicture}
\end{center}
-\end{minipage}
+
% subsection nine_points (end)
\subsection{Gold ratio with segment} % (fold)
@@ -2529,11 +2529,11 @@ init_elements ()
z.Jc,z.Xc = get_points (C.exC)
L.OL = line: new (z.O,z.L)
L.NS = line: new (z.N,z.S)
- z.o = intersection (L.OL,L.NS) -- center of Apollonius circle
+ z.o = intersection (L.OL,L.NS) % center of Apollonius circle
L.NMa = line: new (z.N,z.Ma)
L.ox = L.NMa: ll_from (z.o)
L.MaS = line: new (z.Ma,z.S)
- z.t = intersection (L.ox,L.MaS) -- through
+ z.t = intersection (L.ox,L.MaS) % through
}
\begin{tikzpicture}
@@ -2571,18 +2571,18 @@ C.exC = T.ABC : ex_circle (2)
z.Jc,z.Xc = get_points (C.exC)
L.OL = line: new (z.O,z.L)
L.NS = line: new (z.N,z.S)
-z.o = intersection (L.OL,L.NS) -- center of Apollonius circle
+z.o = intersection (L.OL,L.NS) % center of Apollonius circle
L.NMa = line: new (z.N,z.Ma)
L.ox = L.NMa: ll_from (z.o)
L.MaS = line: new (z.Ma,z.S)
-z.t = intersection (L.ox,L.MaS) -- through
+z.t = intersection (L.ox,L.MaS) % through
}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines[add=1 and 1](A,B A,C B,C)
- \tkzDrawCircles(Ja,Xa Jb,Xb Jc,Xc o,t N,Ma) %
+ \tkzDrawCircles(Ja,Xa Jb,Xb Jc,Xc o,t N,Ma)
\tkzClipCircle(o,t)
\tkzDrawLines[red](o,L N,o Ma,t)
\tkzDrawLines[cyan,add=4 and 4](Ma,N o,t)
@@ -2598,78 +2598,82 @@ z.t = intersection (L.ox,L.MaS) -- through
\subsection{Orthogonal circles} % (fold)
\label{sub:orthogonal_circles_v2}
-\begin{Verbatim}
-\directlua{%
-init_elements ()
-scale = .75
-z.O = point: new (2,2)
-z.Op = point: new (-4,1)
-z.P = point: polar (4,0)
-C.OP = circle: new (z.O,z.P)
-C.Oz1 = C.OP : orthogonal_from (z.Op)
-z.z1 = C.Oz1.through
-L.OP = line : new (z.O,z.P)
-C.Opz1 = circle: new (z.Op,z.z1)
-L.T,L.Tp = C.Opz1 : tangent_from (z.O)
-z.T = L.T.pb
-z.Tp = L.Tp.pb
-L.OOp = line : new (z.O,z.Op)
-z.M = L.OOp.mid
-}
-\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircle[red](O,P)
- \tkzDrawCircle[purple](O',z1)
- \tkzDrawCircle[cyan](M,T)
- \tkzDrawSegments(O',T O,T' O',T')
- \tkzDrawSegment[purple](O',T)
- \tkzDrawSegments[red](O,T O,O')
- \tkzDrawPoints(O,O',T,T',M)
- \tkzMarkRightAngle[fill=gray!10](O',T,O)
- \tkzLabelPoint[below](O){$O$}
- \tkzLabelPoint[above](T){$T$}
- \tkzLabelPoint[above](M){$M$}
- \tkzLabelPoint[below](T'){$T'$}
- \tkzLabelPoint[above left](O'){$O'$}
-\end{tikzpicture}
-\end{Verbatim}
-
-\directlua{%
-init_elements ()
-scale = .75
-z.O = point: new (2,2)
-z.Op = point: new (-4,1)
-z.P = point: polar (4,0)
-C.OP = circle: new (z.O,z.P)
-C.Oz1 = C.OP : orthogonal_from (z.Op)
-z.z1 = C.Oz1.through
-L.OP = line : new (z.O,z.P)
-C.Opz1 = circle: new (z.Op,z.z1)
-L.T,L.Tp = C.Opz1 : tangent_from (z.O)
-z.T = L.T.pb
-z.Tp = L.Tp.pb
-L.OOp = line : new (z.O,z.Op)
-z.M = L.OOp.mid
-}
-
-\begin{center}
+\begin{minipage}{.5\textwidth}
+ \begin{Verbatim}
+ \directlua{%
+ init_elements ()
+ scale = .5
+ z.O = point: new (2,2)
+ z.Op = point: new (-4,1)
+ z.P = point: polar (4,0)
+ C.OP = circle: new (z.O,z.P)
+ C.Oz1 = C.OP : orthogonal_from (z.Op)
+ z.z1 = C.Oz1.through
+ L.OP = line : new (z.O,z.P)
+ C.Opz1 = circle: new (z.Op,z.z1)
+ L.T,L.Tp = C.Opz1 : tangent_from (z.O)
+ z.T = L.T.pb
+ z.Tp = L.Tp.pb
+ L.OOp = line : new (z.O,z.Op)
+ z.M = L.OOp.mid
+ }
\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircle[red](O,P)
- \tkzDrawCircle[purple](O',z1)
- \tkzDrawCircle[cyan](M,T)
- \tkzDrawSegments(O',T O,T' O',T')
- \tkzDrawSegment[purple](O',T)
- \tkzDrawSegments[red](O,T O,O')
- \tkzDrawPoints(O,O',T,T',M)
- \tkzMarkRightAngle[fill=gray!10](O',T,O)
- \tkzLabelPoint[below](O){$O$}
- \tkzLabelPoint[above](T){$T$}
- \tkzLabelPoint[above](M){$M$}
- \tkzLabelPoint[below](T'){$T'$}
- \tkzLabelPoint[above left](O'){$O'$}
+ \tkzGetNodes
+ \tkzDrawCircle[red](O,P)
+ \tkzDrawCircle[purple](O',z1)
+ \tkzDrawCircle[cyan](M,T)
+ \tkzDrawSegments(O',T O,T' O',T')
+ \tkzDrawSegment[purple](O',T)
+ \tkzDrawSegments[red](O,T O,O')
+ \tkzDrawPoints(O,O',T,T',M)
+ \tkzMarkRightAngle[fill=gray!10](O',T,O)
+ \tkzLabelPoint[below](O){$O$}
+ \tkzLabelPoint[above](T){$T$}
+ \tkzLabelPoint[above](M){$M$}
+ \tkzLabelPoint[below](T'){$T'$}
+ \tkzLabelPoint[above left](O'){$O'$}
\end{tikzpicture}
-\end{center}
+ \end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+ \directlua{%
+ init_elements ()
+ scale = .5
+ z.O = point: new (2,2)
+ z.Op = point: new (-4,1)
+ z.P = point: polar (4,0)
+ C.OP = circle: new (z.O,z.P)
+ C.Oz1 = C.OP : orthogonal_from (z.Op)
+ z.z1 = C.Oz1.through
+ L.OP = line : new (z.O,z.P)
+ C.Opz1 = circle: new (z.Op,z.z1)
+ L.T,L.Tp = C.Opz1 : tangent_from (z.O)
+ z.T = L.T.pb
+ z.Tp = L.Tp.pb
+ L.OOp = line : new (z.O,z.Op)
+ z.M = L.OOp.mid
+ }
+
+ \begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle[red](O,P)
+ \tkzDrawCircle[purple](O',z1)
+ \tkzDrawCircle[cyan](M,T)
+ \tkzDrawSegments(O',T O,T' O',T')
+ \tkzDrawSegment[purple](O',T)
+ \tkzDrawSegments[red](O,T O,O')
+ \tkzDrawPoints(O,O',T,T',M)
+ \tkzMarkRightAngle[fill=gray!10](O',T,O)
+ \tkzLabelPoint[below](O){$O$}
+ \tkzLabelPoint[above](T){$T$}
+ \tkzLabelPoint[above](M){$M$}
+ \tkzLabelPoint[below](T'){$T'$}
+ \tkzLabelPoint[above left](O'){$O'$}
+ \end{tikzpicture}
+ \end{center}
+\end{minipage}
+
% subsection orthogonal_circles_v2 (end)
@@ -2677,24 +2681,26 @@ z.M = L.OOp.mid
\subsection{Orthogonal circle to two circles} % (fold)
\label{sub:orthogonal_circle_to_two_circles}
+\begin{minipage}{.5\textwidth}
\begin{Verbatim}
\directlua{%
init_elements ()
- z.O = point : new (-1,0)
- z.B = point : new (0,2)
- z.Op = point : new (4,-1)
- z.D = point : new (4,0)
- C.OB = circle : new (z.O,z.B)
- C.OpD = circle : new (z.Op,z.D)
- z.E,z.F = get_points (C.OB : radical_axis (C.OpD))
- L.EF = line : new (z.E,z.F)
- z.M = L.EF : point (.25)
- L.T,L.Tp = C.OB : tangent_from (z.M)
- L.K,L.Kp = C.OpD : tangent_from (z.M)
- z.T = L.T.pb
- z.K = L.K.pb
- z.Tp = L.Tp.pb
- z.Kp = L.Kp.pb
+scale =.75
+ z.O = point : new (-1,0)
+ z.B = point : new (0,2)
+ z.Op = point : new (4,-1)
+ z.D = point : new (4,0)
+ C.OB = circle : new (z.O,z.B)
+ C.OpD = circle : new (z.Op,z.D)
+ z.E,z.F = get_points (C.OB : radical_axis (C.OpD))
+ L.EF = line : new (z.E,z.F)
+ z.M = L.EF : point (.25)
+ L.T,L.Tp = C.OB : tangent_from (z.M)
+ L.K,L.Kp = C.OpD : tangent_from (z.M)
+ z.T = L.T.pb
+ z.K = L.K.pb
+ z.Tp = L.Tp.pb
+ z.Kp = L.Kp.pb
}
\begin{tikzpicture}
\tkzGetNodes
@@ -2706,11 +2712,12 @@ init_elements ()
\tkzDrawPoints(O,O',T,M,T',K,K')
\tkzLabelPoints(O,O',T,T',M,K,K')
\end{tikzpicture}
-\end{Verbatim}
-
+ \end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
\directlua{%
init_elements ()
- scale = 1.25
+ scale = .75
z.O = point : new (-1,0)
z.B = point : new (0,2)
z.Op = point : new (4,-1)
@@ -2727,8 +2734,6 @@ z.K = L.K.pb
z.Tp = L.Tp.pb
z.Kp = L.Kp.pb
}
-
-
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -2741,7 +2746,7 @@ z.Kp = L.Kp.pb
\tkzLabelPoints(O,O',T,T',M,K,K')
\end{tikzpicture}
\end{center}
-
+\end{minipage}
% subsection Orthogonal to two circles (fold)
@@ -2934,16 +2939,6 @@ init_elements ()
z.xp,z.yp = get_points (C.C0A : orthogonal_from (z.M_1))
z.O = L.BA.mid
}
-\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircles(C_0,A C_1,A C_3,A C_5,A)
- \tkzDrawCircles[thick,color=red](M_0,x M_1,x')
- \tkzDrawCircles[thick,color=blue](O,A)
- \tkzDrawLines(C_0,C_1 B,M_1)
- \tkzDrawPoints(A,B,C_0,C_1,M_0,M_1,x,y)
- \tkzLabelPoints[below right](A,B,C_0,C_1,M_0,M_1,x,y)
- \tkzLabelLine[pos=1.25,right]( M_0,M_1){$(\Delta)$}
-\end{tikzpicture}
\end{Verbatim}
\directlua{%
@@ -2977,6 +2972,18 @@ z.O = L.BA.mid
\end{tikzpicture}
\end{center}
+\begin{Verbatim}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(C_0,A C_1,A C_3,A C_5,A)
+ \tkzDrawCircles[thick,color=red](M_0,x M_1,x')
+ \tkzDrawCircles[thick,color=blue](O,A)
+ \tkzDrawLines(C_0,C_1 B,M_1)
+ \tkzDrawPoints(A,B,C_0,C_1,M_0,M_1,x,y)
+ \tkzLabelPoints[below right](A,B,C_0,C_1,M_0,M_1,x,y)
+ \tkzLabelLine[pos=1.25,right]( M_0,M_1){$(\Delta)$}
+ \end{tikzpicture}
+\end{Verbatim}
% subsection pencil_v1 (end)
@@ -3003,15 +3010,6 @@ init_elements ()
z.v = C.orth1.through
z.t = C.orth2.through
}
-\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircles(C_0,A C_1,B)
- \tkzDrawCircles[thick,color=red](M_0,u M_1,v M_2,t)
- \tkzDrawLines[add= .75 and .75](C_0,C_1 M_0,M_1)
- \tkzDrawPoints(A,B,C_0,C_1,M_0,M_1,M_2)
- \tkzLabelPoints[below right](A,B,C_0,C_1,M_0,M_1,M_2)
- \tkzLabelLine[pos=2,right]( M_0,M_1){$(\Delta)$}
-\end{tikzpicture}
\end{Verbatim}
\directlua{%
@@ -3047,234 +3045,257 @@ init_elements ()
\end{tikzpicture}
\end{center}
+\begin{Verbatim}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(C_0,A C_1,B)
+ \tkzDrawCircles[thick,color=red](M_0,u M_1,v M_2,t)
+ \tkzDrawLines[add= .75 and .75](C_0,C_1 M_0,M_1)
+ \tkzDrawPoints(A,B,C_0,C_1,M_0,M_1,M_2)
+ \tkzLabelPoints[below right](A,B,C_0,C_1,M_0,M_1,M_2)
+ \tkzLabelLine[pos=2,right]( M_0,M_1){$(\Delta)$}
+\end{tikzpicture}
+\end{Verbatim}
+
%subsection pencil_v2 (end)
\subsection{Reim v1} % (fold)
\label{sub:reim_v1}
+
+\begin{minipage}{.5\textwidth}
\begin{Verbatim}
\directlua{%
init_elements ()
- z.A = point: new (0,0)
- z.E = point: new (-2,2)
- C.AE = circle : new (z.A,z.E)
- z.C = C.AE : point (0.65)
- z.D = C.AE : point (0.5)
- z.F = C.AE : point (0.30)
- L.EC = line: new (z.E,z.C)
- z.H = L.EC : point (1.5)
- T.CDH = triangle : new (z.C,z.D,z.H)
- z.B = T.CDH.circumcenter
- C.BD = circle : new (z.B,z.D)
- L.FD = line: new (z.F,z.D)
- z.G = intersection (L.FD,C.BD)
- z.O = intersection (L.EC,L.FD)
+ z.A = point: new (0,0)
+ z.E = point: new (-2,2)
+ C.AE = circle : new (z.A,z.E)
+ z.C = C.AE : point (0.65)
+ z.D = C.AE : point (0.5)
+ z.F = C.AE : point (0.30)
+ L.EC = line: new (z.E,z.C)
+ z.H = L.EC : point (1.5)
+ T.CDH = triangle : new (z.C,z.D,z.H)
+ z.B = T.CDH.circumcenter
+ C.BD = circle : new (z.B,z.D)
+ L.FD = line: new (z.F,z.D)
+ z.G = intersection (L.FD,C.BD)
+ z.O = intersection (L.EC,L.FD)
}
\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircles(A,E B,H)
- \tkzDrawSegments(E,D C,F)
- \tkzDrawLines(E,O F,O)
- \tkzDrawLines[red](E,F H,G)
- \tkzDrawPoints(A,...,H,O)
- \tkzLabelPoints(A,B,D,F,G,O)
- \tkzLabelPoints[above](E,C,H)
- \tkzMarkAngles[size=.5](E,C,F E,D,F)
- \tkzFillAngles[green!40,opacity=.4,size=.5](E,C,F E,D,F)
- \tkzMarkAngles[size=.5](F,C,H G,D,E)
- \tkzFillAngles[red!40,opacity=.4,size=.5](F,C,H G,D,E)
+ \tkzGetNodes
+ \tkzDrawCircles(A,E B,H)
+ \tkzDrawSegments(E,D C,F)
+ \tkzDrawLines(E,O F,O)
+ \tkzDrawLines[red](E,F H,G)
+ \tkzDrawPoints(A,...,H,O)
+ \tkzLabelPoints(A,B,D,F,G,O)
+ \tkzLabelPoints[above](E,C,H)
+ \tkzMarkAngles[size=.5](E,C,F E,D,F)
+ \tkzFillAngles[green!40,opacity=.4,size=.5](E,C,F E,D,F)
+ \tkzMarkAngles[size=.5](F,C,H G,D,E)
+ \tkzFillAngles[red!40,opacity=.4,size=.5](F,C,H G,D,E)
\end{tikzpicture}
\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+ \directlua{%
+ init_elements ()
+ scale = .5
+ z.A = point: new (0,0)
+ z.E = point: new (-2,2)
+ C.AE = circle : new (z.A,z.E)
+ z.C = C.AE : point (0.65)
+ z.D = C.AE : point (0.5)
+ z.F = C.AE : point (0.30)
+ L.EC = line: new (z.E,z.C)
+ z.H = L.EC : point (1.5)
+ T.CDH = triangle : new (z.C,z.D,z.H)
+ z.B = T.CDH.circumcenter
+ C.BD = circle : new (z.B,z.D)
+ L.FD = line: new (z.F,z.D)
+ z.G = intersection (L.FD,C.BD)
+ z.O = intersection (L.EC,L.FD)
+ }
+ \begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(A,E B,H)
+ \tkzDrawSegments(E,D C,F)
+ \tkzDrawLines(E,O F,O)
+ \tkzDrawLines[red](E,F H,G)
+ \tkzDrawPoints(A,...,H,O)
+ \tkzLabelPoints(A,B,D,F,G,O)
+ \tkzLabelPoints[above](E,C,H)
+ \tkzMarkAngles[size=.5](E,C,F E,D,F)
+ \tkzFillAngles[green!40,opacity=.4,size=.5](E,C,F E,D,F)
+ \tkzMarkAngles[size=.5](F,C,H G,D,E)
+ \tkzFillAngles[red!40,opacity=.4,size=.5](F,C,H G,D,E)
+ \end{tikzpicture}
+ \end{center}
+\end{minipage}
-\directlua{%
-init_elements ()
- z.A = point: new (0,0)
- z.E = point: new (-2,2)
- C.AE = circle : new (z.A,z.E)
- z.C = C.AE : point (0.65)
- z.D = C.AE : point (0.5)
- z.F = C.AE : point (0.30)
- L.EC = line: new (z.E,z.C)
- z.H = L.EC : point (1.5)
- T.CDH = triangle : new (z.C,z.D,z.H)
- z.B = T.CDH.circumcenter
- C.BD = circle : new (z.B,z.D)
- L.FD = line: new (z.F,z.D)
- z.G = intersection (L.FD,C.BD)
- z.O = intersection (L.EC,L.FD)
-}
-
-
-\begin{center}
- \begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircles(A,E B,H)
- \tkzDrawSegments(E,D C,F)
- \tkzDrawLines(E,O F,O)
- \tkzDrawLines[red](E,F H,G)
- \tkzDrawPoints(A,...,H,O)
- \tkzLabelPoints(A,B,D,F,G,O)
- \tkzLabelPoints[above](E,C,H)
- \tkzMarkAngles[size=.5](E,C,F E,D,F)
- \tkzFillAngles[green!40,opacity=.4,size=.5](E,C,F E,D,F)
- \tkzMarkAngles[size=.5](F,C,H G,D,E)
- \tkzFillAngles[red!40,opacity=.4,size=.5](F,C,H G,D,E)
- \end{tikzpicture}
-\end{center}
% subsection reim_v1 (end)
\subsection{Reim v2} % (fold)
\label{sub:reim_v2}
+
+\begin{minipage}{.5\textwidth}
\begin{Verbatim}
\directlua{%
init_elements ()
- scale = .6
- z.A = point: new (0,0)
- z.B = point: new (10,0)
- z.C = point: new (4,0)
- C.AC = circle: new (z.A,z.C)
- z.c,z.cp = get_points (C.AC: tangent_at (z.C))
- z.M = C.AC: point (0.6)
- L.MC = line: new (z.M,z.C)
- C.BC = circle: new (z.B,z.C)
- z.N = intersection (L.MC,C.BC)
- z.m,z.mp = get_points (C.AC: tangent_at (z.M))
- z.n,z.np = get_points (C.BC: tangent_at (z.N))
+ scale = .4
+ z.A = point: new (0,0)
+ z.B = point: new (10,0)
+ z.C = point: new (4,0)
+ C.AC = circle: new (z.A,z.C)
+ z.c,z.cp = get_points (C.AC: tangent_at (z.C))
+ z.M = C.AC: point (0.6)
+ L.MC = line: new (z.M,z.C)
+ C.BC = circle: new (z.B,z.C)
+ z.N = intersection (L.MC,C.BC)
+ z.m,z.mp = get_points (C.AC: tangent_at (z.M))
+ z.n,z.np = get_points (C.BC: tangent_at (z.N))
}
-\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircles(A,C B,C)
- \tkzDrawLines[new,add=1 and 1](M,m N,n C,c)
- \tkzDrawSegment(M,N)
- \tkzDrawPoints(A,B,C,M,N)
- \tkzLabelPoints[below right](A,B,C,M,N)
- \tkzFillAngles[blue!30,opacity=.3](m',M,C N,C,c' M,C,c n',N,C)
- \tkzLabelCircle[below=4pt,font=\scriptsize](A,C)(90){$(\alpha)$}
- \tkzLabelCircle[left=4pt,font=\scriptsize](B,C)(-90){$(\beta)$}
-\end{tikzpicture}
-\end{Verbatim}
+ \end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+ \directlua{%
+ init_elements ()
+ scale = .25
+ z.A = point: new (0,0)
+ z.B = point: new (10,0)
+ z.C = point: new (4,0)
+ C.AC = circle: new (z.A,z.C)
+ z.c,z.cp = get_points (C.AC: tangent_at (z.C))
+ z.M = C.AC: point (0.6)
+ L.MC = line: new (z.M,z.C)
+ C.BC = circle: new (z.B,z.C)
+ z.N = intersection (L.MC,C.BC)
+ z.m,z.mp = get_points (C.AC: tangent_at (z.M))
+ z.n,z.np = get_points (C.BC: tangent_at (z.N))
+ }
-\directlua{%
-init_elements ()
-scale = .4
-z.A = point: new (0,0)
-z.B = point: new (10,0)
-z.C = point: new (4,0)
-C.AC = circle: new (z.A,z.C)
-z.c,z.cp = get_points (C.AC: tangent_at (z.C))
-z.M = C.AC: point (0.6)
-L.MC = line: new (z.M,z.C)
-C.BC = circle: new (z.B,z.C)
-z.N = intersection (L.MC,C.BC)
-z.m,z.mp = get_points (C.AC: tangent_at (z.M))
-z.n,z.np = get_points (C.BC: tangent_at (z.N))
-}
+ \begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(A,C B,C)
+ \tkzDrawLines[new,add=1 and 1](M,m N,n C,c)
+ \tkzDrawSegment(M,N)
+ \tkzDrawPoints(A,B,C,M,N)
+ \tkzLabelPoints[below right](A,B,C,M,N)
+ \tkzFillAngles[blue!30,opacity=.3](m',M,C N,C,c' M,C,c n',N,C)
+ \tkzLabelCircle[below=4pt,font=\scriptsize](A,C)(90){$(\alpha)$}
+ \tkzLabelCircle[left=4pt,font=\scriptsize](B,C)(-90){$(\beta)$}
+ \end{tikzpicture}
+ \end{center}
+\end{minipage}
-\begin{center}
+\begin{Verbatim}
\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircles(A,C B,C)
- \tkzDrawLines[new,add=1 and 1](M,m N,n C,c)
- \tkzDrawSegment(M,N)
- \tkzDrawPoints(A,B,C,M,N)
- \tkzLabelPoints[below right](A,B,C,M,N)
- \tkzFillAngles[blue!30,opacity=.3](m',M,C N,C,c' M,C,c n',N,C)
- \tkzLabelCircle[below=4pt,font=\scriptsize](A,C)(90){$(\alpha)$}
- \tkzLabelCircle[left=4pt,font=\scriptsize](B,C)(-90){$(\beta)$}
+ \tkzGetNodes
+ \tkzDrawCircles(A,C B,C)
+ \tkzDrawLines[new,add=1 and 1](M,m N,n C,c)
+ \tkzDrawSegment(M,N)
+ \tkzDrawPoints(A,B,C,M,N)
+ \tkzLabelPoints[below right](A,B,C,M,N)
+ \tkzFillAngles[blue!30,opacity=.3](m',M,C N,C,c' M,C,c n',N,C)
+ \tkzLabelCircle[below=4pt,font=\scriptsize](A,C)(90){$(\alpha)$}
+ \tkzLabelCircle[left=4pt,font=\scriptsize](B,C)(-90){$(\beta)$}
\end{tikzpicture}
-\end{center}
-
+\end{Verbatim}
% subsection reim_v2 (end)
\subsection{Reim v3} % (fold)
\label{sub:reim_v3}
-\begin{Verbatim}
-\directlua{%
-init_elements ()
- z.A = point: new (0,0)
- z.B = point: new (8,0)
- z.C = point: new (2,6)
- L.AB = line : new (z.A,z.B)
- L.AC = line : new (z.A,z.C)
- L.BC = line : new (z.B,z.C)
- z.I = L.BC : point (0.75)
- z.J = L.AC : point (0.4)
- z.K = L.AB : point (0.5)
- T.AKJ = triangle : new (z.A,z.K,z.J)
- T.BIK = triangle : new (z.B,z.I,z.K)
- T.CIJ = triangle : new (z.C,z.I,z.J)
- z.x = T.AKJ.circumcenter
- z.y = T.BIK.circumcenter
- z.z = T.CIJ.circumcenter
- C.xK = circle: new (z.x,z.K)
- C.yK = circle: new (z.y,z.K)
- z.O,_ = intersection (C.xK,C.yK)
- C.zO = circle: new (z.z,z.O)
- L.KO = line: new (z.K,z.O)
- z.D = intersection (L.KO,C.zO)
-}
-
-\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawSegments(K,D D,C)
- \tkzDrawPolygon[teal](A,B,C)
- \tkzDrawCircles[orange](x,A y,B z,C)
- \tkzDrawPoints[fill=white](A,B,C,I,J,K,D)
- \tkzLabelPoints[below](A,B,J,K,O)
- \tkzLabelPoints[above](C,D,I)
- \tkzDrawPoints[fill=black](O)
- \tkzLabelCircle[below=4pt,font=\scriptsize](x,A)(20){$(\alpha)$}
- \tkzLabelCircle[left=4pt,font=\scriptsize](y,B)(60){$(\beta)$}
- \tkzLabelCircle[below=4pt,font=\scriptsize](z,C)(60){$(\gamma)$}
-\end{tikzpicture}
-\end{Verbatim}
-\directlua{%
-init_elements ()
- scale = .75
- z.A = point: new (0,0)
- z.B = point: new (8,0)
- z.C = point: new (2,6)
- L.AB = line : new (z.A,z.B)
- L.AC = line : new (z.A,z.C)
- L.BC = line : new (z.B,z.C)
- z.I = L.BC : point (0.75)
- z.J = L.AC : point (0.4)
- z.K = L.AB : point (0.5)
- T.AKJ = triangle : new (z.A,z.K,z.J)
- T.BIK = triangle : new (z.B,z.I,z.K)
- T.CIJ = triangle : new (z.C,z.I,z.J)
- z.x = T.AKJ.circumcenter
- z.y = T.BIK.circumcenter
- z.z = T.CIJ.circumcenter
- C.xK = circle: new (z.x,z.K)
- C.yK = circle: new (z.y,z.K)
- z.O,_ = intersection (C.xK,C.yK)
- C.zO = circle: new (z.z,z.O)
- L.KO = line: new (z.K,z.O)
- z.D = intersection (L.KO,C.zO)
-}
-
-\begin{center}
+\begin{minipage}{.5\textwidth}
+ \begin{Verbatim}
+ \directlua{%
+ init_elements ()
+ z.A = point: new (0,0)
+ z.B = point: new (8,0)
+ z.C = point: new (2,6)
+ L.AB = line : new (z.A,z.B)
+ L.AC = line : new (z.A,z.C)
+ L.BC = line : new (z.B,z.C)
+ z.I = L.BC : point (0.75)
+ z.J = L.AC : point (0.4)
+ z.K = L.AB : point (0.5)
+ T.AKJ = triangle : new (z.A,z.K,z.J)
+ T.BIK = triangle : new (z.B,z.I,z.K)
+ T.CIJ = triangle : new (z.C,z.I,z.J)
+ z.x = T.AKJ.circumcenter
+ z.y = T.BIK.circumcenter
+ z.z = T.CIJ.circumcenter
+ C.xK = circle: new (z.x,z.K)
+ C.yK = circle: new (z.y,z.K)
+ z.O,_ = intersection (C.xK,C.yK)
+ C.zO = circle: new (z.z,z.O)
+ L.KO = line: new (z.K,z.O)
+ z.D = intersection (L.KO,C.zO)
+ }
\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawSegments(K,D D,C)
- \tkzDrawPolygon[teal](A,B,C)
- \tkzDrawCircles[orange](x,A y,B z,C)
- \tkzDrawPoints[fill=white](A,B,C,I,J,K,D)
- \tkzLabelPoints[below](A,B,J,K,O)
- \tkzLabelPoints[above](C,D,I)
- \tkzDrawPoints[fill=black](O)
- \tkzLabelCircle[below=4pt,font=\scriptsize](x,A)(20){$(\alpha)$}
- \tkzLabelCircle[left=4pt,font=\scriptsize](y,B)(60){$(\beta)$}
- \tkzLabelCircle[below=4pt,font=\scriptsize](z,C)(60){$(\gamma)$}
+ \tkzGetNodes
+ \tkzDrawSegments(K,D D,C)
+ \tkzDrawPolygon[teal](A,B,C)
+ \tkzDrawCircles[orange](x,A y,B z,C)
+ \tkzDrawPoints[fill=white](A,B,C,I,J,K,D)
+ \tkzLabelPoints[below](A,B,J,K,O)
+ \tkzLabelPoints[above](C,D,I)
+ \tkzDrawPoints[fill=black](O)
+ \tkzLabelCircle[below=4pt,font=\scriptsize](x,A)(20){$(\alpha)$}
+ \tkzLabelCircle[left=4pt,font=\scriptsize](y,B)(60){$(\beta)$}
+ \tkzLabelCircle[below=4pt,font=\scriptsize](z,C)(60){$(\gamma)$}
\end{tikzpicture}
-\end{center}
-
+ \end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+ \directlua{%
+ init_elements ()
+ scale = .75
+ z.A = point: new (0,0)
+ z.B = point: new (8,0)
+ z.C = point: new (2,6)
+ L.AB = line : new (z.A,z.B)
+ L.AC = line : new (z.A,z.C)
+ L.BC = line : new (z.B,z.C)
+ z.I = L.BC : point (0.75)
+ z.J = L.AC : point (0.4)
+ z.K = L.AB : point (0.5)
+ T.AKJ = triangle : new (z.A,z.K,z.J)
+ T.BIK = triangle : new (z.B,z.I,z.K)
+ T.CIJ = triangle : new (z.C,z.I,z.J)
+ z.x = T.AKJ.circumcenter
+ z.y = T.BIK.circumcenter
+ z.z = T.CIJ.circumcenter
+ C.xK = circle: new (z.x,z.K)
+ C.yK = circle: new (z.y,z.K)
+ z.O,_ = intersection (C.xK,C.yK)
+ C.zO = circle: new (z.z,z.O)
+ L.KO = line: new (z.K,z.O)
+ z.D = intersection (L.KO,C.zO)
+ }
+ \begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawSegments(K,D D,C)
+ \tkzDrawPolygon[teal](A,B,C)
+ \tkzDrawCircles[orange](x,A y,B z,C)
+ \tkzDrawPoints[fill=white](A,B,C,I,J,K,D)
+ \tkzLabelPoints[below](A,B,J,K,O)
+ \tkzLabelPoints[above](C,D,I)
+ \tkzDrawPoints[fill=black](O)
+ \tkzLabelCircle[below=4pt,font=\scriptsize](x,A)(20){$(\alpha)$}
+ \tkzLabelCircle[left=4pt,font=\scriptsize](y,B)(60){$(\beta)$}
+ \tkzLabelCircle[below=4pt,font=\scriptsize](z,C)(60){$(\gamma)$}
+ \end{tikzpicture}
+ \end{center}
+\end{minipage}
% subsection reim_v3 (end)
@@ -3385,19 +3406,19 @@ z.C,z.D = z.E : homothety(2,z.A,z.B)
\begin{Verbatim}
\directlua{%
init_elements ()
- scale = .8
- z.A = point: new (0 , 0)
- z.B = point: new (6 , 0)
- z.C = point: new (1 , 5)
- z.Bp = point: new (2 , 0)
- T.ABC = triangle: new (z.A,z.B,z.C)
- L.AB = line: new (z.A,z.B)
- z.O = T.ABC.circumcenter
- C.OA = circle: new (z.O,z.A)
- z.D = C.OA: point (4.5)
- L.AO = line: new (z.A,z.O)
- z.b1,z.b2 = get_points (C.OA: tangent_at (z.B))
- z.H = L.AB: projection (z.O)
+ scale = .75
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.C = point: new (1 , 5)
+ z.Bp = point: new (2 , 0)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ L.AB = line: new (z.A,z.B)
+ z.O = T.ABC.circumcenter
+ C.OA = circle: new (z.O,z.A)
+ z.D = C.OA: point (4.5)
+ L.AO = line: new (z.A,z.O)
+ z.b1,z.b2 = get_points(C.OA: tangent_at(z.B))
+ z.H = L.AB: projection (z.O)
}
\begin{tikzpicture}
\tkzGetNodes
@@ -3415,7 +3436,7 @@ init_elements ()
\begin{minipage}{.5\textwidth}
\directlua{%
init_elements ()
-scale = 0.75
+scale = 0.75
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
z.C = point: new (1 , 5)
@@ -3426,18 +3447,16 @@ z.O = T.ABC.circumcenter
C.OA = circle: new (z.O,z.A)
z.D = C.OA: point (4.5)
L.AO = line: new (z.A,z.O)
-z.b1,z.b2 = get_points (C.OA: tangent_at (z.B))
+z.b1,z.b2 = get_points (C.OA: tangent_at (z.B))
z.H = L.AB: projection (z.O)
}
-
-
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(O,A)
\tkzDrawPolygon(A,B,C)
\tkzDrawSegments[new](A,O B,O O,H A,D D,B)
- \tkzDrawLine(b1,b2)
+ \tkzDrawSegment(b1,b2)
\tkzDrawPoints(A,B,C,D,H,O)
\tkzFillAngles[green!20,opacity=.3](H,O,B A,C,B A,B,b1)
\tkzFillAngles[teal!20,opacity=.3](A,D,B b2,B,A)
@@ -3452,7 +3471,6 @@ z.H = L.AB: projection (z.O)
\subsection{Three chords} % (fold)
\label{sub:three_chords}
-\begin{Verbatim}
\directlua{%
init_elements ()
z.O = point: new (0 , 0)
@@ -3483,9 +3501,9 @@ z.Ap = intersection (L.GB,C.xB)
z.Ep,_ = intersection (L.GE,C.xF)
z.Cp,_ = intersection (L.GD,C.xD)
}
-\end{Verbatim}
-
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
\directlua{%
init_elements ()
z.O = point: new (0 , 0)
@@ -3516,30 +3534,9 @@ z.Ap = intersection (L.GB,C.xB)
z.Ep,_ = intersection (L.GE,C.xF)
z.Cp,_ = intersection (L.GD,C.xD)
}
-
-\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{Verbatim}
-\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircles(O,B)
- \tkzDrawCircles[cyan](P,B)
- \tkzDrawCircles[red](w,E)
- \tkzDrawCircles[new](x,F)
- \tkzDrawSegments(A,G E,G C,G)
- \tkzDrawPolygons[new](A,E,C A',E',C')
- \tkzDrawPoints(A,...,G,A',E',C',O,P)
- \begin{scope}[font=\scriptsize]
- \tkzLabelPoints(A,...,F)
- \tkzLabelPoints[above left](G,A',E',C')
- \tkzLabelCircle[left](O,B)(30){$(\beta)$}
- \tkzLabelCircle[below](P,A)(40){$(\gamma)$}
- \tkzLabelCircle[right](w,C)(90){$(\alpha)$}
- \tkzLabelCircle[left](x,B)(-230){$((\delta))$}
- \end{scope}
-\end{tikzpicture}
\end{Verbatim}
\end{minipage}
-\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
+\begin{minipage}{.5\textwidth}
\begin{center}
\begin{tikzpicture}[scale=.75]
\tkzGetNodes
@@ -3561,6 +3558,29 @@ z.Cp,_ = intersection (L.GD,C.xD)
\end{tikzpicture}
\end{center}
\end{minipage}
+
+\begin{Verbatim}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircles(O,B)
+ \tkzDrawCircles[cyan](P,B)
+ \tkzDrawCircles[red](w,E)
+ \tkzDrawCircles[new](x,F)
+ \tkzDrawSegments(A,G E,G C,G)
+ \tkzDrawPolygons[new](A,E,C A',E',C')
+ \tkzDrawPoints(A,...,G,A',E',C',O,P)
+ \begin{scope}[font=\scriptsize]
+ \tkzLabelPoints(A,...,F)
+ \tkzLabelPoints[above left](G,A',E',C')
+ \tkzLabelCircle[left](O,B)(30){$(\beta)$}
+ \tkzLabelCircle[below](P,A)(40){$(\gamma)$}
+ \tkzLabelCircle[right](w,C)(90){$(\alpha)$}
+ \tkzLabelCircle[left](x,B)(-230){$((\delta))$}
+ \end{scope}
+\end{tikzpicture}
+\end{Verbatim}
+
+
% subsection three_chords (end)
\subsection{Three tangents} % (fold)
@@ -3768,7 +3788,8 @@ Draw lines through the symmedian point $L$ and parallel to the sides of the tria
[\href{https://mathworld.wolfram.com/FirstLemoineCircle.html}{Weisstein, Eric W. "First Lemoine Circle." From MathWorld--A Wolfram Web Resource.}]
-\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
+\vspace{6pt}
+\begin{minipage}[t]{.35\textwidth}\vspace{0pt}%
\directlua{%
init_elements ()
z.A = point: new (1,1)
@@ -3795,23 +3816,21 @@ init_elements ()
\end{tikzpicture}
\end{center}
\end{minipage}
-
-\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
+\begin{minipage}[t]{.65\textwidth}\vspace{0pt}%
\begin{Verbatim}
\directlua{%
init_elements ()
- z.A = point: new (1,1)
- z.B = point: new (5,1)
- z.C = point: new (2.2,4)
- T = triangle: new (z.A,z.B,z.C)
- z.O = T.circumcenter
- C.first_lemoine = T:first_lemoine_circle()
- z.o,z.w = get_points( C.first_lemoine )
- z.y1,z.y2 = intersection (T.ab,C.first_lemoine)
- z.y5,z.y6 = intersection (T.bc,C.first_lemoine)
- z.y3,z.y4 = intersection (T.ca,C.first_lemoine)
- z.L = T : lemoine_point ()
-}
+ z.A = point: new (1,1)
+ z.B = point: new (5,1)
+ z.C = point: new (2.2,4)
+ T = triangle:new(z.A,z.B,z.C)
+ z.O = T.circumcenter
+ C.first_lemoine = T:first_lemoine_circle()
+ z.o,z.w = get_points( C.first_lemoine )
+ z.y1,z.y2= intersection (T.ab,C.first_lemoine)
+ z.y5,z.y6= intersection (T.bc,C.first_lemoine)
+ z.y3,z.y4= intersection (T.ca,C.first_lemoine)
+ z.L = T:lemoine_point ()
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C)
@@ -4046,177 +4065,6 @@ z.z_0,z.z_1 = get_points (L.anti)
\end{minipage}
% subsection antiparallel_through_lemoine_point (end)
-\subsection{Soddy circle without function} % (fold)
-\label{sub:soddy}
-
-\begin{Verbatim}
-\directlua{%
-init_elements ()
-z.A = point : new ( 0 , 0 )
-z.B = point : new ( 5 , 0 )
-z.C = point : new ( 0.5 , 4 )
-T.ABC = triangle : new ( z.A,z.B,z.C )
-z.I = T.ABC.incenter
-z.E,z.F,z.G = T.ABC : projection (z.I)
-C.ins = circle : new (z.I,z.E)
-T.orthic = T.ABC : orthic ()
-z.Ha,z.Hb,z.Hc = get_points (T.orthic)
-C.CF = circle : new ( z.C , z.F )
-C.AG = circle : new ( z.A , z.G )
-C.BE = circle : new ( z.B , z.E )
-L.Ah = line : new ( z.A , z.Ha )
-L.Bh = line : new ( z.B , z.Hb )
-L.Ch = line : new ( z.C , z.Hc )
-z.X,z.Xp = intersection (L.Ah,C.AG)
-z.Y,z.Yp = intersection (L.Bh,C.BE)
-z.Z,z.Zp = intersection (L.Ch,C.CF)
-L.XpE = line : new (z.Xp,z.E)
-L.YpF = line : new (z.Yp,z.F)
-L.ZpG = line : new (z.Zp,z.G)
-z.S = intersection (L.XpE,L.YpF)
-z.Xi = intersection(L.XpE,C.AG)
-z.Yi = intersection(L.YpF,C.BE)
-_,z.Zi = intersection(L.ZpG,C.CF)
-z.S = triangle : new (z.Xi,z.Yi,z.Zi).circumcenter
-C.soddy_int = circle : new (z.S,z.Xi)
-C.soddy_ext = C.ins : inversion (C.soddy_int)
-z.w = C.soddy_ext.center
-z.s = C.soddy_ext.through
-z.Xip,z.Yip,z.Zip = C.ins : inversion (z.Xi,z.Yi,z.Zi)
-}
-
-\begin{tikzpicture}
-\tkzGetNodes
-\tkzDrawPolygon(A,B,C)
-\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,X,Y,Z,X',Y',Z',Xi,Yi,Zi,I)
-\tkzDrawPoints(Xi',Yi',Zi',S)
-\tkzLabelPoints(A,B,C,E,F,G,X,Y,Z,X',Y',Z')
-\tkzDrawCircles(A,G B,E C,F I,E S,Xi w,s)
-\tkzDrawLines(X',Ha Y',Hb Z',Hc)
-\tkzDrawLines(X',E Y',F Z',G)
-\end{tikzpicture}
-\end{Verbatim}
-
-\directlua{%
-init_elements ()
-z.A = point : new ( 0 , 0 )
-z.B = point : new ( 5 , 0 )
-z.C = point : new ( 0.5 , 4 )
-T.ABC = triangle : new ( z.A,z.B,z.C )
-z.I = T.ABC.incenter
-z.E,z.F,z.G = T.ABC : projection (z.I)
-C.ins = circle : new (z.I,z.E)
-T.orthic = T.ABC : orthic ()
-z.Ha,z.Hb,z.Hc = get_points (T.orthic)
-C.CF = circle : new ( z.C , z.F )
-C.AG = circle : new ( z.A , z.G )
-C.BE = circle : new ( z.B , z.E )
-L.Ah = line : new ( z.A , z.Ha )
-L.Bh = line : new ( z.B , z.Hb )
-L.Ch = line : new ( z.C , z.Hc )
-z.X,z.Xp = intersection (L.Ah,C.AG)
-z.Y,z.Yp = intersection (L.Bh,C.BE)
-z.Z,z.Zp = intersection (L.Ch,C.CF)
-L.XpE = line : new (z.Xp,z.E)
-L.YpF = line : new (z.Yp,z.F)
-L.ZpG = line : new (z.Zp,z.G)
-z.S = intersection (L.XpE,L.YpF)
-z.Xi = intersection(L.XpE,C.AG)
-z.Yi = intersection(L.YpF,C.BE)
-_,z.Zi = intersection(L.ZpG,C.CF)
-z.S = triangle : new (z.Xi,z.Yi,z.Zi).circumcenter
-C.soddy_int = circle : new (z.S,z.Xi)
-C.soddy_ext = C.ins : inversion (C.soddy_int)
-z.w = C.soddy_ext.center
-z.s = C.soddy_ext.through
-z.Xip,z.Yip,z.Zip = C.ins : inversion (z.Xi,z.Yi,z.Zi)
-}
-
-\begin{tikzpicture}
-\tkzGetNodes
-\tkzDrawPolygon(A,B,C)
-\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,X,Y,Z,X',Y',Z',Xi,Yi,Zi,I)
-\tkzDrawPoints(Xi',Yi',Zi',S)
-\tkzLabelPoints(A,B,C,E,F,G,X,Y,Z,X',Y',Z')
-\tkzDrawCircles(A,G B,E C,F I,E S,Xi w,s)
-\tkzDrawLines(X',Ha Y',Hb Z',Hc)
-\tkzDrawLines(X',E Y',F Z',G)
-\end{tikzpicture}
-% subsection soddy (end)
-
-\subsection{Soddy circle with function} % (fold)
-\label{sub:soddy_circle_with_function}
-
-\directlua{%
-init_elements ()
-z.A = point : new ( 0 , 0 )
-z.B = point : new ( 5 , 0 )
-z.C = point : new (4 , 4 )
-T.ABC = triangle : new ( z.A,z.B,z.C )
-z.I = T.ABC.incenter
-z.E,z.F,z.G = T.ABC : projection (z.I)
-T.orthic = T.ABC : orthic ()
-z.Ha,z.Hb,z.Hc = get_points (T.orthic)
-C.ins = circle : new (z.I,z.E)
-z.s,z.xi,z.yi,z.zi = T.ABC : soddy_center ()
-C.soddy_int = circle : new (z.s,z.xi)
-C.soddy_ext = C.ins : inversion (C.soddy_int)
-z.w = C.soddy_ext.center
-z.t = C.soddy_ext.through
-z.Xip,z.Yip,z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
-}
-
-\begin{minipage}{.5\textwidth}
- \begin{Verbatim}
- \directlua{%
-init_elements ()
- z.A = point : new ( 0 , 0 )
- z.B = point : new ( 5 , 0 )
- z.C = point : new (4 , 4 )
- T.ABC = triangle : new ( z.A,z.B,z.C )
- z.I = T.ABC.incenter
- z.E,z.F,z.G = T.ABC : projection (z.I)
- T.orthic = T.ABC : orthic ()
- z.Ha,z.Hb,z.Hc = get_points (T.orthic)
- C.ins = circle : new (z.I,z.E)
- z.s,z.xi,z.yi,
- z.zi = T.ABC : soddy_center ()
- C.soddy_int = circle : new (z.s,z.xi)
- C.soddy_ext = C.ins : inversion (C.soddy_int)
- z.w = C.soddy_ext.center
- z.t = C.soddy_ext.through
- z.Xip,z.Yip,
- z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
- }
-\end{Verbatim}
-\end{minipage}
-\begin{minipage}{.5\textwidth}
-\begin{tikzpicture}[scale=.6]
-\tkzGetNodes
-\tkzDrawPolygon(A,B,C)
-\tkzDrawCircles(A,G B,E C,F I,E s,xi w,t)
-\tkzDrawPoints(A,B,C,E,F,G,s,w,xi,t)
-\tkzLabelPoints(A,B,C)
-\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,xi,yi,zi,I)
-\tkzDrawPoints(Xi',Yi',Zi')
-\tkzLabelPoints(A,B,C,E,F,G)
-\end{tikzpicture}
-\end{minipage}
-
-\begin{Verbatim}
-\begin{tikzpicture}
-\tkzGetNodes
-\tkzDrawPolygon(A,B,C)
-\tkzDrawCircles(A,G B,E C,F I,E s,xi w,t)
-\tkzDrawPoints(A,B,C,E,F,G,s,w,xi,t)
-\tkzLabelPoints(A,B,C)
-\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,xi,yi,zi,I)
-\tkzDrawPoints(Xi',Yi',Zi')
-\tkzLabelPoints(A,B,C,E,F,G)
-\end{tikzpicture}
-\end{Verbatim}
-% subsection soddy_circle_with_function (end)
-
\subsection{Pappus chain} % (fold)
\label{sub:pappus_chain}
@@ -4368,8 +4216,7 @@ end
\end{minipage}
% subsection three_circles (end)
-\subsection{p
-Pentagons in a golden arbelos} % (fold)
+\subsection{Pentagons in a golden arbelos} % (fold)
\label{sub:golden_arbelos}
\directlua{%
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-indepthstudy.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-indepthstudy.tex
index e49c7892afc..e40f88e4318 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-indepthstudy.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-indepthstudy.tex
@@ -300,7 +300,7 @@ init_elements ()
z.e = z.a * z.b
z.f = z.a / z.b
z.ap = point.conj (z.a)
- -- = z.a : conj ()
+ % = z.a : conj ()
z.g = z.b* point(math.cos(math.pi/2),
math.sin(math.pi/2))
}
@@ -329,7 +329,7 @@ init_elements ()
z.e = z.a * z.b
z.f = z.a / z.b
z.ap = point.conj (z.a)
- -- = z.a : conj ()
+ % = z.a : conj ()
z.g = z.b* point(math.cos(math.pi/2),math.sin(math.pi/2))
}
@@ -472,8 +472,235 @@ init_elements ()
\end{tikzpicture}
\end{minipage}
+\begin{Verbatim}
+ \begin{tikzpicture}
+ \pgfkeys{/pgf/number format/.cd,use comma}
+ \let\pmpn\pgfmathprintnumber
+ \tkzGetNodes
+ \tkzDrawPolygon[cyan](A_1,A_...,A_\tkzUseLua{max})
+ \tkzDrawCircle[red](O,A_1)
+ \tkzDrawPoints[color=black](A_1,A_...,A_\tkzUseLua{max},O)
+ \tkzDrawSegments(O,A_1 O,A_2)
+ \tkzMarkAngle[size=2](A_1,O,A_2)
+ \tkzLabelAngle[pos=3.4](A_1,O,A_2){$\pmpn{\tkzUseLua{a}}^\circ$}
+ \end{tikzpicture}
+\end{Verbatim}
+
+
+
% subsection loop_and_table_notation (end)
+\subsection{Use of tables} % (fold)
+\label{sub:use_of_tables}
+
+\subsubsection{Working with tables} % (fold)
+\label{ssub:working_with_tables}
+In this example, we search for circles that are tangent to both a given circle and a line, demonstrating that their centers lie on a parabola.
+
+The \code{points} table contains the coordinates of the centers of the identified circles. \TIKZ only requires a list of coordinate pairs enclosed in brackets.
+The table that defines the circles is slightly more complex. It contains the centers and the tangency points between the circles and the given elements. These are sequences of four coordinates, stored in the table. Finally, the sequences are concatenated into a string using a comma (",") as the separator. Coordinates are read with the \tkzcname{foreach} macro, utilizing the |expand list| option.
+
+
+\begin{Verbatim}
+\makeatletter
+\def\tkzPlotCoordinates{\pgfutil@ifnextchar[{\tkz@PlotCoordinates}{\tkz@PlotCoordinates[]}}
+\def\tkz@PlotCoordinates[#1]#2{%
+\draw[#1] plot coordinates {\directlua{tex.print(#2)}};}
+\makeatother
+
+
+\directlua{
+scale =.5
+z.O = point : new (0,0)
+z.P = point : new (0,6)
+z.M = point : new (0,3)
+z.I = point : new (1,0)
+C.PM = circle : new (z.P,z.M)
+list = {}
+points = {}
+ for t = -0.24, 0.24, 0.004 do
+ if (t> - 0.002 and t< 0.002) then else
+ z.A = C.PM : point (t)
+ L.OI = line : new (z.O,z.I)
+ L.PA = line : new (z.P,z.A)
+ z.C = intersection (L.OI,L.PA)
+ L.tgt = C.PM : tangent_at (z.A)
+ z.X = intersection (L.tgt,L.OI)
+ z.o = bisector (z.X,z.A,z.C).pb
+ table.insert (points, "("..z.o.re..","..z.o.im..")")
+ table.insert (list,z.o.re.."/"..z.o.im.."/"..z.A.re.."/"..z.A.im)
+ end
+ end
+ list = table.concat(list,",")
+ }
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzPlotCoordinates[smooth,blue]{points}
+ \foreach[expand list] \r/\s/\u/\v in {\tkzUseLua{list}}
+{
+ \tkzDefPoint(\u,\v){A}
+ \tkzDefPoint(\r,\s){o}
+ \tkzDrawCircle(o,A)
+ \tkzDrawPoints[red,size=.2pt](o,A)
+}
+\tkzDrawCircles(P,M)
+\tkzDrawPoints(P,M)
+\end{tikzpicture}
+\end{Verbatim}
+
+\makeatletter
+\def\tkzPlotCoordinates{\pgfutil@ifnextchar[{\tkz@PlotCoordinates}{\tkz@PlotCoordinates[]}}
+\def\tkz@PlotCoordinates[#1]#2{%
+\draw[#1] plot coordinates {\directlua{tex.print(#2)}};}
+\makeatother
+
+
+\directlua{
+scale =.5
+z.O = point : new (0,0)
+z.P = point : new (0,6)
+z.M = point : new (0,3)
+z.I = point : new (1,0)
+C.PM = circle : new (z.P,z.M)
+list = {}
+points = {}
+ for t = -0.24, 0.24, 0.004 do
+ if (t> - 0.002 and t< 0.002) then else
+ z.A = C.PM : point (t)
+ L.OI = line : new (z.O,z.I)
+ L.PA = line : new (z.P,z.A)
+ z.C = intersection (L.OI,L.PA)
+ L.tgt = C.PM : tangent_at (z.A)
+ z.X = intersection (L.tgt,L.OI)
+ z.o = bisector (z.X,z.A,z.C).pb
+ table.insert (points, "("..z.o.re..","..z.o.im..")")
+ table.insert (list,z.o.re.."/"..z.o.im.."/"..z.A.re.."/"..z.A.im)
+ end
+ end
+ list = table.concat(list,",")
+ }
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzPlotCoordinates[smooth,blue]{points}
+ \foreach[expand list] \r/\s/\u/\v in {\tkzUseLua{list}}
+{
+ \tkzDefPoint(\u,\v){A}
+ \tkzDefPoint(\r,\s){o}
+ \tkzDrawCircle(o,A)
+ \tkzDrawPoints[red,size=.2pt](o,A)
+}
+\tkzDrawCircles(P,M)
+\tkzDrawPoints(P,M)
+\end{tikzpicture}
+
+% subsubsection working_with_tables (end)
+
+
+\subsubsection{Plotting a curve} % (fold)
+\label{ssub:plotting_a_curve}
+In this example, we'll use lua to plot the representative curve of the function
+\[ y = f(x) = x*exp(-x^2)+1\].
+
+We'll use a table called “points” to store the coordinates of the points on the curve.
+
+
+\makeatletter\let\percentchar\@percentchar\makeatother
+\directlua{
+function checknumber(x)
+ if string.find(x, "e") then
+ return string.format("\percentchar.12f",x)
+ else
+ return x
+ end
+end
+}
+
+\def\val#1{%
+\directlua{%
+ local expr = [[\tkzfct]]
+ local f = load (("
+ return function (x)
+ return (\percentchar s)
+ end"):format (expr), nil, 't', math) ()
+tex.print(f(#1))
+}}
+
+\def\calcval(#1,#2,#3,#4){%
+\directlua{
+local min, max, nb = #2, #3, #4
+local expr = [[#1]]
+local points = {}
+
+local f = load (("return function (x) return (\percentchar s) end"):format (expr), nil, 't', math) ()
+
+for t = min,max,(max-min)/nb do
+local x = checknumber(t)
+local y = checknumber(f(t))
+ table.insert (points, "("..x..","..y..")")
+ end
+ tex.print(points)
+ }
+}
+
+\def\tkzfct{x*exp(-x^2)+1}
+
+\begin{tikzpicture}[scale = 2]
+ \tkzInit[xmin=-3,xmax=3,ymin=-2,ymax=2]
+ \tkzDrawX\tkzDrawY
+ \draw[smooth] plot coordinates {\calcval(\tkzfct,-3,2,100)};
+ \tkzDrawPoint(-3,\val{-3})
+ \tkzDrawPoint(1,\val{1})
+ \tkzDrawPoint(2,\val{2})
+\end{tikzpicture}
+
+\begin{Verbatim}
+\makeatletter\let\percentchar\@percentchar\makeatother
+\directlua{
+function checknumber(x)
+ if string.find(x, "e") then
+ return string.format("\percentchar.12f",x)
+ else
+ return x
+ end
+end}
+\def\val#1{\directlua{%
+ local expr = [[\tkzfct]]
+ local f = load (("return function (x)
+ return (\percentchar s) end"):format (expr), nil, 't', math) ()
+tex.print(f(#1))
+}}
+\def\calcval(#1,#2,#3,#4){%
+\directlua{%
+ local min, max, nb = #2, #3, #4
+ local expr = [[#1]]
+ local points = {}
+ local f = load (("return function (x)
+ return (\percentchar s) end"):format (expr), nil, 't', math) ()
+for t = min,max,(max-min)/nb do
+ local x = checknumber(t)
+ local y = checknumber(f(t))
+ if (y==math.huge or y==-math.huge ) then tex.print("problem") end
+ table.insert (points, "("..x..","..y..")")
+ end
+ tex.print(points)
+}}
+\def\tkzfct{x*exp(-x^2)+1}
+\begin{tikzpicture}
+ \tkzInit[xmin=-3,xmax=3,ymin=-2,ymax=2]
+ \tkzDrawX\tkzDrawY
+ \draw[smooth] plot coordinates {\calcval(\tkzfct,-3,2,100)};
+ \tkzDrawPoint(-3,\val{-3})
+ \tkzDrawPoint(1,\val{1})
+ \tkzDrawPoint(2,\val{2})
+\end{tikzpicture}
+\end{Verbatim}
+
+% subsubsection plotting_a_curve (end)
+
+% ssubsection use_of_tables (end)
+
\subsection{In\_out method} % (fold)
\label{sub:in_out_method}
@@ -586,10 +813,10 @@ We've just seen how to use |^| to obtain the determinant associated with two vec
Here's the definition and transformation of the power of a complex number.
\begin{Verbatim}
- -- determinant is '^' ad - bc
+ % determinant is '^' ad - bc
function point.__pow(z1,z2)
local z
- z = point.conj(z1) * z2 -- (a-ib) (c+id) = ac+bd + i(ad - bc)
+ z = point.conj(z1) * z2 % (a-ib) (c+id) = ac+bd + i(ad - bc)
return z.im
end
\end{Verbatim}
@@ -602,10 +829,10 @@ Here's the definition and transformation of the power of a complex number.
Here's the definition of the dot product between two affixes and the concatenation transformation.
\begin{Verbatim}
--- dot product is '..' result ac + bd
+% dot product is '..' result ac + bd
function point.__concat(z1,z2)
local z
- z = z1 * point.conj(z2) -- (a+ib) (c-id) = ac+bd + i(bc-ad)
+ z = z1 * point.conj(z2) % (a+ib) (c-id) = ac+bd + i(bc-ad)
return z.re
end
\end{Verbatim}
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-intersection.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-intersection.tex
index 53eff14d51a..acf50a22a1b 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-intersection.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-intersection.tex
@@ -200,7 +200,7 @@ init_elements ()
z.e = L.ab: point (-.2)
E = ellipse: foci (z.a,z.b,z.e)
z.u,z.v = intersection (E,L.mn)
- -- transfer to tex
+ % transfer to tex
a = E.Rx
b = E.Ry
ang = math.deg(E.slope)
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-inversion.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-inversion.tex
index bb067244d46..bba30de71a4 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-inversion.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-inversion.tex
@@ -1,4 +1,4 @@
\section{Inversion} % (fold)
\label{sec:inversion}
-midcircless
+midcircles
% section inversion (end) \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex
index 427dfe3c2d7..b520f6d058a 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex
@@ -1,6 +1,6 @@
% !TEX TS-program = lualatex
% encoding : utf8
-% Documentation of tkz-elements v3.00c
+% Documentation of tkz-elements v3.10c
% Copyright 2024 Alain Matthes
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -21,10 +21,10 @@
headings = small
]{tkz-doc}
\gdef\tkznameofpack{tkz-elements}
-\gdef\tkzversionofpack{3.00c}
+\gdef\tkzversionofpack{3.10c}
\gdef\tkzdateofpack{\today}
\gdef\tkznameofdoc{tkz-elements.pdf}
-\gdef\tkzversionofdoc{3.00c}
+\gdef\tkzversionofdoc{3.10c}
\gdef\tkzdateofdoc{\today}
\gdef\tkzauthorofpack{Alain Matthes}
\gdef\tkzadressofauthor{}
@@ -66,6 +66,8 @@
\usepackage{fontspec}
\setmainfont{texgyrepagella}[
+ UprightFont = texgyrepagella-regular.otf,
+ SmallCapsFeatures={FakeSmallCaps},
Extension = .otf,
UprightFont = *-regular ,
ItalicFont = *-italic ,
@@ -78,7 +80,8 @@
ItalicFont = *-italic ,
BoldFont = *-bold ,
BoldItalicFont = *-bolditalic ,
-]
+ BoldItalicFeatures = {RawFeature=-smcp} % Désactiver smcp
+ ]
\setmonofont{lmmono10-regular.otf}[
Numbers={Lining,SlashedZero},
@@ -178,10 +181,11 @@ sharp corners
\tkzTitleFrame{tkz-elements \tkzversionofpack\\Euclidean Geometry}
\clearpage
-\defoffile{\lefthand\
+
+\defoffile{\lefthand\ \\
This document compiles some notes about \tkzname{\tkznameofpack}, the initial version of a \code{Lua} library designed to perform all the necessary calculations for defining objects in Euclidean geometry figures. Your document must be compiled using Lua\LaTeX.\\
With \pkg{tkz-elements}, definitions and calculations are exclusively conducted using \pkg{Lua}. \\
- The primary programming approach offered is oriented towards \code{object programming}, utilizing object classes such as point, line, triangle, circle, and ellipse. Currently, after the calculations are completed, \pkg{tkz-euclide} or \pkg{TikZ} is used for drawing purposes.\\
+ The primary programming approach offered is oriented towards object programming, utilizing object classes such as point, line, triangle, circle, and ellipse. Currently, after the calculations are completed, \pkg{tkz-euclide} is used for drawing purposes. (but you can use \TIKZ)\\
I discovered Lua and object-oriented programming while developing this package, so it's highly likely that I've made a few mistakes. If you'd like to contribute to the development of this package or provide advice on how to proceed, please contact me via email.
}
@@ -236,6 +240,7 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
\input{TKZdoc-elements-classes-misc.tex}
\input{TKZdoc-elements-intersection.tex}
\input{TKZdoc-elements-indepthstudy.tex}
+\input{TKZdoc-elements-theorems.tex}
\input{TKZdoc-elements-examples.tex}
\clearpage\newpage
@@ -246,7 +251,7 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
\label{sec:cheat_sheet}
% section cheat_sheet (end)
-|r| denotes a real number, |cx| complex number, |d| a positive real number, |n| an integer, |an| an angle, |b| a boolean, |s| a character string, |pt| a point, |t| a table, |m| a matrix, |v| variable, |L| a straight line, |C| a circle, |T| a triangle, |E| an ellipse, |V| a vector,|Q| a quadrilateral, |P| a parallelogram, |R| a rectangle, |S| a square, |RP| a regular polygon, |M| a matrix, |O| an object (pt, L,C,T), . . a list of points or an object, < > optional argument.
+|r| denotes a real number, |cx| complex number, |d| a positive real number, |n| an integer, |an| an angle, |b| a boolean, |s| a character string, |p| a point, |t| a table, |m| a matrix, |v| variable, |L| a straight line, |C| a circle, |T| a triangle, |E| an ellipse, |V| a vector,|Q| a quadrilateral, |P| a parallelogram, |R| a rectangle, |S| a square, |RP| a regular polygon, |M| a matrix, |O| an object (p, L,C,T), . . a list of points or an object, < > optional argument.
\begin{multicols}{3}
\fbox{\textbf{point}}\\
@@ -257,82 +262,87 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
|argument -> r| \\
|modulus -> d| \\
\textbf{Functions} table(\ref{point:att}) \\
-|new -> pt| \\
-|polar -> pt| \\
-|polar_deg -> pt| \\
+|new -> p| \\
+|polar -> p| \\
+|polar_deg -> p| \\
\textbf{Methods} table(\ref{complex:meta}) \\
-|+ - * / (pt,pt) -> pt| \\
-|.. (pt,pt) -> r| \\
-|^ (pt,pt) -> r| \\
+|+ - * / (p,p) -> p| \\
+|.. (p,p) -> r| \\
+|^ (p,p) -> r| \\
|= -> b| \\
|tostring -> s| \\
\textbf{Methods} table(\ref{point:met}) table(\ref{complex:met}) \\
-|conj -> pt| \\
+|conj -> p| \\
|abs -> r| \\
|mod -> d| \\
|norm -> d| \\
|arg -> d| \\
|get -> r,r| \\
-|sqrt -> pt| \\
-|north(d) -> pt| \\
-|south(d) -> pt| \\
-|east(d) -> pt| \\
-|west(d) -> pt| \\
-|normalize(pt) -> pt| \\
+|sqrt -> p| \\
+|north(d) -> p| \\
+|south(d) -> p| \\
+|east(d) -> p| \\
+|west(d) -> p| \\
+|normalize(p) -> p| \\
|symmetry (...) -> O| \\
|rotation (an , ...) -> O| \\
|homothety (r , ...) -> O| \\
-|orthogonal(d) -> pt| \\
-|at() -> pt| \\
+|orthogonal(d) -> p| \\
+|at() -> p| \\
|print() -> s| \\
\\
\fbox{\textbf{line}} \\
\textbf{Attributes} table(\ref{line:att}) \\
-|pa,pb -> pt| \\
+|pa,pb -> p| \\
|type -> s| \\
-|mid -> pt| \\
-|north_pa -> pt| \\
-|north_pb -> pt| \\
-|south_pa -> pt| \\
-|south_pb -> pt| \\
-|east -> pt| \\
-|west -> pt| \\
+|mid -> p| \\
+|north_pa -> p| \\
+|north_pb -> p| \\
+|south_pa -> p| \\
+|south_pb -> p| \\
+|east -> p| \\
+|west -> p| \\
|slope -> r| \\
|length -> d| \\
|vec -> V| \\
\textbf{Methods} table(\ref{line:met}) \\
-|new (pt,pt) -> d| \\
-|distance (pt) -> d| \\
+|new (p,p) -> d| \\
+|distance (p) -> d| \\
|slope () -> r| \\
-|in_out (pt) -> b| \\
-|in_out_segment (pt) -> b| \\
-|barycenter (r,r) -> pt| \\
-|point (t) -> pt| \\
-|midpoint () -> pt| \\
-|harmonic_int (pt) -> pt| \\
-|harmonic_ext (pt) -> pt| \\
-|harmonic_both (d) -> pt| \\
-|gold_ratio() -> pt| \\
-|normalize () -> pt| \\
-|normalize_inv () -> pt| \\
-|_north_pa (d) -> pt| \\
-|_north_pb (d) -> pt| \\
-|_south_pa (d) -> pt| \\
-|_south_pb (d) -> pt| \\
-|_east (d) -> pt| \\
-|_west (d) -> pt| \\
-|report (r,pt) -> pt| \\
-|colinear_at (pt,k) -> pt| \\
+|in_out (p) -> b| \\
+|in_out_segment (p) -> b| \\
+|is_parallel (l) -> b| \\
+|is_orthogonal (l) -> b| \\
+|is_equidistant (p) -> b| \\
+|barycenter (r,r) -> p| \\
+|point (t) -> p| \\
+|midpoint () -> p| \\
+|harmonic_int (p) -> p| \\
+|harmonic_ext (p) -> p| \\
+|harmonic_both (d) -> p| \\
+|gold_ratio() -> p| \\
+|normalize () -> p| \\
+|normalize_inv () -> p| \\
+|_north_pa (d) -> p| \\
+|_north_pb (d) -> p| \\
+|_south_pa (d) -> p| \\
+|_south_pb (d) -> p| \\
+|_east (d) -> p| \\
+|_west (d) -> p| \\
+|report (r,p) -> p| \\
+|colinear_at (p,k) -> p| \\
|translation (...) -> O| \\
|projection (...) -> O| \\
|reflection (...) -> O| \\
-|ll_from ( pt ) -> L| \\
-|ortho_from ( pt ) -> L| \\
+|ll_from ( p ) -> L| \\
+|ortho_from ( p ) -> L| \\
|mediator () -> L| \\
|circle () -> C| \\
|circle_swap () -> C| \\
|diameter () -> C| \\
-|apollonius (r) -> C| \\
+|apollonius (r) -> C| \\
+|c_ll_p (p,p) -> C| \\
+|c_l_pp (p,p) -> C| \\
|equilateral (<swap>) -> T| \\
|isosceles (an,<swap>) -> T| \\
|school () -> T| \\
@@ -353,13 +363,13 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
\\
\fbox{\textbf{triangle}} \\
\textbf{Attributes} table(\ref{triangle:att}) \\
-|pa,pb,pc -> pt| \\
-|circumcenter -> pt| \\
-|centroid -> pt| \\
-|incenter -> pt| \\
-|eulercenter -> pt| \\
-|orthocenter -> pt| \\
-|spiekercenter -> pt| \\
+|pa,pb,pc -> p| \\
+|circumcenter -> p| \\
+|centroid -> p| \\
+|incenter -> p| \\
+|eulercenter -> p| \\
+|orthocenter -> p| \\
+|spiekercenter -> p| \\
|type -> s| \\
|a -> d| \\
|b -> d| \\
@@ -371,30 +381,30 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
|beta -> r| \\
|gamma -> r| \\
\textbf{Methods} table(\ref{triangle:met}) \\
-|new (pt,pt,pt) -> pt| \\
-|trilinear (r,r,r) -> pt| \\
-|barycentric (r,r,r) -> pt| \\
-|bevan_point () -> pt| \\
-|mittenpunkt_point () -> pt| \\
-|gergonne_point () -> pt| \\
-|nagel_point () -> pt| \\
-|feuerbach_point () -> pt| \\
-|lemoine_point() -> pt| \\
-|symmedian_point() -> pt| \\
-|spieker_center() -> pt| \\
-|barycenter (r,r,r) -> pt| \\
-|base (u,v) -> pt| \\
-|euler_points () -> pt| \\
-|nine_points () -> pt| \\
-|point (t) -> pt| \\
-|soddy_center () -> pt| \\
-|conway_points () -> pts| \\
+|new (p,p,p) -> p| \\
+|trilinear (r,r,r) -> p| \\
+|barycentric (r,r,r) -> p| \\
+|bevan_point () -> p| \\
+|mittenpunkt_point () -> p| \\
+|gergonne_point () -> p| \\
+|nagel_point () -> p| \\
+|feuerbach_point () -> p| \\
+|lemoine_point() -> p| \\
+|symmedian_point() -> p| \\
+|spieker_center() -> p| \\
+|barycenter (r,r,r) -> p| \\
+|base (u,v) -> p| \\
+|euler_points () -> p| \\
+|nine_points () -> p| \\
+|point (t) -> p| \\
+|soddy_center () -> p| \\
+|conway_points () -> pts| \\
|euler_line () -> L| \\
|symmedian_line (n) -> L| \\
|altitude (n) -> L| \\
|bisector (n) -> L| \\
|bisector_ext(n) -> L| \\
-|antiparallel(pt,n) -> L| \\
+|antiparallel(p,n) -> L| \\
|euler_circle () -> C| \\
|circum_circle() -> C| \\
|in_circle () -> C| \\
@@ -406,6 +416,7 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
|conway_circle () -> C| \\
|pedal_circle () -> C| \\
|cevian_circle () -> C| \\
+|c_ll_p (p) -> C| \\
|orthic() -> T| \\
|medial() -> T| \\
|incentral() -> T| \\
@@ -416,155 +427,160 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
|feuerbach() -> T| \\
|anti () -> T| \\
|tangential () -> T| \\
-|cevian (pt) -> T| \\
+|cevian (p) -> T| \\
|symmedian () -> T| \\
|euler () -> T| \\
-|pedal (pt) -> T| \\
-|projection (pt) -> pt,pt,pt| \\
-|parallelogram () -> pt| \\
+|pedal (p) -> T| \\
+|projection (p) -> p,p,p| \\
+|parallelogram () -> p| \\
|area () -> d| \\
-|barycentric_coordinates(pt)| \\
+|barycentric_coordinates(p)| \\
|-> r,r,r| \\
-|in_out (pt) -> pt| \\
+|in_out (p) -> p| \\
|check_equilateral () -> b| \\
\\
\fbox{\textbf{circle}} \\
\textbf{Attributes} table(\ref{circle:att}) \\
-|center -> pt| \\
-|through -> pt| \\
-|north -> pt| \\
-|south -> pt| \\
-|east -> pt| \\
-|west -> pt| \\
-|opp -> pt| \\
+|center -> p| \\
+|through -> p| \\
+|north -> p| \\
+|south -> p| \\
+|east -> p| \\
+|west -> p| \\
+|opp -> p| \\
|type -> s| \\
|radius -> d| \\
|ct -> L| \\
+|perimeter -> r| \\
+|area -> r| \\
\textbf{Methods} table(\ref{circle:met}) \\
-|new (pt,pt) -> C| \\
-|radius (pt, r) -> C| \\
-|diameter (pt,pt) -> C| \\
-|in_out (pt) -> b| \\
-|in_out_disk (pt) -> b| \\
-|circles_position (C) -> s| \\
-|power (pt) -> r| \\
-|antipode (pt) -> pt| \\
-|midarc (pt,pt) -> pt| \\
-|point (r) -> pt| \\
-|random_pt (lower, upper) -> pt| \\
-|internal_similitude (C) -> pt| \\
-|external_similitude (C) -> pt| \\
-|radical_center(C,<C>) -> pt| \\
-|tangent_at (pt) -> L| \\
-|radical_axis (C) -> L| \\
-|radical_circle(C,<C>) -> C| \\
-|orthogonal_from (pt) -> C| \\
-|orthogonal_through(pt,pt) -> C| \\
+|new (p,p) -> C| \\
+|radius (p, r) -> C| \\
+|diameter (p,p) -> C| \\
+|in_out (p) -> b| \\
+|in_out_disk (p) -> b| \\
+|circles_position (C) -> s| \\
+|power (p) -> r| \\
+|antipode (p) -> p| \\
+|midarc (p,p) -> p| \\
+|point (r) -> p| \\
+|random_pt (lower, upper) -> p| \\
+|internal_similitude (C) -> p| \\
+|external_similitude (C) -> p| \\
+|radical_center(C,<C>) -> p| \\
+|tangent_at (p) -> L| \\
+|radical_axis (C) -> L| \\
+|radical_circle(C,<C>) -> C| \\
+|orthogonal_from (p) -> C| \\
+|orthogonal_through(p,p) -> C| \\
+|c_lc_p (L,p,inside) -> C| \\
+|c_c_pp(a,b)(p,p) -> C| \\
+|c_cc_p (C,p) -> C| \\
|midcircle(C) -> C| \\
|external_tangent(C) -> L,L| \\
|internal_tangent(C) -> L,L| \\
|common_tangent(C) -> L,L| \\
-|tangent_from (pt) -> L,L| \\
+|tangent_from (p) -> L,L| \\
|inversion (...) -> O | \\
\\
\fbox{\textbf{ellipse}} \\
-\textbf{Attributes} table(\ref{ellipse:met}) \\
-|center -> pt| \\
-|vertex -> pt| \\
-|covertex -> pt| \\
-|Fa -> pt| \\
-|Fb -> pt| \\
-|north -> pt| \\
-|south -> pt| \\
-|east -> pt| \\
-|west -> pt| \\
+\textbf{Attributes} table(\ref{ellipse:met}) \\
+|center -> p| \\
+|vertex -> p| \\
+|covertex -> p| \\
+|Fa -> p| \\
+|Fb -> p| \\
+|north -> p| \\
+|south -> p| \\
+|east -> p| \\
+|west -> p| \\
|Rx -> d| \\
|Ry -> d| \\
|slope -> r| \\
|type -> s| \\
\textbf{Methods} table(\ref{ellipse:met}) \\
-|new (pt,pt,pt) -> E| \\
-|foci (pt,pt,pt) -> E| \\
-|radii (pt,r,r,an) -> E| \\
-|in_out (pt) -> b| \\
-|tangent_at (pt) -> L| \\
-|tangent_from (pt) -> L| \\
-|point (r) -> pt| \\
+|new (p,p,p) -> E| \\
+|foci (p,p,p) -> E| \\
+|radii (p,r,r,an) -> E| \\
+|in_out (p) -> b| \\
+|tangent_at (p) -> L| \\
+|tangent_from (p) -> L| \\
+|point (r) -> p| \\
\\
-\fbox{\textbf{square}} \\
- \textbf{Attributes} table(\ref{square:att}) \\
-|pa,pb,pc,pd -> pt| \\
+\fbox{\textbf{square}} \\
+ \textbf{Attributes} table(\ref{square:att}) \\
+|pa,pb,pc,pd -> p| \\
|type -> s| \\
|side -> d| \\
-|center -> pt| \\
-|exradius -> d| \\
+|center -> p| \\
+|circumradius -> d| \\
|inradius -> d| \\
|diagonal -> d| \\
-|proj -> pt| \\
+|proj -> p| \\
|ab bc cd da -> L| \\
|ac bd -> L| \\
- \textbf{Methods} table(\ref{square:met}) \\
-|new (pt,pt,pt,pt) -> S| \\
-|rotation (pt,pt) -> S| \\
-|side (pt,pt,<swap>) -> S| \\
+ \textbf{Methods} table(\ref{square:met}) \\
+|new (p,p,p,p) -> S| \\
+|rotation (p,p) -> S| \\
+|side (p,p,<swap>) -> S| \\
\\
\fbox{\textbf{rectangle}} \\
\textbf{Attributes} table(\ref{rectangle:att}) \\
-|pa,pb,pc,pd -> pt| \\
+|pa,pb,pc,pd -> p| \\
|type -> s| \\
-|center -> pt| \\
-|exradius -> d| \\
+|center -> p| \\
+|circumradius -> d| \\
|length -> r| \\
|width -> r| \\
|diagonal -> d| \\
|ab bc cd da -> L| \\
|ac bd -> L| \\
\textbf{Methods} table(\ref{rectangle:met}) \\
-|new (pt,pt,pt,pt) -> R| \\
-|angle (pt,pt,an) -> R| \\
-|gold (pt,pt,<swap>) -> R| \\
-|diagonal (pt,pt,<swap>) -> R| \\
-|side (pt,pt,r,<swap>) -> R| \\
+|new (p,p,p,p) -> R| \\
+|angle (p,p,an) -> R| \\
+|gold (p,p,<swap>) -> R| \\
+|diagonal (p,p,<swap>) -> R| \\
+|side (p,p,r,<swap>) -> R| \\
|get_lengths () ->r,r| \\
\\
\fbox{\textbf{quadrilateral} } \\
\textbf{Attributes} table(\ref{quadrilateral:att}) \\
-|pa,pb,pc,pd -> pt| \\
+|pa,pb,pc,pd -> p| \\
|ab bc cd da -> L | \\
|ac bd -> L | \\
|type -> s | \\
-|i -> pt| \\
-|g -> pt| \\
+|i -> p| \\
+|g -> p| \\
|a b c d -> r| \\
\textbf{Methods} table(\ref{quadrilateral:met}) \\
-|new (pt,pt,pt,pt) -> Q| \\
+|new (p,p,p,p) -> Q| \\
|iscyclic () -> b| \\
\\
\fbox{\textbf{parallelogram}} \\
\textbf{Attributes} table(\ref{parallelogram:att}) \\
-|pa,pb,pc,pd -> pt| \\
+|pa,pb,pc,pd -> p| \\
|ab bc cd da -> L | \\
|ac bd -> L | \\
|type -> s | \\
-|center -> pt| \\
+|center -> p| \\
\textbf{Methods} table(\ref{parallelogram:met}) \\
-|new (pt,pt,pt,pt) ->| \\
-|fourth (pt,pt,pt) ->| \\
+|new (p,p,p,p) ->| \\
+|fourth (p,p,p) ->| \\
\\
\fbox{\textbf{Regular\_polygon}} \\
\textbf{Attributes} table(\ref{regular:att}) \\
-|center -> pt| \\
-|through -> pt | \\
+|center -> p| \\
+|through -> p | \\
|circle -> C | \\
|type -> s | \\
|side -> d| \\
-|exradius -> d| \\
+|circumradius -> d| \\
|inradius -> d| \\
-|proj -> pt| \\
+|proj -> p| \\
|nb -> i| \\
|angle -> an| \\
\textbf{Methods} table(\ref{regular:met}) \\
-|new (pt,pt,n) -> PR| \\
+|new (p,p,n) -> PR| \\
|incircle () -> C| \\
|name (s) -> ?| \\
\\
@@ -575,12 +591,12 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
|slope -> r| \\
|mtx -> M| \\
\textbf{Methods} table(\ref{vector:met}) \\
-|new (pt,pt) -> V| \\
-|+ - * -> pt| \\
+|new (p,p) -> V| \\
+|+ - * -> p| \\
|normalize (V) -> V| \\
|orthogonal (d) -> V| \\
|scale (r) -> V| \\
-|at (pt) -> V| \\
+|at (p) -> V| \\
\fbox{\textbf{matrix}} \\
\textbf{Attributes} table(\ref{matrix:att}) \\
|set -> t| \\
@@ -617,23 +633,24 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
|tkzsqrtphi -> r| \\
|tkz_epsilon (default=1e-8)-> r| \\
|length -> d| \\
-|islinear(pt,pt,pt) -> b| \\
-|isortho(pt,pt,pt) -> b| \\
+|islinear(p,p,p) -> b| \\
+|isortho(p,p,p) -> b| \\
|value{r} -> r| \\
|real -> r| \\
|angle_normalize (an) -> an| \\
-|barycenter (...) -> pt| \\
-|bisector (pt,pt,pt) -> L| \\
-|bisector_ext (pt,pt,pt) -> L| \\
-|altitude (pt,pt,pt) -> L| \\
-|midpoint (pt,pt) -> pt| \\
-|equilateral (pt,pt) -> T| \\
+|barycenter (...) -> p| \\
+|bisector (p,p,p) -> L| \\
+|bisector_ext (p,p,p) -> L| \\
+|altitude (p,p,p) -> L| \\
+|midpoint (p,p) -> p| \\
+|midpoints (...) -> list of pts| \\
+|equilateral (p,p) -> T| \\
|format_number(r,n) -> r| \\
-|solve_quadratic(cx,cx,cx) -> cx,cx| \\
+|solve_quadratic(cx,cx,cx)-> cx,cx|\\
|\tkzUseLua{v} -> s| \\
\\
\fbox{\textbf{Macros}} \\
|\tkzDN[n]{r} -> r| \\
-|\tkzDrawLuaEllipse((pt,pt,pt))| \\
+|\tkzDrawLuaEllipse((p,p,p))| \\
\end{multicols}
\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-news.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-news.tex
index 9eb6544054e..c84a94b397a 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-news.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-news.tex
@@ -1,11 +1,9 @@
\section{News} % (fold)
\label{sec:news}
-The documentation you are reading corresponds to the latest version 3.0 of \tkzNamePack{tkz-elements}. This version introduces an important new feature: the code \code{Lua} part of the code can now be processed using the \Iprimitive{directlua} primitive of \Iengine{Lua\LaTeX}. See the examples given in the Transfers section.
-
-This introduces a slight complication whatever the method used to execute the \code{Lua} code. If you want to use the \tkzNameEnv{tkzelements} environment, then you need to load the \pkg{luacode} package. If you prefer to use the |\directlua| primitive, you'll need to delete and reset the tables and \Igfct{tkz-elements}{scale} with the \Igfct{tkz-elements}{init\_elements} function.
-
-Some complex examples require the use of the \Iprimitive{directlua} primitive.
+The documentation you are reading corresponds to the latest version (3.10c) of \tkzNamePack{tkz-elements}.
+One significant feature introduced in version 3.0 was the use of the \Iprimitive{directlua} macro, replacing the \tkzNameEnv{tkzelements} environment.
+In this new version , most functions have been optimized and quelques méthodes apparaissent. In particular, methods for determining a circle tangent to different objects. (see \ref{ssub:c_l_pp}; \ref{ssub:method_c__ll__p}; \ref{ssub:method_c__c__pp}; \ref{ssub:method_c_cc_p}; \ref{ssub:method_c_lc_p}; and \ref{ssub:tr_method_c__ll__p})
% section news (end)
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-organization.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-organization.tex
index 22025d11469..480b9d834d6 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-organization.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-organization.tex
@@ -18,11 +18,10 @@ Another advantage is that you don't have to incorrectly comment the code. For Lu
A third advantage is that the code can be reused.
-
+\begin{minipage}{.5\textwidth}
\begin{Verbatim}
% !TEX TS-program = lualatex
% Created by Alain Matthes on 2024-01-09.
-
\documentclass[margin = 12pt]{standalone}
\usepackage[mini]{tkz-euclide}
\usepackage{tkz-elements,ifthen}
@@ -32,7 +31,6 @@ A third advantage is that the code can be reused.
scale = 1.25
dofile ("sangaku.lua")
}
-
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(I,F)
@@ -42,37 +40,45 @@ A third advantage is that the code can be reused.
\end{tikzpicture}
\end{document}
\end{Verbatim}
-
-And here is the code for the \code{Lua} part: the file |ex_sangaku.lua|
-
-\begin{Verbatim}
-z.A = point : new ( 0,0 )
-z.B = point : new ( 8,0 )
-L.AB = line : new ( z.A , z.B )
-S = L.AB : square ()
-_,_,z.C,z.D = get_points (S)
-z.F = S.ac : projection (z.B)
-L.BF = line : new (z.B,z.F)
-T.ABC = triangle : new ( z.A , z.B , z.C )
-L.bi = T.ABC : bisector (2)
-z.c = L.bi.pb
-L.Cc = line : new (z.C,z.c)
-z.I = intersection (L.Cc,L.BF)
-\end{Verbatim}
-
+\end{minipage}
+\begin{minipage}{.5\textwidth}
\directlua{
init_elements ()
- scale = 1.25
+ scale = .75
dofile ("sangaku.lua")
}
-\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircle(I,F)
- \tkzFillPolygon[color = purple](A,C,D)%
- \tkzFillPolygon[color = blue!50!black](A,B,C)%
- \tkzFillCircle[color = orange](I,F)%
-\end{tikzpicture}
+\begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle(I,F)
+ \tkzFillPolygon[color = purple](A,C,D)%
+ \tkzFillPolygon[color = blue!50!black](A,B,C)%
+ \tkzFillCircle[color = orange](I,F)%
+ \end{tikzpicture}
+\end{center}
+
+\end{minipage}
+And here is the code for the \code{Lua} part: the file |ex_sangaku.lua|
+
+\begin{minipage}{.5\textwidth}
+\begin{mybox}
+ \begin{Verbatim}
+ z.A = point : new ( 0,0 )
+ z.B = point : new ( 8,0 )
+ L.AB = line : new ( z.A , z.B )
+ S = L.AB : square ()
+ _,_,z.C,z.D = get_points (S)
+ z.F = S.ac : projection (z.B)
+ L.BF = line : new (z.B,z.F)
+ T.ABC = triangle : new ( z.A , z.B , z.C )
+ L.bi = T.ABC : bisector (2)
+ z.c = L.bi.pb
+ L.Cc = line : new (z.C,z.c)
+ z.I = intersection (L.Cc,L.BF)
+ \end{Verbatim}
+\end{mybox}
+\end{minipage}
\subsection{Scale problem} % (fold)
\label{sub:scale_problem}
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex
index 195a6910644..3a6a66bf512 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex
@@ -186,7 +186,7 @@ Here's another example with comments
C.ins = T.ABC: in_circle () % we get the incircle of this triangle
z.I = C.ins.center % center is an attribute of the circle
z.T = C.ins.through % through is also an attribute
- -- z.I,z.T = get_points (C.ins) % get_points is a shortcut
+ % z.I,z.T = get_points (C.ins) % get_points is a shortcut
C.cir = T.ABC : circum_circle () % we get the circumscribed circle
z.W = C.cir.center % we get the center of this circle
z.O = C.cir.south % now we get the south pole of this circle
@@ -228,7 +228,8 @@ Here's another example with comments
\tkzLabelPoints[above](A)
\end{tikzpicture}
\hspace*{\fill}
-%
+
+\vspace{12pt}
Here's the tikzpicture environment to obtain the drawing:
\begin{Verbatim}
\begin{tikzpicture}
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-theorems.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-theorems.tex
new file mode 100644
index 00000000000..681bae53921
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-theorems.tex
@@ -0,0 +1,747 @@
+\newpage
+
+\section{Some theorems} % (fold)
+\label{sec:some_theorems}
+
+\subsection{Viviani's Theorem} % (fold)
+\label{sub:viviani_s_theorem}
+Viviani's theorem, named after Vincenzo Viviani, states that the sum of the shortest distances from any interior point to the sides of an equilateral triangle equals the length of the triangle's altitude.
+[Wikipedia].
+
+Here's the visual demonstration I gave at the CAPES oral exam in 1989 to become a teacher.
+
+\vspace{6pt}
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+z.A = point: new (0 , 0)
+z.B = point: new (8 , 0)
+L.AB = line: new (z.A,z.B)
+T.equ = L.AB:equilateral ()
+z.C = T.equ.pc
+z.I = point:new (3,2)
+L.IAB = T.equ.ab:ll_from(z.I)
+L.IBC = T.equ.bc:ll_from(z.I)
+L.ICA = T.equ.ca:ll_from(z.I)
+z.b = intersection(L.IAB,T.equ.ca)
+z.a = intersection(L.IAB,T.equ.bc)
+z.c = intersection(L.IBC,T.equ.ab)
+z.d = intersection(L.IBC,T.equ.ca)
+z.e = intersection(L.ICA,T.equ.ab)
+z.f = intersection(L.ICA,T.equ.bc)
+L.last = T.equ.ab:ll_from(z.f)
+z.g = intersection(L.last,T.equ.ca)
+z.pC = L.last:projection(z.C)
+z.pIca = T.equ.ca:projection(z.I)
+z.pIbc = T.equ.bc:projection(z.I)
+z.pIAB = L.IAB:projection(z.f)
+z.pIab = T.equ.ab:projection(z.I)
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygons(A,B,C)
+\tkzDrawSegments(a,b c,d e,f f,g)
+\tkzDrawSegments[red,thick](C,pC I,pIab f,pIAB)
+\tkzDrawSegments[red, dashed](I,pIbc I,pIca)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+z.A = point: new (0 , 0)
+z.B = point: new (8 , 0)
+L.AB = line: new (z.A,z.B)
+T.equ = L.AB:equilateral ()
+z.C = T.equ.pc
+z.I = point:new (3,2)
+L.IAB = T.equ.ab:ll_from(z.I)
+L.IBC = T.equ.bc:ll_from(z.I)
+L.ICA = T.equ.ca:ll_from(z.I)
+z.b = intersection(L.IAB,T.equ.ca)
+z.a = intersection(L.IAB,T.equ.bc)
+z.c = intersection(L.IBC,T.equ.ab)
+z.d = intersection(L.IBC,T.equ.ca)
+z.e = intersection(L.ICA,T.equ.ab)
+z.f = intersection(L.ICA,T.equ.bc)
+L.last = T.equ.ab:ll_from(z.f)
+z.g = intersection(L.last,T.equ.ca)
+z.pC = L.last:projection(z.C)
+z.pIca = T.equ.ca:projection(z.I)
+z.pIbc = T.equ.bc:projection(z.I)
+z.pIAB = L.IAB:projection(z.f)
+z.pIab = T.equ.ab:projection(z.I)
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygons(A,B,C)
+\tkzDrawSegments(a,b c,d e,f f,g)
+\tkzDrawSegments[red,thick](C,pC I,pIab f,pIAB)
+\tkzDrawSegments[red, dashed](I,pIbc I,pIca)
+\end{tikzpicture}
+\end{minipage}
+
+% subsection viviani_s_theorem (end)
+
+
+\subsection{Reuschle's theorem} % (fold)
+\label{sub:reuschle_s_theorem}
+In elementary geometry, Reuschle's theorem describes a property of the cevians of a triangle intersecting in a common point and is named after the German mathematician Karl Gustav Reuschle (1812–1875). It is also known as Terquem's theorem after the French mathematician Olry Terquem (1782–1862), who published it in 1842.
+
+\vspace{6pt}
+
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+init_elements ()
+z.A = point:new(0, 0)
+z.B = point:new(8, 0)
+z.C = point:new(5, 5)
+z.P = point:new(4, 2)
+T.ABC = triangle:new(z.A,z.B,z.C)
+T.cev = T.ABC:cevian (z.P)
+z.D,
+z.E,
+z.F = get_points(T.cev)
+C.cev = T.ABC :cevian_circle (z.P)
+z.O = C.cev.center
+z.T = C.cev.through
+z.G = intersection(C.cev,T.ABC.ca)
+_,z.H = intersection(C.cev,T.ABC.ab)
+z.I = intersection(C.cev,T.ABC.bc)
+L.AI = line:new(z.A,z.I)
+L.BG = line:new(z.B,z.G)
+z.K = intersection(L.AI,L.BG)
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygons(A,B,C)
+\tkzDrawPoints(A,...,I,P,K)
+\tkzDrawSegments(A,D B,E C,F A,I B,G C,H)
+\tkzDrawCircle(O,T)
+\tkzLabelPoints[below](A,B)
+\tkzLabelPoints[above](C,I,E,D,G,K)
+\tkzLabelPoints[below](F,P,H)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+init_elements ()
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 8 , 0 )
+z.C = point : new ( 5 , 5 )
+z.P = point : new ( 4 , 2 )
+T.ABC = triangle : new (z.A,z.B,z.C)
+T.cev = T.ABC : cevian (z.P)
+z.D,
+z.E,
+z.F = get_points(T.cev)
+C.cev = T.ABC :cevian_circle (z.P)
+z.O = C.cev.center
+z.T = C.cev.through
+z.G = intersection(C.cev,T.ABC.ca)
+_,z.H = intersection(C.cev,T.ABC.ab)
+z.I = intersection(C.cev,T.ABC.bc)
+L.AI = line:new(z.A,z.I)
+L.BG = line:new(z.B,z.G)
+z.K = intersection(L.AI,L.BG)
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygons(A,B,C)
+\tkzDrawPoints(A,...,I,P,K)
+\tkzDrawSegments(A,D B,E C,F A,I B,G C,H)
+\tkzDrawCircle(O,T)
+\tkzLabelPoints[below](A,B)
+\tkzLabelPoints[above](C,I,E,D,G,K)
+\tkzLabelPoints[below](F,P,H)
+\end{tikzpicture}
+\end{minipage}
+
+% subsection reuschle_s_theorem (end)
+
+\subsection{Thébault's problem III} % (fold)
+\label{sub:thebault_s_problemIII}
+Given any triangle ABC, and any point M on BC, construct the incircle and circumcircle of the triangle. Then construct two additional circles, each tangent to AM, BC, and to the circumcircle. Then their centers and the center of the incircle are collinear.[wikipedia]
+\vspace{6pt}
+
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+init_elements()
+scale = .75
+z.A = point : new(0, 0)
+z.B = point : new(8, 0)
+z.C = point : new(1, 6)
+z.M = point : new(5, 0)
+L.CM = line:new(z.C,z.M)
+T.ABC = triangle:new(z.A,z.B,z.C)
+C.circ = T.ABC:circum_circle()
+z.O = C.circ.center
+C.ins = T.ABC:in_circle()
+z.I = C.ins.center
+z.T = C.ins.through
+L.ll = T.ABC.ab: ll_from(z.I)
+z.Q = intersection(L.ll,L.CM)
+C.QI = circle:new(z.Q,z.I)
+z.R,z.S= intersection(C.QI,L.CM)
+L.BMC = bisector(z.M,z.B,z.C)
+z.x = L.BMC.pb
+L.CMA = bisector(z.M,z.C,z.A)
+z.y = L.CMA.pb
+L.pS = L.CM:ortho_from(z.S)
+L.pR = L.CM:ortho_from(z.R)
+z.J = intersection(L.pS,L.CMA)
+z.K = intersection(L.pR,L.BMC)
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawSegments(C,M)
+\tkzDrawLines(J,K I,Q)
+\tkzDrawCircles(O,A I,T Q,I J,S K,R)
+\tkzDrawPoints(A,B,C,M,Q,I,R,S,J,K)
+\tkzLabelPoints(A,B,C,M,Q,I,R,S,J,K)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+init_elements()
+scale = .75
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 8 , 0 )
+z.C = point : new (1 , 6 )
+z.M = point : new (5 , 0 )
+L.CM = line:new(z.C,z.M)
+T.ABC = triangle:new(z.A,z.B,z.C)
+C.circ = T.ABC:circum_circle()
+z.O = C.circ.center
+C.ins = T.ABC:in_circle()
+z.I = C.ins.center
+z.T = C.ins.through
+L.ll = T.ABC.ab: ll_from(z.I)
+z.Q =intersection(L.ll,L.CM)
+C.QI = circle:new(z.Q,z.I)
+z.R,z.S = intersection(C.QI,L.CM)
+L.BMC = bisector(z.M,z.B,z.C)
+z.x = L.BMC.pb
+L.CMA = bisector(z.M,z.C,z.A)
+z.y = L.CMA.pb
+L.pS = L.CM:ortho_from(z.S)
+L.pR = L.CM:ortho_from(z.R)
+z.J = intersection(L.pS,L.CMA)
+z.K = intersection(L.pR,L.BMC)
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawSegments(C,M)
+\tkzDrawLines(J,K I,Q)
+\tkzDrawCircles(O,A I,T Q,I J,S K,R)
+\tkzDrawPoints(A,B,C,M,Q,I,R,S,J,K)
+\tkzLabelPoints(A,B,C,M,Q,I,R,S,J,K)
+\end{tikzpicture}
+\end{minipage}
+
+% subsection thebault_s_problemIII (end)
+
+\subsection{Thebault's problem II} % (fold)
+\label{sub:thebault_s_problemII}
+
+Given a square, construct equilateral triangles on two adjacent edges, either both inside or both outside the square. Then the triangle formed by joining the vertex of the square distant from both triangles and the vertices of the triangles distant from the square is equilateral.[wikipedia]
+
+\vspace{6pt}
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+init_elements()
+scale = .75
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 8 , 0 )
+L.AB = line:new (z.A,z.B)
+S.ABCD = L.AB:square()
+z.C = S.ABCD.pc
+z.D = S.ABCD.pd
+z.E = S.ABCD.ab:equilateral().pc
+z.F = S.ABCD.bc:equilateral().pc
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C,D)
+\tkzDrawPolygons[cyan](A,B,E B,C,F)
+\tkzFillPolygon[fill=orange!20](D,E,F)
+\tkzDrawPolygons[orange,thick](D,E,F)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+init_elements()
+scale = .75
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 8 , 0 )
+L.AB = line:new (z.A,z.B)
+S.ABCD = L.AB:square()
+z.C = S.ABCD.pc
+z.D = S.ABCD.pd
+z.E = S.ABCD.ab:equilateral().pc
+z.F = S.ABCD.bc:equilateral().pc
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C,D)
+\tkzDrawPolygons[cyan](A,B,E B,C,F)
+\tkzFillPolygon[fill=orange!20](D,E,F)
+\tkzDrawPolygons[orange,thick](D,E,F)
+\end{tikzpicture}
+\end{minipage}
+
+
+% subsection thebault_s_problemII (end)
+
+\subsection{Varignon's Theorem} % (fold)
+\label{sub:varignon_s_theorem}
+In Euclidean geometry, Varignon's theorem holds that the midpoints of the sides of an arbitrary quadrilateral form a parallelogram, called the Varignon parallelogram. It is named after Pierre Varignon, whose proof was published posthumously in 1731. [Wikipedia]
+
+\vspace{6pt}
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+init_elements()
+scale = .75
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 0 , 8 )
+z.C = point : new ( 5 , 3 )
+z.D = point : new ( -1 , 6 )
+Q.ABCD = quadrilateral:new(z.A, z.B, z.C, z.D)
+z.E,z.F,z.G,z.H = midpoints(z.A,z.B,z.C,z.D)
+ }
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C,D)
+ \tkzDrawPolygon[red](E,F,G,H)
+ \tkzDrawPoints(A,B,C,D)
+ \tkzDrawPoints[red](E,F,G,H)
+ \tkzLabelPoints(A,C)
+ \tkzLabelPoints[above right](B,D)
+ \tkzLabelPoints[red](G,H)
+ \tkzLabelPoints[red,above right](E,F)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+init_elements()
+scale = .75
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 0 , 8 )
+z.C = point : new ( 5 , 3 )
+z.D = point : new ( -1 , 6 )
+Q.ABCD = quadrilateral:new(z.A, z.B, z.C, z.D)
+z.E,z.F,z.G,z.H = midpoints(z.A,z.B,z.C,z.D)
+}
+\begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C,D)
+ \tkzDrawPolygon[red](E,F,G,H)
+ \tkzDrawPoints(A,B,C,D)
+ \tkzDrawPoints[red](E,F,G,H)
+ \tkzLabelPoints(A,C)
+ \tkzLabelPoints[above right](B,D)
+ \tkzLabelPoints[red](G,H)
+ \tkzLabelPoints[red,above right](E,F)
+ \end{tikzpicture}
+\end{center}
+
+\end{minipage}
+
+% subsection varignon_s_theorem (end)
+
+
+\subsection{Wittenbauer's Parallelogram} % (fold)
+\label{sub:wittenbauer_s_parallelogram}
+
+Divide the sides of a quadrilateral into three equal parts. The figure formed by connecting and extending adjacent points on either side of a polygon vertex is a parallelogram known as Wittenbauer's parallelogram.
+[\href{https://mathworld.wolfram.com/WittenbauersParallelogram.html}{Weisstein, Eric W. "Wittenbauer's Parallelogram." From MathWorld--A Wolfram Web Resource.}]
+
+\vspace{6pt}
+
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+init_elements()
+scale = .75
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 4 , 0 )
+z.C = point : new ( 5 , 3 )
+z.D = point : new ( -1 , 4 )
+Q.ABCD = quadrilateral:new (z.A, z.B, z.C, z.D)
+z.P_1 = Q.ABCD.ab:point(1/3)
+z.P_2 = Q.ABCD.ab:point(2/3)
+z.P_3 = Q.ABCD.bc:point(1/3)
+z.P_4 = Q.ABCD.bc:point(2/3)
+z.P_5 = Q.ABCD.cd:point(1/3)
+z.P_6 = Q.ABCD.cd:point(2/3)
+z.P_7 = Q.ABCD.da:point(1/3)
+z.P_8 = Q.ABCD.da:point(2/3)
+L.P18 = line:new(z.P_1,z.P_8)
+L.P23 = line:new(z.P_2,z.P_3)
+L.P45 = line:new(z.P_4,z.P_5)
+L.P67 = line:new(z.P_6,z.P_7)
+z.K = intersection(L.P18,L.P23)
+z.L = intersection(L.P23,L.P45)
+z.M = intersection(L.P45,L.P67)
+z.N = intersection(L.P67,L.P18)
+}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C,D)
+ \tkzDrawPolygon[red](K,L,M,N)
+ \tkzDrawSegments(A,C B,D)
+ \tkzDrawPoints(A,B,C,D)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\directlua{
+init_elements()
+scale = .75
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 4 , 0 )
+z.C = point : new ( 5 , 3 )
+z.D = point : new ( -1 , 4 )
+Q.ABCD = quadrilateral : new ( z.A , z.B , z.C , z.D )
+z.P_1 = Q.ABCD.ab:point(1/3)
+z.P_2 = Q.ABCD.ab:point(2/3)
+z.P_3 = Q.ABCD.bc:point(1/3)
+z.P_4 = Q.ABCD.bc:point(2/3)
+z.P_5 = Q.ABCD.cd:point(1/3)
+z.P_6 = Q.ABCD.cd:point(2/3)
+z.P_7 = Q.ABCD.da:point(1/3)
+z.P_8 = Q.ABCD.da:point(2/3)
+L.P18 = line:new(z.P_1,z.P_8)
+L.P23 = line:new(z.P_2,z.P_3)
+L.P45 = line:new(z.P_4,z.P_5)
+L.P67 = line:new(z.P_6,z.P_7)
+z.K = intersection(L.P18,L.P23)
+z.L = intersection(L.P23,L.P45)
+z.M = intersection(L.P45,L.P67)
+z.N = intersection(L.P67,L.P18)
+}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C,D)
+\tkzDrawPolygon[red](K,L,M,N)
+\tkzDrawSegments(A,C B,D)
+\tkzDrawPoints(A,B,C,D)
+\end{tikzpicture}
+\end{minipage}
+% subsection wittenbauer_s_parallelogram (end)
+
+\subsection{Soddy circles of a triangle} % (fold)
+\label{sub:soddy_circles_of_a_triangle}
+
+In geometry, the Soddy circles of a triangle are two circles associated with any triangle in the plane.[wikipedia]
+
+ Given three noncollinear points, construct three tangent circles such that one is centered at each point and the circles are pairwise tangent to one another. Then there exist exactly two nonintersecting circles that are tangent to all three circles. These are called the inner and outer Soddy circles, and their centers are called the inner and outer Soddy centers, respectively.
+
+[\href{https://mathworld.wolfram.com/SoddyCircles.html}{ Weisstein, Eric W. "Soddy Circles." From MathWorld--A Wolfram Web Resource}]
+
+
+\subsubsection{Soddy circle without function} % (fold)
+\label{ssub:soddy}
+
+\begin{Verbatim}
+\directlua{%
+init_elements ()
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 5 , 0 )
+z.C = point : new ( 0.5 , 4 )
+T.ABC = triangle : new ( z.A,z.B,z.C )
+z.I = T.ABC.incenter
+z.E,z.F,z.G = T.ABC : projection (z.I)
+C.ins = circle : new (z.I,z.E)
+T.orthic = T.ABC : orthic ()
+z.Ha,z.Hb,z.Hc = get_points (T.orthic)
+C.CF = circle : new ( z.C , z.F )
+C.AG = circle : new ( z.A , z.G )
+C.BE = circle : new ( z.B , z.E )
+L.Ah = line : new ( z.A , z.Ha )
+L.Bh = line : new ( z.B , z.Hb )
+L.Ch = line : new ( z.C , z.Hc )
+z.X,z.Xp = intersection (L.Ah,C.AG)
+z.Y,z.Yp = intersection (L.Bh,C.BE)
+z.Z,z.Zp = intersection (L.Ch,C.CF)
+L.XpE = line : new (z.Xp,z.E)
+L.YpF = line : new (z.Yp,z.F)
+L.ZpG = line : new (z.Zp,z.G)
+z.S = intersection (L.XpE,L.YpF)
+z.Xi = intersection(L.XpE,C.AG)
+z.Yi = intersection(L.YpF,C.BE)
+_,z.Zi = intersection(L.ZpG,C.CF)
+z.S = triangle : new (z.Xi,z.Yi,z.Zi).circumcenter
+C.soddy_int = circle : new (z.S,z.Xi)
+C.soddy_ext = C.ins : inversion (C.soddy_int)
+z.w = C.soddy_ext.center
+z.s = C.soddy_ext.through
+z.Xip,z.Yip,z.Zip = C.ins : inversion (z.Xi,z.Yi,z.Zi)
+}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,X,Y,Z,X',Y',Z',Xi,Yi,Zi,I)
+\tkzDrawPoints(Xi',Yi',Zi',S)
+\tkzLabelPoints(A,B,C,E,F,G,X,Y,Z,X',Y',Z')
+\tkzDrawCircles(A,G B,E C,F I,E S,Xi w,s)
+\tkzDrawLines(X',Ha Y',Hb Z',Hc)
+\tkzDrawLines(X',E Y',F Z',G)
+\end{tikzpicture}
+\end{Verbatim}
+
+\directlua{%
+init_elements ()
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 5 , 0 )
+z.C = point : new ( 0.5 , 4 )
+T.ABC = triangle : new ( z.A,z.B,z.C )
+z.I = T.ABC.incenter
+z.E,z.F,z.G = T.ABC : projection (z.I)
+C.ins = circle : new (z.I,z.E)
+T.orthic = T.ABC : orthic ()
+z.Ha,z.Hb,z.Hc = get_points (T.orthic)
+C.CF = circle : new ( z.C , z.F )
+C.AG = circle : new ( z.A , z.G )
+C.BE = circle : new ( z.B , z.E )
+L.Ah = line : new ( z.A , z.Ha )
+L.Bh = line : new ( z.B , z.Hb )
+L.Ch = line : new ( z.C , z.Hc )
+z.X,z.Xp = intersection (L.Ah,C.AG)
+z.Y,z.Yp = intersection (L.Bh,C.BE)
+z.Z,z.Zp = intersection (L.Ch,C.CF)
+L.XpE = line : new (z.Xp,z.E)
+L.YpF = line : new (z.Yp,z.F)
+L.ZpG = line : new (z.Zp,z.G)
+z.S = intersection (L.XpE,L.YpF)
+z.Xi = intersection(L.XpE,C.AG)
+z.Yi = intersection(L.YpF,C.BE)
+_,z.Zi = intersection(L.ZpG,C.CF)
+z.S = triangle : new (z.Xi,z.Yi,z.Zi).circumcenter
+C.soddy_int = circle : new (z.S,z.Xi)
+C.soddy_ext = C.ins : inversion (C.soddy_int)
+z.w = C.soddy_ext.center
+z.s = C.soddy_ext.through
+z.Xip,z.Yip,z.Zip = C.ins : inversion (z.Xi,z.Yi,z.Zi)
+}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,X,Y,Z,X',Y',Z',Xi,Yi,Zi,I)
+\tkzDrawPoints(Xi',Yi',Zi',S)
+\tkzLabelPoints(A,B,C,E,F,G,X,Y,Z,X',Y',Z')
+\tkzDrawCircles(A,G B,E C,F I,E S,Xi w,s)
+\tkzDrawLines(X',Ha Y',Hb Z',Hc)
+\tkzDrawLines(X',E Y',F Z',G)
+\end{tikzpicture}
+% subsubsection soddy (end)
+
+\subsubsection{Soddy circle with function} % (fold)
+\label{ssub:soddy_circle_with_function}
+
+\directlua{%
+init_elements ()
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 5 , 0 )
+z.C = point : new (4 , 4 )
+T.ABC = triangle : new ( z.A,z.B,z.C )
+z.I = T.ABC.incenter
+z.E,z.F,z.G = T.ABC : projection (z.I)
+T.orthic = T.ABC : orthic ()
+z.Ha,z.Hb,z.Hc = get_points (T.orthic)
+C.ins = circle : new (z.I,z.E)
+z.s,z.xi,z.yi,z.zi = T.ABC : soddy_center ()
+C.soddy_int = circle : new (z.s,z.xi)
+C.soddy_ext = C.ins : inversion (C.soddy_int)
+z.w = C.soddy_ext.center
+z.t = C.soddy_ext.through
+z.Xip,z.Yip,z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
+}
+
+\begin{minipage}{.5\textwidth}
+ \begin{Verbatim}
+ \directlua{%
+init_elements ()
+ z.A = point : new ( 0 , 0 )
+ z.B = point : new ( 5 , 0 )
+ z.C = point : new (4 , 4 )
+ T.ABC = triangle : new ( z.A,z.B,z.C )
+ z.I = T.ABC.incenter
+ z.E,z.F,z.G = T.ABC : projection (z.I)
+ T.orthic = T.ABC : orthic ()
+ z.Ha,z.Hb,z.Hc = get_points (T.orthic)
+ C.ins = circle : new (z.I,z.E)
+ z.s,z.xi,z.yi,
+ z.zi = T.ABC : soddy_center ()
+ C.soddy_int = circle : new (z.s,z.xi)
+ C.soddy_ext = C.ins : inversion (C.soddy_int)
+ z.w = C.soddy_ext.center
+ z.t = C.soddy_ext.through
+ z.Xip,z.Yip,
+ z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
+ }
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\begin{tikzpicture}[scale=.6]
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawCircles(A,G B,E C,F I,E s,xi w,t)
+\tkzDrawPoints(A,B,C,E,F,G,s,w,xi,t)
+\tkzLabelPoints(A,B,C)
+\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,xi,yi,zi,I)
+\tkzDrawPoints(Xi',Yi',Zi')
+\tkzLabelPoints(A,B,C,E,F,G)
+\end{tikzpicture}
+\end{minipage}
+
+\begin{Verbatim}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawCircles(A,G B,E C,F I,E s,xi w,t)
+\tkzDrawPoints(A,B,C,E,F,G,s,w,xi,t)
+\tkzLabelPoints(A,B,C)
+\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,xi,yi,zi,I)
+\tkzDrawPoints(Xi',Yi',Zi')
+\tkzLabelPoints(A,B,C,E,F,G)
+\end{tikzpicture}
+\end{Verbatim}
+% subsubsection soddy_circle_with_function (end)
+
+
+% subsection soddy_circles_of_a_triangle (end)
+
+\subsection{Six circles in a triangle} % (fold)
+\label{sub:six_circles_in_a_triangle}
+In geometry, the six circles theorem relates to a chain of six circles together with a triangle, such that each circle is tangent to two sides of the triangle and also to the preceding circle in the chain. The chain closes, in the sense that the sixth circle is always tangent to the first circle.[1][2] It is assumed in this construction that all circles lie within the triangle, and all points of tangency lie on the sides of the triangle. [Wikipedia]
+
+\vspace{6pt}
+The file \code{search\_circle.lua} used in this example:
+
+\begin{mybox}
+ \begin{Verbatim}
+ local r =...
+
+ function newcircle (T,C)
+ local NT,L,NC,c,t
+ NT = T.incenter : homothety ((1+C.radius/T.inradius),T)
+ L = line : new (NT.pb,NT.pa)
+ _,NC = L : c_ll_p(NT.pc,C.center)
+ return NC.center,T.bc:projection(NC.center)
+ end
+
+ z.A = point : new ( 0 , 0 )
+ z.B = point : new ( 8 , 0 )
+ z.C = point : new ( 2 , 6 )
+ T.ABC = triangle : new (z.A,z.B,z.C)
+ L.bA = T.ABC : bisector ()
+ z.c1 = L.bA : report(r)
+ z.t1 = T.ABC.ab : projection(z.c1)
+ C.last = circle : new(z.c1,z.t1)
+
+ local vertices = {"A", "B", "C"}
+ for i = 2, 6 do
+ T.used = triangle : new(
+ z[vertices[math.fmod(i - 2, 3) + 1]],
+ z[vertices[math.fmod(i - 1, 3) + 1]],
+ z[vertices[math.fmod(i, 3) + 1]] )
+ z["c" .. i], z["t" .. i] = newcircle(T.used, C.last)
+ C.last = circle : new(z["c" .. i], z["t" .. i])
+ end
+ \end{Verbatim}
+\end{mybox}
+
+
+\vspace{6pt}
+\begin{minipage}{.5\textwidth}
+\begin{Verbatim}
+\directlua{
+init_elements ()
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 8 , 0 )
+z.C = point : new ( 2 , 6 )
+loadfile ("search_circle.lua")(1.4)
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzFillPolygon[lightgray!30](A,B,C)
+\foreach \n/\c in {1/red,2/orange,%
+3/yellow,4/green,5/blue,6/violet}
+ {\tkzFillCircle[\c!30,opacity=.4](c\n,t\n)
+ \tkzDrawCircle[thick,\c](c\n,t\n)}
+\tkzDrawPolygon[thick](A,B,C)
+\tkzDrawPoints(A,B,C)
+\end{tikzpicture}
+\end{Verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\directlua{
+init_elements ()
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 8 , 0 )
+z.C = point : new ( 2 , 6 )
+loadfile ("search_circle.lua")(1.4)
+}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzFillPolygon[lightgray!30](A,B,C)
+\foreach \n/\c in {1/red,2/orange,3/yellow,4/green,5/blue,6/violet}
+ {\tkzFillCircle[\c!30,opacity=.4](c\n,t\n)
+ \tkzDrawCircle[thick,\c](c\n,t\n) }
+\tkzDrawPolygon[thick](A,B,C)
+\tkzDrawPoints(A,B,C)
+\end{tikzpicture}
+\end{minipage}
+
+\vspace{12pt}
+When the first circle is the incircle then you get only 4 circles.
+
+\begin{minipage}{.5\textwidth}
+\begin{mybox}
+ \begin{Verbatim}
+ T.ABC = triangle : new (z.A,z.B,z.C)
+ R = T.ABC.inradius/math.sin((T.ABC.alpha)/2)
+ loadfile ("search_circle.lua")(R)
+ }
+ \end{Verbatim}
+\end{mybox}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\directlua{
+scale =1.5
+init_elements ()
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 8 , 0 )
+z.C = point : new ( 2 , 6 )
+T.ABC = triangle : new (z.A,z.B,z.C)
+R = T.ABC.inradius/math.sin((T.ABC.alpha)/2)
+ loadfile ("search_circle.lua")(R)
+ }
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzFillPolygon[lightgray!30](A,B,C)
+\foreach \n/\c in {1/red,2/orange,3/yellow,4/green,5/blue,6/violet}
+ {\tkzFillCircle[\c!30,opacity=.4](c\n,t\n)
+ \tkzDrawCircle[thick,\c](c\n,t\n) }
+\tkzDrawPolygon[thick](A,B,C)
+\tkzDrawPoints(A,B,C)
+\end{tikzpicture}
+\end{minipage}
+
+
+% subsection six_circles_in_a_triangle (end)
+% section some_theorems (end) \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transfers.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transfers.tex
index 1b65e4dabe8..1459bdfb42e 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transfers.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transfers.tex
@@ -116,18 +116,18 @@ a point whose affix is: \tkzUseLua{x}
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
\directlua{
- init_elements ()
- z.b = point: new (1,1)
- z.a = point: new (4,2)
- z.c = point: new (2,2)
- z.d = point: new (5,1)
- L.ab = line : new (z.a,z.b)
- L.cd = line : new (z.c,z.d)
- det = (z.b-z.a)^(z.d-z.c)
- if det == 0 then bool = true
- else bool = false
- end
- x = intersection (L.ab,L.cd)
+ init_elements ()
+ z.b = point: new (1,1)
+ z.a = point: new (4,2)
+ z.c = point: new (2,2)
+ z.d = point: new (5,1)
+ L.ab = line : new (z.a,z.b)
+ L.cd = line : new (z.c,z.d)
+ det = (z.b-z.a)^(z.d-z.c)
+ if det == 0 then bool = true
+ else bool = false
+ end
+ x = intersection (L.ab,L.cd)
}
The intersection of the two lines lies at
a point whose affix is:\tkzUseLua{x}
@@ -295,6 +295,7 @@ This consists in passing a number (the number of sides) from \TeX\ to \code{Lua}
This time, the transfer will be carried out using an external file. The following example is based on this one, but using a table.
\directlua{
+init_elements()
z.a = point: new (1,0)
z.b = point: new (3,2)
z.c = point: new (0,2)
@@ -314,6 +315,7 @@ This time, the transfer will be carried out using an external file. The followin
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
\directlua{
+ init_elements()
z.a = point: new (1,0)
z.b = point: new (3,2)
z.c = point: new (0,2)
@@ -331,7 +333,7 @@ This time, the transfer will be carried out using an external file. The followin
}
\begin{tikzpicture}
\tkzGetNodes
- \tkzInit[xmin=-1,xmax=5,ymin=0,ymax=6]
+ \tkzInit[xmin=-1,xmax=5,ymin=0,ymax=5]
\tkzDrawX\tkzDrawY
\tkzDrawPoints[red,size=2](a,b,c)
\directlua{f(-1,3,100)}%
@@ -340,14 +342,17 @@ This time, the transfer will be carried out using an external file. The followin
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
-\begin{tikzpicture}
- \tkzGetNodes
- \tkzInit[xmin=-1,xmax=5,ymin=0,ymax=6]
- \tkzDrawX\tkzDrawY
- \tkzDrawPoints[red,size=2](a,b,c)
- \directlua{f(-1,3,100)}%
- \draw[domain=-1:3] plot[smooth] file {tmp.table};
-\end{tikzpicture}
+\begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzInit[xmin=-1,xmax=5,ymin=0,ymax=5]
+ \tkzDrawX\tkzDrawY
+ \tkzDrawPoints[red,size=2](a,b,c)
+ \directlua{f(-1,3,100)}%
+ \draw[domain=-1:3] plot[smooth] file {tmp.table};
+ \end{tikzpicture}
+\end{center}
+
\end{minipage}
% subsubsection example_3 (end)
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/search_circle.lua b/Master/texmf-dist/doc/latex/tkz-elements/examples/search_circle.lua
new file mode 100644
index 00000000000..6ca5eff6b91
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/search_circle.lua
@@ -0,0 +1,29 @@
+-- search_circle.lua
+local r =...
+
+function newcircle (T,C)
+ local NT,L,NC,c,t
+ NT = T.incenter : homothety ((1+C.radius/T.inradius),T)
+ L = line : new (NT.pb,NT.pa)
+ _,NC = L : c_ll_p(NT.pc,C.center)
+ return NC.center,T.bc:projection(NC.center)
+end
+
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 8 , 0 )
+z.C = point : new ( 2 , 6 )
+T.ABC = triangle : new (z.A,z.B,z.C)
+L.bA = T.ABC : bisector ()
+z.c1 = L.bA : report(r)
+z.t1 = T.ABC.ab : projection(z.c1)
+C.last = circle : new(z.c1,z.t1)
+
+local vertices = {"A", "B", "C"}
+ for i = 2, 6 do
+ T.used = triangle : new(
+ z[vertices[math.fmod(i - 2, 3) + 1]],
+ z[vertices[math.fmod(i - 1, 3) + 1]],
+ z[vertices[math.fmod(i, 3) + 1]] )
+ z["c" .. i], z["t" .. i] = newcircle(T.used, C.last)
+ C.last = circle : new(z["c" .. i], z["t" .. i])
+ end
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.pdf b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.pdf
index 6b1998eb801..8263a89b79b 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.pdf
+++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.tex b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.tex
index 15046d83a3b..5f4fec8415c 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.tex
@@ -5,7 +5,7 @@
\usepackage{tkz-elements}
\begin{document}
-\begin{tkzelements}
+\directlua{
z.A = point: new (0 , 0)
z.B = point: new (10 , 0)
L.AB = line: new ( z.A, z.B)
@@ -30,7 +30,7 @@
_,z.P_2 = intersection (C.QA,C.CB)
T = triangle: new ( z.P_0, z.P_1, z.P_2)
z.O_3 = T.circumcenter
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.pdf b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.pdf
index 6ff5f444c88..5a56a13dfac 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.pdf
+++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.tex b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.tex
index 2ee7b4c4d95..a9cf6032e2d 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.tex
@@ -7,7 +7,7 @@
The Feuerbach triangle is the triangle formed by the three points of tangency of the nine-point circle with the excircles
-\begin{tkzelements}
+\directlua{
scale = .6
z.A = point: new (0,0)
z.B = point: new (6,0)
@@ -26,7 +26,7 @@
C.apo = C.ortho : inversion (C.euler)
z.O = C.apo.center
z.xa,z.xb,z.xc = C.ortho : inversion (z.Ea,z.Eb,z.Ec)
-\end{tkzelements}
+}
\vspace*{2em}
\hfill
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.pdf b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.pdf
index 5f1ded6e314..7762c969a3f 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.pdf
+++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.tex b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.tex
index a95ae05b08a..0e9fe3de977 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.tex
@@ -5,7 +5,7 @@
\usepackage{tkz-elements}
\begin{document}
-\begin{tkzelements}
+\directlua{
scale = 2
z.A = point: new (0 , 0)
z.B = point: new (5 , 1)
@@ -42,7 +42,7 @@
_,z.V = intersection (L.YO,E)
_,z.W = intersection (L.ZO,E)
set_lua_to_tex {'a','b','ang'}
- \end{tkzelements}
+ }
\begin{tikzpicture}
\tkzGetNodes
@@ -50,13 +50,14 @@
\tkzDrawCircles[red](N,Ma O,A)
\tkzDrawSegments(A,X B,Y C,Z B,Hb C,Hc X,O Y,O Z,O)
\tkzDrawPolygon[red](U,V,W)
- \tkzLabelPoints[red](U,V,W)
- \tkzLabelPoints(A,B,C,X,Y,Z)
\tkzDrawLine[blue](I,J)
- \tkzLabelPoints[blue,right](O,N,G,H,I,J)
\tkzDrawPoints(I,J,U,V,W)
\tkzDrawPoints(A,B,C,N,G,H,O,X,Y,Z,Ma,Mb,Mc,Ha,Hb,Hc)
\tkzDrawEllipse[blue](N,\a,\b,\ang)
+ \tkzLabelPoints[blue,right](O,N,G,H,I,J)
+ \tkzLabelPoints[red](U,V,W)
+ \tkzLabelPoints(A,B,Z)
+ \tkzLabelPoints[above](C,X,Y)
\end{tikzpicture}
\end{document}
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.pdf b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.pdf
index 1428fd1d4fe..c84806e978f 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.pdf
+++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.tex b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.tex
index 5dcf23e1baa..de8e4d335d3 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.tex
+++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.tex
@@ -7,7 +7,7 @@
\usepackage{tkz-elements}
\begin{document}
-\begin{tkzelements}
+\directlua{
scale = 2
z.A = point: new(0,0)
z.B = point: new(5,0)
@@ -17,13 +17,14 @@
z.E,z.F,z.G = get_points (T.EFG)
z.S = T.ABC: medial (): circum_circle ().south
z.O = T.ABC: medial ().circumcenter
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C E,F,G)
\tkzDrawCircle(O,E)
\tkzDrawPoints(A,B,C,O,S,E,F,G)
- \tkzLabelPoints(A,B,O,S,E,F,G)
+ \tkzLabelPoints(A,B,O,S,G)
+ \tkzLabelPoints[above](E,F)
\tkzLabelPoints[above](C)
\end{tikzpicture}
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_5.pdf b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_5.pdf
new file mode 100644
index 00000000000..15a9a28b6ca
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_5.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_5.tex b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_5.tex
new file mode 100644
index 00000000000..3356bf311fb
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_5.tex
@@ -0,0 +1,28 @@
+% !TEX TS-program = lualatex
+% Created by Alain Matthes on 2024-12-25.
+% Copyright (c) 2024 AlterMundus.
+\documentclass[margin = 12pt]{standalone}
+\usepackage{tkz-euclide}
+\usepackage{tkz-elements}
+
+\begin{document}
+
+\directlua{
+init_elements ()
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 8 , 0 )
+z.C = point : new ( 2 , 6 )
+loadfile ("search_circle.lua")(1.4)
+}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzFillPolygon[lightgray!30](A,B,C)
+\foreach \n/\c in {1/red,2/orange,3/yellow,4/green,5/blue,6/violet}
+ {\tkzFillCircle[\c!30,opacity=.4](c\n,t\n)
+ \tkzDrawCircle[thick,\c](c\n,t\n) }
+\tkzDrawPolygon[thick](A,B,C)
+\tkzDrawPoints(A,B,C)
+\end{tikzpicture}
+\end{document}
+
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/search_circle.lua b/Master/texmf-dist/doc/latex/tkz-elements/search_circle.lua
new file mode 100644
index 00000000000..6ca5eff6b91
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tkz-elements/search_circle.lua
@@ -0,0 +1,29 @@
+-- search_circle.lua
+local r =...
+
+function newcircle (T,C)
+ local NT,L,NC,c,t
+ NT = T.incenter : homothety ((1+C.radius/T.inradius),T)
+ L = line : new (NT.pb,NT.pa)
+ _,NC = L : c_ll_p(NT.pc,C.center)
+ return NC.center,T.bc:projection(NC.center)
+end
+
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 8 , 0 )
+z.C = point : new ( 2 , 6 )
+T.ABC = triangle : new (z.A,z.B,z.C)
+L.bA = T.ABC : bisector ()
+z.c1 = L.bA : report(r)
+z.t1 = T.ABC.ab : projection(z.c1)
+C.last = circle : new(z.c1,z.t1)
+
+local vertices = {"A", "B", "C"}
+ for i = 2, 6 do
+ T.used = triangle : new(
+ z[vertices[math.fmod(i - 2, 3) + 1]],
+ z[vertices[math.fmod(i - 1, 3) + 1]],
+ z[vertices[math.fmod(i, 3) + 1]] )
+ z["c" .. i], z["t" .. i] = newcircle(T.used, C.last)
+ C.last = circle : new(z["c" .. i], z["t" .. i])
+ end
diff --git a/Master/texmf-dist/doc/latex/tkz-elements/tkz-elements.pdf b/Master/texmf-dist/doc/latex/tkz-elements/tkz-elements.pdf
index f7ba1922c0e..940aba4ce35 100644
--- a/Master/texmf-dist/doc/latex/tkz-elements/tkz-elements.pdf
+++ b/Master/texmf-dist/doc/latex/tkz-elements/tkz-elements.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/yb-book/DEPENDS.txt b/Master/texmf-dist/doc/latex/yb-book/DEPENDS.txt
index 3d880587be3..a7a94e251f6 100644
--- a/Master/texmf-dist/doc/latex/yb-book/DEPENDS.txt
+++ b/Master/texmf-dist/doc/latex/yb-book/DEPENDS.txt
@@ -7,11 +7,13 @@ hard collection-fontsextra
hard collection-fontsrecommended
hard csquotes
hard cyrillic
+hard doi
hard enumitem
hard fancyhdr
hard float
hard footmisc
hard geometry
+hard href-ul
hard hypdoc
hard ifmtarg
hard imakeidx
@@ -38,7 +40,6 @@ hard xifthen
hard xkeyval
hard zref
soft biblatex
-soft href-ul
soft imakeidx
soft l3build
soft pgfopts
diff --git a/Master/texmf-dist/doc/latex/yb-book/yb-book.pdf b/Master/texmf-dist/doc/latex/yb-book/yb-book.pdf
index b953b416211..f27123bd3e8 100644
--- a/Master/texmf-dist/doc/latex/yb-book/yb-book.pdf
+++ b/Master/texmf-dist/doc/latex/yb-book/yb-book.pdf
Binary files differ