summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tkz/tkz-elements/doc
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-02-06 03:00:37 +0000
committerNorbert Preining <norbert@preining.info>2024-02-06 03:00:37 +0000
commit25b83ac051a8ec3bf79f47e3c3c66b3567a3216a (patch)
tree0a1f7b342fc53b2cbb5851d3db82fb4bbb150474 /macros/latex/contrib/tkz/tkz-elements/doc
parent1343b01ff7a9bf0b93cee0d13ff1b13f2e649252 (diff)
CTAN sync 202402060300
Diffstat (limited to 'macros/latex/contrib/tkz/tkz-elements/doc')
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-circle.tex14
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-line.tex5
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-point.tex89
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-rectangle.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-triangle.tex81
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-vectors.tex193
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-examples.tex480
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-indepthstudy.tex20
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-main.tex52
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-organization.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-presentation.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/tkz-elements.pdfbin642250 -> 656453 bytes
12 files changed, 660 insertions, 301 deletions
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-circle.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-circle.tex
index 4dd3b75b60..2395f5f045 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-circle.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-circle.tex
@@ -270,12 +270,12 @@ z.Q = intersection (L.tB,T.ca)
\subsubsection{Inversion: point, line and circle} % (fold)
\label{ssub:inversion}
-The "inversion" method can be used on a point, a line or a circle. Depending on the type of object, the function determines the correct algorithm to use.
+The “inversion” method can be used on a point, a line or a circle. Depending on the type of object, the function determines the correct algorithm to use.
\subsubsection{Inversion: point} % (fold)
\label{ssub:inversion_point}
-The "inversion" method can be used on a point, a group of points, a line or a circle. Depending on the type of object, the function determines the correct algorithm to use.
+The “inversion” method can be used on a point, a group of points, a line or a circle. Depending on the type of object, the function determines the correct algorithm to use.
\begin{minipage}{.5\textwidth}
\begin{verbatim}
@@ -756,11 +756,11 @@ z.I,z.T = get_points ( C.IT )
Cette fonction retourne une chaîne qui indique la position du cercle par rapport à un autre. Utile pour créer une fonction. Les cas sont:
\begin{itemize}
- \item "outside"
- \item "outside tangent"
- \item "inside tangent"
- \item "inside"
- \item "intersect"
+ \item “outside”
+ \item “outside tangent”
+ \item “inside tangent”
+ \item “inside”
+ \item “intersect”
\end{itemize}
\begin{minipage}{.5\textwidth}
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-line.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-line.tex
index feab38af27..2aa2ce6537 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-line.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-line.tex
@@ -28,12 +28,13 @@ The attributes are :
\Iattr{line}{mid} & Middle of the segment& |z.M = L.AB.mid|\\
\Iattr{line}{slope} & Slope of the line & see (\ref{ssub:example_class_line})\\
\Iattr{line}{length} &|l = L.AB.length|&see (\ref{sub:transfer_from_lua_to_tex} ; \ref{ssub:example_class_line})\\
-\Iattr{line}{north\_pa} & See (\ref{ssub:example_class_line}) & \\
+\Iattr{line}{north\_pa} & &See (\ref{ssub:example_class_line}) \\
\Iattr{line}{north\_pb} & &\\
\Iattr{line}{south\_pa} & &\\
\Iattr{line}{south\_pb} & &See (\ref{ssub:example_class_line}) \\
\Iattr{line}{east} & &\\
\Iattr{line}{west} & &\\
+\Iattr{line}{vec} & |V.AB = L.AB.vec|& defines $\overrightarrow{AB}$ See (\ref{sec:class_vector})\\
\bottomrule
\end{tabular}
\egroup
@@ -410,7 +411,7 @@ The side lengths are proportional to the lengths given in the table. They depend
z.E = T.ABE.pc
T.ABF = L.AB : golden ()
z.F = T.ABF.pc
- T.ABG = L.AB : devine ()
+ T.ABG = L.AB : divine ()
z.G = T.ABG.pc
T.ABH = L.AB : pythagoras ()
z.H = T.ABH.pc
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-point.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-point.tex
index 45f7991c92..4efd21328f 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-point.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-point.tex
@@ -103,9 +103,9 @@ This is the creation of a fixed point with coordinates 1 and 2 and which is name
\textbf{Attributes} & \textbf{Application}& \textbf{Example}\\
\Iattr{point}{re} & |z.A.re = 1| & see (\ref{ssub:methods}) \\
\Iattr{point}{im} & |z.A.im = 2| &see (\ref{ssub:methods}) \\
-\Iattr{point}{type} & |z.A.type = 'point| & \\
+\Iattr{point}{type} & |z.A.type = 'point'| & \\
\Iattr{point}{argument} & |z.A.argument $\approx$ 0.78539816339745| & see (\ref{ssub:example_point_attributes})\\
-\Iattr{point}{module} & |z.A.module| $\approx$ |2.2360...| =$\sqrt{5}$ & see (\ref{ssub:example_point_attributes})\\
+\Iattr{point}{modulus} & |z.A.modulus| $\approx$ |2.2360...| =$\sqrt{5}$ & see (\ref{ssub:example_point_attributes})\\
\bottomrule
\end{tabular}
\egroup
@@ -242,7 +242,7 @@ Attributes of \texttt{z.M}
\subsection{Methods of the class point} % (fold)
\label{sub:methods_of_the_class_point}
-The methods described in the following table are standard. You'll find them in most of the examples at the end of this documentation. The result of the different methods presented in the following table is a \tkzNameObj{point}.
+The methods described in the following table are standard. You'll find them in most of the examples at the end of this documentation. The result of the different methods presented in the following table is a \tkzNameObj{point}. See section (\ref{sub:complex_numbers}) for the metamethods.
\vspace{1em}
\bgroup
@@ -265,6 +265,8 @@ The methods described in the following table are standard. You'll find them in m
\Imeth{point}{west(r)} & & \\
\Imeth{point}{normalize()} & |z.b = z.a: normalize ()| & see (\ref{ssub:method_normalize}) \\
\Imeth{point}{get\_points (obj)} & retrieves points from the object & \\
+\Imeth{point}{orthogonal (d)} & |z.B=z.A:orthogonal(d)| & $\overrightarrow{OB}\perp \overrightarrow{OA}$ and $OB=d$\\
+\Imeth{point}{at ()} & |z.X = z.B : at (z.A)| & $\overrightarrow{OB}= \overrightarrow{AX}$ and $OB=d$\\
\midrule
\textbf{Transformations} &&\\
\midrule
@@ -369,7 +371,6 @@ Use of |north and east| functions linked to points, to transfer lengths, see (\r
\tkzLabelPoints[above right](C,D,F)
\end{tikzpicture}
\end{minipage}
-
% subsubsection report_de_distance (end)
@@ -460,6 +461,86 @@ z.I = point : new (1,0)
\end{minipage}
% subsubsection method_normalize (end)
+\subsubsection{\Imeth{point}{Orthogonal (d)} method} % (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$.
+
+\begin{minipage}{.6\textwidth}
+\begin{verbatim}
+\begin{tkzelements}
+ z.A = point : new ( 3 , 1 )
+ z.B = z.A : orthogonal (1)
+ z.O = point : new ( 0,0 )
+ z.C = z.A : orthogonal ()
+\end{tkzelements}
+\begin{tikzpicture}[gridded]
+ \tkzGetNodes
+ \tkzDrawSegments(O,A O,C)
+ \tkzDrawPoints(O,A,B,C)
+ \tkzLabelPoints[below right](O,A,B,C)
+\end{tikzpicture}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}{.4\textwidth}
+\begin{tkzelements}
+ z.A = point : new ( 3 , 1 )
+ z.B = z.A : orthogonal (1)
+ z.O = point : new ( 0,0 )
+ z.C = z.A : orthogonal ()
+\end{tkzelements}
+\begin{tikzpicture}[gridded]
+ \tkzGetNodes
+ \tkzDrawSegments(O,A O,C)
+ \tkzDrawPoints(O,A,B,C)
+ \tkzLabelPoints[below right](O,A,B,C)
+\end{tikzpicture}
+\end{minipage}
+% subsubsection orthogonal_method (end)
+
+\subsubsection{\Imeth{point}{at} method} % (fold)
+\label{ssub:_imeth_point_at_method}
+
+Cette méthode est complémentaire de la précédente, ainsi on peut souhaiter non pas avoir $\overrightarrow{OB}\perp \overrightarrow{OA}$ mais $\overrightarrow{AB}\perp \overrightarrow{OA}$.
+
+\begin{minipage}{.6\textwidth}
+\begin{verbatim}
+\begin{tkzelements}
+ z.A = point : new ( 3 , 1 )
+ z.B = z.A : orthogonal (1)
+ z.O = point : new ( 0,0 )
+ -- z.B = z.B : at (z.A) -- or
+ z.B = z.A : orthogonal (1) : at (z.A)
+ z.C = z.A+z.B
+ z.D =(z.C-z.A):orthogonal(2) : at (z.C)
+\end{tkzelements}
+\begin{tikzpicture}[gridded]
+ \tkzGetNodes
+ \tkzLabelPoints[below right](O,A,B,C,D)
+ \tkzDrawSegments(O,A A,B A,C C,D)
+ \tkzDrawPoints(O,A,B,C,D)
+\end{tikzpicture}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}{.4\textwidth}
+\begin{tkzelements}
+z.A = point : new ( 3 , 1 )
+z.B = z.A : orthogonal (1)
+z.O = point : new ( 0,0 )
+-- z.B = z.B : at (z.A) -- or
+z.B = z.A : orthogonal (1) : at (z.A)
+z.C = z.A+z.B
+z.D =(z.C-z.A):orthogonal(2) : at (z.C)
+\end{tkzelements}
+\begin{tikzpicture}[gridded]
+\tkzGetNodes
+\tkzLabelPoints[below right](O,A,B,C,D)
+\tkzDrawSegments(O,A A,B A,C C,D)
+\tkzDrawPoints(O,A,B,C,D)
+\end{tikzpicture}
+\end{minipage}
+
+% subsubsection _imeth_point_at_method (end)
\subsubsection{Example: \Imeth{point}{rotation of points}} % (fold)
\label{ssub:example_rotation_of_points}
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-rectangle.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-rectangle.tex
index 8b591cc61e..e232980e64 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-rectangle.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-rectangle.tex
@@ -258,8 +258,8 @@ z.I = R.diag.center
z.X = point : new ( 0 , 0 )
z.Y = point : new ( 4 , 2 )
R.gold = rectangle : gold (z.X,z.Y)
-z.C = R.gold.pc
-z.D = R.gold.pd
+z.Z = R.gold.pc
+z.W = R.gold.pd
z.I = R.gold.center
\end{tkzelements}
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-triangle.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-triangle.tex
index a65899c0ef..9261d6fbe7 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-triangle.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-triangle.tex
@@ -40,6 +40,46 @@ The triangle object is created using the \Imeth{triangle}{new} method, for examp
\end{tabular}
\egroup
+\subsection{Triangle attributes: angles} % (fold)
+\label{sub:triangle_attributes_angles}
+
+\begin{minipage}{.6\textwidth}
+\begin{verbatim}
+\begin{tkzelements}
+ z.A = point: new(0,0)
+ z.B = point: new(5,0)
+ z.C = point: new(2,3)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+\end{tkzelements}
+\def\wangle#1{\tkzDN[2]{%
+ \tkzUseLua{math.deg(T.ABC.#1)}}}
+\begin{tikzpicture}
+\tkzGetNodes
+ \tkzDrawPolygons(A,B,C)
+ \tkzLabelAngle(B,A,C){$\wangle{alpha}^\circ$}
+ \tkzLabelAngle(C,B,A){$\wangle{beta}^\circ$}
+ \tkzLabelAngle(A,C,B){$\wangle{gamma}^\circ$}
+\end{tikzpicture}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}{.4\textwidth}
+\begin{tkzelements}
+ z.A = point: new(0,0)
+ z.B = point: new(5,0)
+ z.C = point: new(2,3)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+\end{tkzelements}
+\def\wangle#1{\tkzDN[2]{\tkzUseLua{math.deg(T.ABC.#1)}}}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygons(A,B,C)
+\tkzLabelAngle(B,A,C){$\wangle{alpha}^\circ$}
+\tkzLabelAngle(C,B,A){$\wangle{beta}^\circ$}
+\tkzLabelAngle(A,C,B){$\wangle{gamma}^\circ$}
+\end{tikzpicture}
+\end{minipage}
+% subsection triangle_attributes_angles (end)
+
\subsubsection{Example: triangle attributes} % (fold)
\label{ssub:example_triangle_attributes}
\begin{minipage}{.5\textwidth}
@@ -149,6 +189,20 @@ The triangle object is created using the \Imeth{triangle}{new} method, for examp
\Imeth{triangle}{euler\_line () } & the line through $N$ ,$G$, $H$ and $O$ if the triangle is not equilateral
\footnote{N center of nine points circle, G centroid, H orthocenter , O circum center } \\
\Imeth{triangle}{antiparallel(pt,n)} & n=0 antiparallel through pt to $(BC)$, n=1 to $(AC)$ etc.\\
+\midrule
+ \textbf{Circles} &\\
+\midrule
+\Imeth{triangle}{euler\_circle ()} & C.|NP = T.ABC : euler_circle ()| \tkzar $N$ euler point
+ \footnote{ The midpoint of each side of the triangle, the foot of each altitude, the midpoint of the line segment from each vertex of the triangle to the orthocenter.} \\
+\Imeth{triangle}{circum\_circle ()} & |C.OA = T.ABC : circum ()| Triangle's circumscribed circle \\
+\Imeth{triangle}{in\_circle ()} & Inscribed circle of the triangle\\
+\Imeth{triangle}{ex\_circle (n)} & Circle tangent to the three sides of the triangle ; n =1 swap ; n=2 2 swap \\
+\Imeth{triangle}{first\_lemoine\_circle ()} & The center is the midpoint between Lemoine point and the circumcenter.\footnote{
+Through the Lemoine point draw lines parallel to the triangle's sides. The points where the parallel lines intersect the sides of ABC
+ then lie on a circle known as the first Lemoine circle. } \\
+\Imeth{triangle}{second\_lemoine\_circle ()} & see example \ref{sub:antiparallel_through_lemoine_point}\\
+\Imeth{triangle}{spieker\_circle ()} & The incircle of the medial triangle\\
+
\bottomrule
\end{tabular}
\end{minipage}
@@ -169,19 +223,6 @@ Remark: If you don't need to use the triangle object several times, you can obta
\toprule
\textbf{Methods} & \textbf{Comments} \\
\midrule
- \textbf{Circles} &\\
-\midrule
-\Imeth{triangle}{euler\_circle ()} & C.|NP = T.ABC : euler_circle ()| \tkzar $N$ euler point
- \footnote{ The midpoint of each side of the triangle, the foot of each altitude, the midpoint of the line segment from each vertex of the triangle to the orthocenter.} \\
-\Imeth{triangle}{circum\_circle ()} & |C.OA = T.ABC : circum ()| Triangle's circumscribed circle \\
-\Imeth{triangle}{in\_circle ()} & Inscribed circle of the triangle\\
-\Imeth{triangle}{ex\_circle (n)} & Circle tangent to the three sides of the triangle ; n =1 swap ; n=2 2 swap \\
-\Imeth{triangle}{first\_lemoine\_circle ()} & The center is the midpoint between Lemoine point and the circumcenter.\footnote{
-Through the Lemoine point draw lines parallel to the triangle's sides. The points where the parallel lines intersect the sides of ABC
- then lie on a circle known as the first Lemoine circle. } \\
-\Imeth{triangle}{second\_lemoine\_circle ()} & see example \ref{sub:antiparallel_through_lemoine_point}\\
-\Imeth{triangle}{spieker\_circle ()} & The incircle of the medial triangle\\
-\midrule
\textbf{Triangles} &\\
\midrule
\Imeth{triangle}{orthic ()} & |T = T.ABC : orthic ()| triangle joining the feet of the altitudes \\
@@ -234,7 +275,7 @@ Through the Lemoine point draw lines parallel to the triangle's sides. The point
\tkzDrawCircle[red](N,I)
\tkzDrawCircles[teal](O,A)
\tkzDrawSegments(A,P B,Q C,R)
- \tkzDrawSegments[red](A,I B,J C,K)\include{TKZdoc-elements-classes-triangle.tex}
+ \tkzDrawSegments[red](A,I B,J C,K)
\tkzDrawPolygons(A,B,C)
\tkzDrawPoints(A,B,C,N,I,J,K,O,P,Q,R,H,G)
\tkzLabelPoints(A,B,C,I,J,K,P,Q,R,H)
@@ -331,11 +372,9 @@ Through the Lemoine point draw lines parallel to the triangle's sides. The point
\tkzDrawPoints(A,B,M,C,D,E,F)
\tkzLabelPoints[below right](A,B,C,D,E)
\tkzLabelPoints[above](M,F)
- \tkzFillAngles[opacity=.4,cyan!20](A,M,B B,E,M)
- \tkzFillAngles[opacity=.4,purple!20](B,M,F M,F,B)
\tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D)
- \tkzMarkAngles[mark=||](A,M,E E,M,B B,E,M)
- \tkzMarkAngles[mark=|](B,M,F M,F,B)
+ \tkzMarkAngles[mark=||,size=.5](A,M,E E,M,B B,E,M)
+ \tkzMarkAngles[mark=|,size=.5](B,M,F M,F,B)
\tkzMarkSegments(B,E B,M B,F)
\end{tikzpicture}
\end{minipage}
@@ -350,11 +389,9 @@ Through the Lemoine point draw lines parallel to the triangle's sides. The point
\tkzDrawPoints(A,B,M,C,D,E,F)
\tkzLabelPoints[below right](A,B,C,D,E)
\tkzLabelPoints[above](M,F)
- \tkzFillAngles[opacity=.4,cyan!20](A,M,B B,E,M)
- \tkzFillAngles[opacity=.4,purple!20](B,M,F M,F,B)
\tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D)
- \tkzMarkAngles[mark=||](A,M,E E,M,B B,E,M)
- \tkzMarkAngles[mark=|](B,M,F M,F,B)
+ \tkzMarkAngles[mark=||,size=.5](A,M,E E,M,B B,E,M)
+ \tkzMarkAngles[mark=|,size=.5](B,M,F M,F,B)
\tkzMarkSegments(B,E B,M B,F)
\end{tikzpicture}
\end{verbatim}
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-vectors.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-vectors.tex
new file mode 100644
index 0000000000..00d924bb83
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-vectors.tex
@@ -0,0 +1,193 @@
+\newpage
+
+\section{Class \Iclass{vector}} % (fold)
+\label{sec:class_vector}
+
+In fact, they are more a class of oriented segments than vectors in the strict mathematical sense.
+
+A vector is defined by giving two points (i.e. two affixes).
+|V.AB = vector : new (z.A,z.B)| creates the vector $\overrightarrow(AB)$, i.e. the oriented segment with origin $A$ representing a vector. A few rudimentary operations are defined, such as sum, subtraction and multiplication by a scalar.
+
+The sum is defined as follows:
+
+Let V.AB + V.CD result in a vector V.AE defined as follows
+
+If $\overrightarrow{CD} = \overrightarrow{BE} $ then $\overrightarrow{AB} + \overrightarrow{CD} = \overrightarrow{AB} + \overrightarrow{BE} =\overrightarrow(AE)$
+
+\begin{mybox}
+ Creation |V.AB = vector: new (z.A,z.B)|
+\end{mybox}
+
+\begin{verbatim}
+z.A = ...
+z.B = ...
+z.C = ...
+z.D = ...
+V.AB = vector : new (z.A,z.B)
+V.CD = vector : new (z.C,z.D)
+V.AE = V.AB + V.CD -- possible V.AB : add (V.CD)
+z.E = V.AE.h -- we recover the final point (h = head)
+\end{verbatim}
+
+\subsection{Attributes of a vector} % (fold)
+\label{sub:attributes_of_a_vector}
+
+% subsection attributes_of_a_vector (end)
+\vspace{1em}
+\bgroup
+\small
+\catcode`_=12
+\captionof{table}{Vector attributes.}\label{vector:att}
+\begin{tabular}{lll}
+\toprule
+\textbf{Attributes} & \textbf{Application}& \textbf{Example}\\
+\Iattr{vector}{pa} & |V.AB.t = z.A| t for tail & see (\ref{ssub:methods}) \\
+\Iattr{vector}{pb} & |V.AB.h = z.B| h for head & see (\ref{ssub:methods}) \\
+\Iattr{vector}{type} & |V.AB.type = 'vector'| & \\
+\Iattr{vector}{slope} & |V.AB.slope| & see (\ref{ssub:example_vector_attributes})\\
+\Iattr{vector}{length} & |V.AB.norm|& see (\ref{ssub:example_vector_attributes})\\
+\bottomrule
+\end{tabular}
+\egroup
+
+\subsubsection{Example vector attributes} % (fold)
+\label{ssub:example_vector_attributes}
+
+\begin{minipage}{.6\textwidth}
+ \begin{verbatim}
+ \begin{tkzelements}
+ z.O = point: new (0,0)
+ z.A = point: new (0,1)
+ z.B = point: new (3,4)
+ L.AB = line : new ( z.A , z.B )
+ z.C = point: new (1,2)
+ z.D = point: new (2,1)
+ u = vector : new (z.A,z.B)
+ v = vector : new (z.C,z.D)
+ w =u+v
+ z.E = w.h
+ \end{tkzelements}
+ \begin{tikzpicture}[gridded]
+ \tkzGetNodes
+ \tkzLabelPoints(A,B,C,D,O,E)
+ \tkzDrawSegments[->,red](A,B C,D A,E)
+ \tkzLabelSegment(A,B){$\overrightarrow{u}$}
+ \tkzLabelSegment(C,D){$\overrightarrow{v}$}
+ \tkzLabelSegment(A,E){$\overrightarrow{w}$}
+ \end{tikzpicture}
+ $\overrightarrow{w}$ has slope :
+ $\tkzDN{\tkzUseLua{math.deg(w.slope)}}^\circ$
+ \end{verbatim}
+\end{minipage}
+\begin{minipage}{.4\textwidth}
+\begin{tkzelements}
+ z.O = point: new (0,0)
+ z.A = point: new (0,1)
+ z.B = point: new (3,4)
+ L.AB = line : new ( z.A , z.B )
+ z.C = point: new (1,2)
+ z.D = point: new (2,1)
+ u = vector : new (z.A,z.B)
+ v = vector : new (z.C,z.D)
+ w = u+v
+ z.E = w.h
+\end{tkzelements}
+\begin{tikzpicture}[gridded]
+ \tkzGetNodes
+ \tkzLabelPoints(A,B,C,D,O,E)
+ \tkzDrawSegments[->,red](A,B C,D A,E)
+ \tkzLabelSegment(A,B){$\overrightarrow{u}$}
+ \tkzLabelSegment(C,D){$\overrightarrow{v}$}
+ \tkzLabelSegment(A,E){$\overrightarrow{w}$}
+\end{tikzpicture}
+
+$\overrightarrow{w}$ has slope :
+$\tkzDN{\tkzUseLua{math.deg(w.slope)}}^\circ$
+\end{minipage}
+% subsubsection example_vector_attributes (end)
+
+\subsection{Methods of the class vector} % (fold)
+\label{sub:methods_of_the_class_vector}
+
+\vspace{1em}
+\bgroup
+\catcode`_=12
+\small
+\captionof{table}{Methods of the class vector.}\label{vector:met}
+\begin{tabular}{lll}
+\toprule
+ \textbf{Metamethods} & \textbf{Application}& \\
+ \midrule
+\Imeth{vector}{\_\_add (u,v)} & |V.AB + V.CD| & \\
+\Imeth{vector}{\_\_sub (u,v)} & |V.AB - V.CD| & \\
+\Imeth{vector}{\_\_unm (u)} & |V.CD = -V.AB| & \\
+\Imeth{vector}{\_\_mul (k,u)} & |V.CD = k*V.AB| & \\
+ \midrule
+ \textbf{Methods} & \textbf{Application}& \\
+\Imeth{vector}{new(pt, pt)} & |V.AB = vector: new (z.A,z.B) | & \\
+\Imeth{vector}{normalize(V)} & |V.AB : normalize () | & \\
+\Imeth{vector}{orthogonal(d)} & |V.AB : orthogonal (d) | & \\
+\Imeth{vector}{scale(d)} & |V.CD = V.AB : scale (2) | & $\overrightarrow{CD} = 2\overrightarrow{AB} $ \\
+\Imeth{vector}{at (V)} & |V.DB = V.AC : at (z.D) | & $\overrightarrow{DB} = \overrightarrow{AC} $ \\
+\bottomrule
+\end{tabular}
+\egroup
+
+\subsubsection{Example of methods} % (fold)
+\label{ssub:example_of_methods}
+
+\begin{minipage}{.5\textwidth}
+ \begin{verbatim}
+ \begin{tkzelements}
+ z.O = point: new (0,0)
+ z.A = point: new (0,1)
+ z.B = point: new (3,4)
+ V.AB = vector: new (z.A,z.B)
+ V.AC = V.AB : scale (.5)
+ z.C = V.AC.h
+ V.AD = V.AB : orthogonal ()
+ z.D = V.AD.h
+ V.AN = V.AB : normalize ()
+ z.N = V.AN.h
+ V.AR = V.AB : orthogonal (2*math.sqrt(2))
+ z.R = V.AR.h
+ V.AX = 2*V.AC - V.AR
+ z.X = V.AX.h
+ V.OY = V.AX : at (z.O)
+ z.Y = V.OY.h
+ \end{tkzelements}
+ \begin{tikzpicture}[gridded]
+ \tkzGetNodes
+ \tkzDrawSegments[>=stealth,->,red](A,B A,C A,D A,N A,R A,X O,Y)
+ \tkzLabelPoints(A,B,C,D,O,N,R,X,Y)
+ \end{tikzpicture}
+ \end{verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+ \begin{tkzelements}
+ z.O = point: new (0,0)
+ z.A = point: new (0,1)
+ z.B = point: new (3,4)
+ V.AB = vector: new (z.A,z.B)
+ V.AC = V.AB : scale (.5)
+ z.C = V.AC.h
+ V.AD = V.AB : orthogonal ()
+ z.D = V.AD.h
+ V.AN = V.AB : normalize ()
+ z.N = V.AN.h
+ V.AR = V.AB : orthogonal (2*math.sqrt(2))
+ z.R = V.AR.h
+ V.AX = 2*V.AC - V.AR
+ z.X = V.AX.h
+ V.OY = V.AX : at (z.O)
+ z.Y = V.OY.h
+ \end{tkzelements}
+ \begin{tikzpicture}[gridded]
+ \tkzGetNodes
+ \tkzDrawSegments[>=stealth,->,red](A,B A,C A,D A,N A,R A,X O,Y)
+ \tkzLabelPoints(A,B,C,D,O,N,R,X,Y)
+ \end{tikzpicture}
+\end{minipage}
+% subsubsection example_of_methods (end)
+% section class_vector (end)
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-examples.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-examples.tex
index 9e79877299..5efb52381f 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-examples.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-examples.tex
@@ -179,22 +179,23 @@ z.E = intersection (L.AI,L.LLC)
\subsection{Apollonius circle} % (fold)
\label{sub:apollonius_circle}
-\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
scale=.75
- z.A = point: new (0 , 0)
- z.B = point: new (6 , 0)
- z.M = point: new (5 , 3)
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.M = point: new (5 , 3)
T.MAB = triangle : new (z.M,z.A,z.B)
L.bis = T.MAB : bisector ()
- z.C = L.bis.pb
+ z.C = L.bis.pb
L.bisext = T.MAB : bisector_ext ()
- z.D = intersection (T.MAB.bc, L.bisext)
- L.CD = line: new (z.C,z.D)
- z.O = L.CD.mid
- L.AM = T.MAB.ab
- z.E = z.M : symmetry (z.A)
+ z.D = intersection (T.MAB.bc, L.bisext)
+ L.CD = line: new (z.C,z.D)
+ z.O = L.CD.mid
+ L.AM = T.MAB.ab
+ z.E = z.M : symmetry (z.A)
\end{tkzelements}
+
+\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSegment[add=0 and 1](A,M)
@@ -210,26 +211,24 @@ scale=.75
\tkzMarkAngles[mark=|](A,M,C C,M,B)
\tkzMarkAngles[mark=||](B,M,D D,M,E)
\end{tikzpicture}
-\end{tkzexample}
-
+\hspace*{\fill}
+\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
scale=.75
- z.A = point: new (0 , 0)
- z.B = point: new (6 , 0)
- z.M = point: new (5 , 3)
+ z.A = point: new (0 , 0)
+ z.B = point: new (6 , 0)
+ z.M = point: new (5 , 3)
T.MAB = triangle : new (z.M,z.A,z.B)
L.bis = T.MAB : bisector ()
- z.C = L.bis.pb
+ z.C = L.bis.pb
L.bisext = T.MAB : bisector_ext ()
- z.D = intersection (T.MAB.bc, L.bisext)
- L.CD = line: new (z.C,z.D)
- z.O = L.CD.mid
- L.AM = T.MAB.ab
- z.E = z.M : symmetry (z.A)
+ z.D = intersection (T.MAB.bc, L.bisext)
+ L.CD = line: new (z.C,z.D)
+ z.O = L.CD.mid
+ L.AM = T.MAB.ab
+ z.E = z.M : symmetry (z.A)
\end{tkzelements}
-
-\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSegment[add=0 and 1](A,M)
@@ -245,7 +244,12 @@ scale=.75
\tkzMarkAngles[mark=|](A,M,C C,M,B)
\tkzMarkAngles[mark=||](B,M,D D,M,E)
\end{tikzpicture}
-\hspace*{\fill}
+\end{tkzexample}
+
+Remark : The circle can be obtained with:
+
+|C.AB = T.MAB.bc : apollonius (length(z.M,z.A)/length(z.M,z.B))|
+
%subsection apollonius_circle (end)
@@ -428,8 +432,8 @@ Same result using the function |T.ABC.ab : apollonius (k) |
z.w1,z.t1 = get_points ( C.AB )
C.AC = T.ABC.ca : apollonius (length(z.B,z.C)/length(z.B,z.A))
z.w2,z.t2 = get_points ( C.AC )
- C.AC = T.ABC.bc : apollonius (length(z.A,z.B)/length(z.A,z.C))
- z.w3,z.t3 = get_points ( C.AC )
+ C.BC = T.ABC.bc : apollonius (length(z.A,z.B)/length(z.A,z.C))
+ z.w3,z.t3 = get_points ( C.BC )
\end{tkzelements}
\end{verbatim}
@@ -733,19 +737,19 @@ Same result using the function |T.ABC.ab : apollonius (k) |
z.c = C.center
\end{tkzelements}
- \hspace*{\fill}
- \begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawCircle(O,A)
- \tkzDrawCircle[orange](c,z1)
- \tkzDrawPoints[orange](O,A,z1,z2,c)
- \tkzLabelPoints[right](O,A,z1,z2,c)
- \end{tikzpicture}
- \hspace*{\fill}
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircle(O,A)
+\tkzDrawCircle[orange](c,z1)
+\tkzDrawPoints[orange](O,A,z1,z2,c)
+\tkzLabelPoints[right](O,A,z1,z2,c)
+\end{tikzpicture}
+\hspace*{\fill}
% subsection orthogonal_circle_through (end)
-\subsection{Devine ratio} % (fold)
-\label{sub:devine_ratio}
+\subsection{Divine ratio} % (fold)
+\label{sub:divine_ratio}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
@@ -809,52 +813,53 @@ L.BG = line: new (z.B,z.G)
z.L = intersection (L.AR,L.BG)
\end{tkzelements}
- \hspace*{\fill}
- \begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawPolygons(A,C,E,F A,B,G,H)
- \tkzDrawCircles(O_1,C O_2,B O_0,B)
- \tkzDrawSegments(H,C B,K A,L)
- \tkzDrawPoints(A,B,C,K,E,F,G,H,O_0,O_1,O_2,R,S,T,L)
- \tkzLabelPoints(A,B,C,K,E,F,G,H,O_0,O_1,O_2,R,S,T,L)
- \end{tikzpicture}
- \hspace*{\fill}
-% subsection devine_ratio (end)
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygons(A,C,E,F A,B,G,H)
+\tkzDrawCircles(O_1,C O_2,B O_0,B)
+\tkzDrawSegments(H,C B,K A,L)
+\tkzDrawPoints(A,B,C,K,E,F,G,H,O_0,O_1,O_2,R,S,T,L)
+\tkzLabelPoints(A,B,C,K,E,F,G,H,O_0,O_1,O_2,R,S,T,L)
+\end{tikzpicture}
+\hspace*{\fill}
+% subsection divine_ratio (end)
\subsection{Director circle} % (fold)
\label{sub:director_circle}
% modif C: point (0.25) instead of 2
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
- \begin{verbatim}
- \begin{tkzelements}
- scale = .5
- z.O = point: new (0 , 0)
- z.F1 = point: new (4 , 0)
- z.F2 = point: new (-4 , 0)
- z.H = point: new (4*math.sqrt(2) , 0)
- E = ellipse: foci (z.F2,z.F1,z.H)
- a,b = E.Rx, E.Ry
- z.A = E.covertex
- T = triangle: new (z.H,z.O,z.A)
- z.P = T: parallelogram ()
- C = circle: new (z.O,z.P)
- z.L = C: point (0.25)
- L.J,L.K = E: tangent_from (z.L)
- z.J = L.J.pb
- z.K = L.K.pb
- \end{tkzelements}
- \begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawPoints(F1,F2,O)
- \tkzDrawCircles[teal](O,P)
- \tkzDrawPolygon(H,O,A,P)
- \tkzDrawEllipse[red](O,\tkzUseLua{a},\tkzUseLua{b},0)
- \tkzDrawSegments[orange](O,P O,L L,J L,K)
- \tkzDrawPoints(F1,F2,O,H,A,P,L,J,K)
- \tkzLabelPoints(F1,F2,O,H,A,P,L,J,K)
- \tkzMarkRightAngles(A,P,H J,L,K)
- \end{tikzpicture}
- \end{verbatim}
+\begin{verbatim}
+\begin{tkzelements}
+ scale = .5
+ z.O = point: new (0 , 0)
+ z.F1 = point: new (4 , 0)
+ z.F2 = point: new (-4 , 0)
+ z.H = point: new (4*math.sqrt(2) , 0)
+ E = ellipse: foci (z.F2,z.F1,z.H)
+ a,b = E.Rx, E.Ry
+ z.A = E.covertex
+ T = triangle: new (z.H,z.O,z.A)
+ z.P = T: parallelogram ()
+ C = circle: new (z.O,z.P)
+ z.L = C: point (0.25)
+ L.J,L.K = E: tangent_from (z.L)
+ z.J = L.J.pb
+ z.K = L.K.pb
+\end{tkzelements}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawPoints(F1,F2,O)
+ \tkzDrawCircles[teal](O,P)
+ \tkzDrawPolygon(H,O,A,P)
+ \tkzDrawEllipse[red](O,\tkzUseLua{a},\tkzUseLua{b},0)
+ \tkzDrawSegments[orange](O,P O,L L,J L,K)
+ \tkzDrawPoints(F1,F2,O,H,A,P,L,J,K)
+ \tkzLabelPoints(F1,F2,O,H,A,P,L,J,K)
+ \tkzLabelPoints[above](L)
+ \tkzMarkRightAngles(A,P,H J,L,K)
+\end{tikzpicture}
+\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
@@ -885,6 +890,7 @@ z.K = L.K.pb
\tkzDrawSegments[orange](O,P O,L L,J L,K)
\tkzDrawPoints(F1,F2,O,H,A,P,L,J,K)
\tkzLabelPoints(F1,F2,O,H,A,P,L,J,K)
+\tkzLabelPoints[above](L)
\tkzMarkRightAngles(A,P,H J,L,K)
\end{tikzpicture}
\end{minipage}
@@ -942,8 +948,8 @@ z.C = intersection (L.EG,L.AB)
z.O = C.AB: antipode (z.B)
\end{tkzelements}
- \hspace*{\fill}
- \begin{tikzpicture}
+\hspace*{\fill}
+\begin{tikzpicture}
\tkzGetNodes
\tkzDrawArc[delta=5](O,B)(G)
\tkzDrawCircles(A,B B,A)
@@ -952,13 +958,13 @@ z.O = C.AB: antipode (z.B)
\tkzMarkSegments[mark=s||](A,E B,E O,A)
\tkzDrawPoints(A,B,C,E,I,J,G,O,K)
\tkzLabelPoints(A,B,C,E,I,J,G,O,K)
- \end{tikzpicture}
- \hspace*{\fill}
+\end{tikzpicture}
+ \hspace*{\fill}
% subsection gold_division (end)
\subsection{Ellipse} % (fold)
\label{sub:ellipse}
-
+\begin{minipage}{.5\textwidth}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
z.C = point: new (3 , 2)
@@ -971,7 +977,6 @@ z.O = C.AB: antipode (z.B)
a = E.Rx
b = E.Ry
slope = math.deg(E.slope)
-
\end{tkzelements}
\begin{tikzpicture}
\tkzGetNodes
@@ -981,7 +986,8 @@ z.O = C.AB: antipode (z.B)
\tkzLabelPoints(C,A,B)
\end{tikzpicture}
\end{tkzexample}
-
+\end{minipage}
+\begin{minipage}{.5\textwidth}
\begin{tkzelements}
z.C = point: new (3 , 2)
z.A = point: new (5 , 1)
@@ -1004,53 +1010,55 @@ slope = math.deg(E.slope)
\tkzLabelPoints(C,A,B)
\end{tikzpicture}
\hspace*{\fill}
+\end{minipage}
% subsection ellipse (end)
\subsection{Ellipse with radii} % (fold)
\label{sub:ellipse_with_radii}
-
+\begin{minipage}{.5\textwidth}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
-z.C = point: new (0 , 4)
-z.B = point: new (4 , 0)
-z.D = point: new (2 , 6)
-b = math.sqrt(8)
-a = math.sqrt(32)
-ang = math.deg(math.pi/4)
-E = ellipse: radii (z.C,a,b,math.pi/4)
-z.V = E : point (0)
-z.CoV = E : point (0.25)
-\end{tkzelements}
-\begin{tikzpicture}
+scale=.5
+z.C = point: new (0 , 4)
+b = value(math.sqrt(8))
+a = value(math.sqrt(32))
+ang = math.deg(math.pi/4)
+E = ellipse: radii (z.C,a,b,math.pi/4)
+z.V = E : point (0)
+z.CoV = E : point (math.pi/2)
+\end{tkzelements}
+\begin{tikzpicture}[gridded]
\tkzGetNodes
-\tkzDrawEllipse[blue](C,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{ang})
+\tkzDrawEllipse[blue](C,\tkzUseLua{a},
+ \tkzUseLua{b},\tkzUseLua{ang})
\tkzDrawPoints(C,V,CoV)
\end{tikzpicture}
\end{tkzexample}
-
+\end{minipage}
+\begin{minipage}{.5\textwidth}
\begin{tkzelements}
+scale=.5
z.C = point: new (0 , 4)
-z.B = point: new (4 , 0)
-z.D = point: new (2 , 6)
-b = math.sqrt(8)
-a = math.sqrt(32)
+b = value(math.sqrt(8))
+a = value(math.sqrt(32))
ang = math.deg(math.pi/4)
-E = ellipse: radii (z.C,a,b,math.pi/4)
+E = ellipse: radii (z.C,a,b,math.pi/4)
z.V = E : point (0)
-z.CoV = E : point (0.25)
-\end{tkzelements}
+z.CoV = E : point (math.pi/2)
+\end{tkzelements}
\hspace*{\fill}
-\begin{tikzpicture}
+\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzDrawEllipse[blue](C,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{ang})
\tkzDrawPoints(C,V,CoV)
\end{tikzpicture}
+\end{minipage}
% subsection ellipse_with_radii (end)
\subsection{Ellipse\_with\_foci} % (fold)
\label{sub:ellipse_with_foci}
-
+\begin{minipage}{.5\textwidth}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
local e
@@ -1079,7 +1087,8 @@ z.CoV = E : point (0.25)
\tkzDrawLines(K,F K,G)
\end{tikzpicture}
\end{tkzexample}
-
+\end{minipage}
+\begin{minipage}{.5\textwidth}
\begin{tkzelements}
local e
e = .8
@@ -1109,27 +1118,28 @@ z.G = L.tb.pb
\tkzDrawLines(K,F K,G)
\end{tikzpicture}
\hspace*{\fill}
+ \end{minipage}
% subsection ellipse_with_foci (end)
\subsection{Euler relation} % (fold)
\label{sub:euler_relation}
-
+\begin{minipage}{.5\textwidth}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
- scale = .75
- z.A = point: new (0 , 0)
- z.B = point: new (5 , 0)
- z.C = point: new (-.4 , 4)
- T.ABC = triangle: new (z.A,z.B,z.C)
- z.J,z.K = get_points(T.ABC: ex_circle (2))
- z.X ,z.Y,z.K = T.ABC : projection (z.J)
- z.I,z.H = get_points(T.ABC : in_circle())
- z.O = T.ABC.circumcenter
- C.OA = circle : new (z.O,z.A)
- T.IBA = triangle: new (z.I,z.B,z.A)
- z.w = T.IBA.circumcenter
- L.Ow = line : new (z.O,z.w)
- _,z.E = intersection (L.Ow, C.OA)
+ scale = .75
+ z.A = point: new (0 , 0)
+ z.B = point: new (5 , 0)
+ z.C = point: new (-.4 , 4)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ z.J,z.K = get_points(T.ABC: ex_circle (2))
+ z.X,z.Y,z.K= T.ABC : projection (z.J)
+ z.I,z.H = get_points(T.ABC : in_circle())
+ z.O = T.ABC.circumcenter
+ C.OA = circle : new (z.O,z.A)
+ T.IBA = triangle: new (z.I,z.B,z.A)
+ z.w = T.IBA.circumcenter
+ L.Ow = line : new (z.O,z.w)
+ _,z.E = intersection (L.Ow, C.OA)
\end{tkzelements}
\begin{tikzpicture}
\tkzGetNodes
@@ -1143,7 +1153,8 @@ z.G = L.tb.pb
\tkzMarkRightAngles[fill=gray!20,opacity=.4](C,H,I A,K,J)
\end{tikzpicture}
\end{tkzexample}
-
+\end{minipage}
+\begin{minipage}{.5\textwidth}
\begin{tkzelements}
z.A = point: new (0 , 0)
z.B = point: new (5 , 0)
@@ -1173,6 +1184,7 @@ _,z.E = intersection (L.Ow, C.OA)
\tkzMarkRightAngles[fill=gray!20,opacity=.4](C,H,I A,K,J)
\end{tikzpicture}
\hspace*{\fill}
+\end{minipage}
% subsection euler_relation (end)
\subsection{External angle} % (fold)
@@ -1180,33 +1192,33 @@ _,z.E = intersection (L.Ow, C.OA)
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
- scale =.8
- z.A = point: new (0 , 0)
- z.B = point: new (5 , 0)
- z.C = point: new (-2 , 4)
- T.ABC = triangle: new (z.A,z.B,z.C)
- T.ext = T.ABC: excentral ()
- z.O = T.ABC.circumcenter
- z.D = intersection (T.ext.ab,T.ABC.ab)
- z.E = z.C: symmetry (z.B)
+ scale = .75
+ z.A = point: new (0 , 0)
+ z.B = point: new (5 , 0)
+ z.C = point: new (-2 , 4)
+ T.ABC = triangle: new (z.A,z.B,z.C)
+ T.ext = T.ABC: excentral ()
+ z.O = T.ABC.circumcenter
+ z.D = intersection (T.ext.ab,T.ABC.ab)
+ z.E = z.C: symmetry (z.B)
\end{tkzelements}
\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawPolygon(A,B,C)
- \tkzDrawLine[purple,add=0 and .5](B,C)
- \tkzDrawSegment[purple](A,D)
- \tkzDrawSegment[orange](C,D)
- \tkzFillAngles[purple!30,opacity=.2](D,C,A E,C,D)
- \tkzMarkAngles[mark=|](D,C,A E,C,D)
- \tkzDrawPoints(A,...,D)
- \tkzLabelPoints[above](C)
- \tkzLabelPoints(A,B,D)
+ \tkzGetNodes
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawLine[purple,add=0 and .5](B,C)
+ \tkzDrawSegment[purple](A,D)
+ \tkzDrawSegment[orange](C,D)
+ \tkzFillAngles[purple!30,opacity=.2](D,C,A E,C,D)
+ \tkzMarkAngles[mark=|](D,C,A E,C,D)
+ \tkzDrawPoints(A,...,D)
+ \tkzLabelPoints[above](C)
+ \tkzLabelPoints(A,B,D)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
-scale = .8
+scale = .75
z.A = point: new (0 , 0)
z.B = point: new (5 , 0)
z.C = point: new (-2 , 4)
@@ -1230,6 +1242,7 @@ z.E = z.C: symmetry (z.B)
\tkzLabelPoints[above](C)
\tkzLabelPoints(A,B,D)
\end{tikzpicture}
+\hspace*{\fill}
\end{minipage}
% subsection external_angle (end)
@@ -1488,7 +1501,7 @@ z.O_0 = L.AB.mid
\subsection{Harmonic division v1} % (fold)
\label{sub:harmonic_division_v1}
-\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
+\begin{minipage}[t]{.4\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
scale=.75
@@ -1523,7 +1536,7 @@ z.C = intersection (L.XG,L.AB)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
-\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
+\begin{minipage}[t]{.6\textwidth}\vspace{0pt}%
\begin{tkzelements}
scale=.75
z.A = point: new (0 , 0)
@@ -1556,6 +1569,7 @@ z.C = intersection (L.XG,L.AB)
\tkzLabelPoints(A,B,G,E,F,C,D)
\tkzMarkSegments(F,B B,E)
\end{tikzpicture}
+\hspace*{\fill}
\end{minipage}
% subsection harmonic_division_v1 (end)
@@ -1621,7 +1635,7 @@ z.C = intersection (L.GX,L.AB)
\subsection{Menelaus} % (fold)
\label{sub:menelaus}
-\begin{minipage}{.5\textwidth}
+\begin{minipage}{.4\textwidth}
\begin{verbatim}
\begin{tkzelements}
z.A = point: new (0 , 0)
@@ -1645,7 +1659,7 @@ z.C = intersection (L.GX,L.AB)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
-\begin{minipage}{.5\textwidth}
+\begin{minipage}{.6\textwidth}
\begin{tkzelements}
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -1668,6 +1682,7 @@ z.R = intersection (L.BC,L.PX)
\tkzDrawPoints(P,Q,R,A,B,C)
\tkzLabelPoints(A,B,C,P,Q,R)
\end{tikzpicture}
+\hspace*{\fill}
\end{minipage}
% subsection menelaus (end)
@@ -2041,7 +2056,7 @@ z.H = L.OOp : projection (z.X)
\end{minipage}
% subsection radical_circle (end)
-\subsection{Hexagram} % (fold)
+\subsection{Euler ellipse} % (fold)
\label{sub:hexagram}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
@@ -2080,6 +2095,9 @@ z.H = L.OOp : projection (z.X)
_,z.V = intersection (L.YO,E)
_,z.W = intersection (L.ZO,E)
\end{tkzelements}
+ \end{tkzexample}
+
+\begin{tkzexample}[latex=0cm,small,code only]
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -2419,7 +2437,7 @@ z.O = C.DC : inversion (z.W)
\end{tkzexample}
\begin{tkzelements}
-scale =.3
+scale =.5
z.A = point: new (0,0)
z.B = point: new (6,0)
z.C = point: new (0.8,4)
@@ -2665,6 +2683,84 @@ z.Kp = L.Kp.pb
\subsection{Midcircles} % (fold)
\label{sub:midcircles}
+\begin{tkzelements}
+z.A = point: new (0 , 0)
+z.B = point: new (10 , 0)
+L.AB = line : new (z.A,z.B)
+z.C = L.AB: gold_ratio ()
+L.AC = line : new (z.A,z.C)
+L.CB = line : new (z.C,z.B)
+z.O_0 = L.AB.mid
+z.O_1 = L.AC.mid
+z.O_2 = L.CB.mid
+C.O0B = circle : new (z.O_0,z.B)
+C.O1C = circle : new (z.O_1,z.C)
+C.O2C = circle : new (z.O_2,z.B)
+z.Q = C.O1C : midarc (z.C,z.A)
+z.P = C.O2C : midarc (z.B,z.C)
+L.O1O2 = line : new (z.O_1,z.O_2)
+L.O0O1 = line : new (z.O_0,z.O_1)
+L.O0O2 = line : new (z.O_0,z.O_2)
+z.M_0 = L.O1O2 : harmonic_ext (z.C)
+z.M_1 = L.O0O1 : harmonic_int (z.A)
+z.M_2 = L.O0O2 : harmonic_int (z.B)
+L.BQ = line : new (z.B,z.Q)
+L.AP = line : new (z.A,z.P)
+z.S = intersection (L.BQ,L.AP)
+L.CS = line : new (z.C,z.S)
+C.M1A = circle : new (z.M_1,z.A)
+C.M2B = circle : new (z.M_2,z.B)
+z.P_0 = intersection (L.CS,C.O0B)
+z.P_1 = intersection (C.M2B,C.O1C)
+z.P_2 = intersection (C.M1A,C.O2C)
+T.P012 = triangle : new (z.P_0,z.P_1,z.P_2)
+z.O_4 = T.P012.circumcenter
+T.CP12 = triangle : new (z.C,z.P_1,z.P_2)
+z.O_5 = T.CP12.circumcenter
+z.BN = z.B : north ()
+L.BBN = line : new (z.B,z.BN)
+L.M1P2 = line : new (z.M_1,z.P_2)
+z.J = intersection (L.BBN,L.M1P2)
+L.AP0 = line : new (z.A,z.P_0)
+L.BP0 = line : new (z.B,z.P_0)
+C.O4P0 = circle : new (z.O_4,z.P_0)
+_,z.G = intersection (L.AP0,C.O4P0)
+z.H = intersection (L.BP0,C.O4P0)
+z.Ap = z.M_1: symmetry (z.A)
+z.H_4,z.F,z.E,z.H_0 = L.AB : projection (z.O_4,z.G,z.H,z.P_0)
+\end{tkzelements}
+
+\hspace*{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircle[thin,fill=green!10](O_4,P_0)
+\tkzDrawCircle[purple,fill=purple!10,opacity=.5](O_5,C)
+\tkzDrawSemiCircles[teal](O_0,B)
+\tkzDrawSemiCircles[thin,teal,fill=teal!20,opacity=.5](O_1,C O_2,B)
+\tkzDrawSemiCircles[color = orange](M_2,B)
+\tkzDrawSemiCircles[color = orange](M_1,A')
+\tkzDrawArc[purple,delta=0](M_0,P_0)(C)
+\tkzDrawSegments[very thin](A,B A,P B,Q)
+\tkzDrawSegments[color=cyan](O_0,P_0 B,J G,J G,O_0 H,O_2)
+\tkzDrawSegments[ultra thin,purple](M_1,P_0 M_2,P_0 M_1,M_0 M_0,P_1 M_0,P_0 M_1,J)
+\tkzDrawPoints(A,B,C,P_0,P_2,P_1,M_0,M_1,M_2,J,P,Q,S)
+\tkzDrawPoints(O_0,O_1,O_2,O_4,O_5,G,H)
+\tkzMarkRightAngle[size=.2,fill=gray!20,opacity=.4](O_0,P_0,M_0)
+\tkzLabelPoints[below](A,B,C,M_0,M_1,M_2,O_1,O_2,O_0)
+\tkzLabelPoints[above](P_0,O_5,O_4)
+\tkzLabelPoints[above](P_1,J)
+\tkzLabelPoints[above](P_2,P,Q,S)
+\tkzLabelPoints[above right](H,E)
+\tkzLabelPoints[above left](F,G)
+\tkzLabelPoints[below right](H_0)
+\tkzLabelCircle[below=4pt,font=\scriptsize](O_1,C)(80){$(\beta)$}
+\tkzLabelCircle[below=4pt,font=\scriptsize](O_2,B)(80){$(\gamma)$}
+\tkzLabelCircle[below=4pt,font=\scriptsize](O_0,B)(110){$(\alpha)$}
+\tkzLabelCircle[left,font=\scriptsize](O_4,P_2)(60){$(\delta)$}
+\tkzLabelCircle[above left,font=\scriptsize](O_5,C)(40){$(\epsilon)$}
+\end{tikzpicture}
+\hspace*{\fill}
+
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
z.A = point: new (0 , 0)
@@ -2712,7 +2808,9 @@ z.Kp = L.Kp.pb
z.Ap = z.M_1: symmetry (z.A)
z.H_4,z.F,z.E,z.H_0 = L.AB : projection (z.O_4,z.G,z.H,z.P_0)
\end{tkzelements}
+\end{tkzexample}
+\begin{tkzexample}[latex=0cm,small,code only]
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle[thin,fill=green!10](O_4,P_0)
@@ -2743,83 +2841,7 @@ z.Kp = L.Kp.pb
\end{tikzpicture}
\end{tkzexample}
-\begin{tkzelements}
-z.A = point: new (0 , 0)
-z.B = point: new (10 , 0)
-L.AB = line : new (z.A,z.B)
-z.C = L.AB: gold_ratio ()
-L.AC = line : new (z.A,z.C)
-L.CB = line : new (z.C,z.B)
-z.O_0 = L.AB.mid
-z.O_1 = L.AC.mid
-z.O_2 = L.CB.mid
-C.O0B = circle : new (z.O_0,z.B)
-C.O1C = circle : new (z.O_1,z.C)
-C.O2C = circle : new (z.O_2,z.B)
-z.Q = C.O1C : midarc (z.C,z.A)
-z.P = C.O2C : midarc (z.B,z.C)
-L.O1O2 = line : new (z.O_1,z.O_2)
-L.O0O1 = line : new (z.O_0,z.O_1)
-L.O0O2 = line : new (z.O_0,z.O_2)
-z.M_0 = L.O1O2 : harmonic_ext (z.C)
-z.M_1 = L.O0O1 : harmonic_int (z.A)
-z.M_2 = L.O0O2 : harmonic_int (z.B)
-L.BQ = line : new (z.B,z.Q)
-L.AP = line : new (z.A,z.P)
-z.S = intersection (L.BQ,L.AP)
-L.CS = line : new (z.C,z.S)
-C.M1A = circle : new (z.M_1,z.A)
-C.M2B = circle : new (z.M_2,z.B)
-z.P_0 = intersection (L.CS,C.O0B)
-z.P_1 = intersection (C.M2B,C.O1C)
-z.P_2 = intersection (C.M1A,C.O2C)
-T.P012 = triangle : new (z.P_0,z.P_1,z.P_2)
-z.O_4 = T.P012.circumcenter
-T.CP12 = triangle : new (z.C,z.P_1,z.P_2)
-z.O_5 = T.CP12.circumcenter
-z.BN = z.B : north ()
-L.BBN = line : new (z.B,z.BN)
-L.M1P2 = line : new (z.M_1,z.P_2)
-z.J = intersection (L.BBN,L.M1P2)
-L.AP0 = line : new (z.A,z.P_0)
-L.BP0 = line : new (z.B,z.P_0)
-C.O4P0 = circle : new (z.O_4,z.P_0)
-_,z.G = intersection (L.AP0,C.O4P0)
-z.H = intersection (L.BP0,C.O4P0)
-z.Ap = z.M_1: symmetry (z.A)
-z.H_4,z.F,z.E,z.H_0 = L.AB : projection (z.O_4,z.G,z.H,z.P_0)
-\end{tkzelements}
-\hspace*{\fill}
-\begin{tikzpicture}
-\tkzGetNodes
-\tkzDrawCircle[thin,fill=green!10](O_4,P_0)
-\tkzDrawCircle[purple,fill=purple!10,opacity=.5](O_5,C)
-\tkzDrawSemiCircles[teal](O_0,B)
-\tkzDrawSemiCircles[thin,teal,fill=teal!20,opacity=.5](O_1,C O_2,B)
-\tkzDrawSemiCircles[color = orange](M_2,B)
-\tkzDrawSemiCircles[color = orange](M_1,A')
-\tkzDrawArc[purple,delta=0](M_0,P_0)(C)
-\tkzDrawSegments[very thin](A,B A,P B,Q)
-\tkzDrawSegments[color=cyan](O_0,P_0 B,J G,J G,O_0 H,O_2)
-\tkzDrawSegments[ultra thin,purple](M_1,P_0 M_2,P_0 M_1,M_0 M_0,P_1 M_0,P_0 M_1,J)
-\tkzDrawPoints(A,B,C,P_0,P_2,P_1,M_0,M_1,M_2,J,P,Q,S)
-\tkzDrawPoints(O_0,O_1,O_2,O_4,O_5,G,H)
-\tkzMarkRightAngle[size=.2,fill=gray!20,opacity=.4](O_0,P_0,M_0)
-\tkzLabelPoints[below](A,B,C,M_0,M_1,M_2,O_1,O_2,O_0)
-\tkzLabelPoints[above](P_0,O_5,O_4)
-\tkzLabelPoints[above](P_1,J)
-\tkzLabelPoints[above](P_2,P,Q,S)
-\tkzLabelPoints[above right](H,E)
-\tkzLabelPoints[above left](F,G)
-\tkzLabelPoints[below right](H_0)
-\tkzLabelCircle[below=4pt,font=\scriptsize](O_1,C)(80){$(\beta)$}
-\tkzLabelCircle[below=4pt,font=\scriptsize](O_2,B)(80){$(\gamma)$}
-\tkzLabelCircle[below=4pt,font=\scriptsize](O_0,B)(110){$(\alpha)$}
-\tkzLabelCircle[left,font=\scriptsize](O_4,P_2)(60){$(\delta)$}
-\tkzLabelCircle[above left,font=\scriptsize](O_5,C)(40){$(\epsilon)$}
-\end{tikzpicture}
-\hspace*{\fill}
% subsection midcircles (end)
\subsection{Pencil v1} % (fold)
@@ -4452,11 +4474,11 @@ z.L = T.golden.pc
L.O0L = line:new(z.O_0,z.L)
z.D = intersection (L.O0L,C.O0B)
L.DB = line:new(z.D,z.B)
-z.Z = intersection (L.DB,C.O2B)
+_,z.Z = intersection (L.DB,C.O2B)
L.DA = line:new(z.D,z.A)
z.I = intersection (L.DA,C.O1C)
L.O2Z = line:new(z.O_2,z.Z)
-z.H = intersection (L.O2Z,C.O0B)
+_,z.H = intersection (L.O2Z,C.O0B)
C.BD = circle:new (z.B,z.D)
C.DB = circle:new (z.D,z.B)
_,z.G = intersection (C.BD,C.O0B)
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-indepthstudy.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-indepthstudy.tex
index 935c4fdeea..3bfc5fc4ea 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-indepthstudy.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-indepthstudy.tex
@@ -172,16 +172,16 @@ The difference between |z.A = point : new (1,2)| and |za = point (1,2)| is that
\toprule
\textbf{Metamethods} & \textbf{Application} \\
\midrule
-__add(z1,z2) & |z.a + z.b| & affix \\
-__sub(z1,z2) & |z.a - z.b| & affix\\
-__unm(z) & |- z.a| & affix\\
-__mul(z1,z2) & |z.a * z.b| & affix\\
-__concat(z1,z2)& |z.a .. z.b| & dot product = real number \footnote{If $O$ is the origin of the complex plan, then we get the dot product of the vectors $\overrightarrow{Oa}$ and $\overrightarrow{Ob}$} \\
-__pow(z1,z2) & |z.a ^ z.b| & determinant = real number\\
-__div(z1,z2) & |z.a / z.b| & affix \\
-__tostring(z) & tex.print(tostring(z)) & displays the affix \\
-__tonumber(z) & tonumber(z) & affix or nil\\
-__eq(z1,z2) & eq (z.a,z.b) & boolean\\
+\_\_add(z1,z2) & |z.a + z.b| & affix \\
+\_\_sub(z1,z2) & |z.a - z.b| & affix\\
+\_\_unm(z) & |- z.a| & affix\\
+\_\_mul(z1,z2) & |z.a * z.b| & affix\\
+\_\_concat(z1,z2)& |z.a .. z.b| & dot product = real number \footnote{If $O$ is the origin of the complex plan, then we get the dot product of the vectors $\overrightarrow{Oa}$ and $\overrightarrow{Ob}$} \\
+\_\_pow(z1,z2) & |z.a ^ z.b| & determinant = real number\\
+\_\_div(z1,z2) & |z.a / z.b| & affix \\
+\_\_tostring(z) & tex.print(tostring(z)) & displays the affix \\
+\_\_tonumber(z) & tonumber(z) & affix or nil\\
+\_\_eq(z1,z2) & eq (z.a,z.b) & boolean\\
\bottomrule
\end{tabular}
\end{minipage}
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-main.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-main.tex
index 862be86799..95ce56dbc3 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-main.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-main.tex
@@ -1,6 +1,6 @@
% !TEX TS-program = lualatex
% encoding : utf8
-% Documentation of tkz-elements v1.82c
+% Documentation of tkz-elements v2.00c
% Copyright 2023 Alain Matthes
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -21,10 +21,10 @@
headings = small
]{tkz-doc}
\gdef\tkznameofpack{tkz-elements}
-\gdef\tkzversionofpack{1.82c}
+\gdef\tkzversionofpack{2.00c}
\gdef\tkzdateofpack{\today}
\gdef\tkznameofdoc{tkz-elements.pdf}
-\gdef\tkzversionofdoc{1.82c}
+\gdef\tkzversionofdoc{2.00c}
\gdef\tkzdateofdoc{\today}
\gdef\tkzauthorofpack{Alain Matthes}
\gdef\tkzadressofauthor{}
@@ -225,6 +225,7 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
\input{TKZdoc-elements-classes-rectangle.tex}
\input{TKZdoc-elements-classes-parallelogram.tex}
\input{TKZdoc-elements-classes-regular.tex}
+\input{TKZdoc-elements-classes-vectors.tex}
\input{TKZdoc-elements-classes-misc.tex}
\input{TKZdoc-elements-intersection.tex}
\input{TKZdoc-elements-indepthstudy.tex}
@@ -238,12 +239,12 @@ 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, |d| a positive real number, |n|an integer, |an| an angle, |b| a boolean, |s| a character string, |pt| a point, |v| variable, |L| a straight line, |C| a circle, |T| a triangle, |E| an ellipse, |Q| a quadrilateral, |P| a parallelogram, |R| a rectangle, |S| a square, |RP| a regular polygon, |O| an object (pt, L,C,T), . . a list of points or an object, < > optional argument.
+|r| denotes a real number, |d| a positive real number, |n|an integer, |an| an angle, |b| a boolean, |s| a character string, |pt| a point, |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, |O| an object (pt, L,C,T), . . a list of points or an object, < > optional argument.
\begin{multicols}{3}
-
-\fbox{\textbf{Point}}\\
-\textbf{Attributes} table(\ref{point:att}) \\
+
+\fbox{\textbf{point}}\\
+\textbf{Attributes} table(\ref{point:att}) \\
|re -> r| \\
|im -> r| \\
|type -> s| \\
@@ -254,10 +255,10 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
|.. -> r| \\
|^ -> r| \\
|conj -> pt| \\
-|abs -> | \\
-|mod -> | \\
-|norm -> | \\
-|arg -> r| \\
+|abs -> r| \\
+|mod -> d| \\
+|norm -> d| \\
+|arg -> d| \\
|get -> r,r| \\
|sqrt -> pt| \\
|new -> pt| \\
@@ -271,6 +272,8 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
|symmetry (...) -> O| \\
|rotation (an , ...) -> O| \\
|homothety (r , ...) -> O| \\
+|orthogonal(d) -> pt| \\
+|at() -> pt| \\
\\
\fbox{\textbf{line}} \\
\textbf{Attributes} table(\ref{line:att}) \\
@@ -285,6 +288,7 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
|west -> pt| \\
|slope -> r| \\
|length -> d| \\
+|vec -> V| \\
\textbf{Methods} table(\ref{line:met}) \\
|new (pt,pt) -> d| \\
|distance (pt) -> d| \\
@@ -327,7 +331,7 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
|gold (<swap>) -> T| \\
|euclide (<swap>) -> T| \\
|golden (<swap>) -> T| \\
-|devine () -> T| \\
+|divine () -> T| \\
|cheops () -> T| \\
|pythagoras () -> T| \\
|sublime () -> T| \\
@@ -406,6 +410,7 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
|-> r,r,r| \\
|in_out (pt) -> pt| \\
|check_equilateral () -> b| \\
+ \\
\fbox{\textbf{circle}} \\
\textbf{Attributes} table(\ref{circle:att}) \\
|center -> pt| \\
@@ -546,11 +551,27 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
|incircle () -> C| \\
|name (s) -> ?| \\
\\
+\fbox{\textbf{vector}} \\
+\textbf{Attributes} table(\ref{vector:att}) \\
+|pa,pb -> pt| \\
+|type -> s| \\
+|norm -> d| \\
+|slope -> r| \\
+\textbf{Methods} table(\ref{vector:met})\\
+|new (pt,pt) -> V| \\
+|+ - * -> pt| \\
+|normalize (V) -> V| \\
+|orthogonal (d) -> V| \\
+|scale (r) -> V| \\
+|at (pt) -> V| \\
+ \\
\fbox{\textbf{Misc.}} \\
- \textbf{Attributes} table(\ref{misc}) \\
+ \textbf{Attributes} table(\ref{misc}) \\
+|scale (default =1) -> r| \\
|tkzphi -> r| \\
|tkzinvphi -> r | \\
|tkzsqrtphi -> r | \\
+|tkz_epsilon (default=1e-8)-> r | \\
|length -> d | \\
|islinear(pt,pt,pt) -> b | \\
|isortho(pt,pt,pt) -> b | \\
@@ -564,5 +585,10 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
|altitude (pt,pt,pt) -> L| \\
|midpoint (pt,pt) -> pt| \\
|equilateral (pt,pt) -> T| \\
+|format_number(r,n) -> r| \\
+
+\fbox{\textbf{Macros}} \\
+|\tkzDN[n]{r} -> r| \\
+|\tkzDrawLuaEllipse((pt,pt,pt))| \\
\end{multicols}
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-organization.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-organization.tex
index f69e0a591d..0d59a2b80b 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-organization.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-organization.tex
@@ -3,9 +3,8 @@
Here's a sample organization.
-The line |% !TEX TS-program = lualatex| ensures that you don't forget to compile with Lua\LATEX{}. The "standalone" class is useful, as all you need to do here is create a figure.
+The line |% !TEX TS-program = lualatex| ensures that you don't forget to compile with Lua\LATEX{}. The “standalone” class is useful, as all you need to do here is create a figure.
-The "mini" option in \pkg{tkz-euclide} allows you to load and use only plot-related macros.
The package \pkg{ifthen} is useful if you need to use some Boolean.
@@ -13,7 +12,7 @@ The macro \tkzcname{LuaCodeDebugOn} allows you to try and find errors in Lua cod
It is of course possible to leave the Lua code in the \tkzNameEnv{tkzelements} environment, but externalizing this code has its advantages.
-The first advantage, if you use a good editor, is to have a good presentation of the code. Styles are different between "Lua" and \LATEX{}. This makes the code clearer. This is how I proceeded, then reintegrated the code into the main code.
+The first advantage, if you use a good editor, is to have a good presentation of the code. Styles are different between “Lua” and \LATEX{}. This makes the code clearer. This is how I proceeded, then reintegrated the code into the main code.
Another advantage is that you don't have to comment the code incorrectly. For Lua code, you comment lines with |--| (double minus sign), whereas for \LATEX{}, you comment with |%|.
@@ -26,7 +25,7 @@ Third advantage: the code can be reused.
% Created by Alain Matthes on 2024-01-09.
\documentclass[margin = 12pt]{standalone}
-\usepackage[mini]{tkz-euclide}
+\usepackage{tkz-euclide}
\usepackage{tkz-elements,ifthen}
\begin{document}
@@ -46,7 +45,7 @@ Third advantage: the code can be reused.
\end{document}
\end{verbatim}
-And here is the code for the "Lua" part: the file |ex_sangaku.lua|
+And here is the code for the “Lua” part: the file |ex_sangaku.lua|
\begin{verbatim}
z.A = point : new ( 0,0 )
@@ -79,7 +78,7 @@ z.I = intersection (L.Cc,L.BF)
\subsection{Scale problem} % (fold)
\label{sub:scale_problem}
-If necessary, it's better to do the scaling in the "Lua" section. The reason is that it will be more accurate. There is, however, a problem to be aware of. I've made it a point of honor to avoid using numerical values in my codes whenever possible. In principle, these values only appear in the definition of fixed points. If the "scale" option is used, scaling is applied when points are created. Let's imagine you want to organize your code as follows:
+If necessary, it's better to do the scaling in the “Lua” section. The reason is that it will be more accurate. There is, however, a problem to be aware of. I've made it a point of honor to avoid using numerical values in my codes whenever possible. In principle, these values only appear in the definition of fixed points. If the “scale” option is used, scaling is applied when points are created. Let's imagine you want to organize your code as follows:
|scale = 1.5|\\
|xB = 8|\\
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-presentation.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-presentation.tex
index 2dbc732666..86fcc479ab 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-presentation.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-presentation.tex
@@ -132,23 +132,23 @@ When all the points necessary for the drawing are obtained, they must be transfo
z.A = point: new (0 , 0)
z.B = point: new (10 , 0) -- creation of two fixed points $A$ and $B$
L.AB = line: new ( z.A, z.B)
-z.C = L.AB: gold_ratio () -- use of a method linked to "line"
-z.O_0 = line: new ( z.A, z.B).mid -- midpoint of segment with an attribute of "line"
+z.C = L.AB: gold_ratio () -- use of a method linked to “line”
+z.O_0 = line: new ( z.A, z.B).mid -- midpoint of segment with an attribute of “line”
z.O_1 = line: new ( z.A, z.C).mid -- objects are not stored and cannot be reused.
z.O_2 = line: new ( z.C, z.B).mid
-C.AB = circle: new ( z.O_0, z.B) -- new object "circle" stored and reused
+C.AB = circle: new ( z.O_0, z.B) -- new object “circle” stored and reused
C.AC = circle: new ( z.O_1, z.C)
C.CB = circle: new ( z.O_2, z.B)
-z.P = C.CB.north -- "north" atrributes of a circle
+z.P = C.CB.north -- no“rth atrributes of a circle
z.Q = C.AC.north
z.O = C.AB.south
-z.c = z.C : north (2) -- "north" method of a point (needs a parameter)
+z.c = z.C : north (2) -- “north” method of a point (needs a parameter)
C.PC = circle: new ( z.P, z.C)
C.QA = circle: new ( z.Q, z.A)
z.P_0 = intersection (C.PC,C.AB) -- search for intersections of two circles.
z.P_1 = intersection (C.PC,C.AC) -- idem
_,z.P_2 = intersection (C.QA,C.CB) -- idem
-z.O_3 = triangle: new ( z.P_0, z.P_1, z.P_2).circumcenter -- circumcenter attribute of "triangle"
+z.O_3 = triangle: new ( z.P_0, z.P_1, z.P_2).circumcenter -- circumcenter attribute of “triangle”
\end{tkzelements}
\begin{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/tkz-elements.pdf b/macros/latex/contrib/tkz/tkz-elements/doc/tkz-elements.pdf
index d5b920c981..14426183c2 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/tkz-elements.pdf
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/tkz-elements.pdf
Binary files differ