<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% !TEX TS-program = lualatex
% encoding : utf8 
% Documentation of tkz-elements v4.15c
% Copyright 2025  Alain Matthes
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
% This work has the LPPL maintenance status â€œmaintainedâ€.
% The Current Maintainer of this work is Alain Matthes.
\PassOptionsToPackage{unicode}{hyperref}

\documentclass[DIV         = 14,
               fontsize    = 10,
               index       = totoc,
               twoside,
               cadre,
               headings    = small
               ]{tkz-doc}
\gdef\tkznameofpack{tkz-elements}
\gdef\tkzversionofpack{4.15c}
\gdef\tkzdateofpack{\today}
\gdef\tkznameofdoc{tkz-elements.pdf}
\gdef\tkzversionofdoc{4.15c}
\gdef\tkzdateofdoc{\today}
\gdef\tkzauthorofpack{Alain Matthes}
\gdef\tkzadressofauthor{}
\gdef\tkznamecollection{AlterMundus}
\gdef\tkzurlauthor{http://altermundus.fr}
\gdef\tkzengine{lualatex}
\gdef\tkzurlauthorcom{http://altermundus.fr}
\nameoffile{\tkznameofpack}

% -- Packages ---------------------------------------------------  

\usepackage[dvipsnames,svgnames]{xcolor}
% my packages
\usepackage{tkz-base}
\usetikzlibrary{mindmap}
\usetikzlibrary{shapes.multipart}
\usepackage[mini]{tkz-euclide}
\usepackage{tkz-elements}
\usepackage{tkzexample}
\usepackage{pgfornament}
\makeatletter
    \renewcommand*\mdf@PackageWarning[1]{}
     \renewcommand*\mdf@PackageInfo[1]{}
\makeatother
% for metapost
\usepackage{luamplib}
\everymplib{input mpcolornames; beginfig(1);}
\everyendmplib{endfig;}
% for index
\usepackage{scrindex}
\makeindex
\usepackage[colorlinks,pdfencoding=auto, psdextra]{hyperref}
\hypersetup{
      linkcolor=Gray,
      citecolor=Green,
      filecolor=Mulberry,
      urlcolor=orange,
      menucolor=Gray,
      runcolor=Mulberry,
      linkbordercolor=Gray,
      citebordercolor=Green,
      filebordercolor=Mulberry,
      urlbordercolor=NavyBlue,
      menubordercolor=Gray,
      runbordercolor=Mulberry,
      pdfsubject={Euclidean Geometry},
      pdfauthor={\tkzauthorofpack},
      pdftitle={\tkznameofpack},
      pdfcreator={\tkzengine}
}
% fonts
%&lt;---------------------------------------------------------------------------&gt; 
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\usepackage{unicode-math} 
\usepackage{concmath-otf}
\let\rmfamily\ttfamily
% end fonts
%&lt;---------------------------------------------------------------------------&gt; 
% load other packages
\usepackage{pifont}                
\newcommand{\cmark}{\colorbox{green}{\textcolor{white}{\ding{51}}}} 
\newcommand{\xmark}{\colorbox{red}{\textcolor{white}{\ding{55}}}}    
\usepackage{multicol}
\usepackage[english]{babel}
\usepackage[normalem]{ulem}
\usepackage{booktabs}
\usepackage{array}
\usepackage{cellspace}
\usepackage{shortvrb} 
\usepackage{fancyvrb} 
\usepackage{bookmark} 
\usepackage{enumitem} 
\usepackage{moreenum}
\usepackage[most]{tcolorbox}
\newtcolorbox{mybox}{
  enhanced,
  boxrule=0pt,frame hidden,
  borderline west={3pt}{0pt}{cyan!75!black},
  colback=lightgray!10!white,
  sharp corners
}
% end load packages
%&lt;---------------------------------------------------------------------------&gt; 
% Indexation style
\makeatletter
\renewenvironment{theindex}
   {\section*{\indexname}\begin{multicols}{2}%
    \@mkboth{\MakeUppercase\indexname}%
  {\MakeUppercase\indexname}%
    \thispagestyle{plain}\parindent\z@
    \parskip\z@ \@plus .3\p@\relax
    \columnseprule \z@
    \columnsep 35\p@
    \let\item\@idxitem}
   {\end{multicols}}
\makeatother
% end indexation style
%&lt;---------------------------------------------------------------------------&gt; 
% Indexation
\newcommand{\tkzAttr}[2]{\textbf{\texttt{#2}}\index{#1_3@\texttt{#1: Attributes}!\texttt{#2}}}
\newcommand{\tkzVar}[2]{\textbf{\texttt{#2}}\index{#1_3@\texttt{#1: Reserved variable}!\texttt{#2}}}
\newcommand{\tkzMeth}[2]{\textbf{\texttt{#2}}\index{#1_3@\texttt{#1: Methods}!\texttt{#2}}}
\newcommand{\tkzMeta}[2]{\textbf{\texttt{#2}}\index{#1_3@\texttt{#1: Metamethods}!\texttt{#2}}}
\newcommand{\tkzFct}[2]{\textbf{\texttt{#2}}\index{#1_3@\texttt{#1: Functions}!\texttt{#2}}}
\newcommand{\tkzMod}[1]{\textbf{\texttt{#1}}\index{Modules!#1@\texttt{#1}}}
\newcommand{\tkzClass}[1]{\textbf{\texttt{#1}}\index{Classes!#1@\texttt{#1}}}
\newcommand{\tkzNameObj}[1]{\textbf{\texttt{#1}}\index{Objects!#1@\texttt{#1}}}
\newcommand{\tkzMacro}[2]{\textbf{\texttt{#2}}\index{#1_3@\texttt{#1: Macro}!\texttt{#2}}}
\newcommand{\tkzEngine}[1]{\textbf{\texttt{#1}}\index{Engine !#1@\texttt{#1}}}
\newcommand{\tkzPopt}[2]{\texttt{#2}\index{#1_3@\texttt{#1: options}!\texttt{#2}}}
\newcommand{\tkzEnv}[2]{\textbf{\texttt{#2}}\index{#1_3@\texttt{#1: Environments}!\texttt{#2}}}
\newcommand{\tkzConst}[1]{\textbf{\texttt{#1}}\index{Constants!#1@\texttt{#1}}}
\newcommand{\tkzSysVar}[1]{\textbf{\texttt{#1}}\index{Variables system!#1@\texttt{#1}}}
% Keyword for function options or parameters
\newcommand{\tkzKey}[1]{\texttt{#1}}

% Optional argument notation, e.g., (pt)
\newcommand{\tkzOptArg}[1]{\ensuremath{(#1)}}
% Keyword used as an optional key in a function call (e.g., known, near)
%\newcommand{\tkzKey}[1]{\texttt{#1}\index{#1@\texttt{#1}}}

% end indexation
%&lt;---------------------------------------------------------------------------&gt; 
% decoration
\newcommand{\tkzRBomb}{\textcolor{red}{\ding{43}\ }}
\newcommand{\lefthand}{\ding{43}}
\newcommand{\tkzimpbf}[1]{\texttt{tkzPopt#1}}
\newcommand{\tkzRHand}{\textcolor{red}{\lefthand}}
\newcommand{\smallbf}[1]{\textbf{\small #1}}
\newcommand{\parallelsum}{\mathbin{\!/\mkern-5mu/\!}}
\newcommand\LUALATEX{Lua\kern-.01em\LaTeX}%
% end decoration
%&lt;---------------------------------------------------------------------------&gt; 
% settings styles
\tkzSetUpColors[background=white,text=darkgray]  
\tkzSetUpPoint[size=2,color=teal,fill=teal!10]
\tkzSetUpLine[ultra thin,color=teal]
\tkzSetUpCompass[color=orange,ultra thin,/tkzcompass/delta=10] 
\tikzset{label style/.append style={below,color=teal,font=\scriptsize}}
\tikzset{new/.style={color=orange,ultra thin}} 
\tikzset{step 1/.style={color=cyan,ultra thin}} 
\tikzset{step 2/.style={color=purple,ultra thin}} 
\def\tkzar{\hspace{1em}--&gt;\hspace{1em}}
% end settings styles
%&lt;---------------------------------------------------------------------------&gt; 
% misc
\makeatletter\let\percentchar\@percentchar\makeatother
\def\luaveclen#1#2{%
\directlua{tex.print(string.format(
'\percentchar.5f',math.sqrt((#1)*(#1)+(#2)*(#2))))
}}
\let\pmpn\pgfmathprintnumber
\let\code\tkzname
% end misc
%&lt;---------------------------------------------------------------------------&gt; 
% Generate a new TOC
\DeclareNewTOC[%
   type=overview,
   listname={Overview}]{stoc}

\NewCommandCopy{\AddSectionTocEntry}{\addsectiontocentry}
\renewcommand{\addsectiontocentry}[2]{
   \AddSectionTocEntry{#1}{#2}
   \addxcontentsline{stoc}{section}[{#1}]{#2}
 }
 \BeforeStartingTOC[stoc]{
   \DeclareTOCStyleEntry[beforeskip=0pt]{section}{section}
 }
% end new toc

\hbadness=10000
%&lt;---------------------------------------------------------------------------&gt; 
\AtBeginDocument{\MakeShortVerb{\|}}

\begin{document} 

\parindent=0pt
\tkzTitleFrame{tkz-elements \tkzversionofpack\\Euclidean Geometry}
\clearpage


\defoffile{
This document gathers notes on \tkzNamePack{\tkznameofpack}, an initial version of a \tkzname{Lua} library designed to handle all necessary computations for constructing objects in Euclidean geometry. The document must be compiled with lua\LATEX.\\ 

With \tkzNamePack{tkz-elements}, all definitions and calculations are carried out exclusively in Lua, following an object-oriented programming model. Core geometric entities such as points, lines, triangles, and conics are implemented as object classes.\\
Once the computations are complete, graphical rendering is typically handled using \tkzNamePack{tkz-euclide}, although you may also use \TIKZ{} directly if desired.\\

I discovered Lua and object-oriented programming while developing this package, so itâ€™s possible that some parts could be improved. If you'd like to contribute or offer suggestions, feel free to contact me by email.
}

\presentation

\vspace*{4em}

\lefthand\ Acknowledgements : I received much valuable advices, remarks, corrections  from \\ \tkzimp{Nicolas Kisselhoff}, \tkzimp{David Carlisle}, \tkzimp{Roberto Giacomelli} and \tkzimp{Qrrbrbirlbel}.\\
Special thanks to \tkzimp{Wolfgang BÃ¼chel} for his invaluable contribution in correcting the examples.

\vspace*{1em}
\lefthand\ I would also like to extend my gratitude to \tkzimp{Eric Weisstein}, creator of 
\href{http://mathworld.wolfram.com/about/author.html}{MathWorld}.

\vspace*{1em}
\lefthand\ You can find some examples on my site and a french documentation:
\href{http://altermundus.fr}{altermundus.fr}.

\vfill
Please report typos or any other comments to this documentation to: \href{mailto:al.ma@mac.com}{\textcolor{blue}{Alain Matthes}}.

This file can be redistributed and/or modified under the terms of the \LaTeX{} 
Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\  archives.


\clearpage
\listofoverviews

\clearpage
\tableofcontents

\clearpage
\newpage
\input{TKZdoc-elements-beginning.tex}
\input{TKZdoc-elements-structure.tex}
\input{TKZdoc-elements-why.tex}
\input{TKZdoc-elements-presentation.tex}
\input{TKZdoc-elements-convention.tex}
\input{TKZdoc-elements-organization.tex}
\input{TKZdoc-elements-coordinates.tex}
\input{TKZdoc-elements-classes.tex}
\input{TKZdoc-elements-classes-point.tex}
\input{TKZdoc-elements-classes-line.tex}
\input{TKZdoc-elements-classes-circle.tex}
\input{TKZdoc-elements-classes-occs.tex}
\input{TKZdoc-elements-classes-conic.tex}
\input{TKZdoc-elements-classes-triangle.tex}
\input{TKZdoc-elements-classes-quadrilateral.tex}
\input{TKZdoc-elements-classes-square.tex}
\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-matrices.tex}
\input{TKZdoc-elements-classes-path.tex}
\input{TKZdoc-elements-intersection.tex}
\input{TKZdoc-elements-macros.tex}
\input{TKZdoc-elements-constants.tex}
\input{TKZdoc-elements-tkz.tex}
\input{TKZdoc-elements-utils.tex}
\input{TKZdoc-elements-maths.tex}
\input{TKZdoc-elements-lua.tex}
\input{TKZdoc-elements-indepthstudy.tex}
\input{TKZdoc-elements-transfers.tex}
\input{TKZdoc-elements-theorems.tex}
\input{TKZdoc-elements-examples.tex}
\input{TKZdoc-elements-metapost.tex}
\clearpage\newpage
\small\printindex

\end{document}</pre></body></html>