summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/jpnedumathsymbols/README.md10
-rw-r--r--macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-doc.pdf (renamed from macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.pdf)bin344343 -> 345453 bytes
-rw-r--r--macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-doc.tex (renamed from macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.tex)9
-rw-r--r--macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.sty2
-rw-r--r--macros/latex/contrib/lastpage/README34
-rw-r--r--macros/latex/contrib/lastpage/lastpage-example.pdfbin130263 -> 130955 bytes
-rw-r--r--macros/latex/contrib/lastpage/lastpage.dtx676
-rw-r--r--macros/latex/contrib/lastpage/lastpage.pdfbin465434 -> 463832 bytes
-rw-r--r--macros/latex/contrib/srdp-mathematik/README.md2
-rw-r--r--macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdfbin175187 -> 174962 bytes
-rw-r--r--macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty5
-rw-r--r--macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex2
-rw-r--r--macros/latex/contrib/stocksize/stocksize-doc.pdfbin112266 -> 112256 bytes
-rw-r--r--macros/latex/contrib/stocksize/stocksize-doc.tex4
-rw-r--r--macros/latex/contrib/stocksize/stocksize.sty4
-rw-r--r--macros/latex/contrib/suftesi/suftesi.dtx18
-rw-r--r--macros/latex/contrib/suftesi/suftesi.pdfbin848623 -> 849471 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/README.md29
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-circle.tex375
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-ellipse.tex59
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-line.tex274
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-matrices.tex265
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-misc.tex89
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-parallelogram.tex30
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-point.tex190
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-quadrilateral.tex24
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-rectangle.tex50
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-regular.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-square.tex20
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-triangle.tex352
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-vectors.tex26
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-convention.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-examples.tex594
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-indepthstudy.tex60
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-intersection.tex49
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-main.tex10
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-news.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-organization.tex37
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-presentation.tex85
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-structure.tex18
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-transfers.tex380
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-why.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/latex/tmp.table100
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/doc/tkz-elements.pdfbin817269 -> 851403 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz-elements.sty44
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circle.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_class.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_ellipse.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_circles.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_intersections.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_lines.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_maths.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_matrices.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_points.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_regular.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_triangles.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_line.lua10
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_main.lua35
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_matrices.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_misc.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_parallelogram.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_point.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_quadrilateral.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_rectangle.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_regular.lua6
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_square.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangle.lua2
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vector.lua2
69 files changed, 2452 insertions, 1613 deletions
diff --git a/macros/latex/contrib/jpnedumathsymbols/README.md b/macros/latex/contrib/jpnedumathsymbols/README.md
index cd06e3eeda..e40e5987e6 100644
--- a/macros/latex/contrib/jpnedumathsymbols/README.md
+++ b/macros/latex/contrib/jpnedumathsymbols/README.md
@@ -8,11 +8,13 @@ Mathematical equation representation in Japanese education differs somewhat from
Documents for this package are available in English and Japanese.
-## Achknowledgements
+## Acknowledgements
\arc is by [Prof. Shingo SAITO](http://www.artsci.kyushu-u.ac.jp/~ssaito/jpn/tex/tips/misc.html#arc). I would like to thank him.
-\parallel is by [Mr./Ms. Ohishi](https://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/8814.html). I would like to thank him/her.
+\parallel is by [Mr./Ms. Ohishi](https://okumuralab.org/~okumura/texfaq/qa/8814.html). I would like to thank him/her.
+
+environment align** and gather** are by [Mr./Ms. Krypf](https://qiita.com/Krypf/items/f69fb363dc182f9fbb66). I would like to thank him/her.
This package is inspired by [emath package by Kazuhiro Okuma (a.k.a. tDB)](http://emath.s40.xrea.com/). I would like to thank him.
@@ -26,11 +28,13 @@ This package released under [the MIT license](https://ctan.org/license/mit).
## Revision History
+- Version 1.3 2024-11-24
+ - Rewrited README and documents.
- Version 1.2 2024-11-22
- Adjusted the position of \sqrt, \notparallel and \similar.
- Add \eand*, \eor*, \simul*, \vvec, \vvec*, \vinp, \tsum, \expectation, \variance, \deviation, \nomination*, equation**, align** and gather**.
- Version 1.1 2022-07-10
- - Rewrite README.
+ - Rewrited README.
- License changed from GNU/GPL to MIT (stopped using codes under GNU/GPL).
- Added the document (jpnedumathsymbols.pdf).
- Added the [curriculum] option, and the default is changed to [nocurriculum].
diff --git a/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.pdf b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-doc.pdf
index 919ac312cd..23c8ae136d 100644
--- a/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.pdf
+++ b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.tex b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-doc.tex
index 369ebb299a..d1f678a4f3 100644
--- a/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.tex
+++ b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-doc.tex
@@ -1021,6 +1021,7 @@ It follows that the number of primes is infinite.\QED
It follows that the number of primes is infinite.\QED
\end{macroexample}
+\hspace*{0.14\textwidth}These codes are by \href{https://qiita.com/Krypf/items/f69fb363dc182f9fbb66}{Mr./Ms. Krypf}.
\begin{lstlisting}
\begin{equation**}{label1}
A=B
@@ -1057,10 +1058,14 @@ I would like to thank him.
|\arc|は\href{http://www.artsci.kyushu-u.ac.jp/~ssaito/jpn/tex/tips/misc.html#arc}{斎藤新悟氏}によるものです。お礼申しあげます。
-|\parallel| is by \href{https://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/8814.html}{Mr./Ms. Ohishi}.
+|\parallel| is by \href{https://okumuralab.org/~okumura/texfaq/qa/8814.html}{Mr./Ms. Ohishi}.
I would like to thank him/her.
-|\parallel|は\href{https://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/8814.html}{大石氏}によるものです。お礼申しあげます。
+|\parallel|は\href{https://okumuralab.org/~okumura/texfaq/qa/8814.html}{大石氏}によるものです。お礼申しあげます。
+
+Environment |align**| and |gather**| are by \href{https://qiita.com/Krypf/items/f69fb363dc182f9fbb66}{Mr./Ms. Krypf}. I would like to thank him/her.
+
+|align**| 環境と |gather**| 環境は \href{https://qiita.com/Krypf/items/f69fb363dc182f9fbb66}{Krypf氏}によるものです。お礼申しあげます。
This package is inspired by \href{http://emath.s40.xrea.com/}{emath package by Kazuhiro Okuma (a.k.a. tDB)}.
I would like to thank him.
diff --git a/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.sty b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.sty
index a9fa06f72e..3b376d95ea 100644
--- a/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.sty
+++ b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.sty
@@ -11,7 +11,7 @@
%%
%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{jpnedumathsymbols}[2024/11/22 v1.2]
+\ProvidesPackage{jpnedumathsymbols}[2024/11/24 v1.3]
%
%% [nofrac]
\newif\if@jpnedu@symbol@nofrac
diff --git a/macros/latex/contrib/lastpage/README b/macros/latex/contrib/lastpage/README
index b7c3c78bb2..aec0c6a6fd 100644
--- a/macros/latex/contrib/lastpage/README
+++ b/macros/latex/contrib/lastpage/README
@@ -1,4 +1,4 @@
-README for lastpage package, 2024-07-07, v2.1c
+README for lastpage package, 2024-11-24, v2.1d
TABLE OF CONTENTS
@@ -8,10 +8,9 @@ TABLE OF CONTENTS
2 Download
3 Installation
4 Additional Packages
-5 Package Compatibility
-6 Authors/Maintainer
-7 Bug Reports
-8 Known Problems
+5 Authors/Maintainer
+6 Bug Reports
+7 Known Problems
1 INTRODUCTION
@@ -25,8 +24,7 @@ When more than one page numbering scheme is used, or another package
has output after this package, or the number of pages
instead of the last page's name is needed, or the page
numbers exceed a certain range, there might be problems,
-which can be solved by using the pageslts package instead
-[which needs updating to current LaTeX-format and therefore might fail].
+which can be solved by using the pageslts package instead.
This material is published under the LPPL 1.3c: This work may be
distributed and/or modified under the conditions of the LaTeX Project
@@ -47,9 +45,9 @@ https://ctan.org/pkg/lastpage
Also a ZIP file is provided that contains the files:
the manual (lastpage.pdf), the example (lastpage-example.tex),
-the compiled example (lastpage-example.pdf),
+the compiled example (lastpage-example.pdf),
driver (lastpage.drv), lastpage.dtx,
-installation file (lastpage.ins),
+installation file (lastpage.ins),
the style files (lastpage.sty, lastpage209.sty, lastpage2e.sty,
lastpageclassic.sty, lastpagemodern.sty),
and this README, already sorted in a TDS tree:
@@ -115,23 +113,16 @@ the documentation), see "7.1 Downloads" in the manual
https://mirror.ctan.org/macros/latex/contrib/lastpage/lastpage.pdf
-5 PACKAGE COMPATIBILITY
-=======================
-
-lastpage is not compatible with the ancient version 2.0
-(and earlier) of the endfloat package. The recent version of
-endfloat is available at https://ctan.org/pkg/endfloat
-
-6 AUTHORS/MAINTAINER
+5 AUTHORS/MAINTAINER
====================
-* Author of the original main code:
+* Author of the original main code:
Jeffrey P. Goldberg (Thanks!)
* Author of the recent package and current maintainer:
H.-Martin Münch
-7 BUG REPORTS
+6 BUG REPORTS
=============
A bug report should contain:
@@ -158,7 +149,8 @@ Bug reports can be send to the maintainer:
<Martin [dot] Muench [at] Uni-Bonn [dot] de>
-8 KNOWN PROBLEMS
+7 KNOWN PROBLEMS
================
-Really a lot, see chapter 3 of the documentation! \ No newline at end of file
+In simple cases none, but otherwise a lot,
+see chapter 3 of the documentation! \ No newline at end of file
diff --git a/macros/latex/contrib/lastpage/lastpage-example.pdf b/macros/latex/contrib/lastpage/lastpage-example.pdf
index db990f6942..97bde626ae 100644
--- a/macros/latex/contrib/lastpage/lastpage-example.pdf
+++ b/macros/latex/contrib/lastpage/lastpage-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/lastpage/lastpage.dtx b/macros/latex/contrib/lastpage/lastpage.dtx
index c447d39cc6..db3eb4548d 100644
--- a/macros/latex/contrib/lastpage/lastpage.dtx
+++ b/macros/latex/contrib/lastpage/lastpage.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
% File: lastpage.dtx
-% Version: 2024-07-07 v2.1c
+% Version: 2024-11-24 v2.1d
% Info: Refers to last page's name
%
% Copyright © 2010 - 2024 by
@@ -9,7 +9,7 @@
% Portions of code copyrighted by other people as marked.
%
% This package was invented by Jeffrey P. Goldberg.
-% I thought that a replacement was needed and therefore created the pageslts package,
+% I thought that an enhancement was needed and therefore created the pageslts package,
% https://ctan.org/pkg/pageslts. Nevertheless, for compatibility with existing
% documents/packages as well as for the low amount of resources needed by the
% lastpage package (no new counter!), I updated this package.
@@ -65,7 +65,7 @@
\input docstrip.tex
\Msg{**********************************************************************}
\Msg{* Installation *}
-\Msg{* Package: lastpage 2024-07-07 v2.1c Refers to last page's name (HMM)*}
+\Msg{* Package: lastpage 2024-11-24 v2.1d Refers to last page's name (HMM)*}
\Msg{**********************************************************************}
\keepsilent
@@ -77,7 +77,7 @@
This is a generated file.
Project: lastpage
-Version: 2024-07-07 v2.1c
+Version: 2024-11-24 v2.1d
Info: Refers to last page's name
Copyright (C) 2010 - 2024 by
@@ -99,7 +99,7 @@ This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is H.-Martin Muench.
This package was invented by Jeffrey P. Goldberg.
-I thought that a replacement was needed and therefore created the pageslts package,
+I thought that an enhancement was needed and therefore created the pageslts package,
https://ctan.org/pkg/pageslts. Nevertheless, for compatibility with existing
documents/packages as well as for the low amount of resources needed by the
lastpage package (no new counter!), I updated this package.
@@ -182,9 +182,8 @@ In memoriam
%
% \begin{macrocode}
%<*driver>
-\NeedsTeXFormat{LaTeX2e}[2023-11-01]
-\ProvidesFile{lastpage.drv}%
- [2024-07-07 v2.1c Refers to last page's name (HMM)]
+\NeedsTeXFormat{LaTeX2e}[2024-06-01]
+\ProvidesFile{lastpage.drv}[2024-11-24 v2.1d Refers to last page's name (HMM)]
\documentclass{ltxdoc}[2024/02/08]% v2.1j Standard LaTeX documentation class
\usepackage{holtxdoc}[2019/12/09]% v0.30 Private additional ltxdoc support (HO)
\hypersetup{%
@@ -230,26 +229,27 @@ In memoriam
% }%^^A
% \expandafter\endgroup\x
%
-% \DoNotIndex{\@auxout,\@evenfoot,\@firstofone,\@firstoftwo,\@ifl@t@r,\@ifpackagelater,\@ifpackageloaded}
-% \DoNotIndex{\@ifundefined,\@kernel@reserved@label@data,\@mainaux,\@number,\@oddfoot}
-% \DoNotIndex{\addtocounter,\AddToHook,\arabic,\begin}
-% \DoNotIndex{\bigskip,\clearpage,\csname,\detokenize,\documentclass,\EdefUnescapeString,\empty,\end}
-% \DoNotIndex{\endcsname,\enddocument,\expanded,\ExplSyntaxOff,\ExplSyntaxOn,\fmtversion}
-% \DoNotIndex{\g,\gdef,\here,\hfil,\Hy@temp,\Hy@unicodefalse}
-% \DoNotIndex{\hypersetup,\if,\if@filesw,\if@nobreak,\ifHy@hypertexnames,\ifHy@pageanchor,\ifHy@plainpages}
-% \DoNotIndex{\ifdim,\ifnum,\IfPackageAtLeastTF,\IfPackageLoadedTF,\ifvmode,\ifx,\immediate,\input}
-% \DoNotIndex{\label,\lastpage,\lastpage-example.tex,\lastpage.dtx,\lastpage.sty,\lastpagee.sty}
-% \DoNotIndex{\lastpageclassic.sty,\lastpagemodern.sty,\LaTeX,\LaTeX-kernel,\listfiles}
-% \DoNotIndex{\makeatletter,\makeatother,\markboth,\meaning,\mbox,\message,\MessageBreak}
-% \DoNotIndex{\NeedsTeXFormat,\newcommand,\newcounter,\newline,\newpage,\nobreak}
-% \DoNotIndex{\noindent,\normalsize,\numexpr,\origenddocument,\PackageError,\PackageWarning}
-% \DoNotIndex{\PackageWarningNoLine,\pagenumbering,\pageref,\pdfstringdef,\protect,\ProvidesPackage}
-% \DoNotIndex{\qquad,\RequirePackage,\section,\ShowHook,\slshape,\smallskip,\space,\test,\textbf}
-% \DoNotIndex{\textit,\textquotedblleft,\textquotedblright,\textsf,\texttt,\the,\thepage}
-% \DoNotIndex{\today,\upshape,\url,\usepackage,\value,\verb,\wd,\write,\xlastpage@rmpage,\xxlastpage@rmpage}
+% \DoNotIndex{\@auxout,\@evenfoot,\@firstofone,\@firstoftwo,\@ifl@t@r,\@ifpackagelater,\@ifpackageloaded,%
+% \IfPackageAtLeastF,\IfPackageLoadedT,\IfPackageLoadedTF,%
+% \@ifundefined,\@kernel@reserved@label@data,\@mainaux,\@number,\@oddfoot,%
+% \addtocounter,\AddToHook,\arabic,\begin,%
+% \bigskip,\clearpage,\csname,\detokenize,\documentclass,\EdefUnescapeString,\empty,\end,%
+% \endcsname,\enddocument,\expanded,\ExplSyntaxOff,\ExplSyntaxOn,\fmtversion,%
+% \g,\gdef,\here,\hfil,\Hy@temp,\Hy@unicodefalse,\Hy@EveryPageAnchor,%
+% \hypersetup,\if,\if@filesw,\if@nobreak,\ifHy@hypertexnames,\ifHy@pageanchor,\ifHy@plainpages,%
+% \ifdim,\ifnum,\ifvmode,\ifx,\immediate,\input,%
+% \label,\lastpage,\lastpage-example.tex,\lastpage.dtx,\lastpage.sty,\lastpagee.sty,%
+% \lastpageclassic.sty,\lastpagemodern.sty,\LaTeX,\LaTeX-kernel,\listfiles,%
+% \makeatletter,\makeatother,\markboth,\meaning,\mbox,\message,\MessageBreak,%
+% \NeedsTeXFormat,\newcommand,\newcounter,\newline,\newpage,\nobreak,%
+% \noindent,\normalsize,\numexpr,\origenddocument,\PackageError,\PackageNoteNoLine,\PackageWarning,%
+% \PackageWarningNoLine,\pagenumbering,\pageref,\pdfstringdef,\protect,\ProvidesPackage,%
+% \qquad,\renewcommand,\RequirePackage,\section,\ShowHook,\slshape,\smallskip,\space,\test,\textbf,%
+% \textit,\textquotedblleft,\textquotedblright,\textsf,\texttt,\the,\thepage,%
+% \today,\upshape,\url,\usepackage,\value,\verb,\wd,\write,\xlastpage@rmpage,\xxlastpage@rmpage}
%
% \title{The \xpackage{lastpage} package}
-% \date{2024-07-07 v2.1c}
+% \date{2024-11-24 v2.1d}
% \author{H.-Martin Münch\\\xemail{Martin.Muench at Uni-Bonn.de}\\
% invented by Jeffrey P. Goldberg\\\xemail{jeffrey+news at goldmark.org}}
%
@@ -283,26 +283,17 @@ In memoriam
% If any damage occurs by the use of information presented there,
% only the author of the respective pages might be liable,
% not the one who has referred to those pages.
-%
-% \bigskip
-%
-% \textbf{Note: At several places in this manual as alternative the \pkg{pageslts}
-% package is \textquotedblleft advertised\textquotedblright. The current version
-% 2015/12/21 v1.2f of that package has not yet been updated to the new hook mechanism.
-% In special cases (for example }|\pagenumbering{fnsymbol}|\textbf{) the current version
-% of that package combined with a current \LaTeX-format fails. Together with a lot of
-% other packages (small to large, public as well as private, some probably obsolete)
-% it is in my update queue.}
-%
% \newpage
-%
% \tableofcontents
%
% \section{Introduction}
% \indent This \LaTeX{} package puts the label \texttt{LastPage}
-% (at end of the document) into the \xfile{aux} file, allowing the user to refer
-% to the last page of a document via |\pageref{LastPage}|.
-% This might be particularly useful in places like headers or footers.
+% (at end of the document via hook |enddocument/afterlastpage|,
+% for older formats via |\AtEndDocument|, for \LaTeX2.09{} via
+% redefining |\enddocument|) into the \xfile{aux} file,
+% allowing the user to refer to the last page of a document via
+% |\pageref{LastPage}|. This might be particularly useful
+% in places like headers or footers.
%
% \bigskip
%
@@ -326,7 +317,7 @@ In memoriam
% (or |\input{lastpage.sty}| if |\usepackage| is unknown).
%
% \indent For example for various draft forms it is desirable to have a
-% page reference to the last page, so that e.\,g. page footers can
+% page reference to the last page, so that e.\,g.\ page footers can
% contain something like \textquotedblleft page $N$ of $K$\textquotedblright,
% where $N$ is the current page and $K$ is the last page. Once the package
% is loaded, anywhere in the text references can be made to the label
@@ -352,23 +343,22 @@ In memoriam
%
% The \xpackage{lastpage} package does not provide the words
% \textquotedblleft page\textquotedblright{} or \textquotedblleft of\textquotedblright{},
-% but e.\,g. the \xclass{handout} class uses \textquotedblleft of\textquotedblright{} in
+% but e.\,g.\ the \xclass{handout} class uses \textquotedblleft of\textquotedblright{} in
% the definition of the footer. (In the \texttt{lastpage-example} also
% |\@evenfoot| is redefined, but it is not the \xpackage{lastpage} \emph{package}
% redefining this.) If you want to change \textquotedblleft page\textquotedblright{} or
-% \textquotedblleft of\textquotedblright{} (e.\,g. to another language), you therefore
+% \textquotedblleft of\textquotedblright{} (e.\,g.\ to another language), you therefore
% have got to look in the used class/package(s)/preamble instead of in the
% \xpackage{lastpage} package.\bigbreak
%
% If the total \emph{number} of pages of a document is needed,
% the kernel already gives this by |\makeatletter\@abspage@last\makeatother|,
% |\thetotalpages|, and |\PreviousTotalPages| (needing at least two compiler runs).
-% \newpage
%
% \section{Some \textsc{Warnings}\label{sec:warn}}
% \subsection{\texttt{\textbackslash AtEndDocument}\label{ssec:aed}}
% \indent {\bfseries |\AtEndDocument| is not used by the \pkg{lastpagemodern.sty}
-% version of the lastpage package, requiring \LaTeX -format 2023-06-01
+% version of the lastpage package, requiring \LaTeX -format 2024-06-01
% or newer. Instead |\AddToHook{enddocument/afterlastpage}| is used
% and the problem does not arise.}
% \bigskip
@@ -411,7 +401,7 @@ In memoriam
% \subsection{Interaction with ancient versions of the \xpackage{endfloat} package\label{sec:endfloat}}
%
% \indent {\bfseries |\AtEndDocument| is not used by the \pkg{lastpagemodern.sty}
-% version of the lastpage package, requiring \LaTeX -format 2023-06-01
+% version of the lastpage package, requiring \LaTeX -format 2024-06-01
% or newer. Instead |\AddToHook{enddocument/afterlastpage}| is used
% and the problem does not arise.}
%
@@ -446,7 +436,7 @@ In memoriam
% (with \textbf{s} at the end) at your disposal for remediation.)
%
% \subsection{No write access to the \xfile{aux} file}
-% Some packages (e.\,g. \xpackage{tikz} and \xpackage{selectp}) sometimes prevent
+% Some packages (e.\,g.\ \xpackage{tikz} and \xpackage{selectp}) sometimes prevent
% the output to the \xfile{aux} file. In that case a warning is issued. This is
% no problem as long as there is another compilation run where the label to the
% last page can be placed via the \xfile{aux} file.
@@ -465,7 +455,7 @@ In memoriam
% The \xpackage{pageslts} package puts |\lastpageref{LastPages}|
% (with \textbf{s} at the end) at your disposal for remediation,
% giving the number of pages and linking to the last page, if linking is provided
-% for examaple by the \pkg{hyperref} package.
+% for examaple by the \xpackage{hyperref} package.
%
% \subsection{\texttt{\textbackslash addtocounter\{page\}\{\ldots\} and %
% \texttt{\textbackslash setcounter\{page\}\{\ldots\}}}}
@@ -496,14 +486,14 @@ In memoriam
% page numbering schemes are not provided.\newline
% The \xpackage{pageslts} package does this with labels
% \texttt{pagesLTS.<numbering scheme>}, where \texttt{<numbering scheme>} is
-% e.\,g. arabic, roman, Roman, alph, or Alph.\linebreak
+% e.\,g.\ arabic, roman, Roman, alph, or Alph.\linebreak
% For fnsymbol please use |\lastpageref{pagesLTS.fnsymbol}| instead of\newline
% |\pageref{pagesLTS.fnsymbol}|.
%
% \subsection{Current page}
% The command |\thepage| gives the \textbf{name} of the current page
% in the current page numbering scheme, which is different from the
-% current total/absolute page number e.\,g. with a second
+% current total/absolute page number e.\,g.\ with a second
% page numbering scheme, |\addtocounter{page}{...}|, or |\setcounter{page}{...}|,
% and it will not be an arabic number at all,
% if the current page numbering scheme is not arabic.\newline
@@ -541,25 +531,40 @@ In memoriam
% \end{tabular}\\[1ex]
% \texttt{MAX} = \texttt{2147483647}
% \end{quote}
-% \textquotedblright{} (\textsc{Heiko Oberdiek}:
-% The \xpackage{alphalph} package, 2010/04/18, v2.3, first table, p.~2).
+% \textquotedblright\ (\xpackage{alphalph} package manual, 2019/12/09, v2.6,
+% first table, p.~2).
%
% \noindent When \textit{any} page is out of that range, there will be a counter overflow.\newline
% \xpackage{lastpage} probably is not the right package to be asked
% to correct this anyway, but the \xpackage{pageslts} package
% (with appropriate options) can do this.
%
+% When MAX is exceeded via
+% |\setcounter{<name>}{| something greater than MAX (or smaller then $-$MAX) |}|,
+% then the error
+% \begin{quote}
+% \begin{verbatim}
+% ! Number too big.
+% I can only go up to 2147483647='17777777777="7FFFFFFF,
+% so I'm using that number instead of yours.
+% \end{verbatim}
+% \end{quote}
+% \vspace{-\baselineskip}
+% will arise. But if the counter has a value of $2\,147\,483\,647 = {}$MAX,
+% and |\addtocounter{<name>}{+1}| is tried, no error is issued, but
+% |\arabic{<name>}| prints $-2147483648$, and further |\addtocounter{<name>}{+1}|s
+% give $-2147483647$, $-2147483646$ and so on.\\
+% For a counter value of $-2\,147\,483\,647 = -$MAX and |\addtocounter{<name>}{-1}|s
+% after $-2147483647$ it is printed $-2147483648$, $2147483647$, $2147483646$ and so on
+% (without any message in the \xfile{log} file about any possible issue).
+%
% \subsection{Other packages manipulating \texttt{\textbackslash lastpage@putlabel}}
% The \xpackage{revtex4} class redefines the |\lastpage@putlabel| command
-% (with outdated two arguments), and the \xpackage{pageslts} package
-% \textquotedblleft kills\textquotedblright{} the |\lastpage@putlabel| command,
-% because that package uses more advanced labels.\newline
-% None of the definitions or commands of the other packages are altered,
-% but |\lastpage@putlabel| was replaced by |\lastpage@putl@bel|.
-% Because \linebreak |\lastpage@putlabel| is no longer called, now there should not be any
-% double definitions of the \texttt{lastpage} label.
-%
-% \subsection{\texttt{\textbackslash pagenumbering\{fnsymbol\}}}
+% to place a label |LastPage|.\newline
+% |\lastpage@putlabel| in the \xpackage{lastpage} package was replaced by |\lastpage@putl@bel|,
+% but the |LastPage| label could become defined more than once.
+%
+% \subsection{\texttt{\textbackslash pagenumbering\{fnsymbol\}}\label{subsec:fnsymbol}}
% When using the foot-note-symbols as page numbers,
% it can be necessary to declare in the document's preamble:
% \begin{verbatim}
@@ -570,27 +575,18 @@ In memoriam
% \DeclareTextCommand{\textparagraph}{PD1}{¶}
% \DeclareTextCommand{\textbardbl}{PD1}{‖}
% \end{verbatim}
-% \newpage
%
% \section{Alternatives\label{sec:Alternatives}}
% There are similar packages, which do (or do not) similar things (or even more).
% As I neither know what exactly you want to accomplish when using this package
% (e.\,g.~page number vs. page name, hyperlinks or not), nor what resources
-% you have (e.\,g.~\TeX, \LaTeX2e, $\varepsilon$-\TeX{}, \LaTeX-format as recent
-% as 2022-11-01 or newer), here is a list of some possible alternatives:
-%
-% \DescribeMacro{pageslts}\vspace*{-\baselineskip}
+% your system has (e.\,g.~\TeX, \LaTeX2e, $\varepsilon$-\TeX{}, \LaTeX-format as recent
+% as 2024-06-01 or newer), here is a list of some possible alternatives:
% \begin{description}
-% \item[-]
-% \textbf{Note: The current version 2015/12/21 v1.2f of the \pkg{pageslts} package
-% has not yet been updated to the new hook mechanism. In special cases (for example }%
-% |\pagenumbering{fnsymbol}|\textbf{) the current version of that package combined
-% with a current \LaTeX-format fails. Together with several other packages
-% (small to large, public as well as private, some probably obsolete) it is
-% in the update queue.}\newline
+% \item[-]\DescribeMacro{pageslts}
% The \xpackage{pageslts} package first started as a revision of this
-% \xpackage{lastpage} package, but it became obvious that a replacement was
-% needed to accomplish what the \xpackage{pageslts} package does. For backward
+% \xpackage{lastpage} package, but I~thought that an enhancement was needed
+% to accomplish what the \xpackage{pageslts} package does. For backward
% compatibility, a label named |LastPage| is provided.
% Thus |\usepackage{lastpage}| can be replaced by\newline
% |\usepackage[pagecontinue=false,alphMult=0,AlphMulti=0,|\newline
@@ -601,14 +597,17 @@ In memoriam
% |fnsymbolmult=true,romanMult=true,RomanMulti=true]{pageslts}|.\newline
% Benefits of \xpackage{pageslts} package (with appropriate options) are:
% \begin{description}
-% \item[+] Labels \texttt{LastPage} (|\AtEndDocument|) and\newline
-% \texttt{VeryLastPage} (|\AfterLastShipout|),\newline
-% allowing the user to refer to the (very) last page of a document.
+% \item[+] Labels \texttt{LastPage} (|\AddToHook{enddocument/afterlastpage}|,
+% formerly |\AtEndDocument|; same as the \xpackage{LastPage} package) and
+% \texttt{VeryLastPage} (also |\AddToHook{enddocument/afterlastpage}|,
+% but formerly\newline%
+% |\AfterLastShipout|), allowing the user to refer to the
+% (very) last page of a document.
% \item[+] For example, when more than one page numbering scheme is used,
-% the label \texttt{LastPage}\textbf{s} gives the total \textit{number} of pages.
+% the label \mbox{\texttt{LastPage}\textbf{s}} gives the total \textit{number} of pages.
% \item[+] At the last page of each page numbering scheme a label\newline
% \texttt{pagesLTS.<numbering scheme>} is placed, where
-% \texttt{<numbering scheme>} is e.\,g. arabic, roman, Roman, alph, or Alph.
+% \texttt{<numbering scheme>} is e.\,g.\ arabic, roman, Roman, alph, or Alph.
% For fnsymbol please use |\lastpageref{pagesLTS.fnsymbol}| instead of\newline
% |\pageref{pagesLTS.fnsymbol}|.
% \item[+] When the same numbering scheme is used twice, the page numbers
@@ -619,58 +618,46 @@ In memoriam
% \textit{name} in the current page numbering scheme.
% |\theCurrentPageLocal| gives the current number of pages in the current
% page numbering scheme. |\thepage| and |\theCurrentPageLocal| are different
-% e.\,g. when |\addtocounter{page}{...}| or |\setcounter{page}{...}| were used.
+% e.\,g.\ when |\addtocounter{page}{...}| or |\setcounter{page}{...}| were used.
% \item[+] At the first page of the document a label \texttt{pagesLTS.0} is created.
-% \item[+] The \xpackage{alphalph} package is supported, i.\,e.
+% \item[+] The \xpackage{alphalph} package is supported, i.\,e.\ %
% page numbers alph or Alph $>26$ and fnsymbol $>9$ can be used
% (with according options set). Even zero and negative page numbers can be used
% with \texttt{arabic}, \texttt{alph}, \texttt{Alph}, \texttt{roman}, \texttt{Roman},
% and \texttt{fnsymbol} page numbering (with \xpackage{alphalph} package and
% according options).
-% \item[+] It is checked whether a (very) old \xpackage{endfloat} package
-% is in use. If it is, a warning or even an error message is given,
-% depending on \xpackage{endfloat} version.
-% \item[+] A rerun warning is given, when labels have changed.
% \end{description}
-% Further labels are provided for special cases.
-% \end{description}
+% Further labels are provided for special cases.\\
+% \url{https://ctan.org/pkg/pageslts}
%
-% \DescribeMacro{totpages}\vspace{-\baselineskip}
-% \begin{description}
-% \item[-] The \xpackage{totpages} package provides a \texttt{totpages} label similar to
-% \texttt{LastPages}\newline
-% |\AtEndDocument| (instead of |\AfterLastShipout|, as done by \xpackage{pageslts}).
+% \item[-]\DescribeMacro{LaTeX-kernel}
+% The number of pages is nowadays available via |\@abspage@last|,\linebreak
+% |\thetotalpages|, and |\PreviousTotalPages| from the kernel,
+% but when more than one page numbering scheme is used
+% (for example pages I~to X and then 1~to 10, thus number of pages
+% \hbox{\textquotedblleft 20\textquotedblright ,} but name of the last page
+% \hbox{\textquotedblleft 10\textquotedblright ),}
+% or when or the fnsymbol page numbering scheme is used, or another package
+% has output after this package, or the page numbers exceed a certain range,
+% there might be issues. (Is the total number of pages wanted? Or is the name
+% of the last page sought?)\newline
+% |\the\ReadonlyShipoutCounter| contains the number of currently shipped out pages,
+% i.\,e.\ current page minus one.
+%
+% \item[-]\DescribeMacro{totpages}
+% The \xpackage{totpages} package provides a \texttt{totpages} label similar to
+% \texttt{LastPages}, but |\AtEndDocument| instead of hook |enddocument/afterlastpage|
+% of the \pkg{pageslts} package.
% The \xpackage{totpages} package additionally computes the number of paper sheets
% needed to (double) print the document (with one, two, three,\ldots{} pages on
% one sheet of paper) (which can be achieved also with the \xpackage{papermas} package,
% an extension of the \xpackage{pageslts} package, which further allows to compute
-% the mass of that printed version of the document, useful e.\,g. when sending it
-% by mail to determine the postage).
-% \end{description}
+% the mass of that printed version of the document, useful e.\,g.\ when sending it
+% by mail to determine the postage).\\
+% \url{https://ctan.org/pkg/totpages}
%
-% \DescribeMacro{nofm.sty}\vspace{-\baselineskip}
-% \begin{description}
-% \item[-] \textquotedblleft There is a package \xpackage{nofm.sty} available,
-% but some versions of it are defective, and most don't work with \xpackage{fancyhdr}
-% because they take over the complete page layout.\textquotedblright (\textsc{Piet van %
-% Oostrum}: Page layout in \LaTeX{}, March~2, 2004, section~16; fancyhdr.pdf)\newline
-% \xpackage{nofm} as of 1991/02/25 (without version number), available at\newline
-% \href{https://mirror.ctan.org/obsolete/macros/latex209/contrib/misc/nofm.sty}{%
-% https://mirror.ctan.org/obsolete/macros/latex209/contrib/misc/nofm.sty}, \linebreak
-% does not work with e.\,g. \xpackage{hyperref}, redefines |\enddocument|
-% as well as |\@oddhead|, |\@evenhead|, |\@oddfoot|, and |\@evenfoot|.\newline
-% If you know the (CTAN) location of a \textbf{working}~(!) version,
-% please send an e-mail to the \xpackage{lastpage} maintainer, thanks!
-% \end{description}
-%
-% \DescribeMacro{count1to}\vspace{-\baselineskip}
-% \begin{description}
-% \item[-] You may want to have a look at the \xpackage{count1to} package.
-% \end{description}
-%
-% \DescribeMacro{totalcount}\vspace{-\baselineskip}
-% \begin{description}
-% \item[-] The \xpackage{totalcount} package provides |\totalpages|.
+% \item[-]\DescribeMacro{totalcount}
+% The \xpackage{totalcount} package provides |\totalpages|.
% If there are only arabic page numbers consecutively running from 1 to the last page,
% this works. But for example
%
@@ -688,62 +675,66 @@ In memoriam
%
% prints \textquotedblleft Page L of 50\textquotedblright,
% where the number of pages is one (and no hyperlink is provided to the
-% last page even if \xpackage{hyperref} is used).
-% \end{description}
-%
-% \DescribeMacro{zref}\vspace{-\baselineskip}
-% \begin{description}
-% \item[-] The \xpackage{zref} package of \textsc{Heiko Oberdiek} requires
-% $\varepsilon$-\TeX{}. \xpackage{lastpageclassic} does not require $\varepsilon$-\TeX{},
-% but if you already have $\varepsilon$-\TeX{} (and use \xpackage{lastpagemodern}),
-% you may also have a look at the extensive \xpackage{zref} package,
-% whether it suits your needs better (or additionally or whatsoever).
-% \end{description}
+% last page even if \xpackage{hyperref} is used).\\
+% \url{https://ctan.org/pkg/totalcount}
+%
+% \item[-]\DescribeMacro{totcount}
+% The \xpackage{totcount} package provides the last value of a counter, thus also the value
+% of the \texttt{page} counter. You do not get a hyperlink to the last page, only the numerical
+% value of the last page name is given \mbox{(i.\,e.~X+72} pages gives 72 instead of 82
+% as total number of pages), and the number of pages can be changed for example
+% by |\addtocounter|.\\
+% \url{https://ctan.org/pkg/totcount}
+% \pagebreak
%
-% \DescribeMacro{memoir}\vspace{-\baselineskip}
-% \begin{description}
-% \item[-] The \xpackage{memoir} \emph{class} provides |\thelastpage| (page number printed
-% on last page) and |\thelastsheet| (number of pages).
-% \end{description}
-%
-% \DescribeMacro{LaTeX-kernel}\vspace{-\baselineskip}
-% \begin{description}
-% \item[-] The number of pages is nowadays available via |\@abspage@last|,
-% |\thetotalpages|, and |\PreviousTotalPages| from the kernel,
-% but when more than one page numbering scheme is used
-% (for example pages I~to X and then 1~to 10, thus number of pages
-% \hbox{\textquotedblleft 20\textquotedblright ,} but name of the last page
-% \hbox{\textquotedblleft 10\textquotedblright ),}
-% or when or the fnsymbol page numbering scheme is used, or another package
-% has output after this package, or the page numbers exceed a certain range,
-% there might be issues. (Is the total number of pages wanted? Or is the name
-% of the last page sought?)
+% \item[-]\DescribeMacro{nofm}
+% \textquotedblleft There is a package \xpackage{nofm.sty} available, but some versions
+% of it are defective, and most don't work with \xpackage{fancyhdr} because they take over
+% the complete page layout.\textquotedblright{} (\textsc{Piet van Oostrum}:
+% Page layout in \LaTeX , March~2, 2004, section~16; fancyhdr.pdf)\\
+% \xpackage{nofm} as of 1991/02/25 (without version number), available at\\
+% \url{https://mirror.ctan.org/obsolete/macros/latex209/contrib/misc/nofm.sty},\\
+% does not work with e.\,g.\ \xpackage{hyperref}, redefines |\enddocument|
+% as well as |\@oddhead|, |\@evenhead|, |\@oddfoot|, and |\@evenfoot|.\\
+% If you know the (\url{https://CTAN.org}) location of a
+% \textbf{working}~(!) version, please send me an e-mail, thanks!
+%
+% \item[-]\DescribeMacro{count1to}
+% The \xpackage{count1to} package \textquotedblleft sets |\count1| to |\count8|
+% with the values of page to subparagraph. |\count9| is used to flag odd
+% pages. \ldots\ [T]he code for the TotalPages
+% label\textquotedblright\ (package manual, 2024-06-13) has been removed
+% from the current package version.\\
+% \url{https://ctan.org/pkg/count1to}
+%
+% \item[-]\DescribeMacro{zref}
+% The \xpackage{zref} package \textquotedblleft implements an extensible referencing
+% system\textquotedblright\ (package manual, 2023-09-14).\\
+% \url{https://ctan.org/pkg/zref}
+%
+% \item[-]\DescribeMacro{memoir}
+% The \xpackage{memoir} \emph{class} provides |\thelastpage| (page number printed
+% on last page) and |\thelastsheet| (number of pages).\\
+% \url{https://ctan.org/pkg/memoir}
% \end{description}
%
% \bigskip
%
% \noindent (You programmed or found another alternative,
-% which is available at \url{CTAN.org}?\newline
-% OK, send an e-mail to me with the name, location at \url{CTAN.org},
+% which is available at\newline
+% \url{https://CTAN.org}?
+% OK, send an e-mail to me with the name, location at CTAN,
% and a short notice, and I will probably include it in the list above.)
-% \smallskip
-%
-% \noindent About how to get those packages, please see subsection~\ref{ss:Downloads}.
+% \newpage
%
% \section{Example}
-%
% \begin{macrocode}
%<*example>
\documentclass[british]{article}[2024/02/08]% v1.4n Standard LaTeX document class
\makeatletter
-\@ifl@t@r\fmtversion{2022/11/01}{%
- \AddToHook{enddocument/afterlastpage}[lastpage]{%
- \message{^^JLaTeX Info: Executing hook `enddocument/afterlastpage'.}}%
-}{\AtEndDocument{\message{^^JLaTeX Info: Executing hook `AtEndDocument'.}}%
- }
\usepackage[draft]{showkeys}[2024/05/23]% v3.21 Show cite and label keys (DPC, MH)
%% Use final instead of draft to hide the keys. %%
-\usepackage[pdfpagelabels=true,hyperindex=false]{hyperref}[2024-01-20]% v7.01h
+\usepackage[pdfpagelabels=true,hyperindex=false]{hyperref}[2024-10-30]% v7.01k
\@ifpackageloaded{hyperref}{% Hypertext links for LaTeX
\hypersetup{extension=pdf,%
plainpages=false,%
@@ -755,11 +746,11 @@ In memoriam
pdfview=Fit,%
pdfstartview=Fit,%
pdfpagelayout=SinglePage%
-}}{\usepackage{url}[2013/09/16]}% v3.4
-\usepackage{lastpage}[2024/07/07]% v2.1c
-\renewcommand{\@evenfoot}{%
+}}{\usepackage{url}[2013/09/16]}% v3.4 Verb mode for urls, etc.
+\usepackage{lastpage}[2024/11/24]% v2.1d Refers to last page's name (HMM; JPG)]
+\renewcommand{\@evenfoot}{{%
\normalsize\slshape \today\hfil \upshape %
- page \thepage{} of \pageref{LastPage}}
+ page \thepage{} of \pageref{LastPage}}}
\renewcommand{\@oddfoot}{\@evenfoot}
\makeatother
\listfiles
@@ -768,7 +759,7 @@ In memoriam
\section*{Example for lastpage}
\markboth{Example for lastpage}{Example for lastpage}
This example demonstrates the use of package\newline
-\textsf{lastpage}, v2.1c as of 2024-07-07 (HMM; JPG).\newline
+\textsf{lastpage}, v2.1d as of 2024-11-24 (HMM; JPG).\newline
The package takes no options.\newline
For more details please see the documentation!\newline
@@ -850,10 +841,12 @@ The code does not generally work even without hyperref.
\noindent does work (two compilations needed), because \verb|\lastpage@lastpage|
contains the name of the page, \mbox{example:}
\begin{verbatim}
-Page \thepage{} is (not) page \makeatletter\lastpage@lastpage\makeatother.
+Page \thepage{} is (not) page
+\makeatletter\lastpage@lastpage\makeatother.
\end{verbatim}
prints:\newline
-Page \thepage{} is (not) page \makeatletter\lastpage@lastpage\makeatother.
+Page \thepage{} is (not) page
+\makeatletter\lastpage@lastpage\makeatother.
\newline
This can be broken for example by \verb|\pagenumbering{fnsymbol}|
(because then \verb|\edef\here{\thepage}| does not work).
@@ -866,7 +859,7 @@ Last page's name (LastPage): \pageref{LastPage}
With modern \LaTeX{} it is possible to say:
\begin{quote}
\begin{verbatim}
-\NeedsTeXFormat{LaTeX2e}[2023-11-01]
+\NeedsTeXFormat{LaTeX2e}[2024-06-01]
\documentclass{article}
\pagenumbering{fnsymbol}
\begin{document}
@@ -904,7 +897,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \DescribeMacro{lastpage.sty}
% We first need to determine whether we are on \TeX~2.09 or \LaTeX2e.\newline
% (That line, which is too long for the documentation, reads:\newline
-% |\def\loadlastpage{\ProvidesPackage{lastpage}[2024/07/07 v2.1c lastpage:|\linebreak
+% |\def\loadlastpage{\ProvidesPackage{lastpage}[2024/11/24 v2.1d lastpage:|\linebreak
% | 2.09 or 2e? (HMM)]\relax\RequirePackage{lastpage2e}}|.)
%
% \begin{macrocode}
@@ -912,7 +905,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
%% Part of the "lastpage" package
%% loads either lastpage2.09.sty for TeX 2.09 or lastpage2e.sty for LaTeX 2e
%% with code from https://groups.google.com/g/comp.text.tex/c/-Qmhj1ZI4xM
-\def\loadlastpage{\ProvidesPackage{lastpage}[2024/07/07 v2.1c lastpage: 2.09 or 2e? (HMM)]\relax\RequirePackage{lastpage2e}}
+\def\loadlastpage{\ProvidesPackage{lastpage}[2024/11/24 v2.1d lastpage: 2.09 or 2e? (HMM)]\relax\RequirePackage{lastpage2e}}
\begingroup \expandafter \ifx \csname documentclass\endcsname\relax
\endgroup \expandafter \input{lastpage209.sty}
\else \endgroup \expandafter \loadlastpage
@@ -952,13 +945,14 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
%<*lastpage2e>
%% Part of the "lastpage" package
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{lastpage2e}[2024/07/07 v2.1c %
- Decide which 2e lastpage version to use (HMM)]
-\@ifl@t@r\fmtversion{2023/06/01}{\RequirePackage{lastpagemodern}}{%
+\ProvidesPackage{lastpage2e}[2024/11/24 v2.1d %
+ Decide which 2e lastpage version to use (HMM)]
+\@ifl@t@r\fmtversion{2024/06/01}{\RequirePackage{lastpagemodern}}{%
\RequirePackage{lastpageclassic}}
\message{^^J}
%</lastpage2e>
% \end{macrocode}
+% \newpage
%
% \DescribeMacro{lastpageclassic.sty}
% In case of older \LaTeX-formats \pkg{lastpageclassic.sty} is loaded:
@@ -967,7 +961,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
%<*lastpageclassic>
%% Part of the "lastpage" package
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{lastpageclassic}[2024/07/07 v2.1c %
+\ProvidesPackage{lastpageclassic}[2024/11/24 v2.1d %
Refers to last page's name (HMM; JPG)]
%% allows for things like "Page \thepage{} of \pageref{LastPage}"
%% to get "Page 7 of 9"
@@ -1031,7 +1025,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \end{macrocode}
%
% |\lastpage@putlabel|, used by older versions of this package,
-% is redefined e.\,g. by \xpackage{revtex}, \xpackage{frenchle},
+% is redefined e.\,g.\ by \xpackage{revtex}, \xpackage{frenchle},
% \xpackage{PPRcorners}, and old versions of \xpackage{hyperref}.
% While now |\lastpage@putl@bel| is used instead, \xpackage{revtex}
% could also define a label \texttt{LastPage},
@@ -1126,6 +1120,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \end{macrocode}
% \end{macro}
+% \newpage
%
% \begin{macro}{\lastpage@putlabelhyper}%
% \indent When \xpackage{hyperref} has been loaded, the label is set with the
@@ -1176,12 +1171,11 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \end{macrocode}
%
% We do not count the pages ourselves, and so they could have been changed by
-% e.\,g. |\pagenumbering{...}|, |\addtocounter{page}{...}|,\newline
+% e.\,g.\ |\pagenumbering{...}|, |\addtocounter{page}{...}|,\newline
% |\setcounter{page}{...}|. Thus the page might have the number one
% while not being the first page at all. Using the \xpackage{everyshi}
% package would help, but this package should not require other packages.
-% The \xpackage{pageslts} package does a better handling, but requires
-% some other packages.\newline
+% The \xpackage{pageslts} package does a better handling.\newline
% We will make a mistake here at most once:
%
% \begin{macrocode}
@@ -1227,7 +1221,6 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \end{macrocode}
% \end{macro}
-% \newpage
%
% \begin{macro}{\lastpage@putlabelNR}
% \indent The \xpackage{nameref} package redefines |\label| to have five arguments
@@ -1284,8 +1277,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
Press Ctrl+Z to exit.\MessageBreak%
But it is OK if the .aux file was already updated\MessageBreak%
by a previous compiler run\MessageBreak%
- and would not have changed anyway.\MessageBreak%
- }%
+ and would not have changed anyway.}%
\fi%
\fi%
}
@@ -1384,8 +1376,8 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \begin{macrocode}
%<*lastpagemodern>
%% Part of the "lastpage" package
-\NeedsTeXFormat{LaTeX2e}[2023-06-01]
-\ProvidesPackage{lastpagemodern}[2024-07-07 v2.1c %
+\NeedsTeXFormat{LaTeX2e}[2024-06-01]
+\ProvidesPackage{lastpagemodern}[2024-11-24 v2.1d %
Refers to last page's name (HMM; JPG)]
%% allows for things like "Page \thepage{} of \pageref{LastPage}"
%% to get "Page 7 of 9" or "Page VII of IX";
@@ -1445,21 +1437,23 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% if it is associated with the same page.) Therefore we define
%
% \begin{macrocode}
-\AddToHook{begindocument/end}{\gdef\lastpage@putlabel{\relax}}
+\AddToHook{begindocument/end}{%
+ \IfPackageLoadedT{pageslts}{%
+ \PackageNoteNoLine{lastpage}{Packages pageslts and lastpage used.\MessageBreak%
+ lastpage is not necessary when loading pageslts}%
+ }%
+ \gdef\lastpage@putlabel{\relax}%
+ }
% \end{macrocode}
%
-% Because |\lastpage@putlabel| might be (re)defined later, depending on the order
-% in which the packages are loaded, we will do this again at the end of the document.
-%
% \begin{macro}{\protected@iwrite}
% \indent We need an |\immediate\protected@write|. Just |\immediate\write| had led to errors,
% for example when packages like \pkg{babel-greek} re-defined |\roman|\ %
-% (thanks to Ulrike Fischer for the report).
+% (thanks to \textsc{Ulrike Fischer} for the report).
%
% \begin{macrocode}
-%% from https://tex.stackexchange.com/a/12811/542425
-%% with thanks to Prof. Enrico Gregorio
+%% Code provided by Prof. Enrico Gregorio at https://tex.stackexchange.com/a/542425
\long\def\protected@iwrite#1#2#3{%
\begingroup%
#2%
@@ -1478,21 +1472,40 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \begin{macrocode}
\newcommand{\lastpage@makeHy}{%
\gdef\lastpage@Hy{}%
- \IfPackageLoadedTF{hyperref}{%
+ \IfPackageLoadedT{hyperref}{%
\ifHy@pageanchor%
- \@ifundefined{@currentHpage}{%
- \PackageError{lastpage}{%
- Kernel command \string\@currentHpage\space is undefined}{%
- Please contact the lastpage maintainer.}%
% \end{macrocode}
% |\gdef\lastpage@Hy{}|, but that was already done at the beginning of this command.
% \begin{macrocode}
- }{\xdef\lastpage@Hptest{Doc-Start}%
- \ifx\lastpage@Hptest\@currentHpage\relax%
- \gdef\lastpage@Hy{\@currentHpage}%
+ \def\lastpage@Hptest{Doc-Start}%
+ \ifx\lastpage@Hptest\@currentHpage\relax%
+ \gdef\lastpage@Hy{\@currentHpage}%
+ \else%
+ \edef\lastpage@Hptest{\@currentHpage}%
+ \ifx\lastpage@Hptest\empty\relax%
+% \end{macrocode}
+% |\gdef\lastpage@Hy{}|, but that was already done at the beginning of this command.
+% \begin{macrocode}
\else%
- \edef\lastpage@Hptest{\@currentHpage}%
- \ifx\lastpage@Hptest\empty\relax%
+ \def\lastpage@Hptest{page.}%
+ \ifx\lastpage@Hptest\@currentHpage\relax
+ \def\lastpage@Hptest{\csname @fnsymbol\endcsname \c@page }%
+ \ifx\lastpage@Hptest\thepage\relax%
+ \ifnum\value{page}=3\else%
+ \PackageWarningNoLine{lastpage}{You should add a\MessageBreak
+ \string\DeclareTextCommand{...}{PD1}{...}\MessageBreak%
+ (see the lastpage package manual, 3.13 %
+ \string\pagenumbering{fnsymbol})\MessageBreak%
+ to your document's preamble}%
+% \end{macrocode}
+% See \autoref{subsec:fnsymbol}: \nameref{subsec:fnsymbol}, page~\pageref{subsec:fnsymbol}.
+% \begin{macrocode}
+ \fi%
+ \fi%
+ \PackageWarningNoLine{lastpage}{%
+ \string\@currentHpage\space is\MessageBreak%
+ just "page." without number,\MessageBreak%
+ \string\lastpage@lastpageHy\space is now let empty}%
% \end{macrocode}
% |\gdef\lastpage@Hy{}|, but that was already done at the beginning of this command.
% \begin{macrocode}
@@ -1510,14 +1523,14 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
\string\@currentHpage\space is\MessageBreak%
\meaning\@currentHpage\MessageBreak%
not beginning with "page.",\MessageBreak%
- \string\lastpage@lastpageHy\space is now let empty.}%
+ \string\lastpage@lastpageHy\space is now let empty}%
\fi%
\fi%
\fi%
- }%
+ \fi%
\fi%
- }{}%
- }%
+ }%
+ }
% \end{macrocode}
% \end{macro}
@@ -1537,39 +1550,32 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% |\else#4| means, that it did not start with |page.|, and whatever it is,
% we cannot use this |#4| for |\lastpage@Hy|.
% \end{macro}
+%
% \begin{macro}{\lastpage@putl@bel}
% \indent This command does the writing of the label.
-% If the \xpackage{pageslts} package is used, this \xpackage{lastpage} package
-% is not needed at all. The \xpackage{LastPage} label would even be defined twice.
-% Thus, if \xpackage{pageslts} is used, here nothing is done.
-%
-% \begin{macrocode}
-\newcommand{\lastpage@putl@bel}{%
- \IfPackageLoadedTF{pageslts}{\relax}{%
-% \end{macrocode}
-% \noindent Otherwise the label is set:
-% \noindent If the \xpackage{hyperref} package is used, but page-anchors are disabled,
+% If the \xpackage{hyperref} package is used, but page-anchors are disabled,
% the hyperlinking will not work. (The warning will also be shown, when only
-% |\pageref*{LastPage}| is used (or neither one), but without messing with |\pageref|
-% we cannot detect this.)
+% |\pageref*{LastPage}| is used (or neither |\pageref{LastPage}| nor |\pageref*{LastPage}|),
+% but without messing with |\pageref| we cannot detect this.)
%
% \begin{macrocode}
- \IfPackageLoadedTF{hyperref}{%
- \IfPackageAtLeastTF{hyperref}{2023-11-07}{\relax}{%
- \PackageError{lastpage}{hyperref package version too old}{%
- required version: 2023-11-07 or newer, found version:\MessageBreak%
- \csname ver@hyperref.sty\endcsname\MessageBreak%
- Update hyperref or use lastpageclassic.sty instead of\MessageBreak%
- lastpagemodern.sty!}}%
- \ifHy@pageanchor\else%
- \PackageWarningNoLine{lastpage}{%
- The \string\pageref{LastPage} link does not work\MessageBreak%
- using hyperref with disabled option `pageanchor'.\MessageBreak%
- Better enable `pageanchor' or use\MessageBreak%
- \string\pageref*{LastPage} (not generating a link)}%
- \fi%
- }{}%
- \begingroup%
+\newcommand{\lastpage@putl@bel}{%
+ \IfPackageLoadedT{hyperref}{%
+ \IfPackageAtLeastF{hyperref}{2024-10-30}{%
+ \PackageError{lastpage}{hyperref package version too old}{%
+ required version: 2024-10-30 or newer, found version:\MessageBreak%
+ \csname ver@hyperref.sty\endcsname\MessageBreak%
+ Update hyperref or use lastpageclassic.sty instead of\MessageBreak%
+ lastpagemodern.sty!}}%
+ \ifHy@pageanchor\else%
+ \PackageWarningNoLine{lastpage}{%
+ The \string\pageref{LastPage} link does not work\MessageBreak%
+ using hyperref with disabled option `pageanchor'.\MessageBreak%
+ Better enable `pageanchor' or use\MessageBreak%
+ \string\pageref*{LastPage} (not generating a link)}%
+ \fi%
+ }%
+ \begingroup%
% \end{macrocode}
%
% \noindent Since the page has been put out, we are on the page \textit{after} that page.
@@ -1578,7 +1584,15 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% it is probably easier to understand.)
%
% \begin{macrocode}
- \addtocounter{page}{-1}%
+ \addtocounter{page}{-1}%
+% \end{macrocode}
+%
+% If the \xpackage{pageslts} package is used, this \xpackage{lastpage} package
+% is not needed at all. The \xpackage{LastPage} label would even be defined twice.
+% Thus, if \xpackage{pageslts} is used, here nothing is done.
+%
+% \begin{macrocode}
+ \IfPackageLoadedTF{pageslts}{% then pageslts writes the label for "LastPage".
% \end{macrocode}
%
% \noindent Simply using |\label| for \texttt{LastPage} would not work,
@@ -1586,37 +1600,38 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% may be no more invocations of the output routines.
% To force the write out, we need to do an |\immediate| protected write
% into the \xfile{aux} file.
+%
% \begin{macrocode}
- \protected@iwrite\@auxout{}{\string\newlabel{LastPage}{%
- {\@currentlabel}{\thepage}{\@currentlabelname}%
- {\IfPackageLoadedTF{hyperref}{\ifHy@pageanchor\@currentHpage\fi%
- }{\@currentHref}}%
- {\@kernel@reserved@label@data}}%
+ }{\protected@iwrite\@auxout{}{\string\newlabel{LastPage}{%
+ {\@currentlabel}{\thepage}{\@currentlabelname}%
+ {\IfPackageLoadedTF{hyperref}{\ifHy@pageanchor\@currentHpage\fi%
+ }{\@currentHref}}%
+ {\@kernel@reserved@label@data}}%
}%
+ }%
% \end{macrocode}
% \noindent We also save the values, so that we can later (next rerun) check,
% whether they have been saved in the \xfile{aux} file.
%
% \begin{macrocode}
- \protected@iwrite\@auxout{}{%
- \string\gdef\string\lastpage@lastpage{\thepage}}%
- \lastpage@makeHy%
- \protected@iwrite\@auxout{}{%
- \string\gdef\string\lastpage@lastpageHy{\lastpage@Hy}}%
+ \protected@iwrite\@auxout{}{%
+ \string\gdef\string\lastpage@lastpage{\thepage}}%
+ \lastpage@makeHy%
+ \protected@iwrite\@auxout{}{%
+ \string\gdef\string\lastpage@lastpageHy{\lastpage@Hy}}%
% \end{macrocode}
%
% \noindent After the write-out we restore the page number again,
% since there might be other things still to be done.
%
% \begin{macrocode}
- \addtocounter{page}{+1}%
- \endgroup%
- }%
+ \addtocounter{page}{+1}%
+ \endgroup%
}
% \end{macrocode}
% \end{macro}
-%\pagebreak
+%
% \begin{macro}{\lastpage@fileswtest}
% \indent \hspace*{2em}Later it will be determined whether it is allowed to write
% to the \xfile{aux} file. If it was \emph{not} allowed, it is checked
@@ -1684,14 +1699,12 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
%
% \begin{macrocode}
\AddToHook{enddocument/afterlastpage}{%
- \IfPackageLoadedTF{pageslts}{\relax}{%
- \gdef\lastpage@putlabel{??}%
- \ifx\lastpage@lastpage\lastpage@putlabel\relax%
- \AddToHook{enddocument/info}{%
- \PackageWarning{lastpage}{Rerun to get the references right}%
- }%
- \fi%
- }%
+ \gdef\lastpage@putlabel{??}%
+ \ifx\lastpage@lastpage\lastpage@putlabel\relax%
+ \AddToHook{enddocument/info}{%
+ \PackageWarning{lastpage}{Rerun to get the references right}%
+ }%
+ \fi%
\gdef\lastpage@putlabel{\relax}%
% \end{macrocode}
%
@@ -1705,7 +1718,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% We put in a |\message| to show, in what order things (which were called) are done.
%
% \begin{macrocode}
- \message{^^Jenddocument/afterlastpage: lastpage setting LastPage.^^J}%
+ \message{^^Jenddocument/afterlastpage (AED): lastpage setting LastPage.^^J}%
\IfPackageLoadedTF{french}{%
\addtocounter{page}{+1}\lastpage@putl@bel\addtocounter{page}{-1}%
}{\IfPackageLoadedTF{frenchle}{%
@@ -1722,10 +1735,8 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% (if \xpackage{hyperref} has been loaded) |\lastpage@fileswtestHy|.
%
% \begin{macrocode}
- \IfPackageLoadedTF{pageslts}{\relax}{%
- \lastpage@fileswtest{\thepage}{\lastpage@lastpage}%
- \IfPackageLoadedTF{hyperref}{\lastpage@fileswtestHy}{\relax}%
- }%
+ \lastpage@fileswtest{\thepage}{\lastpage@lastpage}%
+ \IfPackageLoadedT{hyperref}{\lastpage@fileswtestHy}%
\fi%
}
%</lastpagemodern>
@@ -1750,45 +1761,45 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \end{description}
%
% \DescribeMacro{lastpage.sty}
-% The |lastpage.sty| (i.\,e. each document using the \xpackage{lastpage} package)
+% The |lastpage.sty| (i.\,e.\ each document using the \xpackage{lastpage} package)
% requires:
% \begin{description}
% \item[-] \TeX, \url{https://www.CTAN.org}
%
-% \item[-] package \xpackage{lastpage}, 2024-07-07, v2.1c,
+% \item[-] package \xpackage{lastpage}, 2024-11-24, v2.1d,
% \url{https://ctan.org/pkg/lastpage}
% \end{description}
%
% \DescribeMacro{lastpage209.sty}
-% The |lastpage209.sty| for \LaTeX2.09{} (i.\,e. each document using
+% The |lastpage209.sty| for \LaTeX2.09{} (i.\,e.\ each document using
% the \xpackage{lastpage209} package) requires:
% \begin{description}
% \item[-] \TeX-format \LaTeX{}, v2.09
%
-% \item[-] package \xpackage{lastpage209}, 2024-07-07, v2.1c,
+% \item[-] package \xpackage{lastpage209}, 2024-11-24, v2.1d,
% \url{https://ctan.org/pkg/lastpage}
% \end{description}
% and does not work with \xpackage{hyperref}, which needs \LaTeX2e{}.\smallskip
%
% \DescribeMacro{lastpage2e.sty}
-% The |lastpage2e.sty| for \LaTeXe{} (i.\,e. each document using
+% The |lastpage2e.sty| for \LaTeXe{} (i.\,e.\ each document using
% the \xpackage{lastpage2e} package) requires:
% \begin{description}
% \item[-] \TeX-format \LaTeXe{} 1994/12/01 or newer,
% \url{https://www.CTAN.org}
%
-% \item[-] package \xpackage{lastpage}, 2024-07-07, v2.1c,
+% \item[-] package \xpackage{lastpage}, 2024-11-24, v2.1d,
% \url{https://ctan.org/pkg/lastpage}
% \end{description}
%
% \DescribeMacro{lastpageclassic.sty}
-% The |lastpageclassic.sty| for \LaTeXe{} (i.\,e. each document using
+% The |lastpageclassic.sty| for \LaTeXe{} (i.\,e.\ each document using
% the \xpackage{lastpageclassic} package) requires:
% \begin{description}
-% \item[-] \TeX-format \LaTeXe{} between 1994/12/01 and 2023-05-31,\newline
+% \item[-] \TeX-format \LaTeXe{} between 1994/12/01 and 2024-05-31,\newline
% \url{https://www.CTAN.org}
%
-% \item[-] package \xpackage{lastpage}, 2024-07-07, v2.1c,
+% \item[-] package \xpackage{lastpage}, 2024-11-24, v2.1d,
% \url{https://ctan.org/pkg/lastpage}
% \end{description}
% and can use
@@ -1799,19 +1810,19 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \end{description}
%
% \DescribeMacro{lastpagemodern.sty}
-% The |lastpagemodern.sty| for \LaTeXe{} (i.\,e. each document using
+% The |lastpagemodern.sty| for \LaTeXe{} (i.\,e.\ each document using
% the \xpackage{lastpagemodern} package) requires:
% \begin{description}
-% \item[-] \TeX-format \LaTeXe{} 2023-06-01 or newer,\newline
+% \item[-] \TeX-format \LaTeXe{} 2024-06-01 or newer,\newline
% \url{https://www.CTAN.org}
%
-% \item[-] package \xpackage{lastpage}, 2024-07-07, v2.1c,
+% \item[-] package \xpackage{lastpage}, 2024-11-24, v2.1d,
% \url{https://ctan.org/pkg/lastpage}
% \end{description}
% and can use
% \begin{description}
-% \item[-] package \xpackage{hyperref}, 2023-11-07 and newer
-% (tested with: 2024-05-23, v7.01i),
+% \item[-] package \xpackage{hyperref}, probably 2023-11-07 and newer
+% (tested with: 2024-10-30 v7.01k),
% \url{https://ctan.org/pkg/hyperref}
% \end{description}
% \pagebreak
@@ -1820,7 +1831,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% The |lastpage-example.tex| requires the same file as all
% documents using the \xpackage{lastpage} package, i.\,e.
% \begin{description}
-% \item[-] package \xpackage{lastpage}, 2024-07-07, v2.1c,
+% \item[-] package \xpackage{lastpage}, 2024-11-24, v2.1d,
% \url{https://ctan.org/pkg/lastpage}\newline
% (Well, it is the example file for this package, and because you are reading the
% documentation for the \xpackage{lastpage} package, it can be assumed that you already
@@ -1834,89 +1845,10 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \item[-] package \xpackage{showkeys}, 2024-05-23, v3.21,
% \url{https://ctan.org/pkg/showkeys}
%
-% \item[-] package \xpackage{hyperref}, 2024-05-23, v7.01i,
+% \item[-] package \xpackage{hyperref}, 2024-10-30, v7.01k,
% \url{https://ctan.org/pkg/hyperref}
% \end{description}
%
-% \DescribeMacro{endfloat}
-% The \xpackage{endfloat} package is not required, but because
-% the \xpackage{lastpage} package is incompatible with \textit{ancient} versions
-% of the \xpackage{endfloat} package (see subsection~\ref{sec:endfloat}),
-% here the recent one (at the time of writing this documentation) is listed:
-% \begin{description}
-% \item[-] package \xpackage{endfloat}, 2019/04/15, v2.7,
-% \url{https://ctan.org/pkg/endfloat}
-% \end{description}
-%
-% \DescribeMacro{fancyhdr}
-% \DescribeMacro{nccfancyhdr}
-% Neither the \xpackage{fancyhdr} nor the \xpackage{nccfancyhdr} package is required
-% (older versions of the \xpackage{lastpage} package used its predecessor
-% \xpackage{fancyheadings}), but because they were mentioned, also they are listed
-% here:
-% \begin{description}
-% \item[-] package \xpackage{fancyhdr}, 2024/04/23, v4.2,
-% \url{https://ctan.org/pkg/fancyhdr}
-%
-% \item[-] package \xpackage{nccfancyhdr}, 2004/12/07, v1.1,
-% \url{https://ctan.org/pkg/nccfancyhdr}
-% \end{description}
-%
-% \DescribeMacro{count1to}
-% \DescribeMacro{nofm}
-% \DescribeMacro{totpages}
-% \DescribeMacro{lastpage}
-% \DescribeMacro{totalcount}
-% \DescribeMacro{zref}
-% \DescribeMacro{memoir}
-% As possible alternatives in section~\ref{sec:Alternatives}, Alternatives,
-% there are listed (newer versions might be available):
-% \begin{description}
-% \item[-] package \xpackage{pageslts}, 2015/12/21, v1.2f,
-% \url{https://ctan.org/pkg/pageslts}
-%
-% \item[-] package \xpackage{papermas}, 2023-04-12, v1.1a; the \xpackage{papermas}
-% package can be considered as kind of add-on to the \xpackage{pageslts} package.\newline
-% \url{https://ctan.org/pkg/papermas}
-%
-% \item[-] package \xpackage{count1to}, 2009/05/24, v2.1,
-% \url{https://ctan.org/pkg/count1to}
-%
-% \item[-] package \xpackage{nofm}, 1991/02/25,
-% \href{https://mirror.ctan.org/obsolete/macros/latex209/contrib/misc/nofm.sty}{%
-% https://mirror.ctan.org/obsolete/macros/latex209/}%
-% \href{https://mirror.ctan.org/obsolete/macros/latex209/contrib/misc/nofm.sty}{%
-% contrib/misc/nofm.sty},
-% does not work with e.\,g. \xpackage{hyperref}
-%
-% \item[-] package \xpackage{totpages}, 2005/09/19, v2.00,
-% \url{https://ctan.org/pkg/totpages}
-%
-% \item[-] package \xpackage{totalcount}, 2018/01/21, v1.0a,
-% \url{https://ctan.org/pkg/totalcount}
-%
-% \item[-] package \xpackage{zref}, 2023-09-14, v2.35,
-% \url{https://ctan.org/pkg/zref}
-%
-% \item[-] class \xpackage{memoir}, 2024-01-26, v3.8.2,
-% \url{https://ctan.org/pkg/memoir}.
-% \end{description}
-%
-% \DescribeMacro{Oberdiek}
-% \DescribeMacro{holtxdoc}
-% \DescribeMacro{zref}
-% All packages of the `oberdiek' bundle
-% (especially \xpackage{holtxdoc} and \xpackage{zref})
-% are also available in a TDS compliant ZIP archive:\newline
-% \url{https://mirror.ctan.org/install/macros/latex/contrib/oberdiek.tds.zip}.\newline
-% It is probably best to download and use this, because the packages in there
-% are quite probably both recent and compatible among themselves.\par
-%
-% \DescribeMacro{hyperref}
-% \noindent \xpackage{hyperref} is not included in that bundle and needs to be
-% downloaded separately,\newline
-% \url{https://mirror.ctan.org/install/macros/latex/contrib/hyperref.tds.zip}.\par
-%
% \DescribeMacro{Münch}
% A hyperlinked list of my (other) packages can be found at\newline
% \url{https://ctan.org/author/muench-hm}.
@@ -1936,7 +1868,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% There is also a |lastpage.tds.zip| available:
% \begin{description}
% \item[\url{https://mirror.ctan.org/install/macros/latex/contrib/lastpage.tds.zip}]\hspace*{0.1cm}
-% Everything in TDS compliant, compiled format
+% Everything in TDS compliant, compiled format.
% \end{description}
% which additionally contains\\
% \begin{tabular}{ll}
@@ -1956,7 +1888,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
%
% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
% \docstrip{} archive. The files are extracted by running the
-% \xext{.dtx} through \plainTeX{}:
+% \xext{.dtx} through \plainTeX :
% \begin{quote}
% \verb|tex lastpage.dtx|
% \end{quote}
@@ -2041,7 +1973,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \end{quote}
% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
% TDS installing feature, then some files can already be in the right
-% place, see the documentation of \docstrip{}.
+% place, see the documentation of \docstrip.
%
% \subsection{Refresh file name databases}
% If your \TeX~distribution (\TeX\,Live, \mikTeX, \dots) relies on
@@ -2052,11 +1984,11 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \paragraph{Unpacking with \LaTeX.}
% The \xfile{.dtx} chooses its action depending on the format:
% \begin{description}
-% \item[\plainTeX:] Run \docstrip{} and extract the files.
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
% \item[\LaTeX:] Generate the documentation.
% \end{description}
-% If you insist on using \LaTeX{} for \docstrip{} (really,
-% \docstrip{} does not need \LaTeX ), then inform the autodetect routine
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX ), then inform the autodetect routine
% about your intention:
% \begin{quote}
% \verb|latex \let\install=y\input{lastpage.dtx}|
@@ -2096,7 +2028,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \section{Acknowledgements}
%
% I (\textsc{H.-Martin Münch}) would like to thank
-% \textsc{Jeffrey P. Goldberg} (jeffrey+news at goldmark dot org) for
+% \textsc{Jeffrey P. Goldberg} \mbox{(jeffrey+}\allowbreak news at goldmark dot org) for
% inventing the \xpackage{lastpage} package as well as for allowing me
% to update it. Further I would like to thank \textsc{Heiko Oberdiek}
% for providing a~lot~(!) of useful packages (from which I also learned everything
@@ -2139,7 +2071,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \end{Version}
% \begin{Version}{2010/02/18 v1.1}
% \item Proposed |LastPages| label by \textsc{H.-Martin Münch}
-% on \Newsgroup{comp.text.tex}, see e.\,g.
+% on \Newsgroup{comp.text.tex}, see e.\,g.\ %
% \url{https://groups.google.com/g/comp.text.tex/c/Ad8pO2Rw_HY/m/8EfHqT1JB0QJ};
% now available in the \xpackage{pageslts} package.
% \end{Version}
@@ -2179,7 +2111,8 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% checked for the |\hyperref| command, in case \xpackage{hyperref} was not
% loaded at |\begin{document}| yet. (Bug reported by \textsc{Sebastian Bank},
% thanks!)\newline
-% [\pkg{lastpagemodern.sty} just uses |\IfPackageLoadedTF{hyperref}|.]
+% [\pkg{lastpagemodern.sty} just uses |\IfPackageLoadedT{hyperref}| and
+% |\IfPackageLoadedTF{hyperref}|.]
% \item Changed the |\unit| definition (got rid of an old |\rm|). [Removed in v2.0a.]
% \item Changed |\lastpage@puthyperlabel| to |\lastpage@putlabelhyper| analogous to
% |\pagesLTS@putlabelhyper| of the \xpackage{pageslts} package.
@@ -2308,7 +2241,16 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \end{Version}
% \begin{Version}{2024-07-07 v2.1c}
% \item With help from \textsc{David Carlisle} |\lastpage@rmpage| no longer assumes
-% |\@currentHpage| to begin with |page.|.
+% |\@currentHpage| to begin with \mbox{\textquotedblleft |page.|\textquotedblright .}
+% \end{Version}
+% \begin{Version}{2024-11-24 v2.1d}
+% \item The \xpackage{pageslts} package has been repaired, thus here the warnings are removed.
+% \item Several small changes in documentation and |lastpagemodern.sty| because of the updates
+% of \LaTeX-format (to 2024-06-01), \xpackage{hyperref} package (to 2024-10-30, v7.01k),
+% and \xpackage{pageslts} package (to 2024-11-20, v2.0a).
+% \item Added a warning message about missing |\DeclareTextCommand{...}{PD1}{...}|
+% (cf.~\autoref{subsec:fnsymbol}: \nameref{subsec:fnsymbol}, page~\pageref{subsec:fnsymbol}).
+% \item Documentation section about alternatives rewritten.
% \end{Version}
% \end{History}
% \bigskip
@@ -2316,8 +2258,6 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% When you find a mistake or have a suggestion for an improvement of this package,
% please send an e-mail to the maintainer, thanks! (Please see BUG REPORTS in the README.)
% \newpage
-%
% \PrintIndex
-%
% \Finale
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/lastpage/lastpage.pdf b/macros/latex/contrib/lastpage/lastpage.pdf
index 9d224e6772..2ebae720ea 100644
--- a/macros/latex/contrib/lastpage/lastpage.pdf
+++ b/macros/latex/contrib/lastpage/lastpage.pdf
Binary files differ
diff --git a/macros/latex/contrib/srdp-mathematik/README.md b/macros/latex/contrib/srdp-mathematik/README.md
index 33f315b9de..69385a19c0 100644
--- a/macros/latex/contrib/srdp-mathematik/README.md
+++ b/macros/latex/contrib/srdp-mathematik/README.md
@@ -1,4 +1,4 @@
-# srdp-mathematik.sty v1.13.0
+# srdp-mathematik.sty v1.13.1
This package provides basic commands for the defined formats of the Austrian sRDP in mathematics.
Furthermore, it includes ways to implement answers in the tex file, which can be voluntarily displayed in the pdf file and
diff --git a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
index cc8c4308d5..02e027f7be 100644
--- a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
+++ b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
Binary files differ
diff --git a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
index 5612d145c3..d93e32b86b 100644
--- a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
+++ b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
@@ -10,8 +10,7 @@
%
\NeedsTeXFormat{LaTeX2e}[1996/12/26]
-\ProvidesPackage{srdp-mathematik}[2024/03/29 v1.13.0 Standard-Schularbeitsformate]
-
+\ProvidesPackage{srdp-mathematik}[2024/11/24 v1.13.1 Standard-Schularbeitsformate]
\usepackage{color}
\usepackage{xcolor}
@@ -46,8 +45,6 @@
\usepackage{eso-pic}
\usepackage{esvect}
\usepackage{phaistos}
-\usepackage{substitutefont}
-\substitutefont{LPH}{\familydefault}{cmr}
\renewcommand{\vec}[1]{\vv{#1}}
\usepackage{graphicx}
\usepackage{setspace}
diff --git a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
index 210b9b4ae2..9b3efa844b 100644
--- a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
+++ b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
@@ -55,7 +55,7 @@ hidelinks
\vfill
-\Huge The \textit{srdp-mathematik} package v1.13.0\\[1cm]
+\Huge The \textit{srdp-mathematik} package v1.13.1\\[1cm]
Documentation \\ [1cm]
diff --git a/macros/latex/contrib/stocksize/stocksize-doc.pdf b/macros/latex/contrib/stocksize/stocksize-doc.pdf
index 5f0e34cf40..a62b4e5b26 100644
--- a/macros/latex/contrib/stocksize/stocksize-doc.pdf
+++ b/macros/latex/contrib/stocksize/stocksize-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/stocksize/stocksize-doc.tex b/macros/latex/contrib/stocksize/stocksize-doc.tex
index 5dd3b53d85..85f25aebaa 100644
--- a/macros/latex/contrib/stocksize/stocksize-doc.tex
+++ b/macros/latex/contrib/stocksize/stocksize-doc.tex
@@ -111,12 +111,12 @@ To start a new page with a different page/stock size use the \verb!\newstocksize
% new (15cm x 10cm)
\newstocksize{layoutsize={15cm,10cm},margin=1.5cm}
- \printpagesize[15cm, 10cm, margin=1cm]
+ \printpagesize[15cm, 10cm, margin=1.5cm]
\kant[1-2]
% new (20cm x 20cm)
\newstocksize{layoutsize={20cm,20cm},margin=4.0cm}
- \printpagesize[20cm, 20cm, margin=1cm]
+ \printpagesize[20cm, 20cm, margin=4cm]
\kant[1-3]
\restorestocksize
diff --git a/macros/latex/contrib/stocksize/stocksize.sty b/macros/latex/contrib/stocksize/stocksize.sty
index 36c6f18998..c3abb9fb63 100644
--- a/macros/latex/contrib/stocksize/stocksize.sty
+++ b/macros/latex/contrib/stocksize/stocksize.sty
@@ -12,8 +12,8 @@
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2006/05/20 or later.
%%
-\def\fileversion{1.0.2}
-\def\filedate {2024/11/13}
+\def\fileversion{1.0.3}
+\def\filedate {2024/11/23}
\edef\filename {\@currname}
\ProvidesPackage{stocksize}[%
diff --git a/macros/latex/contrib/suftesi/suftesi.dtx b/macros/latex/contrib/suftesi/suftesi.dtx
index a9a76bfce1..475437e291 100644
--- a/macros/latex/contrib/suftesi/suftesi.dtx
+++ b/macros/latex/contrib/suftesi/suftesi.dtx
@@ -56,7 +56,7 @@ This work has the LPPL maintenance status "author-maintained".
%<class>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
%<class>\ProvidesClass{suftesi}
%<*class>
- [2023/09/07 v3.2.1 A class for typesetting theses, books and articles]
+ [2022/11/24 v3.2.2 A class for typesetting theses, books and articles]
%</class>
%<*driver>
\documentclass[12pt]{ltxdoc}
@@ -337,7 +337,7 @@ cochineal,mathpazo,bera,amsthm}
%</driver>
% \fi
%
-% \CheckSum{5685}
+% \CheckSum{5697}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -355,6 +355,7 @@ cochineal,mathpazo,bera,amsthm}
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
+% \changes{v3.2.2}{2024/11/24}{Temporarily fixed a conflict between \sty{amstext} and \sty{zref}.}
% \changes{v3.2.1}{2023/09/07}{Removed \sty{substitutefont} package (obsolete) and replaced \cmd{substitutefont} with \cmd{DeclareFontFamilySubstitution} provided by the \LaTeX\ kernel. Definitions of \texttt{sufred} and \texttt{sufgray} color moved \cmd{AtBeginDocument}.}
% \changes{v3.2.0}{2021/11/01}{Fixed a bug in \cmd{xfootnote} command.
% Fixed a bug occurring when using the \cmd{geometry} command.}
@@ -5457,6 +5458,19 @@ cochineal,mathpazo,bera,amsthm}
\def\thefootnote{\@fnsymbol\c@footnote}%
\fi
% \end{macrocode}
+% The \sty{zref} conflicts with \sty{amstext} (loaded by \sty{amsmath}),
+% because \sty{amstext} changes stepcounter. This is a temporary fix
+% by Frank Mittelbach on \url{https://github.com/ho-tex/zref/issues/11}:
+% \begin{macrocode}
+\AtBeginDocument{%
+\let\ZREF@org@stepcounter\stepcounter
+\def\stepcounter#1{%
+ \ifcsname @stepcounterhook@#1\endcsname
+ \csname @stepcounterhook@#1\endcsname
+ \fi
+ \ZREF@org@stepcounter{#1}%
+}}
+% \end{macrocode}
% \paragraph{The \cmd{xfootnote} command} Prints a footnote with discretionary
% symbol give in the first argument. Since version 1.3.4 \cmd{protected@xdef}
% replaces \cmd{xdef}.
diff --git a/macros/latex/contrib/suftesi/suftesi.pdf b/macros/latex/contrib/suftesi/suftesi.pdf
index fc7ac9f929..0efa8b1aa1 100644
--- a/macros/latex/contrib/suftesi/suftesi.pdf
+++ b/macros/latex/contrib/suftesi/suftesi.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-elements/README.md b/macros/latex/contrib/tkz/tkz-elements/README.md
index 66c11bf62f..3c53ea16eb 100644
--- a/macros/latex/contrib/tkz/tkz-elements/README.md
+++ b/macros/latex/contrib/tkz/tkz-elements/README.md
@@ -1,10 +1,10 @@
# tkz-elements — for euclidean geometry
-Release 2.30c 2024/07/16
+Release 3.00c 2024/11/23
## Description
-`tkz-elements v.2.30c` 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.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`.
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.
@@ -43,9 +43,9 @@ your LaTeX document:
\usepackage[mini]{tkz-euclide}
\usepackage{tkz-elements}
\begin{document}
-\begin{tkzelements}
+\directlua{
your code
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
your code
@@ -62,14 +62,17 @@ An important example `Golden Arbelos` using the package is on the site. All the
are on the site.
## History
-
- - version 2.30c
- - new version of the macro `\tkzGetNodes` written by Sanskar Singh. This version now fixes a bug that prevented a figure from being centred with `centering` or the `center` environment.
- - adding methods `bevan_circle`, `symmedial_circle`.
- - correction of the methods `function triangle: bevan_point ()` and `function triangle: mittenpunkt_point ()`.
- - adding `function triangle: similar ()`
- - adding `function line : perpendicular_bisector ()` which is similar to `function line : mediator ()`
- - correction of documentation.
+ - 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.
+
+ - version 2.30c
+ - New version of the macro `\tkzGetNodes` written by Sanskar Singh. This version now fixes a bug that prevented a figure from being centred with `centering` or the `center` environment.
+ - Adding methods `bevan_circle`, `symmedial_circle`.
+ - Correction of the methods `function triangle: bevan_point ()` and `function triangle: mittenpunkt_point ()`.
+ - Adding `function triangle: similar ()`
+ - Adding `function line : perpendicular_bisector ()` which is similar to `function line : mediator ()`
+ - Correction of documentation.
- version 2.25c
- French documentation at my site: [http://altermundus.fr](http://altermundus.fr)
@@ -77,7 +80,7 @@ are on the site.
- Added `cevian`, `pedal`, `conway_circle`, `conway_points` new methods to the class `triangle`.
- version 2.20c
- - Package:
+ - Package:
- Added class matrix; methods are mainly of order 2, sometimes of order 3.
- Added function solve_quadratic. This function can be used to solve second-degree equations with real or complex numbers.
- Added method print for the class point. Example z.A : print ()
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 85e7359518..2d5665f879 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
@@ -38,7 +38,8 @@ Three attributes are used (south, west, radius).
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.a = point: new (1, 1)
z.b = point: new (5, 4)
@@ -48,7 +49,7 @@ Three attributes are used (south, west, radius).
r = C.ab.radius
z.c = C.ab.opp
z.r,z.t = get_points (C.ab.ct : ortho_from (z.b))
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(a,b,c,s,w)
@@ -60,7 +61,8 @@ Three attributes are used (south, west, radius).
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.a = point: new (1, 1)
z.b = point: new (5, 4)
@@ -70,16 +72,16 @@ Three attributes are used (south, west, radius).
r = C.ab.radius
z.c = C.ab.opp
z.r,z.t = get_points (C.ab.ct : ortho_from (z.b))
-\end{tkzelements}
+}
-\emph{\begin{tikzpicture}
+\hfill\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(a,b,c,s,w)
\tkzLabelPoints(a,b,c,s,w)
\tkzDrawCircle(a,b)
\tkzDrawSegments(a,b r,t b,c)
\tkzLabelSegment[sloped](a,b){ab = \tkzUseLua{r}}
-\end{tikzpicture}}
+\end{tikzpicture}
\end{minipage}
% subsubsection example_circle_attributes (end)
@@ -127,7 +129,7 @@ Three attributes are used (south, west, radius).
\midrule
\textbf{Miscellaneous} &&\\
\midrule
-\Imeth{circle}{power (pt)} &| r = C.OA: power (z.M)| & [\ref{par:power_v1} ; \ref{par:power_v2} ; \ref{sub:apollonius_circle_v1_with_inversion} ] \\
+\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 &\\
@@ -145,11 +147,12 @@ A circle is defined by its centre and a point through which it passes.
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point: new (0,0)
z.A = point: new (2,1)
C = circle: new (z.O , z.A)
-\end{tkzelements}
+}
\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzDrawCircles(O,A)
@@ -159,11 +162,12 @@ C = circle: new (z.O , z.A)
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point: new (0,0)
z.A = point: new (2,1)
C = circle: new (z.O , z.A)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}[gridded]
\tkzGetNodes
@@ -186,12 +190,13 @@ We define a circle with its centre and radius.
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point: new (0,0)
z.A = point: new (2,1)
C = circle: radius (z.A , math.sqrt(5))
z.T = C.through
-\end{tkzelements}
+}
\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzDrawCircles(A,T)
@@ -201,12 +206,13 @@ z.T = C.through
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.O = point: new (0,0)
z.A = point: new (2,1)
C = circle: radius (z.A , math.sqrt(5))
z.T = C.through
- \end{tkzelements}
+ }
\begin{center}
\begin{tikzpicture}[gridded]
\tkzGetNodes
@@ -226,13 +232,14 @@ A circle is defined by two points at the ends of one of its diameters.
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (2,1)
C = circle: diameter (z.A , z.B)
z.O = C.center
z.T = C.through
-\end{tkzelements}
+}
\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzDrawCircles(O,T)
@@ -242,13 +249,14 @@ z.T = C.through
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (2,1)
C = circle: diameter (z.A , z.B)
z.O = C.center
z.T = C.through
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}[gridded]
\tkzGetNodes
@@ -267,12 +275,13 @@ This method is used to define a point that is diametrically opposed to a point o
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.O = point: new (2,1)
C = circle: new (z.O , z.A)
z.B = C : antipode (z.A)
-\end{tkzelements}
+}
\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzDrawCircles(O,A)
@@ -282,12 +291,13 @@ z.B = C : antipode (z.A)
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.O = point: new (2,1)
C = circle: new (z.O , z.A)
z.B = C : antipode (z.A)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}[gridded]
\tkzGetNodes
@@ -311,13 +321,14 @@ The definition I use here is more general: the defined point is simply the point
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.O = point: new (2,1)
C = circle: new (z.O , z.A)
z.B = C : point (0.25)
z.M = C : midarc (z.A,z.B)
-\end{tkzelements}
+}
\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzDrawCircles(O,A)
@@ -327,13 +338,14 @@ z.M = C : midarc (z.A,z.B)
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.O = point: new (2,1)
C = circle: new (z.O , z.A)
z.B = C : point (0.25)
z.M = C : midarc (z.A,z.B)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}[gridded]
\tkzGetNodes
@@ -358,14 +370,15 @@ If $r=.5$ the defined point is diametrically opposed to $A$, the angle $\widehat
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.O = point: new (0,0)
z.A = point: new (1,2)
C.OA = circle: new (z.O,z.A)
z.B = C.OA: point (1/6)
z.C = C.OA: point (0.25)
z.D = C.OA: point (0.5)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(O,A)
@@ -375,14 +388,15 @@ If $r=.5$ the defined point is diametrically opposed to $A$, the angle $\widehat
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.O = point: new (0,0)
z.A = point: new (1,2)
C.OA = circle: new (z.O,z.A)
z.B = C.OA: point (1/6)
z.C = C.OA: point (0.25)
z.D = C.OA: point (0.5)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -409,14 +423,15 @@ The \code{inversion} method can be used on a point, a group of points, a line or
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.o = point: new (-1,2)
z.a = point: new (2,1)
C.oa = circle: new (z.o,z.a)
z.c = point: new (3,4)
z.d = C.oa: inversion (z.c)
p = C.oa: power (z.c)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(o,a)
@@ -429,7 +444,8 @@ The \code{inversion} method can be used on a point, a group of points, a line or
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale =.75
z.o = point: new (-1,2)
z.a = point: new (2,1)
@@ -437,7 +453,7 @@ The \code{inversion} method can be used on a point, a group of points, a line or
z.c = point: new (3,4)
z.d = C.oa: inversion (z.c)
p = C.oa: power (z.c)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -460,7 +476,8 @@ The result is either a straight line or a circle.
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.o = point: new (-1,1)
z.a = point: new (1,3)
C.oa = circle: new (z.o,z.a)
@@ -469,7 +486,7 @@ The result is either a straight line or a circle.
L.cd = line: new (z.c,z.d)
C.OH = C.oa: inversion (L.cd)
z.O,z.H = get_points(C.OH)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(o,a O,H)
@@ -480,7 +497,8 @@ The result is either a straight line or a circle.
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.o = point: new (-1,1)
z.a = point: new (1,3)
C.oa = circle: new (z.o,z.a)
@@ -489,7 +507,7 @@ The result is either a straight line or a circle.
L.cd = line: new (z.c,z.d)
C.OH = C.oa: inversion (L.cd)
z.O,z.H = get_points(C.OH)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -511,7 +529,8 @@ The result is either a straight line or a circle.
\begin{minipage}{.55\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .7
z.o,z.a = point: new (-1,3),point: new (2,3)
z.c = point: new (-2,1)
@@ -528,7 +547,7 @@ if obj.type == "line"
then z.p,z.q = get_points(obj)
else z.f,z.b = get_points(obj) end
color = "orange"
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles[black](o,a)
@@ -541,7 +560,8 @@ color = "orange"
\end{Verbatim}
\end{minipage}
\begin{minipage}{.45\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale = .7
z.o,z.a = point: new (-1,3),point: new (2,3)
z.c = point: new (-2,1)
@@ -558,7 +578,7 @@ color = "orange"
then z.p,z.q = get_points(obj)
else z.f,z.b = get_points(obj) end
color = "orange"
- \end{tkzelements}
+ }
\begin{center}
\begin{tikzpicture}
@@ -582,8 +602,9 @@ Circles are geometrically similar to one another and mirror symmetric. Hence, a
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
- scale = 0.75
+\directlua{%
+init_elements ()
+ scale = 0.7
z.A = point : new ( 0 , 0 )
z.a = point : new ( 2 , 2 )
z.B = point : new ( 5 , 2 )
@@ -594,7 +615,7 @@ z.I = C.Aa : internal_similitude (C.Bb)
L.TA1,L.TA2 = C.Aa : tangent_from (z.I)
z.A1 = L.TA1.pb
z.A2 = L.TA2.pb
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(A,a B,b)
@@ -604,8 +625,9 @@ z.A2 = L.TA2.pb
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
- scale = .75
+\directlua{%
+init_elements ()
+ scale = .7
z.A = point : new ( 0 , 0 )
z.a = point : new ( 2 , 2 )
z.B = point : new ( 5 , 2 )
@@ -616,7 +638,7 @@ z.I = C.Aa : internal_similitude (C.Bb)
L.TA1,L.TA2 = C.Aa : tangent_from (z.I)
z.A1 = L.TA1.pb
z.A2 = L.TA2.pb
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -634,46 +656,48 @@ z.A2 = L.TA2.pb
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.a = point : new ( 2 , 2 )
z.B = point : new ( 3 , 2 )
-z.b = point : new ( 4 , 1 )
+z.b = point : new ( 3.5 , 1 )
C.Aa = circle : new (z.A,z.a)
C.Bb = circle : new (z.B,z.b)
z.I = C.Aa : external_similitude (C.Bb)
L.TA1,L.TA2 = C.Aa : tangent_from (z.I)
z.A1 = L.TA1.pb
z.A2 = L.TA2.pb
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(A,a B,b)
\tkzDrawPoints(A,a,B,b,I,A1,A2)
-\tkzDrawLines[add = .5 and .2](A1,I A2,I)
+\tkzDrawLines[add = .25 and .1](A1,I A2,I)
\end{tikzpicture}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point : new ( 0 , 0 )
-z.a = point : new ( 2 , 2 )
+z.a = point : new ( 2 , 2 )
z.B = point : new ( 3 , 2 )
-z.b = point : new ( 4 , 1 )
+z.b = point : new ( 3.5, 1 )
C.Aa = circle : new (z.A,z.a)
C.Bb = circle : new (z.B,z.b)
z.I = C.Aa : external_similitude (C.Bb)
L.TA1,L.TA2 = C.Aa : tangent_from (z.I)
z.A1 = L.TA1.pb
z.A2 = L.TA2.pb
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(A,a B,b)
\tkzDrawPoints(A,a,B,b,I,A1,A2)
-\tkzDrawLines[add = .5 and .2](A1,I A2,I)
+\tkzDrawLines[add = .25 and .1](A1,I A2,I)
\end{tikzpicture}
\end{center}
\end{minipage}
@@ -691,7 +715,9 @@ Here I have also named \code{radical\_center} the point of intersection of the r
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
+ scale = .8
z.O = point : new (0,0)
z.x = point : new (1,0)
z.y = point : new (4,0)
@@ -705,12 +731,12 @@ Here I have also named \code{radical\_center} the point of intersection of the r
z.bp,z.b = intersection (C.Opy,C.Pz)
L.aap = line : new (z.a,z.ap)
L.bbp = line : new (z.b,z.bp)
- -- z.X = intersection (L.aap,L.bbp)
+ % z.X = intersection (L.aap,L.bbp)
z.X = C.Ox : radical_center(C.Pz,C.Opy)
- -- L.OOp = line : new (z.O,z.Op)
- -- z.H = L.OOp : projection (z.X)
+ % L.OOp = line : new (z.O,z.Op)
+ % z.H = L.OOp : projection (z.X)
z.H = C.Ox : radical_center(C.Opy)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O,a O',b P,z)
@@ -721,7 +747,9 @@ Here I have also named \code{radical\_center} the point of intersection of the r
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
+scale = .8
z.O = point : new (0,0)
z.x = point : new (1,0)
z.y = point : new (4,0)
@@ -738,7 +766,7 @@ L.bbp = line : new (z.b,z.bp)
z.X = intersection (L.aap,L.bbp)
L.OOp = line : new (z.O,z.Op)
z.H = L.OOp : projection (z.X)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -763,7 +791,8 @@ The radical line, also called the radical axis, is the locus of points of equal
\label{par:radical_axis_v1}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.X = point : new (0,0)
z.B = point : new (2,2)
@@ -782,7 +811,7 @@ L.AB = line : new (z.A,z.B)
L.ApBp = line : new (z.Ap,z.Bp)
z.M = intersection (L.AB,L.ApBp)
z.H = L.XY : projection (z.M)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(X,B Y,A')
@@ -793,7 +822,8 @@ z.H = L.XY : projection (z.M)
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.X = point : new (0,0)
z.B = point : new (2,2)
@@ -812,7 +842,7 @@ L.AB = line : new (z.A,z.B)
L.ApBp = line : new (z.Ap,z.Bp)
z.M = intersection (L.AB,L.ApBp)
z.H = L.XY : projection (z.M)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -830,7 +860,8 @@ z.H = L.XY : projection (z.M)
\label{par:radical_axis_v2}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.25
z.O = point : new (-1,0)
z.Op = point : new (4,-1)
@@ -847,12 +878,12 @@ _,z.Tp = get_points (L.MTp)
L.MK,L.MKp = C.OpD : tangent_from (z.M)
_,z.K = get_points (L.MK)
_,z.Kp = get_points (L.MKp)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O,B O',D)
\tkzDrawLine(E,F)
- \tkzDrawLine[add=.5 and .5](O,O')
+ \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')
@@ -860,7 +891,8 @@ _,z.Kp = get_points (L.MKp)
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale =1.25
z.O = point : new (-1,0)
z.Op = point : new (4,-1)
@@ -877,14 +909,14 @@ _,z.Tp = get_points (L.MTp)
L.MK,L.MKp = C.OpD : tangent_from (z.M)
_,z.K = get_points (L.MK)
_,z.Kp = get_points (L.MKp)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O,B O',D)
\tkzDrawLine(E,F)
- \tkzDrawLine[add=.5 and .5](O,O')
+ \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')
@@ -897,7 +929,8 @@ _,z.Kp = get_points (L.MKp)
\label{par:radical_axis_v3}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.O = point : new (0,0)
z.B = point : new (4,0)
z.Op = point : new (6,0)
@@ -910,7 +943,7 @@ _,z.Kp = get_points (L.MKp)
_,z.T = get_points (L)
L = C.OpB : tangent_from (z.M)
_,z.Tp = get_points (L)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O,B O',B)
@@ -923,7 +956,8 @@ _,z.Kp = get_points (L.MKp)
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point : new (0,0)
z.B = point : new (4,0)
z.Op = point : new (6,0)
@@ -936,7 +970,7 @@ L = C.OB : tangent_from (z.M)
_,z.T = get_points (L)
L = C.OpB : tangent_from (z.M)
_,z.Tp = get_points (L)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -956,7 +990,8 @@ _,z.Tp = get_points (L)
\label{par:radical_axis_v4}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point : new (0,0)
z.B = point : new (5,0)
z.Op = point : new (3,0)
@@ -970,7 +1005,7 @@ _,z.Tp = get_points (L)
_,z.T = get_points (L)
_,L = C.OpB : tangent_from (z.M)
_,z.Tp = get_points (L)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O,B O',B)
@@ -983,7 +1018,8 @@ _,z.Tp = get_points (L)
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point : new (0,0)
z.B = point : new (5,0)
z.Op = point : new (3,0)
@@ -997,7 +1033,7 @@ _,z.Tp = get_points (L)
_,z.T = get_points (L)
_,L = C.OpB : tangent_from (z.M)
_,z.Tp = get_points (L)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1021,7 +1057,8 @@ _,z.Tp = get_points (L)
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (1,2)
C.AB = circle: new (z.A,z.B)
@@ -1031,7 +1068,7 @@ _,z.Tp = get_points (L)
L.T1,L.T2 = C.AB : tangent_from (z.C)
z.T1 = L.T1.pb
z.T2 = L.T2.pb
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(A,B)
@@ -1045,7 +1082,8 @@ _,z.Tp = get_points (L)
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (1,2)
C.AB = circle: new (z.A,z.B)
@@ -1055,7 +1093,7 @@ _,z.Tp = get_points (L)
L.T1,L.T2 = C.AB : tangent_from (z.C)
z.T1 = L.T1.pb
z.T2 = L.T2.pb
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -1078,7 +1116,8 @@ _,z.Tp = get_points (L)
Let be a tangent common to both circles at $T$ and $T'$ (closest to $C$). Let a secant parallel to this tangent pass through $C$. Then the segment $[TT']$ is seen from the other common point $D$ at an angle equal to half the angle of the two circles.
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 5 , 2 )
L.AB = line : new ( z.A , z.B )
@@ -1094,7 +1133,7 @@ Let be a tangent common to both circles at $T$ and $T'$ (closest to $C$). Let a
_,z.M = intersection (L.mm, C.AC)
z.Mp = intersection (L.mm, C.BC)
_,z.D = intersection (C.AC,C.BC)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(A,C B,C)
@@ -1109,7 +1148,8 @@ Let be a tangent common to both circles at $T$ and $T'$ (closest to $C$). Let a
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 5 , 2 )
L.AB = line : new ( z.A , z.B )
@@ -1125,7 +1165,7 @@ L.mm = L.TTp : ll_from (z.C)
_,z.M = intersection (L.mm, C.AC)
z.Mp = intersection (L.mm, C.BC)
_,z.D = intersection (C.AC,C.BC)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1150,14 +1190,15 @@ 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}
-\begin{tkzelements}
+\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))
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(C_1,T C_2,T)
@@ -1176,14 +1217,15 @@ This method determines a circle with a given centre, orthogonal to a circle that
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\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))
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1210,7 +1252,8 @@ z.S,z.T = get_points (C: orthogonal_from (z.C_2))
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point: new (0,1)
z.A = point: new (1,0)
z.z1 = point: new (-1.5,-1.5)
@@ -1218,7 +1261,7 @@ z.S,z.T = get_points (C: orthogonal_from (z.C_2))
C.OA = circle: new (z.O,z.A)
C = C.OA: orthogonal_through (z.z1,z.z2)
z.c = C.center
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(O,A)
@@ -1228,7 +1271,8 @@ z.S,z.T = get_points (C: orthogonal_from (z.C_2))
\end{tikzpicture}
\end{Verbatim}
\end{minipage}
-\begin{minipage}{.5\textwidth}\begin{tkzelements}
+\begin{minipage}{.5\textwidth}\directlua{%
+init_elements ()
z.O = point: new (0,1)
z.A = point: new (1,0)
z.z1 = point: new (-1.5,-1.5)
@@ -1236,7 +1280,7 @@ z.S,z.T = get_points (C: orthogonal_from (z.C_2))
C.OA = circle: new (z.O,z.A)
C = C.OA: orthogonal_through (z.z1,z.z2)
z.c = C.center
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1274,7 +1318,8 @@ We can obtain the centers of similarity of these two circles by constructing $EH
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .8
z.A = point : new ( 1 , 0 )
z.B = point : new ( 3 , 0 )
@@ -1290,11 +1335,12 @@ C.IT,C.JV = C.AO : midcircle (C.BP)
z.I,z.T = get_points (C.IT)
z.J,z.V = get_points (C.JV)
z.X,z.Y = intersection (C.AO,C.BP)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale = .8
z.A = point : new ( 1 , 0 )
z.B = point : new ( 3 , 0 )
@@ -1310,7 +1356,7 @@ z.X,z.Y = intersection (C.AO,C.BP)
z.I,z.T = get_points (C.IT)
z.J,z.V = get_points (C.JV)
z.X,z.Y = intersection (C.AO,C.BP)
- \end{tkzelements}
+ }
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles[teal,thick](A,O B,P)
@@ -1337,7 +1383,8 @@ z.X,z.Y = intersection (C.AO,C.BP)
\label{midcircle_diameter}
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale =.75
z.A = point : new ( 3 , 0 )
z.B = point : new ( 5 , 0 )
@@ -1354,11 +1401,12 @@ z.X,z.Y = intersection (C.AO,C.BP)
z.y = C.UR.center
C.IT = C.AO : midcircle (C.BP)
z.I,z.T = get_points (C.IT)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale =.75
z.A = point : new ( 3 , 0 )
z.B = point : new ( 5 , 0 )
@@ -1375,7 +1423,7 @@ z.X,z.Y = intersection (C.AO,C.BP)
z.y = C.UR.center
C.IT = C.AO : midcircle (C.BP)
z.I,z.T = get_points (C.IT)
- \end{tkzelements}
+ }
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles[teal,thick](A,O B,P)
@@ -1397,7 +1445,8 @@ $I$ is the center of external similarity of the two given circles. To obtain the
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=.75
local a,b,c,d
z.A = point : new ( 0 , 0 )
@@ -1416,11 +1465,12 @@ L.TF = C.Bb : tangent_from (z.I)
z.H = intersection (L.TF,C.IT)
z.E = intersection (L.TF,C.Aa)
z.F=L.TF.pb
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=.75
local a,b,c,d
z.A = point : new ( 0 , 0 )
@@ -1439,7 +1489,7 @@ L.TF = C.Bb : tangent_from (z.I)
z.H = intersection (L.TF,C.IT)
z.E = intersection (L.TF,C.Aa)
z.F=L.TF.pb
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles[teal,thick](A,a B,b)
@@ -1462,7 +1512,8 @@ z.F=L.TF.pb
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=.75
local a,b,c,d
z.A = point : new ( 0 , 0 )
@@ -1481,11 +1532,12 @@ L.TF = C.Bb : tangent_from (z.I)
z.H = intersection (L.TF,C.IT)
z.E = intersection (L.TF,C.Aa)
z.F=L.TF.pb
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=.75
local a,b,c,d
z.A = point : new ( 0 , 0 )
@@ -1504,7 +1556,7 @@ L.TF = C.Bb : tangent_from (z.I)
z.H = intersection (L.TF,C.IT)
z.E = intersection (L.TF,C.Aa)
z.F=L.TF.pb
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles[teal,thick](A,a B,b)
@@ -1524,7 +1576,8 @@ z.F=L.TF.pb
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 2 , 0 )
z.B = point : new ( 4 , 0 )
z.a = point : new ( 1 , 0)
@@ -1533,11 +1586,12 @@ C.Aa = circle : new (z.A,z.a)
C.Bb = circle : new (z.B,z.b)
C.IT = C.Aa : midcircle (C.Bb)
z.I,z.T = get_points(C.IT)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 2 , 0 )
z.B = point : new ( 4 , 0 )
z.a = point : new ( 1 , 0)
@@ -1546,7 +1600,7 @@ C.Aa = circle : new (z.A,z.a)
C.Bb = circle : new (z.B,z.b)
C.IT = C.Aa : midcircle (C.Bb)
z.I,z.T = get_points (C.IT)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -1569,7 +1623,8 @@ z.I,z.T = get_points (C.IT)
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point: new (0,0)
z.B = point: new (6,0)
@@ -1583,7 +1638,7 @@ z.I,z.T = get_points (C.IT)
z.I_c,z.Xc = get_points (C.exc)
C.ortho = C.exa : radical_circle (C.exb,C.exc)
z.w,z.a = get_points (C.ortho)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -1595,7 +1650,8 @@ z.I,z.T = get_points (C.IT)
\end{Verbatim}
\end{minipage}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point: new (0,0)
z.B = point: new (6,0)
@@ -1609,7 +1665,7 @@ z.I,z.T = get_points (C.IT)
z.I_c,z.Xc = get_points (C.exc)
C.ortho = C.exa : radical_circle (C.exb,C.exc)
z.w,z.a = get_points (C.ortho)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1623,14 +1679,14 @@ z.I,z.T = get_points (C.IT)
\end{center}
% subsubsection radical_circle (end)
-\subsubsection{Method \Imeth{circle}{power(C)}} % (fold)
-\label{ssub:method_imeth_circle_power_c}
+\subsubsection{Method \Imeth{circle}{power(C)} Power v1} % (fold)
+\label{ssub:power_v1}
-\paragraph{Power v1} % (fold)
-\label{par:power_v1}
-\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
+
+\begin{minipage}[t]{.45\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point : new (0,0)
z.A = point : new (2,-2)
z.M = point : new (-6,0)
@@ -1638,7 +1694,7 @@ z.I,z.T = get_points (C.IT)
C.OA = circle : new (z.O,z.A)
z.Ap = C.OA : antipode (z.A)
z.B = intersection (L.AM, C.OA)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(O,A)
@@ -1650,9 +1706,10 @@ z.I,z.T = get_points (C.IT)
\end{tikzpicture}
\end{Verbatim}
\end{minipage}
-\begin{minipage}[t]{.5\textwidth}
-\begin{tkzelements}
-scale = 1
+\begin{minipage}[t]{.55\textwidth}\vspace{0pt}%
+\directlua{%
+init_elements ()
+scale = .75
z.O = point : new (0,0)
z.A = point : new (2,-2)
z.M = point : new (-6,0)
@@ -1660,11 +1717,8 @@ L.AM = line : new (z.A,z.M)
C.OA = circle : new (z.O,z.A)
z.Ap = C.OA : antipode (z.A)
z.B = intersection (L.AM, C.OA)
-\end{tkzelements}
-
-
-\begin{center}
- \begin{tikzpicture}
+}
+\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(O,A)
\tkzMarkRightAngle[fill=gray!10](A',B,M)
@@ -1673,16 +1727,18 @@ z.B = intersection (L.AM, C.OA)
\tkzLabelPoints(O,A,A',M,B)
\tkzDrawSegments[-Triangle](M,A M,A')
\end{tikzpicture}
-\end{center}
-
\end{minipage}
-% paragraph power_v1 (end)
+% subsubsection power_v1 (end)
+
+\subsubsection{Method \Imeth{circle}{power(C)} Power v2} % (fold)
+\label{ssub:power_v2}
+\vspace{6pt}
+
-\paragraph{Power v2} % (fold)
-\label{par:power_v2}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point : new (0,0)
z.A = point : new (2,2)
z.M = point : new (-1.5,0)
@@ -1693,7 +1749,7 @@ z.B = intersection (L.AM, C.OA)
z.m = z.M : north(1)
L.mM = line : new (z.m,z.M)
z.U,z.V = intersection (L.mM,C.OA)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(O,A)
@@ -1707,8 +1763,9 @@ z.B = intersection (L.AM, C.OA)
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
-scale = 1
+\directlua{%
+init_elements ()
+scale = .8
z.O = point : new (0,0)
z.A = point : new (2,2)
z.M = point : new (-1.5,0)
@@ -1719,7 +1776,7 @@ _,z.B = intersection (L.AM, C.OA)
z.m = z.M : north(1)
L.mM = line : new (z.m,z.M)
z.U,z.V = intersection (L.mM,C.OA)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1735,7 +1792,7 @@ z.U,z.V = intersection (L.mM,C.OA)
\end{center}
\end{minipage}
-% paragraph power_v2 (end)
+% subsubsection power_v2 (end)
% subsubsection method_imeth_circle_power_c (end)
@@ -1744,7 +1801,8 @@ z.U,z.V = intersection (L.mM,C.OA)
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.O = point : new (0,0)
z.A = point : new (1,2)
C.OA = circle : new (z.O,z.A)
@@ -1757,10 +1815,11 @@ z.U,z.V = intersection (L.mM,C.OA)
BDn = C.OA : in_out_disk (z.N)
BCp = C.OA : in_out (z.P)
BDp = C.OA : in_out_disk (z.P)
- \end{tkzelements}
+ }
\end{Verbatim}
\end{minipage}
-\begin{minipage}{.5\textwidth}\begin{tkzelements}
+\begin{minipage}{.5\textwidth}\directlua{%
+init_elements ()
z.O = point : new (0,0)
z.A = point : new (1,2)
C.OA = circle : new (z.O,z.A)
@@ -1773,7 +1832,7 @@ BCn = C.OA : in_out (z.N)
BDn = C.OA : in_out_disk (z.N)
BCp = C.OA : in_out (z.P)
BDp = C.OA : in_out_disk (z.P)
-\end{tkzelements}
+}
\def\tkzPosPoint#1#2#3#4{%
\tkzLabelPoints(O,M,N,P)
\ifthenelse{\equal{\tkzUseLua{#1}}{true}}{
@@ -1835,7 +1894,8 @@ This function returns a string indicating the position of the circle in relation
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.a = point : new ( 3 , 0 )
z.B = point : new ( 2 , 0 )
@@ -1846,7 +1906,7 @@ This function returns a string indicating the position of the circle in relation
if position == "inside tangent"
then color = "orange"
else color = "blue" end
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -1856,7 +1916,8 @@ This function returns a string indicating the position of the circle in relation
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 1 , 0 )
z.a = point : new ( 3 , 0 )
z.B = point : new ( 2 , 0 )
@@ -1865,7 +1926,7 @@ C.Aa = circle: new (z.A,z.a)
C.Bb = circle: new (z.B,z.b)
position = C.Aa : circles_position (C.Bb)
if position == "inside tangent" then color = "orange" else color = "blue" end
-\end{tkzelements}
+}
\hspace{\fill}
\begin{tikzpicture}
\tkzGetNodes
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-ellipse.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-ellipse.tex
index 016dd8025c..7b640220e6 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-ellipse.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-ellipse.tex
@@ -34,9 +34,10 @@ The first attributes are the three points that define the ellipse: : the \Iattr
\subsubsection{Atributes of an ellipse: example} % (fold)
\label{ssub:attributes_of_an_ellipse}
-\begin{minipage}{.5\textwidth}
+\begin{minipage}{.45\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.C = point: new (3 , 2)
z.A = point: new (5 , 1)
L.CA = line : new (z.C,z.A)
@@ -55,11 +56,12 @@ The first attributes are the three points that define the ellipse: : the \Iattr
z.S = E.south
z.Co = E.covertex
z.Ve = E.vertex
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
-\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+\begin{minipage}{.55\textwidth}
+ \directlua{%
+init_elements ()
z.C = point: new (3 , 2)
z.A = point: new (5 , 1)
L.CA = line : new (z.C,z.A)
@@ -78,7 +80,7 @@ The first attributes are the three points that define the ellipse: : the \Iattr
z.S = E.south
z.Co = E.covertex
z.Ve = E.vertex
- \end{tkzelements}
+ }
\begin{tikzpicture}
\pgfkeys{/pgf/number format/.cd,fixed,precision=2}
\tkzGetNodes
@@ -86,7 +88,7 @@ The first attributes are the three points that define the ellipse: : the \Iattr
\tkzDrawEllipse[red](C,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{slope})
\tkzDrawPoints(C,A,B,b,W,S,F1,F2)
\tkzLabelPoints(C,A,B)
- \tkzDrawLine[add = .5 and .5](A,W)
+ \tkzDrawLine[add = .25 and .25](A,W)
\tkzLabelSegment[pos=1.25,above,sloped](A,W){slope = \pgfmathprintnumber{\tkzUseLua{slope}}}
\tkzLabelPoint[below](S){South}
\tkzLabelPoint[below left](F1){Focus 1}
@@ -105,7 +107,7 @@ The first attributes are the three points that define the ellipse: : the \Iattr
\tkzUseLua{slope})
\tkzDrawPoints(C,A,B,b,W,S,F1,F2)
\tkzLabelPoints(C,A,B)
- \tkzDrawLine[add = .5 and .5](A,W)
+ \tkzDrawLine[add = .25 and .25](A,W)
\tkzLabelSegment[pos=1.5,above,sloped](A,W){%
slope = \pgfmathprintnumber{\tkzUseLua{slope}}}
\tkzLabelPoint[below](S){South}
@@ -157,7 +159,8 @@ For attributes [\ref{sec:class_ellipse}].
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.C = point: new (3 , 2)
z.A = point: new (5 , 1)
z.B = z.C : homothety(0.5,
@@ -166,7 +169,7 @@ For attributes [\ref{sec:class_ellipse}].
a = E.Rx
b = E.Ry
slope = math.deg(E.slope)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles[teal](C,A)
@@ -178,7 +181,8 @@ For attributes [\ref{sec:class_ellipse}].
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.C = point: new (3 , 2)
z.A = point: new (5 , 1)
z.B = z.C : homothety(0.5,
@@ -187,7 +191,7 @@ E = ellipse: new (z.C,z.A,z.B)
a = E.Rx
b = E.Ry
slope = math.deg(E.slope)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles[teal](C,A)
@@ -197,7 +201,7 @@ slope = math.deg(E.slope)
\end{tikzpicture}
\end{minipage}
-The function \Igfct{package}{tkzUseLua (variable)} is used to transfer values to \TIKZ\ or \pkg{tkz-euclide}.
+The macro \tkzcname{tkzUseLua (variable)} is used to transfer values to \TIKZ\ or \pkg{tkz-euclide}.
% subsubsection method_imeth_ellipse_new (end)
@@ -208,7 +212,8 @@ The first two points are the foci of the ellipse, and the third one is the verte
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (5 , 1)
L.AB = line : new (z.A,z.B)
@@ -230,11 +235,12 @@ The first two points are the foci of the ellipse, and the third one is the verte
z.R,z.S = intersection (L.XO,E)
a,b = E.Rx,E.Ry
ang = math.deg(E.slope)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale =1
z.A = point: new (0 , 0)
z.B = point: new (5 , 1)
@@ -257,7 +263,7 @@ The first two points are the foci of the ellipse, and the third one is the verte
z.R,z.S = intersection (L.XO,E)
a,b = E.Rx,E.Ry
ang = math.deg(E.slope)
- \end{tkzelements}
+ }
\begin{center}
\begin{tikzpicture}
@@ -302,14 +308,16 @@ The first two points are the foci of the ellipse, and the third one is the verte
\label{ssub:ellipse_method_point}
The method \Imeth{ellipse}{point} defines a point $M$ of the ellipse whose coordinates are $(a\times cos(phi), b\times sin(phi))$. |phi| angle between (center,vertex) and (center,M)
- \emph{The environment \tkzNameEnv{tkzelements} uses as \tkzname{lua} the radian as unit for angles. }
+ \emph{With \code{lua}, the radian is used as unit for angles. }
\begin{minipage}{0.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
+ scale = .6
z.C = point: new (2 , 3)
- z.A = point: new (6 , 5)
+ z.A = point: new (-1 , -2)
a = value(4)
b = value(3)
ang = math.deg(-math.pi/4)
@@ -325,14 +333,15 @@ The first two points are the foci of the ellipse, and the third one is the verte
z.N = L.tb.pb
L.K = E :tangent_at (z.K)
z.ka,z.kb = get_points(L.K)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.4\textwidth}
-\begin{tkzelements}
-scale = .75
+\directlua{%
+init_elements ()
+scale = .6
z.C = point: new (2 , 3)
-z.A = point: new (6 , 5)
+z.A = point: new (-1 , -2)
a = value(4)
b = value(3)
ang = math.deg(-math.pi/4)
@@ -348,7 +357,7 @@ z.M = L.ta.pb
z.N = L.tb.pb
L.K = E :tangent_at (z.K)
z.ka,z.kb = get_points(L.K)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSegments(C,V C,CoV)
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 f4acdafc8c..3d46a029b5 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
@@ -8,7 +8,8 @@
Writing |L.AB = line: new (z.A,z.B)| creates an object of the class \tkzname{line} (the notation is arbitrary for the moment). Geometrically, it represents both the line passing through the points $A$ and $B$ as the segment $[AB]$. Thus, we can use the midpoint of |L.AB|, which is, of course, the midpoint of the segment $[AB]$. This medium is obtained with |L.AB.mid|. Note that |L.AB.pa = z.A| and |L.AB.pb = z.B|. Finally, if a line $L$ is the result of a method, you can obtain the points with |z.A,z.B = get_points (L)| or with the previous remark.
\begin{mybox}
- Creation |L.AB = line : new ( z.A , z.B ) |
+ Creation \\
+ |L.AB = line : new ( z.A , z.B ) |
\end{mybox}
@@ -43,7 +44,8 @@ The attributes are :
\label{ssub:example_class_line}
\vspace{5pt}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new (1, 1)
z.b = point: new (5, 4)
L.ab = line : new (z.a,z.b)
@@ -54,7 +56,7 @@ z.r = L.ab.north_pa
z.s = L.ab.south_pb
sl = L.ab.slope
len = L.ab.length
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -74,7 +76,8 @@ len = L.ab.length
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.a = point: new (1, 1)
z.b = point: new (5, 4)
@@ -86,7 +89,7 @@ len = L.ab.length
z.s = L.ab.south_pb
sl = L.ab.slope
len = L.ab.length
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -113,13 +116,14 @@ With | L.AB = line : new (z.A,z.B)|, a line is defined.
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (1,1)
z.B = point : new (3,2)
L.AB = line : new (z.A,z.B)
z.C = L.AB.north_pa
z.D = L.AB.south_pa
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines(A,B C,D)
@@ -131,14 +135,15 @@ With | L.AB = line : new (z.A,z.B)|, a line is defined.
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1
z.A = point : new (1,1)
z.B = point : new (3,2)
L.AB = line : new (z.A,z.B)
z.C = L.AB.north_pa
z.D = L.AB.south_pa
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines(A,B C,D)
@@ -262,14 +267,15 @@ Here's the list of methods for the \tkzNameObj{line} object. The results can be
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \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)
- \end{tkzelements}
+ }
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSegments(A,B M,N)
@@ -279,14 +285,15 @@ Here's the list of methods for the \tkzNameObj{line} object. The results can be
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \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)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSegments(A,B M,N)
@@ -303,13 +310,14 @@ The angles are on either side of the given segment
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
L.AB = line : new ( z.A , z.B )
T.ABC = L.AB : two_angles (math.pi/6,math.pi/2)
z.C = T.ABC.pc
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C)
@@ -324,13 +332,14 @@ The angles are on either side of the given segment
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
L.AB = line : new ( z.A , z.B )
T.ABC= L.AB : two_angles (math.pi/6,math.pi/2)
z.C = T.ABC.pc
- \end{tkzelements}
+ }
\begin{center}
\begin{tikzpicture}
@@ -353,7 +362,8 @@ The angles are on either side of the given segment
\label{ssub:method_imeth_line_isosceles}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 2
z.a = point : new (1,2)
z.b = point : new (5,1)
@@ -365,7 +375,7 @@ The angles are on either side of the given segment
z.Ka,z.Kb,z.Kc = get_points (T.SY)
L.Kb = T.abc : symmedian_line (1)
_,z.Kb = get_points(L.Kb)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(a,b,c Ka,Kb,Kc)
@@ -377,7 +387,8 @@ The angles are on either side of the given segment
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 2
z.a = point : new (1,2)
z.b = point : new (5,1)
@@ -390,7 +401,7 @@ The angles are on either side of the given segment
z.Kc = get_points (T.SY)
L.Kb = T.abc : symmedian_line (1)
_,z.Kb = get_points(L.Kb)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(a,b,c Ka,Kb,Kc)
@@ -411,7 +422,8 @@ In the following example, a small difficulty arises. The given lengths are not a
\vspace{6pt}
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 5 , 0 )
L.AB = line : new ( z.A , z.B )
@@ -421,7 +433,7 @@ In the following example, a small difficulty arises. The given lengths are not a
z.C = T.ABC.pc
z.D = T.ABD.pc
z.E = T.ABE.pc
-\end{tkzelements}
+}
\hspace{\fill}
\begin{tikzpicture}[gridded]
\tkzGetNodes
@@ -433,7 +445,8 @@ In the following example, a small difficulty arises. The given lengths are not a
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 5 , 0 )
L.AB = line : new ( z.A , z.B )
@@ -443,7 +456,7 @@ In the following example, a small difficulty arises. The given lengths are not a
z.C = T.ABC.pc
z.D = T.ABD.pc
z.E = T.ABE.pc
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}[gridded]
@@ -465,15 +478,16 @@ In some cases, two solutions are possible.
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
- scale =1
- z.A = point : new ( 0 , 0 )
- z.B = point : new ( 5 , 0 )
- L.AB = line : new ( z.A , z.B )
+\directlua{%
+init_elements ()
+ scale = 1
+ 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)
- z.C = T.ABC.pc
- z.D = T.ABD.pc
-\end{tkzelements}
+ z.C = T.ABC.pc
+ z.D = T.ABD.pc
+}
\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzDrawPolygons(A,B,C A,B,D)
@@ -487,7 +501,8 @@ In some cases, two solutions are possible.
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale =1
z.A = point : new ( 0 , 0 )
z.B = point : new ( 5 , 0 )
@@ -495,7 +510,7 @@ In some cases, two solutions are possible.
T.ABC,T.ABD = L.AB : ssa (value(3),math.pi/6)
z.C = T.ABC.pc
z.D = T.ABD.pc
- \end{tkzelements}
+ }
\begin{center}
\begin{tikzpicture}[gridded]
@@ -524,7 +539,7 @@ The side lengths are proportional to the lengths given in the table. They depend
\textbf{Name} & \textbf{definition} \\
\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}{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}{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\\
@@ -534,7 +549,8 @@ The side lengths are proportional to the lengths given in the table. They depend
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
L.AB = line : new ( z.A , z.B )
@@ -550,7 +566,7 @@ The side lengths are proportional to the lengths given in the table. They depend
z.G = T.ABG.pc
T.ABH = L.AB : pythagoras ()
z.H = T.ABH.pc
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C A,B,D A,B,E A,B,F A,B,G A,B,H)
@@ -560,7 +576,8 @@ The side lengths are proportional to the lengths given in the table. They depend
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
L.AB = line : new ( z.A , z.B )
@@ -576,7 +593,7 @@ The side lengths are proportional to the lengths given in the table. They depend
z.G = T.ABG.pc
T.ABH = L.AB : pythagoras ()
z.H = T.ABH.pc
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C A,B,D A,B,E A,B,F A,B,G A,B,H)
@@ -598,14 +615,15 @@ This method exists for all objects except quadrilaterals.
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
- z.A = point : new (-1,-1)
- z.B = point : new (1,1)
+\directlua{%
+init_elements ()
+ z.A = point : new (-1,-1)
+ z.B = point : new (1,1)
L.AB = line : new (z.A,z.B)
- z.I = L.AB : point (0.5)
- z.J = L.AB : point (-0.5)
- z.K = L.AB : point (2)
-\end{tkzelements}
+ z.I = L.AB : point (0.5)
+ z.J = L.AB : point (-0.5)
+ z.K = L.AB : point (2)
+}
\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzDrawLine(J,K)
@@ -615,14 +633,15 @@ This method exists for all objects except quadrilaterals.
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.A = point : new (-1,-1)
z.B = point : new (1,1)
L.AB = line : new (z.A,z.B)
z.I = L.AB : point (0.5)
z.J = L.AB : point (-0.5)
z.K = L.AB : point (2)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}[gridded]
\tkzGetNodes
@@ -641,14 +660,15 @@ If the coefficient is missing then it defaults to $1$ and in the following examp
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (4 , 0)
z.C = point: new (1 , 3)
L.AB = line : new (z.A,z.B)
z.D = L.AB : colinear_at (z.C,.5)
z.E = L.AB : colinear_at (z.C)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSegments(A,B C,E)
@@ -658,14 +678,15 @@ If the coefficient is missing then it defaults to $1$ and in the following examp
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (4 , 0)
z.C = point: new (1 , 3)
L.AB = line : new (z.A,z.B)
z.D = L.AB : colinear_at (z.C,.5)
z.E = L.AB : colinear_at (z.C)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -685,12 +706,13 @@ If the coefficient is missing then it defaults to $1$ and in the following examp
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
- z.a = point: new (1, 1)
- z.b = point: new (5, 4)
+\directlua{%
+init_elements ()
+ z.a = point: new (1, 1)
+ z.b = point: new (5, 4)
L.ab = line : new (z.a,z.b)
- z.c = L.ab : normalize ()
-\end{tkzelements}
+ z.c = L.ab : normalize ()
+}
\begin{tikzpicture}[gridded]
\tkzGetNodes
@@ -702,12 +724,13 @@ If the coefficient is missing then it defaults to $1$ and in the following examp
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new (1, 1)
z.b = point: new (5, 4)
L.ab = line : new (z.a,z.b)
z.c = L.ab : normalize ()
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}[gridded]
@@ -728,12 +751,13 @@ If the coefficient is missing then it defaults to $1$ and in the following examp
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
- z.A = point : new ( 0 , -1 )
- z.B = point : new ( 4 , 2 )
+\directlua{%
+init_elements ()
+ z.A = point : new ( 0 , -1 )
+ z.B = point : new ( 4 , 2 )
L.AB = line : new ( z.A , z.B )
- z.G = L.AB : barycenter (1,2)
-\end{tkzelements}
+ z.G = L.AB : barycenter (1,2)
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLine(A,B)
@@ -743,12 +767,13 @@ If the coefficient is missing then it defaults to $1$ and in the following examp
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , -1 )
z.B = point : new ( 4 , 2 )
L.AB = line : new ( z.A , z.B )
z.G = L.AB : barycenter (1,2)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -765,7 +790,8 @@ If the coefficient is missing then it defaults to $1$ and in the following examp
\label{ssub:new_line_from_a_defined_line}
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.25
z.A = point : new (1,1)
z.B = point : new (3,2)
@@ -773,9 +799,9 @@ If the coefficient is missing then it defaults to $1$ and in the following examp
z.C = L.AB.north_pa
z.D = L.AB.south_pa
L.CD = line : new (z.C,z.D)
- _,z.E = get_points ( L.CD: ll_from (z.B))
- -- z.E = L2.pb
-\end{tkzelements}
+ _,z.E = get_points ( L.CD: ll_from (z.B))
+ % z.E = L2.pb
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines(A,B C,D B,E)
@@ -787,7 +813,8 @@ If the coefficient is missing then it defaults to $1$ and in the following examp
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.25
z.A = point : new (1,1)
z.B = point : new (3,2)
@@ -796,8 +823,8 @@ z.C = L.AB.north_pa
z.D = L.AB.south_pa
L.CD = line : new (z.C,z.D)
_,z.E = get_points ( L.CD: ll_from (z.B))
--- or z.E = L2.pb with |L2 = L.CD: ll_from (z.B)|
-\end{tkzelements}
+% or z.E = L2.pb with |L2 = L.CD: ll_from (z.B)|
+}
\begin{center}
\begin{tikzpicture}
@@ -819,14 +846,15 @@ _,z.E = get_points ( L.CD: ll_from (z.B))
\label{ssub:newline_ortho_from}
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (1,1)
z.B = point : new (3,2)
L.AB = line : new (z.A,z.B)
z.C = point : new (1,3)
L.CD = L.AB : ortho_from(z.C)
z.D = L.CD.pb
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines(A,B C,D)
@@ -836,14 +864,15 @@ _,z.E = get_points ( L.CD: ll_from (z.B))
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (1,1)
z.B = point : new (3,2)
L.AB = line : new (z.A,z.B)
z.C = point : new (1,3)
L.CD = L.AB : ortho_from(z.C)
z.D = L.CD.pb
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -866,14 +895,15 @@ In Mathworld, the mediator is the plane through the midpoint of a line segment a
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}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new(0,0)
z.B = point: new(5,0)
L.AB = line: new (z.A,z.B)
L.med = L.AB : mediator ()
z.M = L.AB.mid
z.x,z.y= get_points(L.med)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLine(A,B)
@@ -886,14 +916,15 @@ the perpendicular bisector of a line segment, is a line segment perpendicular t
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new(0,0)
z.B = point: new(5,0)
L.AB = line: new (z.A,z.B)
L.med = L.AB : mediator ()
z.M = L.AB.mid
z.x,z.y= get_points(L.med)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -905,7 +936,6 @@ the perpendicular bisector of a line segment, is a line segment perpendicular t
\tkzMarkSegments(A,M M,B)
\end{tikzpicture}
\end{center}
-
\end{minipage}
% subsubsection method_imeth_line_mediator (end)
@@ -915,13 +945,14 @@ the perpendicular bisector of a line segment, is a line segment perpendicular t
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new(0,0)
z.B = point: new(5,0)
L.AB = line: new (z.A,z.B)
T.ABC = L.AB : equilateral ()
z.C = T.ABC.pc
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLine(A,B)
@@ -933,13 +964,14 @@ the perpendicular bisector of a line segment, is a line segment perpendicular t
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new(0,0)
z.B = point: new(5,0)
L.AB = line: new (z.A,z.B)
T.ABC = L.AB : equilateral ()
z.C = T.ABC.pc
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -959,7 +991,8 @@ the perpendicular bisector of a line segment, is a line segment perpendicular t
\label{ssub:example_projection_of_several_points}
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .8
z.a = point: new (0, 0)
z.b = point: new (4, 1)
@@ -967,7 +1000,7 @@ the perpendicular bisector of a line segment, is a line segment perpendicular t
z.d = point: new (5, 2)
L.ab = line: new (z.a,z.b)
z.cp,z.dp = L.ab: projection(z.c,z.d)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines(a,b c,c' d,d')
@@ -977,7 +1010,8 @@ the perpendicular bisector of a line segment, is a line segment perpendicular t
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .8
z.a = point: new (0, 0)
z.b = point: new (4, 1)
@@ -985,7 +1019,7 @@ z.c = point: new (2, 5)
z.d = point: new (5, 2)
L.ab = line: new (z.a,z.b)
z.cp,z.dp = L.ab : projection(z.c,z.d)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1006,7 +1040,8 @@ z.cp,z.dp = L.ab : projection(z.c,z.d)
\begin{minipage}{0.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
z.C = point: new (1 , 5)
@@ -1017,8 +1052,8 @@ z.cp,z.dp = L.ab : projection(z.c,z.d)
z.H = L.AB: projection (z.O)
L.ab = C.OA: tangent_at (z.A)
z.a,z.b = L.ab.pa,L.ab.pb
- -- or z.a,z.b = get_points (L.ab)
-\end{tkzelements}
+ % or z.a,z.b = get_points (L.ab)
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -1037,7 +1072,8 @@ z.cp,z.dp = L.ab : projection(z.c,z.d)
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -1049,8 +1085,8 @@ C.OA = circle: new (z.O,z.A)
z.H = L.AB : projection (z.O)
L.ab = C.OA : tangent_at (z.A)
z.a,z.b = L.ab.pa,L.ab.pb
- -- or z.a,z.b = get_points (L.ab)
-\end{tkzelements}
+ % or z.a,z.b = get_points (L.ab)
+}
\begin{center}
\begin{tikzpicture}
@@ -1080,14 +1116,15 @@ z.a,z.b = L.ab.pa,L.ab.pb
\begin{minipage}{0.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (1,2)
z.C = point: new (-3,2)
z.D = point: new (0,2)
L.AB = line : new (z.A,z.B)
z.E,z.F = L.AB : translation (z.C,z.D)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(A,...,F)
@@ -1097,14 +1134,15 @@ z.a,z.b = L.ab.pa,L.ab.pb
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (1,2)
z.C = point: new (-3,2)
z.D = point: new (0,2)
L.AB = line : new (z.A,z.B)
z.E,z.F = L.AB : translation (z.C,z.D)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1126,7 +1164,8 @@ z.a,z.b = L.ab.pa,L.ab.pb
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 1 )
z.E = point : new ( 0 , 2 )
@@ -1136,7 +1175,7 @@ z.a,z.b = L.ab.pa,L.ab.pb
T.EFG = triangle : new (z.E,z.F,z.G)
T.new = L.AB : reflection (T.EFG)
z.Ep,z.Fp,z.Gp = get_points(T.new)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLine(A,B)
@@ -1147,7 +1186,8 @@ z.a,z.b = L.ab.pa,L.ab.pb
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 1 )
z.E = point : new ( 0 , 2 )
@@ -1157,7 +1197,7 @@ z.a,z.b = L.ab.pa,L.ab.pb
T.EFG = triangle : new (z.E,z.F,z.G)
T.new = L.AB : reflection (T.EFG)
z.Ep,z.Fp,z.Gp = get_points(T.new)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1177,14 +1217,15 @@ z.a,z.b = L.ab.pa,L.ab.pb
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (0 , 0)
- z.B = point : new (5 , -2)
+ z.B = point : new (4 , -2)
z.C = point : new (3 , 3)
L.AB = line : new (z.A,z.B)
d = L.AB : distance (z.C)
z.H = L.AB : projection (z.C)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines(A,B C,H)
@@ -1196,14 +1237,15 @@ z.a,z.b = L.ab.pa,L.ab.pb
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (0 , 0)
- z.B = point : new (5 , -2)
+ z.B = point : new (4 , -2)
z.C = point : new (3 , 3)
L.AB = line : new (z.A,z.B)
d = L.AB : distance (z.C)
z.H = L.AB : projection (z.C)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1226,7 +1268,8 @@ z.a,z.b = L.ab.pa,L.ab.pb
\label{ssub:apollonius_circle_ma_mb_k}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 6 , 0 )
L.AB =line: new (z.A,z.B)
@@ -1234,7 +1277,7 @@ z.a,z.b = L.ab.pa,L.ab.pb
z.O,z.C = get_points ( C.apo )
z.D = C.apo : antipode (z.C)
z.P = C.apo : point (0.30)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzFillCircle[blue!20,opacity=.2](O,C)
@@ -1253,7 +1296,8 @@ z.a,z.b = L.ab.pa,L.ab.pb
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 6 , 0 )
L.AB =line: new (z.A,z.B)
@@ -1261,7 +1305,7 @@ C.apo = L.AB : apollonius (2)
z.O,z.C = get_points ( C.apo )
z.D = C.apo : antipode (z.C)
z.P = C.apo : point (0.30)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-matrices.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-matrices.tex
index d533511fbe..dfb17d2cc2 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-matrices.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-matrices.tex
@@ -25,10 +25,11 @@ This \code{matrix} class has been created to avoid the need for an external libr
\end{mybox}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
M = matrix: new {{a,b},{c,d}}
tex.print('M = ') M : print ()
- \end{tkzelements}
+ }
\end{minipage}
@@ -47,9 +48,10 @@ This \code{matrix} class has been created to avoid the need for an external libr
\end{mybox}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
V = matrix : vector (1,2,3) tex.print('V = ') V : print ()
- \end{tkzelements}
+ }
\end{minipage}
\item Homogeneous transformation matrix [\ref{ssub:method_htm}]
@@ -62,10 +64,11 @@ This \code{matrix} class has been created to avoid the need for an external libr
\end{mybox}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
H = matrix : htm (math.pi/3,1,2,2,1)
tex.print('H = ') H: print ()
- \end{tkzelements}
+ }
\end{minipage}
\end{itemize}
@@ -79,17 +82,19 @@ This method (Refer to \ref{ssub:method_print}) is necessary to control the resul
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
M = matrix : new {{1,-1},{2,0}}
M : print ()
- \end{tkzelements}
+ }
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
M = matrix : new {{1,-1},{2,0}}
M : print ()
- \end{tkzelements}
+ }
\end{minipage}
@@ -132,21 +137,23 @@ The number of rows is accessed with |M.rows| and the number of columns with |M.c
\vspace{.5em}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
M = matrix : new ({{1,2,3},{4,5,6}})
M : print ()
tex.print("Rows: "..M.rows)
tex.print("Cols: "..M.cols)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
M = matrix : new ({{1,2,3},{4,5,6}})
M : print ()
tex.print("Rows: "..M.rows)
tex.print("Cols: "..M.cols)
-\end{tkzelements}
+}
\end{minipage}
% subsubsection attribute_set (end)
@@ -157,21 +164,23 @@ The matrix must be square. This library was created for matrices of dimension 2
\vspace{.5em}
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
M = matrix : square (3,1,1,0,2,-1,-2,1,-1,2)
M : print ()
tex.print ('\\\\')
tex.print ("Its determinant is: " .. M.det)
- \end{tkzelements}
+ }
\end{Verbatim}
\end{minipage}
\begin{minipage}{.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
M = matrix : square (3,1,1,0,2,-1,-2,1,-1,2)
M : print ()
tex.print ('\\\\')
tex.print ("Its determinant is: "..M.det)
-\end{tkzelements}
+}
\end{minipage}
% subsubsection determinant (end)
@@ -180,25 +189,27 @@ tex.print ("Its determinant is: "..M.det)
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
a = point :new (1,-2)
b = point :new (0,1)
c = point :new (1,1)
d = point :new (1,-1)
A = matrix : new ({{a, b}, {c,d}})
tex.print(tostring(A.det))
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
a = point :new (1,-2)
b = point :new (0,1)
c = point :new (1,1)
d = point :new (1,-1)
A = matrix : new ({{a, b}, {c,d}})
tex.print(tostring(A.det))
-\end{tkzelements}
+}
\end{minipage}
% subsubsection determinant_with_complex_numbers (end)
% subsection attibutes_of_a_matrix (end)
@@ -238,7 +249,8 @@ To simplify the entries, I've used a few functions to simplify the displays.
\vspace{.5em}
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
A = matrix : new ({{1,2},{2,-1}})
B = matrix : new ({{-1,0},{1,3}})
S = A + B
@@ -250,11 +262,12 @@ To simplify the entries, I've used a few functions to simplify the displays.
dsp(S,'S') sym(" = ") dsp(A) sym(' + ') dsp(B)
nl() nl()
dsp(D,'D') sym(" = ") dsp(A) sym(' - ') dsp(B)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
local function dsp (M,name)
if name then
tex.print(name..' = ')print_matrix(M)
@@ -279,7 +292,7 @@ nl() nl()
dsp(S,'S') sym(" = ") dsp(A) sym(' + ') dsp(B)
nl() nl()
dsp(D,'D') sym(" = ") dsp(A) sym(' - ') dsp(B)
-\end{tkzelements}
+}
\end{minipage}
% subsubsection addition_of_matrices (end)
@@ -290,7 +303,8 @@ To simplify the entries, I've used a few functions. You can find their definitio
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
A = matrix : new ({{1,2},{2,-1}})
B = matrix : new ({{-1,0},{1,3}})
P = A * B
@@ -298,11 +312,12 @@ To simplify the entries, I've used a few functions. You can find their definitio
C = A^3
K = 2 * A
T = A^'T'
- \end{tkzelements}
+ }
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
local function dsp (M,name)
if name then
tex.print(name..' = ')print_matrix(M)
@@ -328,7 +343,7 @@ To simplify the entries, I've used a few functions. You can find their definitio
nl() nl()
dsp(A^('T'),"$A^{T}$")
nl() nl()
-\end{tkzelements}
+}
\end{minipage}
\subsubsection{Metamethod \code{eq}} % (fold)
@@ -378,7 +393,8 @@ This is the main method for creating a matrix. Here's an example of a 2x3 matrix
\vspace{.5em}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
a = point : new (1,0)
b = point : new (1,1)
c = point : new (-1,1)
@@ -387,11 +403,12 @@ This is the main method for creating a matrix. Here's an example of a 2x3 matrix
f = point : new (0,-1)
M = matrix : new ({{a,b,c},{d,e,f}})
M : print ()
- \end{tkzelements}
+ }
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
a = point : new (1,0)
b = point : new (1,1)
c = point : new (-1,1)
@@ -400,7 +417,7 @@ e = point : new (1,-1)
f = point : new (0,-1)
M = matrix : new ({{a,b,c},{d,e,f}})
M : print ()
-\end{tkzelements}
+}
\end{minipage}
% subsubsection method_new (end)
@@ -413,17 +430,19 @@ The special case of a column matrix, frequently used to represent a vector, can
\vspace{.5em}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
M = matrix : vector (1,2,3)
M : print ()
- \end{tkzelements}
+ }
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
M = matrix : vector (1,2,3)
M : print ()
- \end{tkzelements}
+ }
\end{minipage}
% subsubsection method_vector (end)
@@ -442,7 +461,8 @@ which gives:
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
pi = math.pi
M = matrix : htm (pi/4 , 3 , 1)
z.A = point : new (2,-1)
@@ -450,11 +470,12 @@ which gives:
z.A.mtx : print ()
tex.print ('then after homogenization: ')
V : print ()
- \end{tkzelements}
+ }
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
pi = math.pi
M = matrix : htm (pi/4 , 3 , 1)
z.A = point : new (2,-1)
@@ -462,7 +483,7 @@ which gives:
z.A.mtx : print ()
tex.print ('then after homogenization: ')
V : print ()
-\end{tkzelements}
+}
\end{minipage}
% subsubsection method_homogenization (end)
@@ -481,11 +502,12 @@ The main method is to create the matrix:
A 3x3 matrix is created which combines a $\pi/4$ rotation and a $\overrightarrow{t}=(3,1)$ translation.
-\begin{tkzelements}
+\directlua{%
+init_elements ()
pi = math.pi
M = matrix : htm (pi/4 , 3 , 1)
M : print ()
-\end{tkzelements}
+}
Now we can apply the matrix M. Let $A$ be the point defined here: \ref{ssub:method_homogenization}. By homogenization, we obtain the column matrix $V$.
@@ -495,7 +517,8 @@ Now we can apply the matrix M. Let $A$ be the point defined here: \ref{ssub:meth
W = A * V
\end{mybox}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
pi = math.pi
M = matrix : htm (pi/4 , 3 , 1)
M :print ()
@@ -504,7 +527,7 @@ V = z.A.mtx : homogenization ()
V : print () tex.print('=')
W = M * V
W : print ()
-\end{tkzelements}
+}
All that remains is to extract the coordinates of the new point.
% subsubsection method_htm (end)
@@ -518,21 +541,23 @@ The method \code{get\_htm\_point} extracts a point from a vector obtained afte
\begin{minipage}{.5\textwidth}
\begin{verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
W : print ()
z.P = get_htm_point(W)
tex.print("The affix of $P$ is: ")
tex.print(display(z.P))
-\end{tkzelements}
+}
\end{verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
W : print ()
z.P = get_htm_point(W)
tex.print("The affix of $P$ is: ")
tex.print(display(z.P))
-\end{tkzelements}
+}
\end{minipage}
% subsubsection method_code_get__htm__point (end)
@@ -548,7 +573,8 @@ The above operations can be simplified by using the \code{htm\_apply} method dir
Then the method \code{htm\_apply} transforms a point, a list of points or an object.
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
pi = math.pi
M = matrix : htm (pi/4 , 3 , 1 )
z.O = point : new (0,0)
@@ -566,11 +592,12 @@ z.K = point : new (2,2)
T = triangle : new ( z.I , z.J , z.K )
Tp = M : htm_apply (T)
z.Kp = Tp.pc
-\end{tkzelements}
+}
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
pi = math.pi
M = matrix : htm (pi/4 , 3 , 1 )
z.O = point : new (0,0)
@@ -588,7 +615,7 @@ z.Kp = Tp.pc
T = triangle : new ( z.I , z.J , z.K )
Tp = M : htm_apply (T)
z.Kp = Tp.pc
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.4\textwidth}
@@ -609,7 +636,8 @@ New cartesian coordinates system:
\vspace{.5 em}
\begin{minipage}{.5\textwidth}
\begin{verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
pi = math.pi
tp = tex.print
nl = '\\\\'
@@ -625,11 +653,12 @@ New cartesian coordinates system:
V : print ()
z.N = get_htm_point(V)
tex.print(display(z.N))
-\end{tkzelements}
+}
\end{verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
pi = math.pi
tp = tex.print
nl = '\\\\'
@@ -645,7 +674,7 @@ New cartesian coordinates system:
V : print ()
z.N = get_htm_point(V)
tex.print(display(z.N))
- \end{tkzelements}
+ }
\end{minipage}
% subsubsection method_code_htm__apply (end)
@@ -659,18 +688,20 @@ We have already seen this method in the presentation of matrices. We first need
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
M = matrix : square (2,2,3,-5,4)
M : print ()
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
M = matrix : square (2,2,3,-5,4)
M : print ()
tex.print(S)
-\end{tkzelements}
+}
\end{minipage}
% subsubsection method_square (end)
@@ -682,17 +713,19 @@ With the \pkg{amsmath} package loaded, this method can be used. By default, the
\vspace{.5em}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
M = matrix : new ({{math.sqrt(2),math.sqrt(3)},{math.sqrt(4),math.sqrt(5)}})
M : print ('pmatrix')
-\end{tkzelements}
+}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
M = matrix : new ({{math.sqrt(2),math.sqrt(3)},{math.sqrt(4),math.sqrt(5)}})
tkz_dc = 3
M : print ('pmatrix')
-\end{tkzelements}
+}
\vspace{.5em}
@@ -703,17 +736,19 @@ In the case of a square matrix, it is possible to transmit a list of values whos
\vspace{.5em}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
M = matrix : square (2,1,0,0,2)
M : print ()
- \end{tkzelements}
+ }
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
M = matrix : square (2,1,0,0,2)
M : print ()
- \end{tkzelements}
+ }
\end{minipage}
% subsubsection method_print (end)
@@ -727,7 +762,8 @@ Below, $A$ is an array. It can be displayed as a simple array or as a matrix, bu
\vspace{.5em}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
A = {{1,2},{1,-1}}
tex.print ('A = ') print_array (A)
tex.print (' or ')
@@ -735,11 +771,12 @@ Below, $A$ is an array. It can be displayed as a simple array or as a matrix, bu
M = matrix : new ({{1,1},{0,2}})
tex.print ('\\\\')
tex.print ('M = ') M : print ()
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
A = {{1,2},{1,-1}}
tex.print ('A = ') print_array (A)
tex.print (' or ')
@@ -747,7 +784,7 @@ Below, $A$ is an array. It can be displayed as a simple array or as a matrix, bu
M = matrix : new ({{1,1},{0,2}})
tex.print ('\\\\')
tex.print ('M = ') M : print ()
-\end{tkzelements}
+}
\end{minipage}
@@ -758,19 +795,21 @@ Below, $A$ is an array. It can be displayed as a simple array or as a matrix, bu
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
M = matrix : new {{1,2},{2,-1}}
S = M: get(1,1) + M: get(2,2)
tex.print(S)
- \end{tkzelements}
+ }
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
M = matrix : new {{1,2},{2,-1}}
S = M: get(1,1) + M: get(2,2)
tex.print(S)
-\end{tkzelements}
+}
\end{minipage}
@@ -781,21 +820,23 @@ tex.print(S)
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
A = matrix : new ({{1,2},{2,-1}})
tex.print("Inverse of $A = $")
B = A : inverse ()
B : print ()
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
A = matrix : new ({{1,2},{2,-3}})
tex.print("Inverse of $A = $")
B = A : inverse ()
B : print ()
-\end{tkzelements}
+}
\end{minipage}
% subsubsection inverse_matrix (end)
@@ -804,22 +845,24 @@ tex.print(S)
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
M = matrix : new ({{1,0,1},{1,2, 1},{0,-1,2}})
tex.print("$M = $") print_matrix (M)
tex.print('\\\\')
tex.print("Inverse of $M = M^{-1} = $")
print_matrix (M^-1)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
M = matrix : new ({{1,0,1},{1,2,1},{0,-1,2}})
tex.print("$M = $") print_matrix (M) tex.print('\\\\')
tex.print("Inverse of $M = M^{-1} = $")
print_matrix (M^-1)
-\end{tkzelements}
+}
\end{minipage}
% subsubsection inverse_matrix_with_power_syntax (end)
@@ -832,21 +875,23 @@ A transposed matrix can be accessed with |A: transpose ()| or with |A^{'T'}|.
\vspace{.5em}
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
A = matrix : new ({{1,2},{2,-1}})
AT = A : transpose ()
tex.print("$A^{'T'} = $")
AT : print ()
- \end{tkzelements}
+ }
\end{Verbatim}
\end{minipage}
\begin{minipage}{.4\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
A = matrix : new ({{1,2},{2,-1}})
AT = A : transpose ()
tex.print("$A^{'T'} = $")
AT : print ()
- \end{tkzelements}
+ }
\end{minipage}
\vspace{.5em}
@@ -860,7 +905,8 @@ Remark: |(A ^'T')^'T' = A|
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
N = matrix : new {{1, 0, 3},{2, 1, 0},{-1, 2, 0}}
tex.print('N = ') print_matrix(N)
tex.print('\\\\')
@@ -871,11 +917,12 @@ Remark: |(A ^'T')^'T' = A|
tex.print('N $\\times$ adj(N) = ') print_matrix(N.i)
tex.print('\\\\')
tex.print('det(N) = ') tex.print(N.det)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
N = matrix : new {{1, 0, 3},{2, 1, 0},{-1, 2, 0}}
tex.print('N = ') print_matrix(N)
N.a = N : adjugate ()
@@ -885,7 +932,7 @@ Remark: |(A ^'T')^'T' = A|
tex.print('N $\\times$ adj(N) = ') print_matrix(N.i)
tex.print('\\\\')
tex.print('det(N) = ') tex.print(N.det)
-\end{tkzelements}
+}
\end{minipage}
% subsubsection method_adjugate (end)
@@ -898,17 +945,19 @@ Creating the identity matrix order 3
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
Id_3 = matrix : identity (3)
Id_3 : print ()
- \end{tkzelements}
+ }
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
Id_3 = matrix : identity (3)
Id_3 : print ()
-\end{tkzelements}
+}
\end{minipage}
% subsubsection methode_identity (end)
@@ -922,7 +971,8 @@ For the moment, this method only concerns matrices of order 2.
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
A = matrix : new {{5,-3}, {6,-4}}
tex.print('A = ') A : print ()
D,P = A : diagonalize ()
@@ -936,11 +986,12 @@ For the moment, this method only concerns matrices of order 2.
tex.print('Verification: $P^{-1}P = $ ')
T = P^(-1)*P
T : print ()
- \end{tkzelements}
+ }
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
A = matrix : new {{5,-3}, {6,-4}}
tex.print('A = ') A : print ()
D,P = A : diagonalize ()
@@ -954,7 +1005,7 @@ For the moment, this method only concerns matrices of order 2.
tex.print('Verification: $P^{-1}P = $ ')
T = P^(-1)*P
T : print ()
- \end{tkzelements}
+ }
\end{minipage}
% subsubsection diagonalization (end)
@@ -964,7 +1015,8 @@ For the moment, this method only concerns matrices of order 2.
The method returns \code{true} if the matrix is orthogonal and \code{false} otherwise.
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
local cos = math.cos
local sin = math.sin
local pi = math.pi
@@ -983,10 +1035,11 @@ The method returns \code{true} if the matrix is orthogonal and \code{false} othe
print_matrix(transposeMatrix (A))
tex.print('=')
inv_matrix (A) : print ()
- \end{tkzelements}
+ }
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
local cos = math.cos
local sin = math.sin
local pi = math.pi
@@ -1000,7 +1053,7 @@ tex.print('Test: $A^T = A^{-1} ?$')
print_matrix(transposeMatrix (A))
tex.print('=')
inv_matrix (A) : print ()
-\end{tkzelements}
+}
% subsubsection method_is_orthogonal (end)
\subsubsection{Method \Imeth{matrix}{is\_diagonal}} % (fold)
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-misc.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-misc.tex
index e80a292858..0266a2feb5 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-misc.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-misc.tex
@@ -25,7 +25,6 @@
\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{package}{set\_lua\_to\_tex (list)} & set\_lua\_to\_tex('a','n') defines |\a| and |\n| \\
-\Igfct{package}{tkzUseLua (variable)} & |\textbackslash\tkzUseLua{a}| prints the value of a\\
%parabola (a,b,c) & to get \\
\Igfct{math}{value (v) } & apply |scale * value | \\
\Igfct{math}{real (v) } & apply | value /scale | \\
@@ -46,13 +45,14 @@
\subsection{Harmonic division with tkzphi } % (fold)
\label{sub:harmonic_division_with_tkzphi}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale =.5
z.a = point: new(0,0)
z.b = point: new(8,0)
L.ab = line: new (z.a,z.b)
z.m,z.n = L.ab: harmonic_both (tkzphi)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLine[add= .2 and .2](a,n)
@@ -62,17 +62,18 @@
\end{Verbatim}
-\begin{tkzelements}
- scale =.5
+\directlua{%
+init_elements ()
+ scale =.25
z.a = point: new(0,0)
z.b = point: new(8,0)
L.ab = line: new (z.a,z.b)
z.m,z.n = L.ab: harmonic_both (tkzphi)
-\end{tkzelements}
+}
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
- \tkzDrawLine[add= .2 and .2](a,n)
+ \tkzDrawLine[add= .1 and .1](a,n)
\tkzDrawPoints(a,b,n,m)
\tkzLabelPoints(a,b,n,m)
\end{tikzpicture}
@@ -83,7 +84,8 @@
\label{sub:function_islinear}
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new (1, 1)
z.b = point: new (2, 2)
z.c = point: new (4, 4)
@@ -92,7 +94,7 @@
else
z.d = point: new (-1, -1)
end
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(a,...,d)
@@ -101,7 +103,8 @@
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new (1, 1)
z.b = point: new (2, 2)
z.c = point: new (4, 4)
@@ -110,7 +113,7 @@
else
z.d = point: new (-1, -1)
end
-\end{tkzelements}
+}
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
@@ -141,13 +144,14 @@ If |scale = 1.2| with a = 6 then real(a) = $6 / 1.2 = 5$ .
\subsection{Transfer from lua to \TEX} % (fold)
\label{sub:transfer_from_lua_to_tex}
-It's possible to transfer variable from Lua to \TEX{} with
-\Igfct{package}{\textbackslash{tkzUseLua}}.
+It's possible to transfer variable from Lua to \TEX{} with the macro
+\tkzcname{tkzUseLua}.
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (0 , 0)
z.B = point : new (3 , 2)
z.C = point : new (2 , 5)
@@ -155,7 +159,7 @@ It's possible to transfer variable from Lua to \TEX{} with
d = L.AB : distance (z.C)
l = L.AB.length
z.H = L.AB : projection (z.C)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines(A,B C,H)
@@ -167,7 +171,8 @@ It's possible to transfer variable from Lua to \TEX{} with
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (0 , 0)
z.B = point : new (3 , 2)
z.C = point : new (2 , 5)
@@ -175,7 +180,7 @@ It's possible to transfer variable from Lua to \TEX{} with
d = L.AB : distance (z.C)
l = L.AB.length
z.H = L.AB : projection (z.C)
-\end{tkzelements}
+}
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
@@ -191,7 +196,8 @@ It's possible to transfer variable from Lua to \TEX{} with
\subsection{Normalized angles : Slope of lines (ab), (ac) and (ad)} % (fold)
\label{sub:normalized_angles}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new(0, 0)
z.b = point: new(-3, -3)
z.c = point: new(0, 3)
@@ -205,7 +211,7 @@ It's possible to transfer variable from Lua to \TEX{} with
angle = point.arg (z.d-z.a)
tex.print('slope of (ad) : '..tostring(angle)..'\\\\')
tex.print('slope normalized of (acd) : '..tostring(angle\_normalize(angle))..'\\\\')
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines[red](a,b a,c a,d)
@@ -213,7 +219,8 @@ It's possible to transfer variable from Lua to \TEX{} with
\tkzLabelPoints(a,b,c,d)
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.a = point: new(0, 0)
z.b = point: new(-3, -3)
@@ -228,7 +235,7 @@ tex.print('slope normalized of (ac) : '..tostring(angle_normalize(angle))..'\\\\
angle = point.arg (z.d-z.a)
tex.print('slope of (ad) : '..tostring(angle)..'\\\\')
tex.print('slope normalized of (ad) : '..tostring(angle_normalize(angle))..'\\\\')
-\end{tkzelements}
+}
\hspace*{\fill}
\begin{tikzpicture}
@@ -248,13 +255,14 @@ The function |get_angle (a,b,c)| gives the angle normalized of $(\overrightarro
\begin{minipage}{0.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new(0, 0)
z.b = point: new(-2, -2)
z.c = point: new(0, 3)
angcb = tkzround ( get_angle (z.a,z.c,z.b),3)
angbc = tkzround ( get_angle (z.a,z.b,z.c),3)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -269,14 +277,15 @@ The function |get_angle (a,b,c)| gives the angle normalized of $(\overrightarro
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.2
z.a = point: new(0, 0)
z.b = point: new(-2, -2)
z.c = point: new(0, 3)
angcb = tkzround ( get_angle (z.a,z.c,z.b),3)
angbc = tkzround ( get_angle (z.a,z.b,z.c),3)
-\end{tkzelements}
+}
\hspace*{\fill}
\begin{tikzpicture}
@@ -298,7 +307,8 @@ The function |get_angle (a,b,c)| gives the angle normalized of $(\overrightarro
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new(0,0)
z.B = point: new(5,0)
z.C = point: new(0,3)
@@ -307,7 +317,7 @@ The function |get_angle (a,b,c)| gives the angle normalized of $(\overrightarro
z.B_1,
z.C_1 = get_points (T.ABC: anti ())
x = dot_product (z.A,z.B,z.C)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -319,7 +329,8 @@ The function |get_angle (a,b,c)| gives the angle normalized of $(\overrightarro
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .6
z.A = point: new(0,0)
z.B = point: new(5,0)
@@ -329,7 +340,7 @@ The function |get_angle (a,b,c)| gives the angle normalized of $(\overrightarro
z.B_1,
z.C_1 = get_points (T.ABC: anti ())
x = dot_product (z.A,z.B,z.C)
-\end{tkzelements}
+}
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
@@ -359,7 +370,8 @@ These functions are useful if you don't need to create a useful triangle object
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new (0, 0)
z.b = point: new (5, -2)
z.c = point: new (2, 3)
@@ -368,7 +380,7 @@ These functions are useful if you don't need to create a useful triangle object
angic = tkzround ( get_angle (z.a,z.i,z.c),2)
angci = tkzround ( get_angle (z.a,z.b,z.i),2)
z.e = bisector_ext (z.a,z.b,z.c).pb
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -385,7 +397,8 @@ These functions are useful if you don't need to create a useful triangle object
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new (0, 0)
z.b = point: new (5, -2)
z.c = point: new (2, 3)
@@ -394,7 +407,7 @@ These functions are useful if you don't need to create a useful triangle object
angic = tkzround ( get_angle (z.a,z.i,z.c),2)
angci = tkzround ( get_angle (z.a,z.b,z.i),2)
z.e = bisector_ext (z.a,z.b,z.c).pb
-\end{tkzelements}
+}
\hspace{\fill}
\begin{tikzpicture}
\tkzGetNodes
@@ -425,7 +438,8 @@ This function solves the equation $ax^2+bx+c= 0$ with real or complex numbers.
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
tex.sprint('Solve : $x^2+1=0$ The solution set is ')
r1,r2 = solve_quadratic(1,0,1)
tex.print('\\{'..tostring(r1)..' , '..tostring(r2)..'\\}')
@@ -440,11 +454,12 @@ This function solves the equation $ax^2+bx+c= 0$ with real or complex numbers.
tex.sprint('Solve : $ix^2+(1+i)x+(-1+i)=0$ The solution set is ')
r1,r2 = solve_quadratic(a,b,c)
tex.print('\\{'..tostring(r1)..' , '..tostring(r2)..'\\}')
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
tex.sprint('Solve : $x^2+1=0$ The solution set is ')
r1,r2 = solve_quadratic(1,0,1)
tex.print('\\{'..tostring(r1)..' , '..tostring(r2)..'\\}')
@@ -459,7 +474,7 @@ This function solves the equation $ax^2+bx+c= 0$ with real or complex numbers.
tex.sprint('Solve : $ix^2+(1+i)x+(-1+i)=0$ The solution set is ')
r1,r2 = solve_quadratic(a,b,c)
tex.print('\\{'..tostring(r1)..' , '..tostring(r2)..'\\}')
-\end{tkzelements}
+}
% subsubsection function_solve__quadratic (end)
% section math_functions (end)
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-parallelogram.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-parallelogram.tex
index 6088f6cfb3..d6a1187ff3 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-parallelogram.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-parallelogram.tex
@@ -39,7 +39,8 @@ Creation | P.new = parallelogram : new (z.A,z.B,z.C,z.D)|
% subsubsection example_attributes (end)
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 1 )
z.C = point : new ( 7 , 5 )
@@ -49,7 +50,7 @@ z.B = P.new.pb
z.C = P.new.pc
z.D = P.new.pd
z.I = P.new.center
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C,D)
@@ -61,7 +62,8 @@ z.I = P.new.center
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 1 )
z.C = point : new ( 7 , 5 )
@@ -71,7 +73,7 @@ z.B = P.new.pb
z.C = P.new.pc
z.D = P.new.pd
z.I = P.new.center
-\end{tkzelements}
+}
\hspace{\fill}
\begin{tikzpicture}
\tkzGetNodes
@@ -109,15 +111,16 @@ z.I = P.new.center
% subsubsection parallelogram_with_fourth_method (end)
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point : new ( 0 , 0 )
-z.B = point : new ( 4 , 1 )
-z.C = point : new ( 5 , 3 )
+z.B = point : new ( 3 , 1 )
+z.C = point : new ( 4 , 3 )
P.four = parallelogram : fourth (z.A,z.B,z.C)
z.D = P.four.pd
z.I = P.four.center
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C,D)
@@ -129,14 +132,16 @@ z.I = P.four.center
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
+ scale = .75
z.A = point : new ( 0 , 0 )
-z.B = point : new ( 4 , 1 )
-z.C = point : new ( 5 , 3 )
+z.B = point : new ( 3 , 1 )
+z.C = point : new ( 4 , 3 )
P.four = parallelogram : fourth (z.A,z.B,z.C)
z.D = P.four.pd
z.I = P.four.center
-\end{tkzelements}
+}
\hspace{\fill}
\begin{tikzpicture}
@@ -147,5 +152,6 @@ z.I = P.four.center
\tkzLabelPoints[above](C,D)
\tkzDrawPoints[red](I)
\end{tikzpicture}
+\hspace{\fill}
\end{minipage}
% subsubsection parallelogram_with_side_method (end)
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 0da8f16b78..7dba1b8022 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
@@ -86,7 +86,8 @@ The creation of a point is done using the following method, but there are other
% Method \Imeth{point}{new}
\begin{mybox}
- Creation |z.A = point: new (1,2) |
+ Creation \\
+ |z.A = point: new (1,2) |
\end{mybox}
The point $A$ has coordinates $x=1$ and $y=2$. If you use the notation |z.A|, then $A$ will be referenced as a node in \TIKZ\ or in \pkg{tkz-euclide}.
@@ -103,7 +104,7 @@ This is the creation of a fixed point with coordinates 1 and 2 and which is name
\Iattr{point}{re} & |z.A.re = 1| & [\ref{ssub:methods}] \\
\Iattr{point}{im} & |z.A.im = 2| & [\ref{ssub:methods}] \\
\Iattr{point}{type} & |z.A.type = 'point'| & \\
- \Iattr{point}{argument} & |z.A.argument $\approx$ 0.78539816339745| & [\ref{ssub:example_point_attributes}] \\
+ \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}] \\
\bottomrule
\end{tabular}
@@ -114,16 +115,17 @@ This is the creation of a fixed point with coordinates 1 and 2 and which is name
\subsubsection{Example: point attributes} % (fold)
\label{ssub:example_point_attributes}
-\begin{tkzelements}
+\directlua{
+init_elements ()
z.M = point: new (1,2)
-\end{tkzelements}
+}
\hspace*{\fill}
\begin{Verbatim}
-\begin{tkzelements}
- z.M = point: new (1,2)
-\end{tkzelements}
+\directlua{
+ init_elements ()
+ z.M = point: new (1,2)}
\end{Verbatim}
\pgfkeys{/pgf/number format/.cd,std,precision=2}
\let\pmpn\pgfmathprintnumber
@@ -172,13 +174,16 @@ $|z_M| =\sqrt{5}\approx \pmpn{\tkzUseLua{z.M.modulus}}$ cm}
\begin{scope}[every annotation/.style={fill=lightgray!15,anchor = east}]
\node [annotation,font =\small,text width=6cm] at (current bounding box.west) {
Attributes of \texttt{z.M}
- \begin{itemize}
- \item \texttt{z.M.re} = 1
- \item \texttt{z.M.im} = 2
- \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
- \end{itemize}
+ \begin{mybox}{}
+ \begin{itemize}
+ \item \texttt{z.M.re} = 1
+ \item \texttt{z.M.im} = 2
+ \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
+ \end{itemize}
+ \end{mybox}
+
};
\end{scope}
\end{tikzpicture}
@@ -195,12 +200,13 @@ Attributes of \texttt{z.M}
\normalsize
\begin{minipage}{\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{
+init_elements ()
z.A = point : new ( 2 , 3 )
z.O = point : new ( 0 , 0 )
z.I = point : new ( 1 , 0 )
-\end{tkzelements}
-\hspace{\fill}\begin{tikzpicture}
+}
+\begin{tikzpicture}
\tkzGetNodes
\tkzInit[xmin=-4,ymin=-4,xmax=4,ymax=4]
\tkzDrawCircle[dashed,red](O,A)
@@ -216,11 +222,12 @@ Attributes of \texttt{z.M}
\end{minipage}
\begin{minipage}{\textwidth}
- \begin{tkzelements}
+\directlua{
+init_elements ()
z.A = point : new ( 2 , 3 )
z.O = point : new ( 0 , 0 )
z.I = point : new ( 1 , 0 )
- \end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -262,7 +269,7 @@ The methods described in the following table are standard and can be found in mo
\midrule
\textbf{Points} &&\\
\midrule
-\Imeth{point}{north(r)} & |r| distance to the point (1 if empty) & [\ref{par:power_v2} ; \ref{ssub:methods}] \\
+\Imeth{point}{north(r)} & |r| distance to the point (1 if empty) & [\ref{ssub:power_v2} ; \ref{ssub:methods}] \\
\Imeth{point}{south(r)} & & \\
\Imeth{point}{east(r)} & & \\
\Imeth{point}{west(r)} & & \\
@@ -292,14 +299,15 @@ If |d| is absent then it is considered equal to 1.
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{
+ init_elements ()
z.O = point : new ( 0, 0 )
z.A = z.O : east ()
z.Ap = z.O : east (2) : north (2)
z.B = z.O : north ()
z.C = z.O : west ()
z.D = z.O : south ()
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C,D)
@@ -308,7 +316,8 @@ If |d| is absent then it is considered equal to 1.
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{
+ init_elements ()
scale = 1.5
z.O = point : new ( 0, 0 )
z.A = z.O : east ()
@@ -316,7 +325,7 @@ If |d| is absent then it is considered equal to 1.
z.B = z.O : north ()
z.C = z.O : west ()
z.D = z.O : south ()
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -338,11 +347,12 @@ This involves defining a point using its modulus and argument.
\begin{minipage}{0.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{
+ init_elements ()
z.O = point: new (0, 0)
z.A = point: new (3, 0)
z.F = point: polar (3, math.pi/3)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(O,A)
@@ -355,12 +365,13 @@ This involves defining a point using its modulus and argument.
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.4\textwidth}
-\begin{tkzelements}
+\directlua{
+init_elements ()
scale = .75
z.O = point: new (0, 0)
z.A = point: new (3, 0)
z.F = point: polar (3, math.pi/3)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -383,34 +394,27 @@ This involves defining a point using its modulus and argument.
The result is a point located between the origin and the initial point at a distance of $1$ from the origin.
-\begin{tkzelements}
+\directlua{
+init_elements ()
scale = 1.5
z.O = point : new (0,0)
z.A = point : new (2,1)
z.B = z.A : normalize ()
z.I = point : new (1,0)
-\end{tkzelements}
+}
+
-\begin{center}
- \begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawSegment(O,A)
- \tkzDrawCircle(O,B)
- \tkzDrawPoints(O,A,B,I)
- \tkzLabelPoints(O,A)
- \tkzLabelPoints[above](B)
- \tkzLabelPoint[below right](I){$1$}
- \end{tikzpicture}
-\end{center}
+\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{
+init_elements ()
scale = 1.5
z.O = point : new (0,0)
z.A = point : new (1,2)
z.B = z.A : normalize ()
z.I = point : new (1,0)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSegment(O,A)
@@ -420,6 +424,20 @@ z.I = point : new (1,0)
\tkzLabelPoint[below right](I){$1$}
\end{tikzpicture}
\end{Verbatim}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\begin{center}
+ \begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawSegment(O,A)
+ \tkzDrawCircle(O,B)
+ \tkzDrawPoints(O,A,B,I)
+ \tkzLabelPoints(O,A)
+ \tkzLabelPoints[above](B)
+ \tkzLabelPoint[below right](I){$1$}
+ \end{tikzpicture}
+\end{center}
+ \end{minipage}
% subsubsection method_normalize (end)
@@ -431,12 +449,13 @@ Let $O$ be the origin of the plane. The "orthogonal (d)" method is used to obtai
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{
+init_elements ()
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)
@@ -446,12 +465,13 @@ Let $O$ be the origin of the plane. The "orthogonal (d)" method is used to obtai
\end{Verbatim}
\end{minipage}
\begin{minipage}{.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
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{center}
\begin{tikzpicture}[gridded]
\tkzGetNodes
@@ -471,43 +491,39 @@ This method is complementary to the previous one, so you may not wish to have $\
\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.E = z.A : orthogonal (1)
- z.C = z.A+z.B
- z.D =(z.C-z.A):orthogonal(2) : at (z.C)
-\end{tkzelements}
-\begin{tikzpicture}[gridded]
+\directlua{%
+init_elements ()
+z.O = point : new ( 0,0 )
+z.A = point : new ( 3 , 2 )
+z.B = z.A : orthogonal (1)
+z.C = z.A+z.B
+z.D =(z.C-z.A):orthogonal(2) : at (z.C)
+}
+ \begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzLabelPoints[below right](O,A,C)
- \tkzLabelPoints[above](B,D,E)
- \tkzDrawSegments(O,A A,B A,C C,D O,E)
- \tkzDrawPoints(O,A,B,C,D,E)
-\end{tikzpicture}
+ \tkzLabelPoints[above](B,D)
+ \tkzDrawSegments(O,A A,B A,C C,D O,B)
+ \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)
+\directlua{%
+init_elements ()
z.O = point : new ( 0,0 )
--- z.B = z.B : at (z.A) -- or
-z.B = z.A : orthogonal (1) : at (z.A)
-z.E = z.A : orthogonal (1)
+z.A = point : new ( 3 , 2 )
+z.B = z.A : orthogonal (1)
z.C = z.A+z.B
z.D =(z.C-z.A):orthogonal(2) : at (z.C)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzLabelPoints[below right](O,A,C)
- \tkzLabelPoints[above](B,D,E)
- \tkzDrawSegments(O,A A,B A,C C,D O,E)
- \tkzDrawPoints(O,A,B,C,D,E)
+ \tkzLabelPoints[above](B,D)
+ \tkzDrawSegments(O,A A,B A,C C,D O,B)
+ \tkzDrawPoints(O,A,B,C,D)
\end{tikzpicture}
\end{center}
\end{minipage}
@@ -521,12 +537,13 @@ The arguments are the angle of rotation in radians, and here a list of points.
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new(0, -1)
z.b = point: new(4, 0)
z.o = point: new(6, -2)
z.ap,z.bp = z.o : rotation (math.pi/2,z.a,z.b)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines(o,a o,a' o,b o,b')
@@ -539,13 +556,14 @@ The arguments are the angle of rotation in radians, and here a list of points.
\end{Verbatim}
\end{minipage}
\begin{minipage}{.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.a = point: new(0, -1)
z.b = point: new(4, 0)
z.o = point: new(6, -2)
z.ap,z.bp = z.o : rotation (math.pi/2,z.a,z.b)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -567,7 +585,8 @@ Rotate a triangle by an angle of $\pi/6$ around $O$.
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.O = point : new ( -1 , -1 )
z.A = point : new ( 2 , 0 )
@@ -581,7 +600,7 @@ Rotate a triangle by an angle of $\pi/6$ around $O$.
z.C = T.ABC.pc
T.ApBpCp = z.O : rotation (math.pi/3,T.ABC)
z.Ap,z.Bp,z.Cp = get_points ( T.ApBpCp)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C A',B',C' A,B,E,F A',B',E',F')
@@ -592,7 +611,8 @@ Rotate a triangle by an angle of $\pi/6$ around $O$.
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point : new ( -1 , -1 )
z.A = point : new ( 2 , 0 )
z.B = point : new ( 5 , 0 )
@@ -605,7 +625,7 @@ _,_,z.Ep,z.Fp = get_points ( S.new )
z.C = T.ABC.pc
T.ApBpCp = z.O : rotation (math.pi/3,T.ABC)
z.Ap,z.Bp,z.Cp = get_points ( T.ApBpCp)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -630,14 +650,15 @@ Example of the symmetry of an object
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new(0,-1)
z.b = point: new(2, 0)
L.ab = line : new (z.a,z.b)
C.ab = circle : new (z.a,z.b)
z.o = point: new(1,1)
z.ap,z.bp = get_points (z.o: symmetry (C.ab))
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(a,b a',b')
@@ -649,14 +670,15 @@ Example of the symmetry of an object
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new(0, -1)
z.b = point: new(2, 0)
L.ab = line : new (z.a,z.b)
C.ab = circle : new (z.a,z.b)
z.o = point: new(1, 1)
z.ap,z.bp = get_points (z.o: symmetry (C.ab))
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-quadrilateral.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-quadrilateral.tex
index 30ee773eba..55484fa41a 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-quadrilateral.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-quadrilateral.tex
@@ -42,15 +42,16 @@ Creation | Q.new = rectangle : new (z.A,z.B,z.C,z.D)|
\label{ssub:quadrilateral_attributes}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
z.C = point : new ( 5 , 1 )
-z.D = point : new ( -1 , 4 )
+z.D = point : new ( 0 , 3 )
Q.ABCD = quadrilateral : new ( z.A , z.B , z.C , z.D )
z.I = Q.ABCD.i
z.G = Q.ABCD.g
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -61,15 +62,16 @@ z.G = Q.ABCD.g
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
z.C = point : new ( 5 , 1 )
-z.D = point : new ( -1 , 4 )
+z.D = point : new ( 0 , 3 )
Q.ABCD = quadrilateral : new ( z.A , z.B , z.C , z.D )
z.I = Q.ABCD.i
z.G = Q.ABCD.g
-\end{tkzelements}
+}
\hspace{\fill}\begin{tikzpicture}
\tkzGetNodes
@@ -102,7 +104,8 @@ z.G = Q.ABCD.g
\label{ssub:inscribed_quadrilateral}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
z.D = point : polar ( 4 , 2*math.pi/3 )
@@ -115,7 +118,7 @@ if bool == true then
C.cir = triangle : new (z.A,z.B,z.C): circum_circle ()
z.O = C.cir.center
end
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -129,7 +132,8 @@ end
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
@@ -143,7 +147,7 @@ if bool == true then
C.cir = triangle : new (z.A,z.B,z.C): circum_circle ()
z.O = C.cir.center
end
-\end{tkzelements}
+}
\hspace{\fill}
\begin{tikzpicture}
\tkzGetNodes
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 cd0ae2981c..0a9edc0d6d 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
@@ -41,14 +41,15 @@ Creation | R.ABCD = rectangle : new (z.A,z.B,z.C,z.D)|
\label{ssub:example}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
z.C = point : new ( 4 , 4)
z.D = point : new ( 0 , 4)
R.new = rectangle : new (z.A,z.B,z.C,z.D)
z.I = R.new.center
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -61,7 +62,8 @@ z.I = R.new.center
\end{Verbatim}
\end{minipage}
\hspace{\fill}\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale =1.5
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
@@ -69,7 +71,7 @@ z.I = R.new.center
z.D = point : new ( 0 , 2)
R.new = rectangle : new (z.A,z.B,z.C,z.D)
z.I = R.new.center
- \end{tkzelements}
+ }
\begin{tikzpicture}
\tkzGetNodes
@@ -118,7 +120,8 @@ z.I = R.new.center
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
@@ -127,7 +130,7 @@ P.ABCD = rectangle : angle ( z.I , z.A , math.pi/6)
z.B = P.ABCD.pb
z.C = P.ABCD.pc
z.D = P.ABCD.pd
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -139,7 +142,8 @@ z.D = P.ABCD.pd
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
@@ -148,7 +152,7 @@ P.ABCD = rectangle : angle ( z.I , z.A , math.pi/6)
z.B = P.ABCD.pb
z.C = P.ABCD.pc
z.D = P.ABCD.pd
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C,D)
@@ -165,14 +169,15 @@ z.D = P.ABCD.pd
\label{ssub:side_method}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 3 )
R.side = rectangle : side (z.A,z.B,3)
z.C = R.side.pc
z.D = R.side.pd
z.I = R.side.center
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C,D)
@@ -184,14 +189,15 @@ z.I = R.side.center
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 3 )
R.side = rectangle : side (z.A,z.B,3)
z.C = R.side.pc
z.D = R.side.pd
z.I = R.side.center
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C,D)
@@ -208,14 +214,15 @@ z.I = R.side.center
\label{ssub:diagonal_method}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.C = point : new ( 4 , 3 )
R.diag = rectangle : diagonal (z.A,z.C)
z.B = R.diag.pb
z.D = R.diag.pd
z.I = R.diag.center
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -229,14 +236,15 @@ z.I = R.diag.center
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.C = point : new ( 4 , 3 )
R.diag = rectangle : diagonal (z.A,z.C)
z.B = R.diag.pb
z.D = R.diag.pd
z.I = R.diag.center
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -254,14 +262,15 @@ z.I = R.diag.center
\label{ssub:gold_method}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.X = point : new ( 0 , 0 )
z.Y = point : new ( 4 , 2 )
R.gold = rectangle : gold (z.X,z.Y)
z.Z = R.gold.pc
z.W = R.gold.pd
z.I = R.gold.center
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -275,14 +284,15 @@ z.I = R.gold.center
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.X = point : new ( 0 , 0 )
z.Y = point : new ( 4 , 2 )
R.gold = rectangle : gold (z.X,z.Y)
z.Z = R.gold.pc
z.W = R.gold.pd
z.I = R.gold.center
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-regular.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-regular.tex
index 98b6ac3610..b4034f9245 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-regular.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-regular.tex
@@ -33,7 +33,9 @@ Creation | RP.IA = regular_polygon : new (z.I,z.A,6)|
\label{ssub:pentagon}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
+scale = .75
z.O = point: new (0,0)
z.I = point: new (1,3)
z.A = point: new (2,0)
@@ -41,7 +43,7 @@ RP.five = regular_polygon : new (z.I,z.A,5)
RP.five : name ("P_")
C.ins = circle: radius (z.I,RP.five.inradius)
z.H = RP.five.proj
-\end{tkzelements}
+}
\begin{tikzpicture}
\def\nb{\tkzUseLua{RP.five.nb}}
\tkzGetNodes
@@ -53,7 +55,9 @@ z.H = RP.five.proj
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
+scale = .75
z.O = point: new (0,0)
z.I = point: new (1,3)
z.A = point: new (2,0)
@@ -61,7 +65,7 @@ z.H = RP.five.proj
RP.five : name ("P_")
C.ins = circle : radius ( z.I , RP.five.inradius )
z.H = RP.five.proj
- \end{tkzelements}
+ }
\hspace{\fill}
\begin{tikzpicture}
\def\nb{\tkzUseLua{RP.five.nb}}
@@ -71,6 +75,7 @@ z.H = RP.five.proj
\tkzDrawPoints[red](P_1,P_...,P_\nb,H,I)
\tkzLabelPoints[red](I,A,H)
\end{tikzpicture}
+ \hspace{\fill}
\end{minipage}
% subsubsection pentagon (end)
% subsection regular_polygon_attributes (end)
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-square.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-square.tex
index 17e26d105f..1a5b69bba5 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-square.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes-square.tex
@@ -41,7 +41,8 @@ Creation | S.AB = square : new (z.A,z.B,z.C,z.D)|
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
z.C = point : new ( 4 , 4)
@@ -49,7 +50,7 @@ z.D = point : new ( 0 , 4)
S.new = square : new ( z.A , z.B ,z.C,z.D)
z.I = S.new.center
z.H = S.new.proj
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles[orange](I,A I,H)
@@ -65,7 +66,8 @@ z.H = S.new.proj
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
z.C = point : new ( 4 , 4)
@@ -73,7 +75,7 @@ z.H = S.new.proj
S.new = square : new ( z.A , z.B ,z.C,z.D)
z.I = S.new.center
z.H = S.new.proj
- \end{tkzelements}
+ }
\hspace{\fill}
\begin{tikzpicture}
\tkzGetNodes
@@ -115,7 +117,8 @@ z.H = S.new.proj
%
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 2
z.A = point : new ( 0 , 0 )
z.B = point : new ( 2 , 1 )
@@ -124,7 +127,7 @@ z.H = S.new.proj
z.C = S.side.pc
z.D = S.side.pd
z.I = S.side.center
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -137,7 +140,8 @@ z.H = S.new.proj
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale = 2
z.A = point : new ( 0 , 0 )
z.B = point : new ( 2 , 1 )
@@ -146,7 +150,7 @@ z.B = S.side.pb
z.C = S.side.pc
z.D = S.side.pd
z.I = S.side.center
-\end{tkzelements}
+}
\hspace{\fill}
\begin{tikzpicture}
\tkzGetNodes
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 b144ed3e01..af4dac7c7b 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
@@ -46,12 +46,13 @@ The triangle object is created using the \Imeth{triangle}{new} method, for examp
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
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}
@@ -64,12 +65,13 @@ The triangle object is created using the \Imeth{triangle}{new} method, for examp
\end{Verbatim}
\end{minipage}
\begin{minipage}{.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
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
@@ -85,7 +87,8 @@ The triangle object is created using the \Imeth{triangle}{new} method, for examp
\label{ssub:example_triangle_attributes}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (4 , 0)
z.C = point: new (0 , 3)
@@ -100,7 +103,7 @@ The triangle object is created using the \Imeth{triangle}{new} method, for examp
alpha = T.ABC.alpha
beta = T.ABC.beta
gamma = T.ABC.gamma
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -114,7 +117,8 @@ The triangle object is created using the \Imeth{triangle}{new} method, for examp
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (4 , 0)
z.C = point: new (1 , 3)
@@ -129,7 +133,7 @@ The triangle object is created using the \Imeth{triangle}{new} method, for examp
alpha = T.ABC.alpha
beta = T.ABC.beta
gamma = T.ABC.gamma
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -207,7 +211,7 @@ The triangle object is created using the \Imeth{triangle}{new} method, for examp
\Imeth{triangle}{bisector (n) } & |L.Bb = T.ABC : bisector (1) | n = 1 line from $B$ \footnote{|_,z.b = get_points(L.Bb)| recovers the common point of the opposite side and bisector. If you don't need to use the triangle object several times, you can obtain a bisector with the function |bisector (z.A,z.B,z.C)| [\ref{misc}]}& [\ref{ssub:method_imeth_triangle_bisector}]\\
-\Imeth{triangle}{bisector\_ext(n) } & n=2 line from the third vertex.& [\ref{sub:harmonic_division_and_bisector}]\\
+\Imeth{triangle}{bisector\_ext(n) } & n=2 line from the third vertex.& [\ref{ssub:harmonic_division_and_bisector}]\\
\Imeth{triangle}{symmedian\_line (n)} & Cevian with respect to Lemoine point.& [\ref{ssub:method_imeth_triangle_symmedial} ; \ref{ssub:method_imeth_line_isosceles}]\\
@@ -299,7 +303,7 @@ The triangle object is created using the \Imeth{triangle}{new} method, for examp
\Imeth{triangle}{steiner\_circumellipse ()} & [ex. \ref{ssub:steiner_inellipse_and_circumellipse}] \\
-\Imeth{triangle}{euler\_ellipse ()} & [ex. (\ref{sub:euler_ellipse}]\\
+\Imeth{triangle}{euler\_ellipse ()} & [ex. (\ref{ssub:euler_ellipse}]\\
\midrule
\textbf{Miscellaneous} &\\
\midrule
@@ -322,7 +326,8 @@ The points of contact of the inscribed circle (incircle) with the triangle in qu
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new(1,0)
z.b = point: new(6,2)
z.c = point: new(2,5)
@@ -330,7 +335,7 @@ T = triangle : new (z.a,z.b,z.c)
z.g = T : gergonne_point ()
z.i = T.incenter
z.ta,z.tb,z.tc = get_points (T : intouch ())
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(a,b,c)
@@ -344,7 +349,8 @@ z.ta,z.tb,z.tc = get_points (T : intouch ())
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new(1,0)
z.b = point: new(6,2)
z.c = point: new(2,5)
@@ -352,7 +358,7 @@ T = triangle : new (z.a,z.b,z.c)
z.g = T : gergonne_point ()
z.i = T.incenter
z.ta,z.tb,z.tc = get_points (T : intouch ())
-\end{tkzelements}
+}
\begin{center}
@@ -378,7 +384,8 @@ Let $E_a$ be the point at which the $J_a$-excircle meets the side $(BC)$ of a tr
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .7
z.A = point : new (0,0)
z.B = point : new (3.6,0)
@@ -389,7 +396,7 @@ Let $E_a$ be the point at which the $J_a$-excircle meets the side $(BC)$ of a tr
z.J_c = get_points (T.ABC : excentral ())
z.E_a,z.E_b,
z.E_c = get_points (T.ABC : extouch ())
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(A,B,C)
@@ -407,7 +414,8 @@ Let $E_a$ be the point at which the $J_a$-excircle meets the side $(BC)$ of a tr
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .7
z.A = point : new (0,0)
z.B = point : new (3.6,0)
@@ -418,7 +426,7 @@ Let $E_a$ be the point at which the $J_a$-excircle meets the side $(BC)$ of a tr
z.J_c = get_points (T.ABC : excentral ())
z.E_a,z.E_b,
z.E_c = get_points (T.ABC : extouch ())
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -450,7 +458,8 @@ The Mittenpunkt is the symmedian point of the excentral triangle. The mittenpunk
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1
z.A = point : new ( 0 , 0 )
z.B = point : new ( 6 , 0 )
@@ -463,11 +472,12 @@ The Mittenpunkt is the symmedian point of the excentral triangle. The mittenpunk
z.Mi = T : mittenpunkt_point ()
T.int = T : extouch ()
z.Ta,z.Tb,z.Tc = get_points(T.int)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1
z.A = point : new ( 0 , 0 )
z.B = point : new ( 6 , 0 )
@@ -480,7 +490,7 @@ The Mittenpunkt is the symmedian point of the excentral triangle. The mittenpunk
z.Mi = T : mittenpunkt_point ()
T.int = T : extouch ()
z.Ta,z.Tb,z.Tc = get_points(T.int)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}[scale=.5]
\tkzGetNodes
@@ -530,7 +540,8 @@ This involves obtaining the projections of a point onto the sides of a triangle.
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (5 , 0)
z.C = point: new (-.4 , 4)
@@ -539,11 +550,12 @@ z.J,_ = get_points(T.ABC: ex_circle (2))
z.X ,
z.Y,
z.Z = T.ABC : projection (z.J)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (5 , 0)
z.C = point: new (-.4 , 4)
@@ -552,7 +564,7 @@ z.J,_ = get_points(T.ABC: ex_circle (2))
z.X ,
z.Y,
z.Z = T.ABC : projection (z.J)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -597,7 +609,8 @@ Given a reference triangle $ABC$, the trilinear coordinates of a point $P$ with
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
z.C = point : new ( 4 , 3 )
@@ -607,7 +620,7 @@ b = T.ABC.b
c = T.ABC.c
z.Gp = T.ABC : trilinear (b*c,a*c,a*b)
z.G = T.ABC : barycentric (1,1,1)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -618,7 +631,8 @@ z.G = T.ABC : barycentric (1,1,1)
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
z.C = point : new ( 4 , 3 )
@@ -628,7 +642,7 @@ b = T.ABC.b
c = T.ABC.c
z.Gp = T.ABC : trilinear (b*c,a*c,a*b)
z.G = T.ABC : barycentric (1,1,1)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -651,14 +665,15 @@ This method produces a triplet of coordinates which are the barycentric coordina
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (1,1)
z.B = point: new (8,0)
z.C = point: new (2,5)
T = triangle: new(z.A,z.B,z.C)
z.G = T.centroid
ca,cb,cc = T : barycentric_coordinates (z.G)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C)
@@ -669,7 +684,8 @@ This method produces a triplet of coordinates which are the barycentric coordina
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale = .75
z.A = point: new (1,1)
z.B = point: new (8,0)
@@ -677,7 +693,7 @@ This method produces a triplet of coordinates which are the barycentric coordina
T = triangle: new(z.A,z.B,z.C)
z.G = T.centroid
ca,cb,cc = T : barycentric_coordinates (z.G)
- \end{tkzelements}
+ }
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -699,7 +715,8 @@ In the next example, the point $D$ is defined by $\overrightarrow{AD} = 1\cdot \
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point: new (1,1)
z.B = point: new (8,0)
@@ -708,7 +725,7 @@ In the next example, the point $D$ is defined by $\overrightarrow{AD} = 1\cdot \
T = triangle: new(z.A,z.B,z.C)
z.D = T : base (1,1)
z.E = T : base (.5,1)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,D,C A,B,E,C)
@@ -719,7 +736,8 @@ In the next example, the point $D$ is defined by $\overrightarrow{AD} = 1\cdot \
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale = .75
z.A = point: new (1,1)
z.B = point: new (8,0)
@@ -728,7 +746,7 @@ In the next example, the point $D$ is defined by $\overrightarrow{AD} = 1\cdot \
T = triangle: new(z.A,z.B,z.C)
z.D = T : base (1,1)
z.E = T : base (.5,1)
- \end{tkzelements}
+ }
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -751,7 +769,8 @@ The points $a$, $b$ and $c$ are the Euler points. They are the midpoints of the
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale = 1.25
z.A = point: new (0,0)
z.B = point: new (5,0)
@@ -766,7 +785,7 @@ The points $a$, $b$ and $c$ are the Euler points. They are the midpoints of the
z.Ha,
z.Hb,
z.Hc = get_points (T.orthic)
- \end{tkzelements}
+ }
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons[red](A,B,C)
@@ -780,7 +799,8 @@ The points $a$, $b$ and $c$ are the Euler points. They are the midpoints of the
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale = 1.25
z.A = point: new (0,0)
z.B = point: new (5,0)
@@ -795,7 +815,7 @@ The points $a$, $b$ and $c$ are the Euler points. They are the midpoints of the
z.Ha,
z.Hb,
z.Hc = get_points (T.orthic)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -821,7 +841,8 @@ In the next example, we look for the centre of gravity in two different ways: th
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.5
z.A = point: new (0,0)
z.B = point: new (5,0)
@@ -837,11 +858,12 @@ In the next example, we look for the centre of gravity in two different ways: th
z.e7,
z.e8,
z.e9 = T : nine_points ()
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.5
z.A = point: new (0,0)
z.B = point: new (5,0)
@@ -857,7 +879,7 @@ In the next example, we look for the centre of gravity in two different ways: th
z.e7,
z.e8,
z.e9 = T : nine_points ()
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons[red](A,B,C)
@@ -889,7 +911,8 @@ There are several methods to obtain one or more altitudes of a triangle. One pos
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (5,0)
z.C = point: new (2,4)
@@ -900,7 +923,7 @@ There are several methods to obtain one or more altitudes of a triangle. One pos
z.Hc = L.HC.pb
z.Ha = L.HA.pb
z.a,z.b,z.c = get_points (T : orthic ())
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -915,7 +938,8 @@ There are several methods to obtain one or more altitudes of a triangle. One pos
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (5,0)
z.C = point: new (2,4)
@@ -926,7 +950,7 @@ There are several methods to obtain one or more altitudes of a triangle. One pos
z.Hc = L.HC.pb
z.Ha = L.HA.pb
z.a,z.b,z.c = get_points (T : orthic ())
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -953,7 +977,8 @@ There are several methods to obtain one or more bisectors of a triangle. One pos
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (0 , 0)
z.B = point : new (3 , 2)
z.C = point : new (2 , 5)
@@ -962,7 +987,7 @@ There are several methods to obtain one or more bisectors of a triangle. One pos
z.E = L.AE.pb
z.F = T.ABC : bisector (1).pb
z.a,z.b,z.c = get_points (T.ABC : incentral ())
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -977,7 +1002,8 @@ There are several methods to obtain one or more bisectors of a triangle. One pos
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (0 , 0)
z.B = point : new (3 , 2)
z.C = point : new (2 , 5)
@@ -986,7 +1012,7 @@ There are several methods to obtain one or more bisectors of a triangle. One pos
z.E = L.AE.pb
z.F = T.ABC : bisector (1).pb
z.a,z.b,z.c = get_points (T.ABC : incentral ())
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -1019,14 +1045,15 @@ There are several ways of obtaining the Euler circle. The first would be to use
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (5,0)
z.C = point: new (1,4)
T = triangle: new(z.A,z.B,z.C)
C.euler = T : euler_circle ()
z.N,z.K = get_points (C.euler)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons[red](A,B,C)
@@ -1038,14 +1065,15 @@ There are several ways of obtaining the Euler circle. The first would be to use
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (5,0)
z.C = point: new (1,4)
T = triangle: new(z.A,z.B,z.C)
C.euler = T : euler_circle ()
z.N,z.K = get_points (C.euler)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -1068,14 +1096,15 @@ To obtain the circumscribed circle, simply use the \code{T.circumcenter} attribu
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (5,0)
z.C = point: new (1,4)
T = triangle: new(z.A,z.B,z.C)
C.circum = T : circum_circle ()
z.O,z.K = get_points (C.circum)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons[red](A,B,C)
@@ -1087,14 +1116,15 @@ To obtain the circumscribed circle, simply use the \code{T.circumcenter} attribu
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (5,0)
z.C = point: new (1,4)
T = triangle: new(z.A,z.B,z.C)
C.circum = T : circum_circle ()
z.O,z.K = get_points (C.circum)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1122,7 +1152,8 @@ The incenter is the point of concurrence of the triangle's angle bisectors. In a
\vspace{6pt}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 2
z.A = point : new (0 , 0)
z.B = point : new (5 , 0)
@@ -1133,7 +1164,7 @@ The incenter is the point of concurrence of the triangle's angle bisectors. In a
z.G = T.ABC : bisector (2).pb
C.IH = T.ABC : in_circle ()
z.I,z.H = get_points (C.IH)
-\end{tkzelements}
+}
\begin{tikzpicture}%
[ new/.style ={ color = orange },
one/.style = { new,/tkzmkangle/size=.5 },
@@ -1166,7 +1197,8 @@ The incenter is the point of concurrence of the triangle's angle bisectors. In a
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (0 , 0)
z.B = point : new (5 , 0)
z.C = point : new (1 , 3)
@@ -1176,7 +1208,7 @@ The incenter is the point of concurrence of the triangle's angle bisectors. In a
z.G = T.ABC : bisector (2).pb
C.IH = T.ABC : in_circle ()
z.I,z.H = get_points (C.IH)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
@@ -1222,7 +1254,8 @@ Given a triangle, extend two sides in the direction opposite their common vertex
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (5 , 0)
z.C = point: new (-.4 , 4)
@@ -1239,11 +1272,12 @@ z.Zi = T.ABC : projection (z.I)
z.Xj ,
z.Yj,
z.Zj = T.ABC : projection (z.J)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point: new (0 , 0)
z.B = point: new (5 , 0)
@@ -1261,7 +1295,7 @@ z.Zi = T.ABC : projection (z.I)
z.Xj ,
z.Yj,
z.Zj = T.ABC : projection (z.J)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -1305,7 +1339,8 @@ z.Zj = T.ABC : projection (z.J)
In geometry, the incircle of the medial triangle of a triangle is the Spieker circle. Its center is the Spieker center.
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.5
z.A = point: new (1,1)
z.B = point: new (5,1)
@@ -1318,7 +1353,7 @@ In geometry, the incircle of the medial triangle of a triangle is the Spieker ci
z.Qa = midpoint(z.A,z.N)
z.Qb = midpoint(z.B,z.N)
z.Qc = midpoint(z.C,z.N)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -1335,7 +1370,8 @@ In geometry, the incircle of the medial triangle of a triangle is the Spieker ci
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (1,1)
z.B = point: new (5,1)
z.C = point: new (2.2,4)
@@ -1347,7 +1383,7 @@ In geometry, the incircle of the medial triangle of a triangle is the Spieker ci
z.Qa = midpoint(z.A,z.N)
z.Qb = midpoint(z.B,z.N)
z.Qc = midpoint(z.C,z.N)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C Qa,Qb,Qc)
@@ -1374,7 +1410,8 @@ Picking a Cevian point $P$ in the interior of a triangle $ABC$ and drawing Cevia
\vspace{6pt}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.25
z.A = point: new (0,0)
z.B = point: new (4,0)
@@ -1388,7 +1425,7 @@ Picking a Cevian point $P$ in the interior of a triangle $ABC$ and drawing Cevia
z.Pa,z.Pb,z.Pc = get_points (T.cevian)
C.cev = T.ABC : cevian_circle (z.P)
z.w = C.cev.center
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -1408,7 +1445,8 @@ Picking a Cevian point $P$ in the interior of a triangle $ABC$ and drawing Cevia
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (4,0)
z.C = point: new (1.8,3)
@@ -1421,7 +1459,7 @@ Picking a Cevian point $P$ in the interior of a triangle $ABC$ and drawing Cevia
z.Pa,z.Pb,z.Pc = get_points (T.cevian)
C.cev = T.ABC : cevian_circle (z.P)
z.w = C.cev.center
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons[cyan](A,B,C)
@@ -1449,7 +1487,8 @@ Given a point $P$, the pedal triangle of $P$ is the triangle whose polygon verti
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.A = point: new(0,0)
z.B = point: new(5,0)
z.C = point: new(1.5,3)
@@ -1460,7 +1499,7 @@ Given a point $P$, the pedal triangle of $P$ is the triangle whose polygon verti
C.pedal = T.ABC : pedal_circle (z.O)
z.w = C.pedal.center
z.T = C.pedal.through
- \end{tkzelements}
+ }
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -1474,7 +1513,8 @@ Given a point $P$, the pedal triangle of $P$ is the triangle whose polygon verti
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.A = point: new(0,0)
z.B = point: new(5,0)
z.C = point: new(1.5,3)
@@ -1485,7 +1525,7 @@ Given a point $P$, the pedal triangle of $P$ is the triangle whose polygon verti
C.pedal = T.ABC : pedal_circle (z.O)
z.w = C.pedal.center
z.T = C.pedal.through
- \end{tkzelements}
+ }
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -1510,7 +1550,8 @@ In plane geometry, Conway's circle theorem states that when the sides meeting at
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.A = point:new (0,0)
z.C = point:new (5,0)
z.B = point:new (1,3)
@@ -1519,7 +1560,7 @@ In plane geometry, Conway's circle theorem states that when the sides meeting at
z.w,z.t = get_points(C.conway)
z.t1,z.t2,z.t3,z.t4,
z.t5,z.t6= T.ABC : conway_points ()
- \end{tkzelements}
+ }
\hspace*{5cm}
\begin{tikzpicture}
\tkzGetNodes
@@ -1536,7 +1577,8 @@ In plane geometry, Conway's circle theorem states that when the sides meeting at
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale = .5
z.A = point:new (0,0)
z.C = point:new (5,0)
@@ -1546,7 +1588,7 @@ In plane geometry, Conway's circle theorem states that when the sides meeting at
z.w,z.t = get_points(C.conway)
z.t1,z.t2,z.t3,
z.t4,z.t5,z.t6= T.ABC : conway_points ()
- \end{tkzelements}
+ }
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -1568,7 +1610,8 @@ In plane geometry, Conway's circle theorem states that when the sides meeting at
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point: new (1,1)
z.B = point: new (6,0)
@@ -1576,8 +1619,8 @@ In plane geometry, Conway's circle theorem states that when the sides meeting at
T = triangle: new(z.A,z.B,z.C)
C.bevan = T : bevan_circle ()
z.c,z.t = get_points (C.bevan)
- -- or z.c = T : bevan_point ()
-\end{tkzelements}
+ % or z.c = T : bevan_point ()
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C)
@@ -1589,7 +1632,8 @@ In plane geometry, Conway's circle theorem states that when the sides meeting at
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale =.5
z.A = point: new (1,1)
z.B = point: new (6,0)
@@ -1597,8 +1641,7 @@ In plane geometry, Conway's circle theorem states that when the sides meeting at
T = triangle: new(z.A,z.B,z.C)
C.bevan = T : bevan_circle ()
z.c,z.t = get_points (C.bevan)
- -- or z.c = T : bevan_point ()
- \end{tkzelements}
+ }
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -1631,7 +1674,8 @@ The exinscribed circles of a triangle are tangent to the circle of the nine poin
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .8
z.A = point: new (0,0)
z.B = point: new (6,0)
@@ -1643,7 +1687,7 @@ The exinscribed circles of a triangle are tangent to the circle of the nine poin
z.Ja,z.Jb,z.Jc = get_points ( T.ABC : excentral () )
z.I = T.ABC.incenter
z.Ia,z.Ib,z.Ic = get_points (T.ABC : intouch ())
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(Ja,Jb,Jc)
@@ -1660,7 +1704,8 @@ The exinscribed circles of a triangle are tangent to the circle of the nine poin
\end{minipage}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .7
z.A = point: new (0,0)
z.B = point: new (6,0)
@@ -1672,7 +1717,7 @@ The exinscribed circles of a triangle are tangent to the circle of the nine poin
z.Ja,z.Jb,z.Jc = get_points ( T.ABC : excentral () )
z.I = T.ABC.incenter
z.Ia,z.Ib,z.Ic = get_points (T.ABC : intouch ())
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -1698,7 +1743,8 @@ The \code{similar} method creates a new triangle whose sides are parallel to the
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale =.5
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -1707,7 +1753,7 @@ The \code{similar} method creates a new triangle whose sides are parallel to the
z.X,z.Y,z.Z = get_points ( T.ABC : similar ())
z.H_a,z.H_b,
z.H_c = get_points (T.ABC : orthic ())
- \end{tkzelements}
+ }
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C X,Y,Z)
@@ -1719,7 +1765,8 @@ The \code{similar} method creates a new triangle whose sides are parallel to the
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale =.5
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -1728,7 +1775,7 @@ The \code{similar} method creates a new triangle whose sides are parallel to the
z.X,z.Y,z.Z = get_points ( T.ABC : similar ())
z.H_a,z.H_b,
z.H_c = get_points (T.ABC : orthic ())
- \end{tkzelements}
+ }
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
@@ -1752,7 +1799,8 @@ The triangle $MaMbMc$ formed by joining the midpoints of the sides of a triangle
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale = 1.25
z.A = point: new (0,1)
z.B = point: new (6,0)
@@ -1762,7 +1810,7 @@ The triangle $MaMbMc$ formed by joining the midpoints of the sides of a triangle
z.Ma,z.Mb,z.Mc= get_points (T.med)
z.G = T.centroid
z.O = T.circumcenter
- \end{tkzelements}
+ }
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C)
@@ -1780,7 +1828,8 @@ The triangle $MaMbMc$ formed by joining the midpoints of the sides of a triangle
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale = 1.25
z.A = point: new (0,1)
z.B = point: new (6,0)
@@ -1790,7 +1839,7 @@ The triangle $MaMbMc$ formed by joining the midpoints of the sides of a triangle
z.Ma,z.Mb,z.Mc= get_points (T.med)
z.G = T.centroid
z.O = T.circumcenter
- \end{tkzelements}
+ }
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -1822,7 +1871,8 @@ The incentral triangle $IaIbIc$ is the Cevian triangle of a triangle $ABC$ with
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
z.C = point: new (1 , 4)
@@ -1832,7 +1882,7 @@ The incentral triangle $IaIbIc$ is the Cevian triangle of a triangle $ABC$ with
z.Ic = get_points (T.ABC : incentral ())
z.Ta,z.Tb,
z.Tc = get_points (T.ABC : intouch ())
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -1847,7 +1897,8 @@ The incentral triangle $IaIbIc$ is the Cevian triangle of a triangle $ABC$ with
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
z.C = point: new (1 , 4)
@@ -1857,7 +1908,7 @@ The incentral triangle $IaIbIc$ is the Cevian triangle of a triangle $ABC$ with
z.Ic = get_points (T.ABC : incentral ())
z.Ta,z.Tb,
z.Tc = get_points (T.ABC : intouch ())
- \end{tkzelements}
+ }
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -1888,7 +1939,8 @@ The sides of an orthic triangle are parallel to the tangents to the circumcircle
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point: new (0,0)
z.B = point: new (5,0)
@@ -1904,7 +1956,7 @@ The sides of an orthic triangle are parallel to the tangents to the circumcircle
z.Ta,
z.Tb,
z.Tc = get_points (T : tangential ())
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons[red](A,B,C Ta,Tb,Tc)
@@ -1922,7 +1974,8 @@ The sides of an orthic triangle are parallel to the tangents to the circumcircle
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point: new (0,0)
z.B = point: new (5,0)
@@ -1938,7 +1991,7 @@ The sides of an orthic triangle are parallel to the tangents to the circumcircle
z.Ta,
z.Tb,
z.Tc = get_points (T : tangential ())
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1981,7 +2034,8 @@ In the next example, $L$ is the \code{Lemoine point} or the \code{Symmedian poin
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 2
z.A = point : new (0,0)
z.B = point : new (7,0)
@@ -1996,9 +2050,9 @@ In the next example, $L$ is the \code{Lemoine point} or the \code{Symmedian poin
_,z.Kb = get_points(L.Kb)
z.G = T.ABC.centroid
z.Ia,z.Ib,z.Ic = get_points ( T.ABC : incentral ())
- -- z.T = T.ABC : trilinear (0,1,1)
+ % z.T = T.ABC : trilinear (0,1,1)
z.I = T.ABC.incenter
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C)
@@ -2014,7 +2068,8 @@ In the next example, $L$ is the \code{Lemoine point} or the \code{Symmedian poin
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 2
z.A = point : new (0,0)
z.B = point : new (7,0)
@@ -2029,9 +2084,8 @@ In the next example, $L$ is the \code{Lemoine point} or the \code{Symmedian poin
_,z.Kb = get_points(L.Kb)
z.G = T.ABC.centroid
z.Ia,z.Ib,z.Ic = get_points ( T.ABC : incentral ())
- -- z.T = T.ABC : trilinear (0,1,1)
z.I = T.ABC.incenter
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -2059,7 +2113,8 @@ The anticomplementary triangle is the triangle $TaTbTc$ which has a given triang
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .6
z.A = point: new (0,0)
z.B = point: new (5,0)
@@ -2069,7 +2124,7 @@ The anticomplementary triangle is the triangle $TaTbTc$ which has a given triang
z.Ta,
z.Tb,
z.Tc = get_points (T.similar)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons[red](A,B,C)
@@ -2081,7 +2136,8 @@ The anticomplementary triangle is the triangle $TaTbTc$ which has a given triang
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .6
z.A = point: new (0,0)
z.B = point: new (5,0)
@@ -2091,7 +2147,7 @@ The anticomplementary triangle is the triangle $TaTbTc$ which has a given triang
z.Ta,
z.Tb,
z.Tc = get_points (T.similar)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -2116,7 +2172,8 @@ The line on which the orthocenter $H$, triangle centroid $G$, circumcenter $O$,
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
z.C = point: new (1.5 , 3.5)
@@ -2127,7 +2184,7 @@ The line on which the orthocenter $H$, triangle centroid $G$, circumcenter $O$,
z.H = T.ABC.orthocenter
z.P,z.Q,z.R = get_points (T.ABC: orthic())
z.K,z.I,z.J = get_points (T.ABC: medial ())
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines[blue](O,H)
@@ -2143,7 +2200,8 @@ The line on which the orthocenter $H$, triangle centroid $G$, circumcenter $O$,
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
z.C = point: new (1.5 , 3.5)
@@ -2154,7 +2212,7 @@ The line on which the orthocenter $H$, triangle centroid $G$, circumcenter $O$,
z.H = T.ABC. orthocenter
z.P,z.Q,z.R = get_points (T.ABC: orthic())
z.K,z.I,z.J = get_points (T.ABC: medial ())
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -2174,13 +2232,14 @@ The line on which the orthocenter $H$, triangle centroid $G$, circumcenter $O$,
\end{minipage}
% subsubsection euler_line (end)
-\subsection{Euler ellipse} % (fold)
-\label{sub:euler_ellipse}
+\subsubsection{Euler ellipse} % (fold)
+\label{ssub:euler_ellipse}
The Euler ellipse is a conic, tangent to the three sides of a triangle, with the orthocentre and the centre of the circumscribed circle as foci.
Example of obtaining the Euler circle as well as the Euler ellipse.
\vspace{6pt}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (2,3.8)
z.B = point: new (0 ,0)
z.C = point: new (6.2 ,0)
@@ -2194,11 +2253,12 @@ ang = math.deg(E.euler.slope)
z.O = T.ABC.circumcenter
z.G = T.ABC.centroid
z.H = T.ABC.orthocenter
-\end{tkzelements}
+}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (2,3.8)
z.B = point: new (0 ,0)
z.C = point: new (6.2 ,0)
@@ -2212,7 +2272,7 @@ ang = math.deg(E.euler.slope)
z.O = T.ABC.circumcenter
z.G = T.ABC.centroid
z.H = T.ABC.orthocenter
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
@@ -2242,7 +2302,7 @@ z.H = T.ABC.orthocenter
\tkzLabelPoints[above](A)
\end{tikzpicture}
\end{Verbatim}
-% subsection euler_ellipse (end)
+% subsubsection euler_ellipse (end)
\subsubsection{Steiner inellipse and circumellipse} % (fold)
\label{ssub:steiner_inellipse_and_circumellipse}
@@ -2251,7 +2311,8 @@ In this example, the inner and outer Steiner ellipses, referred to as the "inell
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point: new (1 , 4)
z.B = point: new (11 , 1)
@@ -2270,10 +2331,11 @@ In this example, the inner and outer Steiner ellipses, referred to as the "inell
L.T1,L.T2= E : tangent_from (z.M)
z.T1 = L.T1.pb
z.T2 = L.T2.pb
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
-\begin{minipage}{.5\textwidth}\begin{tkzelements}
+\begin{minipage}{.5\textwidth}\directlua{%
+init_elements ()
scale = .5
z.A = point: new (1 , 4)
z.B = point: new (11 , 1)
@@ -2292,7 +2354,7 @@ z.M = C : point (0)
L.T1,L.T2= E : tangent_from (z.M)
z.T1 = L.T1.pb
z.T2 = L.T2.pb
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -2329,8 +2391,8 @@ z.T2 = L.T2.pb
% subsubsection steiner_inellipse_and_circumellipse (end)
-\subsection{Harmonic division and bisector} % (fold)
-\label{sub:harmonic_division_and_bisector}
+\subsubsection{Harmonic division and bisector} % (fold)
+\label{ssub:harmonic_division_and_bisector}
Let four points $A$, $C$, $B$ and $D$, in this order, lying on the straight line $(d)$ and $M$ un point pris hors de $(d)$. Then, if two of the following three propositions are true, then the third is also true:
\begin{enumerate}
@@ -2342,7 +2404,8 @@ Let four points $A$, $C$, $B$ and $D$, in this order, lying on the straight line
\vspace{6pt}
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .4
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -2361,11 +2424,12 @@ Let four points $A$, $C$, $B$ and $D$, in this order, lying on the straight line
L.MD = line: new (z.M,z.D)
z.E = intersection (L.LL,L.MC)
z.F = intersection (L.LL,L.MD)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale =.4
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -2384,7 +2448,7 @@ Let four points $A$, $C$, $B$ and $D$, in this order, lying on the straight line
L.MD = line: new (z.M,z.D)
z.E = intersection (L.LL,L.MC)
z.F = intersection (L.LL,L.MD)
-\end{tkzelements}
+}
\hspace{\fill}
\begin{tikzpicture}
\tkzGetNodes
@@ -2418,7 +2482,7 @@ Let four points $A$, $C$, $B$ and $D$, in this order, lying on the straight line
\tkzMarkSegments(B,E B,M B,F)
\end{tikzpicture}
\end{Verbatim}
-% subsection harmonic_division_and_bisector (end)
+% subsubsection harmonic_division_and_bisector (end)
%
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
index ed1ea77183..f5e1e3a430 100644
--- 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
@@ -25,8 +25,8 @@ 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.head -- we recover the final point (head)
+V.AE = V.AB + V.CD % possible V.AB : add (V.CD)
+z.E = V.AE.head % we recover the final point (head)
\end{Verbatim}
\subsection{Attributes of a vector} % (fold)
@@ -56,7 +56,8 @@ z.E = V.AE.head -- we recover the final point (head)
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point: new (0,0)
z.A = point: new (0,1)
z.B = point: new (3,4)
@@ -67,7 +68,7 @@ z.E = V.AE.head -- we recover the final point (head)
v = vector : new (z.C,z.D)
w =u+v
z.E = w.head
-\end{tkzelements}
+}
\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzLabelPoints(A,B,C,D,O,E)
@@ -81,7 +82,8 @@ $\tkzDN{\tkzUseLua{math.deg(w.slope)}}^\circ$
\end{Verbatim}
\end{minipage}
\begin{minipage}{.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point: new (0,0)
z.A = point: new (0,1)
z.B = point: new (3,4)
@@ -92,7 +94,7 @@ $\tkzDN{\tkzUseLua{math.deg(w.slope)}}^\circ$
v = vector : new (z.C,z.D)
w = u+v
z.E = w.head
-\end{tkzelements}
+}
\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzLabelPoints(A,B,C,D,O,E)
@@ -139,7 +141,9 @@ $\tkzDN{\tkzUseLua{math.deg(w.slope)}}^\circ$
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
+scale = .75
z.O = point: new (0,0)
z.A = point: new (0,1)
z.B = point: new (3,4)
@@ -156,7 +160,7 @@ $\tkzDN{\tkzUseLua{math.deg(w.slope)}}^\circ$
z.X = V.AX.head
V.OY = V.AX : at (z.O)
z.Y = V.OY.head
-\end{tkzelements}
+}
\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzDrawSegments[>=stealth,->,red](A,B A,C A,D A,N A,R A,X O,Y)
@@ -165,7 +169,9 @@ $\tkzDN{\tkzUseLua{math.deg(w.slope)}}^\circ$
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
+scale = .75
z.O = point: new (0,0)
z.A = point: new (0,1)
z.B = point: new (3,4)
@@ -182,7 +188,7 @@ $\tkzDN{\tkzUseLua{math.deg(w.slope)}}^\circ$
z.X = V.AX.head
V.OY = V.AX : at (z.O)
z.Y = V.OY.head
-\end{tkzelements}
+}
\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzDrawSegments[>=stealth,->,red](A,B A,C A,D A,N A,R A,X O,Y)
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes.tex
index 1228c60e08..3b7e1db188 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-classes.tex
@@ -41,20 +41,22 @@ A method is an operation (function or procedure) associated (linked) with an obj
Example: The point object is used to vertically determine a new point object located at a certain distance from it (here 2). Then it is possible to rotate objects around it.
\begin{Verbatim}
- \begin{tkzelements}
+\directlua{
+ init_elements ()
z.A = point (1,0)
z.B = z.A : north (2)
z.C = z.A : rotation (math.pi/3,z.B)
tex.print(tostring(z.C))
- \end{tkzelements}
+}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{
+ init_elements ()
z.A = point (1,0)
z.B = z.A : north (2)
z.C = z.A : rotation (math.pi/3,z.B)
tex.print(tostring("The coordinates of $C$ are: " .. z.C.re .." and "..z.C.im))
-\end{tkzelements}
+}
% subsubsection methods (end)
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-convention.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-convention.tex
index 70b61fb902..49afe50798 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-convention.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-convention.tex
@@ -14,7 +14,7 @@
|if bool == ... then ... else ... end|
\end{mybox}
- and outside the environment \tkzNameEnv{tkzelements} you can use the macro
+ and you can use the macro
\begin{mybox}
|\ifthenelse{\equal{\tkzUseLua{bool}}{true}}{ ... }{ ... }|
\end{mybox}
@@ -34,7 +34,7 @@
At present, the only obligation is to store the points in the table |z| \footnote{To place the point M in the table, simply write |z.M| = \ldots or |z["M"]|= \ldots} if you intend to use them in \TIKZ\ or \pkg{tkz-euclide}. f a point will not be used, you can designate it as you wish while adhering to Lua conventions.
- Points within the \tkzNameEnv{tkzelements} environment must follow a convention in the form |z.name|, where |name| represents the name of the corresponding \tkzname{node}.
+ Points in the lua code must follow a convention in the form |z.name|, where |name| represents the name of the corresponding \tkzname{node}.
As for the conventions for designating |name| you must adhere to Lua conventions in particular cases.
\begin{enumerate}
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 284ecca8eb..bb5d40e372 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
@@ -10,7 +10,8 @@ Use of |north and east| functions linked to points, to transfer lengths, Refer t
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point : new ( 0 , 0 )
z.B = point : new ( 3 , 0 )
@@ -21,7 +22,7 @@ Use of |north and east| functions linked to points, to transfer lengths, Refer t
z.E = z.B: east (L.AB.length)
z.M = L.AB.mid
z.F = z.E : north (length(z.C,z.M))
-\end{tkzelements}
+}
\begin{tikzpicture}[gridded]
\tkzGetNodes
\tkzDrawPolygons(A,B,C)
@@ -33,7 +34,8 @@ Use of |north and east| functions linked to points, to transfer lengths, Refer t
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point : new ( 0 , 0 )
z.B = point : new ( 3 , 0 )
@@ -44,7 +46,7 @@ Use of |north and east| functions linked to points, to transfer lengths, Refer t
z.E = z.B: east (L.AB.length)
z.M = L.AB.mid
z.F = z.E : north (length(z.C,z.M))
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}[gridded]
@@ -66,7 +68,8 @@ Use of |north and east| functions linked to points, to transfer lengths, Refer t
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (0,0)
z.a = point : new (4,0)
z.B = point : new (7,-1)
@@ -82,7 +85,7 @@ Use of |north and east| functions linked to points, to transfer lengths, Refer t
z.Ip = C.Aa : internal_similitude (C.Bb)
z.Jp = C.Aa : internal_similitude (C.Cc)
z.Kp = C.Cc : internal_similitude (C.Bb)
-\end{tkzelements}
+}
\begin{tikzpicture}[rotate=-60]
\tkzGetNodes
\tkzDrawCircles(A,a B,b C,c)
@@ -94,7 +97,8 @@ Use of |north and east| functions linked to points, to transfer lengths, Refer t
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point : new (0,0)
z.a = point : new (4,0)
@@ -111,7 +115,7 @@ z.K = C.Cc : external_similitude (C.Bb)
z.Ip = C.Aa : internal_similitude (C.Bb)
z.Jp = C.Aa : internal_similitude (C.Cc)
z.Kp = C.Cc : internal_similitude (C.Bb)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}[rotate=30]
@@ -132,7 +136,8 @@ z.Kp = C.Cc : internal_similitude (C.Bb)
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point : new (0,0)
z.a = point : new (5,0)
@@ -146,7 +151,7 @@ z.Kp = C.Cc : internal_similitude (C.Bb)
z.i,z.j = get_points (C.Aa : radical_axis (C.Bb))
z.k,z.l = get_points (C.Aa : radical_axis (C.Cc))
z.m,z.n = get_points (C.Bb : radical_axis (C.Cc))
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(A,a B,b C,c)
@@ -155,7 +160,8 @@ z.Kp = C.Cc : internal_similitude (C.Bb)
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point : new (0,0)
z.a = point : new (5,0)
@@ -169,7 +175,7 @@ z.Kp = C.Cc : internal_similitude (C.Bb)
z.i,z.j = get_points (C.Aa : radical_axis (C.Bb))
z.k,z.l = get_points (C.Aa : radical_axis (C.Cc))
z.m,z.n = get_points (C.Bb : radical_axis (C.Cc))
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -187,7 +193,8 @@ z.Kp = C.Cc : internal_similitude (C.Bb)
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.P = point : new (0,0)
z.Q = point : new (5,0)
z.I = point : new (3,2)
@@ -202,7 +209,7 @@ z.Kp = C.Cc : internal_similitude (C.Bb)
L.AF = line : new (z.A,z.F)
L.CQ = line : new (z.C,z.Q)
z.D = intersection (L.AF,L.CQ)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(P,E Q,E)
@@ -215,7 +222,8 @@ z.Kp = C.Cc : internal_similitude (C.Bb)
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale =.5
z.P = point : new (0,0)
z.Q = point : new (5,0)
@@ -231,7 +239,7 @@ z.Kp = C.Cc : internal_similitude (C.Bb)
L.AF = line : new (z.A,z.F)
L.CQ = line : new (z.C,z.Q)
z.D = intersection (L.AF,L.CQ)
- \end{tkzelements}
+ }
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -251,7 +259,8 @@ z.Kp = C.Cc : internal_similitude (C.Bb)
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.25
z.A = point: new (1,0)
z.B = point: new (5,2)
@@ -265,7 +274,7 @@ z.Kp = C.Cc : internal_similitude (C.Bb)
z.P = intersection (L.tA,T.bc)
z.Q = intersection (L.tB,T.ca)
z.R = intersection (L.tC,T.ab)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon[teal](A,B,C)
@@ -280,7 +289,8 @@ z.Kp = C.Cc : internal_similitude (C.Bb)
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point: new (1,0)
z.B = point: new (5,2)
@@ -294,7 +304,7 @@ L.tC = C.OA: tangent_at (z.C)
z.R = intersection (L.tC,T.ab)
z.P = intersection (L.tA,T.bc)
z.Q = intersection (L.tB,T.ca)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}[rotate=90]
@@ -318,7 +328,8 @@ z.Q = intersection (L.tB,T.ca)
\label{sub:alternate}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
z.C = point: new (1 , 5)
@@ -328,7 +339,7 @@ z.Q = intersection (L.tB,T.ca)
z.D = intersection (L.AI,T.bc)
L.LLC = T.ab: ll_from (z.C)
z.E = intersection (L.AI,L.LLC)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -345,7 +356,8 @@ z.Q = intersection (L.tB,T.ca)
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
z.C = point: new (1 , 5)
@@ -355,7 +367,7 @@ L.AI = line: new (z.A,z.I)
z.D = intersection (L.AI,T.bc)
L.LLC = T.ab: ll_from (z.C)
z.E = intersection (L.AI,L.LLC)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -379,7 +391,8 @@ z.E = intersection (L.AI,L.LLC)
For two circles to be orthogonal, it is necessary and sufficient for a secant passing through one of their common points to be seen from the other common point at a right angle.
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 2 )
L.AB = line : new ( z.A , z.B )
@@ -396,7 +409,7 @@ For two circles to be orthogonal, it is necessary and sufficient for a secant
L.mm = L.TTp : ll_from (z.C)
_,z.M = intersection (L.mm, C.AC)
z.Mp = intersection (L.mm, C.BC)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -410,7 +423,8 @@ For two circles to be orthogonal, it is necessary and sufficient for a secant
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 2 )
L.AB = line : new ( z.A , z.B )
@@ -427,7 +441,7 @@ z.Mp = intersection (L.MC, C.BC)
L.mm = L.TTp : ll_from (z.C)
_,z.M = intersection (L.mm, C.AC)
z.Mp = intersection (L.mm, C.BC)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -447,7 +461,8 @@ z.Mp = intersection (L.mm, C.BC)
\subsection{Apollonius circle} % (fold)
\label{sub:apollonius_circle}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=.75
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -461,11 +476,12 @@ scale=.75
z.O = L.CD.mid
L.AM = T.MAB.ab
z.E = z.M : symmetry (z.A)
-\end{tkzelements}
+}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=.75
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -479,7 +495,7 @@ scale=.75
z.O = L.CD.mid
L.AM = T.MAB.ab
z.E = z.M : symmetry (z.A)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
@@ -536,7 +552,8 @@ Remark : The circle can be obtained with:
\label{sub:apollonius_and_circle_circumscribed}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale =.75
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -554,7 +571,7 @@ Remark : The circle can be obtained with:
C.GA = circle: new (z.G,z.A)
C.OC = circle: new (z.O,z.C)
_,z.N = intersection (C.GA , C.OC)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,M)
@@ -570,7 +587,8 @@ Remark : The circle can be obtained with:
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale =.75
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -588,7 +606,7 @@ Remark : The circle can be obtained with:
C.GA = circle: new (z.G,z.A)
C.OC = circle: new (z.O,z.C)
_,z.N = intersection (C.GA , C.OC)
-\end{tkzelements}
+}
\begin{center}
@@ -614,7 +632,8 @@ Remark : The circle can be obtained with:
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
z.C = point: new (4.5 , 1)
@@ -642,7 +661,7 @@ Remark : The circle can be obtained with:
z.T = intersection (L.Bz,T.ABC.ca)
L.Bpt = line: new (z.Bp,z.T)
z.O3 = L.Bpt.mid
-\end{tkzelements}
+}
\end{Verbatim}
\begin{Verbatim}
\begin{tikzpicture}
@@ -658,7 +677,8 @@ Remark : The circle can be obtained with:
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
z.C = point: new (4.5 , 1)
@@ -686,7 +706,7 @@ L.Bz = line: new (z.B,z.z)
z.T = intersection (L.Bz,T.ABC.ca)
L.Bpt = line: new (z.Bp,z.T)
z.O3 = L.Bpt.mid
-\end{tkzelements}
+}
\begin{center}
@@ -708,7 +728,8 @@ z.O3 = L.Bpt.mid
Same result using the function |T.ABC.ab : apollonius (k) |
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale = .75
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -721,7 +742,7 @@ Same result using the function |T.ABC.ab : apollonius (k) |
z.w2,z.t2 = 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}
% subsection apollonius_circles (end)
@@ -731,7 +752,8 @@ Same result using the function |T.ABC.ab : apollonius (k) |
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O_1 = point: new (0, 0)
z.O_2 = point: new (0, 1)
z.A = point: new (0, 3)
@@ -744,7 +766,7 @@ Same result using the function |T.ABC.ab : apollonius (k) |
L = line: new (z.x,z.O_2)
C = circle: new (z.O_2,z.A)
z.C,z.D = intersection (L ,C)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O_1,A O_2,A)
@@ -756,7 +778,8 @@ Same result using the function |T.ABC.ab : apollonius (k) |
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O_1 = point: new (0, 0)
z.O_2 = point: new (0, 1)
z.A = point: new (0, 3)
@@ -769,7 +792,7 @@ Same result using the function |T.ABC.ab : apollonius (k) |
L = line: new (z.x,z.O_2)
C = circle: new (z.O_2,z.A)
z.C,z.D = intersection (L ,C)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -788,7 +811,8 @@ Same result using the function |T.ABC.ab : apollonius (k) |
\subsection{Bankoff circle} % (fold)
\label{sub:bankoff_circle}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (10 , 0)
L.AB = line : new (z.A,z.B)
@@ -826,7 +850,7 @@ Same result using the function |T.ABC.ab : apollonius (k) |
z.O_4 = T.P0P1P2.circumcenter
T.CP1P2 = triangle : new (z.C,z.P_1,z.P_2)
z.O_5 = T.CP1P2.circumcenter
-\end{tkzelements}
+}
\end{Verbatim}
\begin{Verbatim}
@@ -854,7 +878,8 @@ Same result using the function |T.ABC.ab : apollonius (k) |
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.25
z.A = point: new (0 , 0)
z.B = point: new (10 , 0)
@@ -893,7 +918,7 @@ Same result using the function |T.ABC.ab : apollonius (k) |
z.O_4 = T.P0P1P2.circumcenter
T.CP1P2 = triangle : new (z.C,z.P_1,z.P_2)
z.O_5 = T.CP1P2.circumcenter
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -929,7 +954,8 @@ $L$ is the symmedian point or lemoine point. $\dfrac{CL}{CLc} = \dfrac{a^2+b^2}{
\vspace{6pt}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale = 1.5
z.A = point : new (1,2)
z.B = point : new (5,1)
@@ -942,7 +968,7 @@ $L$ is the symmedian point or lemoine point. $\dfrac{CL}{CLc} = \dfrac{a^2+b^2}{
T.ABC.b*T.ABC.b+T.ABC.c*T.ABC.c)
L.SY = line : new (z.C,z.Lc)
z.L = L.SY : point (k)
- \end{tkzelements}
+ }
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C)
@@ -959,7 +985,8 @@ $L$ is the symmedian point or lemoine point. $\dfrac{CL}{CLc} = \dfrac{a^2+b^2}{
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
scale = 1.5
z.A = point : new (1,2)
z.B = point : new (5,1)
@@ -972,7 +999,7 @@ $L$ is the symmedian point or lemoine point. $\dfrac{CL}{CLc} = \dfrac{a^2+b^2}{
T.ABC.b*T.ABC.b+T.ABC.c*T.ABC.c)
L.SY = line : new (z.C,z.Lc)
z.L = L.SY : point (k)
- \end{tkzelements}
+ }
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -997,7 +1024,8 @@ $L$ is the symmedian point or lemoine point. $\dfrac{CL}{CLc} = \dfrac{a^2+b^2}{
\label{sub:example_cevian_with_orthocenter}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.5
z.a = point: new (1,2)
z.b = point: new (5,1)
@@ -1008,7 +1036,7 @@ $L$ is the symmedian point or lemoine point. $\dfrac{CL}{CLc} = \dfrac{a^2+b^2}{
z.ta,z.tb,z.tc = get_points (T.cevian)
C.cev = T : cevian_circle (z.i)
z.w = C.cev.center
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(a,b,c ta,tb,tc)
@@ -1020,7 +1048,8 @@ $L$ is the symmedian point or lemoine point. $\dfrac{CL}{CLc} = \dfrac{a^2+b^2}{
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.5
z.a = point: new (1,2)
z.b = point: new (5,1)
@@ -1031,7 +1060,7 @@ T.cevian = T : cevian (z.i)
z.ta,z.tb,z.tc = get_points (T.cevian)
C.cev = T : cevian_circle (z.i)
z.w = C.cev.center
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -1050,7 +1079,8 @@ z.w = C.cev.center
\label{sub:excircles}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 0.7
z.A = point: new (0,0)
z.B = point: new (6,0)
@@ -1062,7 +1092,7 @@ z.w = C.cev.center
la = line: new ( z.A, z.T_a)
lb = line: new ( z.B, z.T_b)
z.G = intersection (la,lb)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints[new](J_a,J_b,J_c)
@@ -1085,7 +1115,8 @@ z.w = C.cev.center
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=0.7
z.A = point: new (0,0)
z.B = point: new (6,0)
@@ -1097,7 +1128,7 @@ z.w = C.cev.center
la = line: new ( z.A, z.T_a)
lb = line: new ( z.B, z.T_b)
z.G = intersection (la,lb)
-\end{tkzelements}
+}
\begin{center}
@@ -1131,7 +1162,8 @@ z.w = C.cev.center
\label{sub:divine_ratio}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (8 , 0)
L.AB = line: new (z.A,z.B)
@@ -1155,7 +1187,7 @@ C1 = circle: new (z.O_1,z.C)
_,z.T = intersection (L.AR,C1)
L.BG = line: new (z.B,z.G)
z.L = intersection (L.AR,L.BG)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,C,E,F A,B,G,H)
@@ -1166,7 +1198,8 @@ z.L = intersection (L.AR,L.BG)
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (8 , 0)
L.AB = line: new (z.A,z.B)
@@ -1190,7 +1223,7 @@ C1 = circle: new (z.O_1,z.C)
_,z.T = intersection (L.AR,C1)
L.BG = line: new (z.B,z.G)
z.L = intersection (L.AR,L.BG)
-\end{tkzelements}
+}
\begin{center}
@@ -1212,7 +1245,8 @@ z.L = intersection (L.AR,L.BG)
% modif C: point (0.25) instead of 2
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.O = point: new (0 , 0)
z.F1 = point: new (4 , 0)
@@ -1228,7 +1262,7 @@ z.L = intersection (L.AR,L.BG)
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)
@@ -1244,7 +1278,8 @@ z.L = intersection (L.AR,L.BG)
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.O = point: new (0 , 0)
z.F1 = point: new (4 , 0)
@@ -1260,7 +1295,7 @@ 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{center}
@@ -1286,7 +1321,8 @@ z.K = L.K.pb
\label{sub:gold_division}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (2.5,0)
L.AB = line: new (z.A,z.B)
@@ -1302,7 +1338,7 @@ z.G = intersection (L.mediator,C.BA)
L.EG = line:new (z.E,z.G)
z.C = intersection (L.EG,L.AB)
z.O = C.AB: antipode (z.B)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawArc[delta=5](O,B)(G)
@@ -1315,7 +1351,8 @@ z.O = C.AB: antipode (z.B)
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (2.5,0)
L.AB = line: new (z.A,z.B)
@@ -1331,7 +1368,7 @@ z.G = intersection (L.mediator,C.BA)
L.EG = line:new (z.E,z.G)
z.C = intersection (L.EG,L.AB)
z.O = C.AB: antipode (z.B)
-\end{tkzelements}
+}
\begin{center}
@@ -1354,7 +1391,8 @@ z.O = C.AB: antipode (z.B)
\label{sub:ellipse}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.C = point: new (3 , 2)
z.A = point: new (5 , 1)
L.CA = line : new (z.C,z.A)
@@ -1365,7 +1403,7 @@ z.O = C.AB: antipode (z.B)
a = E.Rx
b = E.Ry
slope = math.deg(E.slope)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles[teal](C,A)
@@ -1376,7 +1414,8 @@ z.O = C.AB: antipode (z.B)
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.C = point: new (3 , 2)
z.A = point: new (5 , 1)
L.CA = line : new (z.C,z.A)
@@ -1387,7 +1426,7 @@ E = ellipse: new (z.C,z.A,z.B)
a = E.Rx
b = E.Ry
slope = math.deg(E.slope)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1407,7 +1446,8 @@ slope = math.deg(E.slope)
\label{sub:ellipse_with_radii}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=.5
z.C = point: new (0 , 4)
b = value(math.sqrt(8))
@@ -1416,7 +1456,7 @@ 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},
@@ -1426,7 +1466,8 @@ z.CoV = E : point (math.pi/2)
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=.5
z.C = point: new (0 , 4)
b = value(math.sqrt(8))
@@ -1435,7 +1476,7 @@ 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{center}
@@ -1453,7 +1494,8 @@ z.CoV = E : point (math.pi/2)
\label{sub:ellipse_with_foci}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
local e
e = .8
z.A = point: new (2 , 3)
@@ -1471,7 +1513,7 @@ z.CoV = E : point (math.pi/2)
L.ta,L.tb = E: tangent_from (z.K)
z.F = L.ta.pb
z.G = L.tb.pb
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(A,B,C,K,F,G,V,cV)
@@ -1482,7 +1524,8 @@ z.CoV = E : point (math.pi/2)
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
local e
e = .8
z.A = point: new (2 , 3)
@@ -1500,7 +1543,7 @@ ang = math.deg(E.slope)
L.ta,L.tb = E: tangent_from (z.K)
z.F = L.ta.pb
z.G = L.tb.pb
-\end{tkzelements}
+}
\begin{center}
@@ -1521,7 +1564,8 @@ z.G = L.tb.pb
\label{sub:euler_relation}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point: new (0 , 0)
z.B = point: new (5 , 0)
@@ -1536,7 +1580,7 @@ z.G = L.tb.pb
z.w = T.IBA.circumcenter
L.Ow = line : new (z.O,z.w)
_,z.E = intersection (L.Ow, C.OA)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawArc(J,X)(Y)
@@ -1551,7 +1595,8 @@ z.G = L.tb.pb
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (5 , 0)
z.C = point: new (-.4 , 4)
@@ -1565,7 +1610,7 @@ 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{center}
\begin{tikzpicture}
@@ -1589,7 +1634,8 @@ _,z.E = intersection (L.Ow, C.OA)
\label{sub:external_angle}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point: new (0 , 0)
z.B = point: new (5 , 0)
@@ -1599,7 +1645,7 @@ _,z.E = intersection (L.Ow, C.OA)
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)
@@ -1615,7 +1661,8 @@ _,z.E = intersection (L.Ow, C.OA)
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point: new (0 , 0)
z.B = point: new (5 , 0)
@@ -1625,7 +1672,7 @@ 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{center}
@@ -1651,7 +1698,8 @@ z.E = z.C: symmetry (z.B)
\label{sub:internal_angle}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .8
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -1663,7 +1711,7 @@ z.E = z.C: symmetry (z.B)
L.LL = T.ab: ll_from (z.C)
L.AD = line: new (z.A,z.D)
z.E = intersection (L.LL,L.AD)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -1679,7 +1727,8 @@ z.E = z.C: symmetry (z.B)
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale =.8
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -1691,7 +1740,7 @@ z.D = intersection (L.AI, T.bc)
L.LL = T.ab: ll_from (z.C)
L.AD = line: new (z.A,z.D)
z.E = intersection (L.LL,L.AD)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1715,7 +1764,8 @@ z.E = intersection (L.LL,L.AD)
\label{sub:nine_points}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.5
z.A = point: new (0 , 0)
z.B = point: new (5 , -.5)
@@ -1740,8 +1790,8 @@ z.E = intersection (L.LL,L.AD)
z.P = L.CU: projection (z.A)
z.Q = L.CU: projection (z.B)
L.LH = line: new (z.L,z.H)
- z.F = intersection (L.LH,C.IH) -- feuerbach
-\end{tkzelements}
+ z.F = intersection (L.LH,C.IH) % feuerbach
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -1757,7 +1807,8 @@ z.E = intersection (L.LL,L.AD)
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1
z.A = point: new (0 , 0)
z.B = point: new (5 , -.5)
@@ -1780,8 +1831,8 @@ L.ML = line: new (z.M,z.L)
z.P = L.CU: projection (z.A)
z.Q = L.CU: projection (z.B)
L.LH = line: new (z.L,z.H)
-z.F = intersection (L.LH,C.IH) -- feuerbach
-\end{tkzelements}
+z.F = intersection (L.LH,C.IH) % feuerbach
+}
\begin{center}
\begin{tikzpicture}[rotate=90]
@@ -1804,7 +1855,8 @@ z.F = intersection (L.LH,C.IH) -- feuerbach
\label{sub:gold_ratio_with_segment}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (8 , 0)
L.AB = line: new (z.A,z.B)
@@ -1815,7 +1867,7 @@ z.F = intersection (L.LH,C.IH) -- feuerbach
_,z.K = intersection (L.BX,C.MA)
L.AK = line: new (z.Y,z.K)
z.C = intersection (L.AK,L.AB)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines(A,B X,K)
@@ -1827,7 +1879,8 @@ z.F = intersection (L.LH,C.IH) -- feuerbach
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point: new (0 , 0)
z.B = point: new (8 , 0)
@@ -1839,7 +1892,7 @@ C.MA = circle: new (z.M,z.A)
_,z.K = intersection (L.BX,C.MA)
L.AK = line: new (z.Y,z.K)
z.C = intersection (L.AK,L.AB)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1859,7 +1912,8 @@ z.C = intersection (L.AK,L.AB)
\label{sub:gold_arbelos}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .6
z.A = point: new (0 , 0)
z.C = point: new (6 , 0)
@@ -1872,7 +1926,7 @@ z.C = intersection (L.AK,L.AB)
z.O_2 = L.CB.mid
L.AB = line: new (z.A,z.B)
z.O_0 = L.AB.mid
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O_1,C O_2,B O_0,B)
@@ -1882,7 +1936,8 @@ z.C = intersection (L.AK,L.AB)
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .4
z.A = point: new (0 , 0)
z.C = point: new (6 , 0)
@@ -1895,7 +1950,7 @@ L.CB = line: new (z.C,z.B)
z.O_2 = L.CB.mid
L.AB = line: new (z.A,z.B)
z.O_0 = L.AB.mid
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1913,7 +1968,8 @@ z.O_0 = L.AB.mid
\label{sub:harmonic_division_v1}
\begin{minipage}[t]{.4\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=.75
z.A = point: new (0 , 0)
z.B = point: new (4 , 0)
@@ -1926,7 +1982,7 @@ z.O_0 = L.AB.mid
z.F = z.B : symmetry (z.E)
L.GF = line :new (z.G,z.F)
z.C = intersection (L.GF,L.AB)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines(A,B A,G A,D A,G F,E G,F G,D)
@@ -1937,7 +1993,8 @@ z.O_0 = L.AB.mid
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.6\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=.75
z.A = point: new (0 , 0)
z.B = point: new (4 , 0)
@@ -1950,7 +2007,7 @@ z.O_0 = L.AB.mid
z.F = z.B : symmetry (z.E)
L.GF = line :new (z.G,z.F)
z.C = intersection (L.GF,L.AB)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -1968,7 +2025,8 @@ z.O_0 = L.AB.mid
\label{sub:harmonic_division_v2}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -1985,7 +2043,7 @@ L.BF = line: new (z.B,z.F)
z.G = intersection (L.AE,L.BF)
L.GX = line: new (z.G,z.X)
z.C = intersection (L.GX,L.AB)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines(A,D A,E B,F D,F X,A X,B X,C)
@@ -1995,7 +2053,8 @@ z.C = intersection (L.GX,L.AB)
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -2012,7 +2071,7 @@ L.BF = line: new (z.B,z.F)
z.G = intersection (L.AE,L.BF)
L.GX = line: new (z.G,z.X)
z.C = intersection (L.GX,L.AB)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -2030,7 +2089,8 @@ z.C = intersection (L.GX,L.AB)
\label{sub:menelaus}
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
z.C = point: new (5 , 4)
@@ -2041,7 +2101,7 @@ z.C = intersection (L.GX,L.AB)
L.BC = line: new (z.B,z.C)
z.Q = intersection (L.AC,L.PX)
z.R = intersection (L.BC,L.PX)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
@@ -2053,7 +2113,8 @@ z.C = intersection (L.GX,L.AB)
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
z.C = point: new (5 , 4)
@@ -2064,7 +2125,7 @@ L.PX = line: new (z.P,z.X)
L.BC = line: new (z.B,z.C)
z.Q = intersection (L.AC,L.PX)
z.R = intersection (L.BC,L.PX)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -2084,7 +2145,8 @@ z.R = intersection (L.BC,L.PX)
\subsection{Euler ellipse} % (fold)
\label{sub:hexagram}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale =1.3
z.A = point: new (0 , 0)
z.B = point: new (5 , 1)
@@ -2120,11 +2182,12 @@ z.x = intersection (L.BC,L.XO)
z.U = intersection (L.XO,E)
_,z.V = intersection (L.YO,E)
_,z.W = intersection (L.ZO,E)
-\end{tkzelements}
+}
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.3
z.A = point: new (0 , 0)
z.B = point: new (5 , 1)
@@ -2163,7 +2226,7 @@ _,z.W = intersection (L.ZO,E)
z.U = intersection (L.XO,E)
_,z.V = intersection (L.YO,E)
_,z.W = intersection (L.ZO,E)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
@@ -2207,7 +2270,8 @@ _,z.W = intersection (L.ZO,E)
\subsection{Gold Arbelos properties} % (fold)
\label{sub:gold_arbelos_properties}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .7
z.A = point : new(0,0)
z.B = point : new(10,0)
@@ -2244,11 +2308,12 @@ z.R ,z.S = L.UV : projection (z.O_2,z.O_3)
L.O1D = line : new (z.O_1,z.D)
z.W = intersection (L.UV,L.O1D)
z.O = C.DC : inversion (z.W)
-\end{tkzelements}
+}
\begin{minipage}{.4\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new(0,0)
z.B = point : new(10,0)
z.C = gold_segment_ (z.A,z.B)
@@ -2284,7 +2349,7 @@ z.O = C.DC : inversion (z.W)
L.O1D = line : new (z.O_1,z.D)
z.W = intersection (L.UV,L.O1D)
z.O = C.DC : inversion (z.W)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
@@ -2358,7 +2423,8 @@ z.O = C.DC : inversion (z.W)
\subsection{Apollonius circle v1 with inversion} % (fold)
\label{sub:apollonius_circle_v1_with_inversion}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .7
z.A = point: new (0,0)
z.B = point: new (6,0)
@@ -2375,7 +2441,7 @@ z.O = C.DC : inversion (z.W)
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}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles[red](O,xa N,Ea)
@@ -2395,7 +2461,8 @@ z.O = C.DC : inversion (z.W)
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point: new (0,0)
z.B = point: new (6,0)
@@ -2412,7 +2479,7 @@ z.O = C.DC : inversion (z.W)
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}
+}
\begin{center}
\begin{tikzpicture}
@@ -2440,7 +2507,8 @@ z.O = C.DC : inversion (z.W)
\subsection{Apollonius circle v2} % (fold)
\label{sub:apollonius_circle_v2}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point: new (0,0)
z.B = point: new (6,0)
@@ -2466,7 +2534,7 @@ z.O = C.DC : inversion (z.W)
L.ox = L.NMa: ll_from (z.o)
L.MaS = line: new (z.Ma,z.S)
z.t = intersection (L.ox,L.MaS) -- through
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -2481,7 +2549,8 @@ z.O = C.DC : inversion (z.W)
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale =.5
z.A = point: new (0,0)
z.B = point: new (6,0)
@@ -2507,7 +2576,7 @@ L.NMa = line: new (z.N,z.Ma)
L.ox = L.NMa: ll_from (z.o)
L.MaS = line: new (z.Ma,z.S)
z.t = intersection (L.ox,L.MaS) -- through
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -2530,7 +2599,8 @@ z.t = intersection (L.ox,L.MaS) -- through
\label{sub:orthogonal_circles_v2}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.O = point: new (2,2)
z.Op = point: new (-4,1)
@@ -2545,7 +2615,7 @@ z.T = L.T.pb
z.Tp = L.Tp.pb
L.OOp = line : new (z.O,z.Op)
z.M = L.OOp.mid
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle[red](O,P)
@@ -2564,7 +2634,8 @@ z.M = L.OOp.mid
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.O = point: new (2,2)
z.Op = point: new (-4,1)
@@ -2579,7 +2650,7 @@ z.T = L.T.pb
z.Tp = L.Tp.pb
L.OOp = line : new (z.O,z.Op)
z.M = L.OOp.mid
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -2607,7 +2678,8 @@ z.M = L.OOp.mid
\label{sub:orthogonal_circle_to_two_circles}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point : new (-1,0)
z.B = point : new (0,2)
z.Op = point : new (4,-1)
@@ -2623,7 +2695,7 @@ z.M = L.OOp.mid
z.K = L.K.pb
z.Tp = L.Tp.pb
z.Kp = L.Kp.pb
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O,B O',D)
@@ -2636,7 +2708,8 @@ z.M = L.OOp.mid
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.25
z.O = point : new (-1,0)
z.B = point : new (0,2)
@@ -2653,7 +2726,7 @@ z.T = L.T.pb
z.K = L.K.pb
z.Tp = L.Tp.pb
z.Kp = L.Kp.pb
-\end{tkzelements}
+}
\begin{center}
@@ -2675,7 +2748,8 @@ z.Kp = L.Kp.pb
\subsection{Midcircles} % (fold)
\label{sub:midcircles}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (10 , 0)
L.AB = line : new (z.A,z.B)
@@ -2720,7 +2794,7 @@ _,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}
+}
\begin{center}
@@ -2757,7 +2831,8 @@ z.H_4,z.F,z.E,z.H_0 = L.AB : projection (z.O_4,z.G,z.H,z.P_0)
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (10 , 0)
L.AB = line : new (z.A,z.B)
@@ -2802,7 +2877,7 @@ z.H_4,z.F,z.E,z.H_0 = L.AB : projection (z.O_4,z.G,z.H,z.P_0)
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}
+}
\end{Verbatim}
\begin{Verbatim}
@@ -2842,7 +2917,8 @@ z.H_4,z.F,z.E,z.H_0 = L.AB : projection (z.O_4,z.G,z.H,z.P_0)
\subsection{Pencil v1} % (fold)
\label{sub:pencil_v1}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point : new (0,2)
z.B = point : new (0,-2)
@@ -2857,7 +2933,7 @@ z.H_4,z.F,z.E,z.H_0 = L.AB : projection (z.O_4,z.G,z.H,z.P_0)
z.x,z.y = get_points (C.C0A : orthogonal_from (z.M_0))
z.xp,z.yp = get_points (C.C0A : orthogonal_from (z.M_1))
z.O = L.BA.mid
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(C_0,A C_1,A C_3,A C_5,A)
@@ -2870,7 +2946,8 @@ z.H_4,z.F,z.E,z.H_0 = L.AB : projection (z.O_4,z.G,z.H,z.P_0)
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=.75
z.A = point : new (0,2)
z.B = point : new (0,-2)
@@ -2885,7 +2962,7 @@ C.C0A = circle : new (z.C_0,z.A)
z.x,z.y = get_points (C.C0A : orthogonal_from (z.M_0))
z.xp,z.yp = get_points (C.C0A : orthogonal_from (z.M_1))
z.O = L.BA.mid
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -2906,7 +2983,8 @@ z.O = L.BA.mid
\subsection{Pencil v2} % (fold)
\label{sub:pencil_v2}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=.75
z.A = point : new (0,0)
z.B = point : new (1,0)
@@ -2924,7 +3002,7 @@ z.O = L.BA.mid
z.u = C.orth0.through
z.v = C.orth1.through
z.t = C.orth2.through
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(C_0,A C_1,B)
@@ -2936,7 +3014,8 @@ z.O = L.BA.mid
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=.75
z.A = point : new (0,0)
z.B = point : new (1,0)
@@ -2954,7 +3033,7 @@ z.O = L.BA.mid
z.u = C.orth0.through
z.v = C.orth1.through
z.t = C.orth2.through
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -2974,7 +3053,8 @@ z.O = L.BA.mid
\subsection{Reim v1} % (fold)
\label{sub:reim_v1}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.E = point: new (-2,2)
C.AE = circle : new (z.A,z.E)
@@ -2989,7 +3069,7 @@ z.O = L.BA.mid
L.FD = line: new (z.F,z.D)
z.G = intersection (L.FD,C.BD)
z.O = intersection (L.EC,L.FD)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(A,E B,H)
@@ -3006,7 +3086,8 @@ z.O = L.BA.mid
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.E = point: new (-2,2)
C.AE = circle : new (z.A,z.E)
@@ -3021,7 +3102,7 @@ z.O = L.BA.mid
L.FD = line: new (z.F,z.D)
z.G = intersection (L.FD,C.BD)
z.O = intersection (L.EC,L.FD)
-\end{tkzelements}
+}
\begin{center}
@@ -3047,7 +3128,8 @@ z.O = L.BA.mid
\subsection{Reim v2} % (fold)
\label{sub:reim_v2}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .6
z.A = point: new (0,0)
z.B = point: new (10,0)
@@ -3060,7 +3142,7 @@ z.O = L.BA.mid
z.N = intersection (L.MC,C.BC)
z.m,z.mp = get_points (C.AC: tangent_at (z.M))
z.n,z.np = get_points (C.BC: tangent_at (z.N))
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(A,C B,C)
@@ -3074,7 +3156,8 @@ z.O = L.BA.mid
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .4
z.A = point: new (0,0)
z.B = point: new (10,0)
@@ -3087,7 +3170,7 @@ C.BC = circle: new (z.B,z.C)
z.N = intersection (L.MC,C.BC)
z.m,z.mp = get_points (C.AC: tangent_at (z.M))
z.n,z.np = get_points (C.BC: tangent_at (z.N))
-\end{tkzelements}
+}
\begin{center}
@@ -3110,7 +3193,8 @@ z.n,z.np = get_points (C.BC: tangent_at (z.N))
\subsection{Reim v3} % (fold)
\label{sub:reim_v3}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (8,0)
z.C = point: new (2,6)
@@ -3132,7 +3216,7 @@ z.n,z.np = get_points (C.BC: tangent_at (z.N))
C.zO = circle: new (z.z,z.O)
L.KO = line: new (z.K,z.O)
z.D = intersection (L.KO,C.zO)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -3149,7 +3233,8 @@ z.n,z.np = get_points (C.BC: tangent_at (z.N))
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point: new (0,0)
z.B = point: new (8,0)
@@ -3172,7 +3257,7 @@ z.n,z.np = get_points (C.BC: tangent_at (z.N))
C.zO = circle: new (z.z,z.O)
L.KO = line: new (z.K,z.O)
z.D = intersection (L.KO,C.zO)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -3197,7 +3282,9 @@ z.n,z.np = get_points (C.BC: tangent_at (z.N))
\label{sub:tangent_and_circle}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
+scale = .75
z.A = point: new (1,0)
z.B = point: new (2,2)
z.E = point: new (5,-4)
@@ -3209,7 +3296,7 @@ z.n,z.np = get_points (C.BC: tangent_at (z.N))
z.i = L.Ti.pb
z.j = L.Tj.pb
z.k,z.l = get_points (C.AB: tangent_at (z.B))
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(A,B M,A)
@@ -3220,7 +3307,9 @@ z.n,z.np = get_points (C.BC: tangent_at (z.N))
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
+scale = .75
z.A = point: new (1,0)
z.B = point: new (2,2)
z.E = point: new (5,-4)
@@ -3232,7 +3321,7 @@ L.Ti,L.Tj = C.AB: tangent_from (z.E)
z.i = L.Ti.pb
z.j = L.Tj.pb
z.k,z.l = get_points (C.AB: tangent_at (z.B))
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -3251,12 +3340,14 @@ z.k,z.l = get_points (C.AB: tangent_at (z.B))
\label{sub:homothety}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
+scale = .5
z.A = point: new (0,0)
z.B = point: new (1,2)
z.E = point: new (-3,2)
z.C,z.D = z.E : homothety(2,z.A,z.B)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(A,B,C,E,D)
@@ -3267,13 +3358,14 @@ z.k,z.l = get_points (C.AB: tangent_at (z.B))
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
-scale = .6
+\directlua{%
+init_elements ()
+scale = .5
z.A = point: new (0,0)
z.B = point: new (1,2)
z.E = point: new (-3,2)
z.C,z.D = z.E : homothety(2,z.A,z.B)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
\tkzGetNodes
@@ -3291,7 +3383,8 @@ z.C,z.D = z.E : homothety(2,z.A,z.B)
\label{sub:tangent_and_chord}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .8
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -3305,7 +3398,7 @@ z.C,z.D = z.E : homothety(2,z.A,z.B)
L.AO = line: new (z.A,z.O)
z.b1,z.b2 = get_points (C.OA: tangent_at (z.B))
z.H = L.AB: projection (z.O)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(O,A)
@@ -3320,7 +3413,8 @@ z.C,z.D = z.E : homothety(2,z.A,z.B)
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 0.75
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
@@ -3334,7 +3428,7 @@ z.D = C.OA: point (4.5)
L.AO = line: new (z.A,z.O)
z.b1,z.b2 = get_points (C.OA: tangent_at (z.B))
z.H = L.AB: projection (z.O)
-\end{tkzelements}
+}
\begin{center}
@@ -3359,7 +3453,8 @@ z.H = L.AB: projection (z.O)
\label{sub:three_chords}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point: new (0 , 0)
z.B = point: new (0 , 2)
z.P = point: new (1 , -.5)
@@ -3387,11 +3482,12 @@ C.xD = circle : new (z.x,z.D)
z.Ap = intersection (L.GB,C.xB)
z.Ep,_ = intersection (L.GE,C.xF)
z.Cp,_ = intersection (L.GD,C.xD)
-\end{tkzelements}
+}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.O = point: new (0 , 0)
z.B = point: new (0 , 2)
z.P = point: new (1 , -.5)
@@ -3419,7 +3515,7 @@ C.xD = circle : new (z.x,z.D)
z.Ap = intersection (L.GB,C.xB)
z.Ep,_ = intersection (L.GE,C.xF)
z.Cp,_ = intersection (L.GD,C.xD)
-\end{tkzelements}
+}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
@@ -3472,7 +3568,8 @@ z.Cp,_ = intersection (L.GD,C.xD)
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (-1 , 0)
z.C = point: new (4 , -1.5)
z.E = point: new (1 , -1)
@@ -3489,7 +3586,7 @@ z.Cp,_ = intersection (L.GD,C.xD)
L.TA = C.wE : tangent_at (z.A)
L.TC = C.xE : tangent_at (z.C)
z.I = intersection (L.TA,L.TC)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(w,E)
@@ -3504,7 +3601,8 @@ z.Cp,_ = intersection (L.GD,C.xD)
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point: new (-1 , 0)
z.C = point: new (4 , -1.5)
@@ -3522,7 +3620,7 @@ z.G = intersection (L.Aw,L.Cx)
L.TA = C.wE : tangent_at (z.A)
L.TC = C.xE : tangent_at (z.C)
z.I = intersection (L.TA,L.TC)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -3544,13 +3642,14 @@ z.I = intersection (L.TA,L.TC)
\label{sub:midarc}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (-1,0)
z.B = point: new (2,4)
C.AB = circle: new (z.A,z.B)
z.C = z.A: rotation (math.pi/3,z.B)
z.D = C.AB: midarc (z.B,z.C)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(A,B,C)
@@ -3561,14 +3660,15 @@ z.I = intersection (L.TA,L.TC)
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.A = point: new (-1,0)
z.B = point: new (2,4)
C.AB = circle: new (z.A,z.B)
z.C = z.A: rotation (math.pi/3,z.B)
z.D = C.AB: midarc (z.B,z.C)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -3587,7 +3687,8 @@ z.D = C.AB: midarc (z.B,z.C)
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 1.6
z.A = point: new (1,0)
z.B = point: new (5,2)
@@ -3607,7 +3708,7 @@ z.D = C.AB: midarc (z.B,z.C)
z.P = intersection (L.tA,L.BC)
z.Q = intersection (L.tB,L.AC)
z.R = intersection (L.tC,L.AB)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon[teal](A,B,C)
@@ -3621,7 +3722,8 @@ z.D = C.AB: midarc (z.B,z.C)
\end{Verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 0.75
z.A = point: new (1,0)
z.B = point: new (5,2)
@@ -3641,7 +3743,7 @@ L.tC = line: new (z.Cr,z.Cl)
z.P = intersection (L.tA,L.BC)
z.Q = intersection (L.tB,L.AC)
z.R = intersection (L.tC,L.AB)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -3667,7 +3769,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}%
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (1,1)
z.B = point: new (5,1)
z.C = point: new (2.2,4)
@@ -3679,7 +3782,7 @@ Draw lines through the symmedian point $L$ and parallel to the sides of the tria
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 ()
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -3695,7 +3798,8 @@ Draw lines through the symmedian point $L$ and parallel to the sides of the tria
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (1,1)
z.B = point: new (5,1)
z.C = point: new (2.2,4)
@@ -3707,7 +3811,7 @@ Draw lines through the symmedian point $L$ and parallel to the sides of the tria
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 ()
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C)
@@ -3730,7 +3834,8 @@ Draw antiparallels through the symmedian point $L$. The points where these lines
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 2
z.a = point: new (0,0)
z.b = point: new (5,0)
@@ -3753,7 +3858,7 @@ Draw antiparallels through the symmedian point $L$. The points where these lines
L.y1y6 = line : new (z.y1,z.y6)
L.y4y5 = line : new (z.y4,z.y5)
L.y2y3 = line : new (z.y2,z.y3)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(a,b,c y1,y2,y3,y4,y5,y6)
@@ -3767,7 +3872,8 @@ Draw antiparallels through the symmedian point $L$. The points where these lines
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 2
z.a = point: new (0,0)
z.b = point: new (5,0)
@@ -3790,7 +3896,7 @@ z.x5,z.x6 = intersection (L.ca,C.second_lemoine)
L.y1y6 = line : new (z.y1,z.y6)
L.y4y5 = line : new (z.y4,z.y5)
L.y2y3 = line : new (z.y2,z.y3)
-\end{tkzelements}
+}
\begin{center}
@@ -3813,7 +3919,8 @@ L.y2y3 = line : new (z.y2,z.y3)
\subsection{Inversion} % (fold)
\label{sub:inversion}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .75
z.A = point: new (-1,0)
z.B = point: new (2,2)
@@ -3828,12 +3935,13 @@ z.H = L.AE : projection (z.t1)
z.Bp,
z.Ep,
z.Cp = C.AC: inversion ( z.B, z.E, z.C )
-\end{tkzelements}
+}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.A = point: new (-1,0)
z.B = point: new (2,2)
z.C = point: new (2,4)
@@ -3848,7 +3956,7 @@ z.Cp = C.AC: inversion ( z.B, z.E, z.C )
z.Bp,
z.Ep,
z.Cp = C.AC: inversion ( z.B, z.E, z.C )
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -3881,7 +3989,8 @@ z.Cp = C.AC: inversion ( z.B, z.E, z.C )
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new (0,0)
z.b = point: new (5,0)
z.c = point: new (1,4)
@@ -3893,7 +4002,7 @@ z.Cp = C.AC: inversion ( z.B, z.E, z.C )
z.y_0,z.y_1 = get_points (L.anti)
L.anti = T : antiparallel (z.L,2)
z.z_0,z.z_1 = get_points (L.anti)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -3907,7 +4016,8 @@ z.Cp = C.AC: inversion ( z.B, z.E, z.C )
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.a = point: new (0,0)
z.b = point: new (5,0)
z.c = point: new (1,4)
@@ -3919,7 +4029,7 @@ L.anti = T : antiparallel (z.L,1)
z.y_0,z.y_1 = get_points (L.anti)
L.anti = T : antiparallel (z.L,2)
z.z_0,z.z_1 = get_points (L.anti)
-\end{tkzelements}
+}
\begin{center}
\begin{tikzpicture}
@@ -3940,7 +4050,8 @@ z.z_0,z.z_1 = get_points (L.anti)
\label{sub:soddy}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 5 , 0 )
z.C = point : new ( 0.5 , 4 )
@@ -3972,7 +4083,7 @@ 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)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -3986,7 +4097,8 @@ z.Xip,z.Yip,z.Zip = C.ins : inversion (z.Xi,z.Yi,z.Zi)
\end{tikzpicture}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 5 , 0 )
z.C = point : new ( 0.5 , 4 )
@@ -4018,7 +4130,7 @@ 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)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -4035,7 +4147,8 @@ z.Xip,z.Yip,z.Zip = C.ins : inversion (z.Xi,z.Yi,z.Zi)
\subsection{Soddy circle with function} % (fold)
\label{sub:soddy_circle_with_function}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 5 , 0 )
z.C = point : new (4 , 4 )
@@ -4051,11 +4164,12 @@ 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{tkzelements}
+}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 5 , 0 )
z.C = point : new (4 , 4 )
@@ -4073,7 +4187,7 @@ z.Xip,z.Yip,z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
z.t = C.soddy_ext.through
z.Xip,z.Yip,
z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
- \end{tkzelements}
+ }
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
@@ -4106,7 +4220,8 @@ z.Xip,z.Yip,z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
\subsection{Pappus chain} % (fold)
\label{sub:pappus_chain}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale =.75
xC,nc = 10,16
xB = xC/tkzphi
@@ -4133,10 +4248,11 @@ z.Xip,z.Yip,z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
L.SpTp = line:new ( z["S"..i.."p"], z["T"..i.."p"])
z["I"..i] = L.SpTp.mid
end
-\end{tkzelements}
+}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
xC,nc = 10,16
xB = xC/tkzphi
xD = (xC*xC)/xB
@@ -4162,7 +4278,7 @@ z.Xip,z.Yip,z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
L.SpTp = line:new ( z["S"..i.."p"], z["T"..i.."p"])
z["I"..i] = L.SpTp.mid
end
-\end{tkzelements}
+}
\end{Verbatim}
\begin{minipage}{.5\textwidth}
@@ -4196,7 +4312,8 @@ z.Xip,z.Yip,z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
\subsection{Three Circles} % (fold)
\label{sub:three_circles}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
function threecircles(c1,r1,c2,r2,c3,h1,h3,h2)
local xk = math.sqrt (r1*r2)
local cx = (2*r1*math.sqrt(r2))/(math.sqrt(r1)+math.sqrt(r2))
@@ -4210,11 +4327,12 @@ function threecircles(c1,r1,c2,r2,c3,h1,h3,h2)
z[h3] = L.h1h2: projection (z[c3])
end
threecircles("A",4,"B",3,"C","E","G","F")
-\end{tkzelements}
+}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
function threecircles(c1,r1,c2,r2,c3,h1,h3,h2)
local xk = math.sqrt (r1*r2)
local cx = (2*r1*math.sqrt(r2))/(math.sqrt(r1)+math.sqrt(r2))
@@ -4228,7 +4346,7 @@ function threecircles(c1,r1,c2,r2,c3,h1,h3,h2)
z[h3] = L.h1h2: projection (z[c3])
end
threecircles("A",4,"B",3,"C","E","G","F")
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -4254,7 +4372,8 @@ end
Pentagons in a golden arbelos} % (fold)
\label{sub:golden_arbelos}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (10 , 0)
L.AB = line: new ( z.A, z.B)
@@ -4289,11 +4408,12 @@ k = 1/tkzphi^2
kk = tkzphi
z.D_1,z.E_1,z.F_1,z.G_1 = z.B : homothety (k, z.D,z.E,z.F,z.G)
z.D_2,z.E_2,z.F_2,z.G_2 = z.M_0 : homothety (kk,z.D_1,z.E_1,z.F_1,z.G_1)
-\end{tkzelements}
+}
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0 , 0)
z.B = point: new (10 , 0)
L.AB = line: new ( z.A, z.B)
@@ -4328,7 +4448,7 @@ z.D_2,z.E_2,z.F_2,z.G_2 = z.M_0 : homothety (kk,z.D_1,z.E_1,z.F_1,z.G_1)
kk = tkzphi
z.D_1,z.E_1,z.F_1,z.G_1 = z.B : homothety (k, z.D,z.E,z.F,z.G)
z.D_2,z.E_2,z.F_2,z.G_2 = z.M_0 : homothety (kk,z.D_1,z.E_1,z.F_1,z.G_1)
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
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 140063f928..e49c7892af 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
@@ -247,13 +247,14 @@ Then |z.B = z.A * za| describes a rotation of point A by an angle |a|.
\begin{minipage}{.6\textwidth}
\begin{Verbatim}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.O = point : new (0,0)
z.A = point : new (1,2)
a = math.pi/6
za = point(math.cos(a),math.sin(a))
z.B = z.A * za
- \end{tkzelements}
+ }
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(O,A,B)
@@ -264,14 +265,15 @@ Then |z.B = z.A * za| describes a rotation of point A by an angle |a|.
\end{Verbatim}
\end{minipage}
\begin{minipage}{.6\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale=2
z.O = point : new (0,0)
z.A = point : new (1,2)
a = math.pi/6
za = point(math.cos(a),math.sin(a))
z.B = z.A * za
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(O,A,B)
@@ -287,7 +289,8 @@ Then |z.B = z.A * za| describes a rotation of point A by an angle |a|.
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.o = point: new(0,0)
z.a = point: new(1,-1)
z.b = point: new(2,1)
@@ -300,7 +303,7 @@ Then |z.B = z.A * za| describes a rotation of point A by an angle |a|.
-- = z.a : conj ()
z.g = z.b* point(math.cos(math.pi/2),
math.sin(math.pi/2))
-\end{tkzelements}
+}
\hspace*{\fill}
\begin{tikzpicture}
@@ -315,7 +318,8 @@ Then |z.B = z.A * za| describes a rotation of point A by an angle |a|.
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.o = point: new(0,0)
z.a = point: new(1,-1)
z.b = point: new(2,1)
@@ -327,7 +331,7 @@ Then |z.B = z.A * za| describes a rotation of point A by an angle |a|.
z.ap = point.conj (z.a)
-- = z.a : conj ()
z.g = z.b* point(math.cos(math.pi/2),math.sin(math.pi/2))
-\end{tkzelements}
+}
\hspace*{\fill}
\begin{tikzpicture}
@@ -374,12 +378,13 @@ Then |z.B = z.A * za| describes a rotation of point A by an angle |a|.
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (1,0)
z.B = point: new (5,-1)
z.C = point: new (2,5)
z.G = barycenter ({z.A,3},{z.B,1},{z.C,1})
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -388,12 +393,13 @@ Then |z.B = z.A * za| describes a rotation of point A by an angle |a|.
\end{tikzpicture}
\end{Verbatim}
\end{minipage}
-\begin{minipage}{.5\textwidth}\begin{tkzelements}
+\begin{minipage}{.5\textwidth}\directlua{%
+init_elements ()
z.A = point: new (1,0)
z.B = point: new (5,-1)
z.C = point: new (2,5)
z.G = barycenter ({z.A,3},{z.B,1},{z.C,1})
-\end{tkzelements}
+}
\hspace{\fill}
\begin{tikzpicture}
\tkzGetNodes
@@ -427,7 +433,8 @@ The problem encountered in this example stems from the notation of the point nam
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
local r = 3
z.O = point : new (0,0)
max = 100
@@ -436,11 +443,12 @@ The problem encountered in this example stems from the notation of the point nam
z["A_"..i] = point : polar(r,2*i*math.pi/max)
end
a = math.deg(get_angle (z.O,z.A_1,z.A_2))
-\end{tkzelements}
+}
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
local r = 3
z.O = point : new (0,0)
max = 100
@@ -449,7 +457,7 @@ The problem encountered in this example stems from the notation of the point nam
z["A_"..i] = point : polar(r,2*i*math.pi/max)
end
a = math.deg(get_angle (z.O,z.A_1,z.A_2))
-\end{tkzelements}
+}
\hspace{\fill}
\begin{tikzpicture}
\pgfkeys{/pgf/number format/.cd,use comma}
@@ -501,7 +509,8 @@ The \tkzNamePack{ifthen} package is required for the code below.
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (1,2)
z.X = point: new (2,4.000)
@@ -514,7 +523,7 @@ if L.AB : in_out (z.X)
inline = false
end
inline_bis = L.AB : in_out (z.Y)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -531,7 +540,8 @@ if L.AB : in_out (z.X)
\end{Verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
- \begin{tkzelements}
+ \directlua{%
+init_elements ()
z.A = point: new (0,0)
z.B = point: new (1,2)
z.X = point: new (2,4.000)
@@ -544,7 +554,7 @@ if L.AB : in_out (z.X)
inline = false
end
inline_bis = L.AB : in_out (z.Y)
-\end{tkzelements}
+}
\hspace{\fill}
\begin{tikzpicture}
\tkzGetNodes
@@ -664,7 +674,8 @@ You obtain a point on the object by entering a real number between 0 and 1.
\begin{minipage}{.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 2 )
z.C = point : new ( 1 , 3 )
@@ -674,7 +685,7 @@ You obtain a point on the object by entering a real number between 0 and 1.
z.I = L.AB : point (0.5)
z.J = C.AB : point (0.5)
z.K = T.ABC : point (0.5)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLine(A,B)
@@ -686,7 +697,8 @@ You obtain a point on the object by entering a real number between 0 and 1.
\end{minipage}
\hspace{\fill}
\begin{minipage}{.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale =.75
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 2 )
@@ -697,7 +709,7 @@ You obtain a point on the object by entering a real number between 0 and 1.
z.I = L.AB : point (0.5)
z.J = C.AB : point (0.5)
z.K = T.ABC : point (0.5)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLine(A,B)
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-intersection.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-intersection.tex
index 1ba8fd0981..53eff14d51 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-intersection.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-intersection.tex
@@ -12,7 +12,8 @@ The result is of the form: |point| or |false|.
\begin{minipage}{0.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (1,-1)
z.B = point : new (4,1)
z.C = point : new (2,1)
@@ -26,7 +27,7 @@ The result is of the form: |point| or |false|.
else
z.I = x
end
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -37,7 +38,8 @@ The result is of the form: |point| or |false|.
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (1,-1)
z.B = point : new (4,1)
z.C = point : new (2,1)
@@ -51,7 +53,7 @@ tex.print('error')
else
z.I = x
end
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -71,7 +73,8 @@ The result is of the form : |point,point| or |false,false|. If the line is tange
\begin{minipage}{0.6\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (1,-1)
z.B = point : new (1,2)
L.AB = line : new (z.A,z.B)
@@ -82,7 +85,7 @@ The result is of the form : |point,point| or |false,false|. If the line is tange
C.OD = circle : new (z.O,z.D)
z.I,_ = intersection (L.AB,C.OD)
_,z.K = intersection (C.OD,L.AE)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -94,7 +97,8 @@ The result is of the form : |point,point| or |false,false|. If the line is tange
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.4\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = 2
z.A = point : new (1,-1)
z.B = point : new (1,2)
@@ -106,15 +110,16 @@ L.AE = line : new (z.A,z.E)
C.OD = circle : new (z.O,z.D)
z.I,_ = intersection (L.AB,C.OD)
_,z.K = intersection (C.OD,L.AE)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
-\tkzDrawLines(A,B A,E)
+\tkzDrawLines[add=.1 and .1](A,B A,E)
\tkzDrawCircle(O,D)
\tkzDrawPoints(A,B,O,D,I,K)
\tkzLabelPoints[left](A,B,O,D,I,K)
\end{tikzpicture}
+\hfill
\end{minipage}
Other examples: \ref{sub:altshiller}
@@ -128,7 +133,8 @@ The result is of the form : |point,point| or |false,false|. If the circles are
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (1,1)
z.B = point : new (2,2)
z.C = point : new (3,3)
@@ -138,7 +144,7 @@ The result is of the form : |point,point| or |false,false|. If the circles are
z.I,_ = intersection (C.AB,C.CB)
C.DC = circle : new (z.D,z.C)
z.J,z.K = intersection (C.DC,C.CB)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(A,B C,B D,C)
@@ -148,7 +154,8 @@ The result is of the form : |point,point| or |false,false|. If the circles are
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
z.A = point : new (1,1)
z.B = point : new (2,2)
z.C = point : new (3,3)
@@ -158,7 +165,7 @@ C.CB = circle : new (z.C,z.B)
z.I,_ = intersection (C.AB,C.CB)
C.DC = circle : new (z.D,z.C)
z.J,z.K = intersection (C.DC,C.CB)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -180,7 +187,8 @@ The designation of intersection points is a little more complicated than the pre
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale = .5
z.a = point: new (5 , 2)
z.b = point: new (-4 , 0)
@@ -196,7 +204,7 @@ The designation of intersection points is a little more complicated than the pre
a = E.Rx
b = E.Ry
ang = math.deg(E.slope)
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines[red](a,b u,v) % p,s p,t
@@ -210,23 +218,24 @@ The designation of intersection points is a little more complicated than the pre
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
-\begin{tkzelements}
+\directlua{%
+init_elements ()
scale =.5
z.a = point: new (5 , 2)
z.b = point: new (-4 , 0)
z.m = point: new (2 , 4)
z.n = point: new (4 , 4)
- L.ab = line : new (z.a,z.b)
- L.mn = line : new (z.m,z.n)
+ L.ab = line : new (z.a,z.b)
+ L.mn = line : new (z.m,z.n)
z.c = L.ab. mid
z.e = L.ab: point (-.2)
E = ellipse: foci (z.a,z.b,z.e)
z.u,z.v = intersection (E,L.mn)
- -- transfer to tex
+ % transfer to tex
a = E.Rx
b = E.Ry
ang = math.deg(E.slope)
-\end{tkzelements}
+}
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
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 10998bb7f5..427dfe3c2d 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 v2.30c
+% Documentation of tkz-elements v3.00c
% 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{2.30c}
+\gdef\tkzversionofpack{3.00c}
\gdef\tkzdateofpack{\today}
\gdef\tkznameofdoc{tkz-elements.pdf}
-\gdef\tkzversionofdoc{2.30c}
+\gdef\tkzversionofdoc{3.00c}
\gdef\tkzdateofdoc{\today}
\gdef\tkzauthorofpack{Alain Matthes}
\gdef\tkzadressofauthor{}
@@ -139,6 +139,8 @@ sharp corners
\newcommand*{\Immeth}[2]{\texttt{#2}\index{#1_3@\texttt{#1: metamethod}!\_\_\texttt{#2}}}
\newcommand*{\Igfct}[2]{\texttt{#2}\index{#1_3@\texttt{#1: function}!\texttt{#2}}}
\newcommand*{\Iclass}[1]{\texttt{#1}\index{Class !#1@\texttt{#1}}}
+\newcommand*{\Iengine}[1]{\texttt{#1}\index{Engine !#1@\texttt{#1}}}
+\newcommand*{\Iprimitive}[1]{\textbackslash\texttt{#1}\index{Lua\TeX\ primitive !#1@\texttt{\textbackslash#1}}}
\newcommand*{\tkzNameObj}[1]{\tkzname{#1}\Iobj{#1}}
\newcommand*{\Iobj}[1]{\index{Object_1@\texttt{Object}!\texttt{#1}}}
\newcommand*{\tkzRBomb}{\textcolor{red}{\bomb}}
@@ -171,7 +173,6 @@ sharp corners
\AtBeginDocument{\MakeShortVerb{\|}} % link to shortvrb
\begin{document}
-%\LuaCodeDebugOn
\parindent=0pt
\tkzTitleFrame{tkz-elements \tkzversionofpack\\Euclidean Geometry}
@@ -212,6 +213,7 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
\clearpage
\newpage
+\input{TKZdoc-elements-news.tex}
\input{TKZdoc-elements-structure.tex}
\input{TKZdoc-elements-why.tex}
\input{TKZdoc-elements-presentation.tex}
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-news.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-news.tex
new file mode 100644
index 0000000000..9eb6544054
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-news.tex
@@ -0,0 +1,13 @@
+\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.
+
+
+% section news (end)
+\endinput
+
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 1778a7c8fb..22025d1146 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
@@ -9,9 +9,7 @@ You can load \tkzname{tkz-euclide} in three different ways. The simplest is |\us
The package \pkg{ifthen} is useful if you need to use some Boolean.
-The macro \tkzcname{LuaCodeDebugOn} allows you to try and find errors in Lua code.
-
-While it's possible to leave the Lua code in the \tkzNameEnv{tkzelements} environment, externalizing this code has its advantages.
+While it's possible to leave the Lua code in the macro |directlua|, externalizing this code has its advantages.
The first advantage is that, if you use a good editor, you have a better presentation of the code. Styles differ between \code{Lua} and \LATEX{}, making the code clearer. This is how I proceeded, then reintegrated the code into the main code.
@@ -29,12 +27,11 @@ A third advantage is that the code can be reused.
\usepackage[mini]{tkz-euclide}
\usepackage{tkz-elements,ifthen}
-\begin{document}
-\LuaCodeDebugOn
-\begin{tkzelements}
+\begin{document}
+\directlua{
scale = 1.25
dofile ("sangaku.lua")
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -63,10 +60,11 @@ L.Cc = line : new (z.C,z.c)
z.I = intersection (L.Cc,L.BF)
\end{Verbatim}
-\begin{tkzelements}
+\directlua{
+ init_elements ()
scale = 1.25
dofile ("sangaku.lua")
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
@@ -82,15 +80,24 @@ z.I = intersection (L.Cc,L.BF)
If necessary, it's better to perform scaling in the \code{Lua} section. This approach tends to be more accurate. However, there is a caveat to be aware of. I've made it a point to avoid using numerical values in my codes whenever possible. Generally, these values only appear in the definition of fixed points.
If the \code{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|\\
-|z.B = point : new ( xB,0 )|
+\begin{mybox}{}
+ \begin{verbatim}
+ scale = 1.5
+ xB = 8
+ z.B = point : new ( xB,0 )
+ \end{verbatim}
+\end{mybox}
+
Scaling would then be ineffective, as the numerical values are not modified, only the point coordinates. To account for scaling, use the function \Igfct{math}{value (v) }.
-|scale = 1.5|\\
-|xB = value (8)|\\
-|z.B = point : new ( xB,0 )|
+\begin{mybox}{}
+\begin{verbatim}
+ scale = 1.5
+ xB = value (8)
+ z.B = point : new ( xB,0 )
+\end{verbatim}
+\end{mybox}
\subsection{Code presentation} % (fold)
\label{sub:code_presentation}
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 f0689fcc74..195a691064 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
@@ -4,8 +4,7 @@
\subsection{With Lua} % (fold)
\label{sub:with_lua}
-The primary function of tkz-elements is to calculate dimensions and define points, which is achieved using Lua. You can view tkz-elements as a kernel that is utilized either by tkz-euclide or by TikZ,
-Definitions and calculations take place within the environment \tkzNameEnv{tkzelements}, which is based on \tkzNameEnv{luacode}.
+The primary function of tkz-elements is to calculate dimensions and define points, which is achieved using Lua. You can view tkz-elements as a kernel that is utilized either by tkz-euclide or by TikZ. The lua code can be implemented immediately using the \tkzcname{directlua} primitive, or it can take place within a \tkzNameEnv{tkzelements} environment which is based on \tkzNameEnv{luacode}. In the latter case, you need to load the \pkg{luacode} package. In the first case, if you create a complex document, you'll be able to reset the tables and scale with the \Igfct{package}{init\_elements} function.
\begin{minipage}[t]{.52\textwidth}\vspace{0pt}%
The key points are:
@@ -13,12 +12,12 @@ Definitions and calculations take place within the environment \tkzNameEnv{tkze
\item The source file must be \tkzEHand\ {\color{red}\uline{ \color{black}UTF8}} encoded.
\item Compilation is done with \tkzEHand\ {\color{red}\uline{ \color{black}Lua\LATEX{}}}.
\item You need to load \tkzimp{\TIKZ}{} or \tkzimp{tkz-euclide} and \tkzimp{tkz-elements}.
- \item Definitions and calculations are performed in an (orthonormal) Cartesian coordinate system, using Luawithin the \tkzimp{tkzelements} environment.
+ \item Definitions and calculations are performed in an (orthonormal) Cartesian coordinate system, using Lua with the macro \tkzcname{directlua} or within the \tkzimp{tkzelements} environment.
\end{itemize}
On the right, you can see the minimum template.
-The code is divided into two parts, represented by two environments \tkzNameEnv{tkzelements} and \tkzNameEnv{tikzpicture}. In the first environment, you place your Lua code, while in the second, you use tkz-euclide commands.
+The code is divided into two parts, represented by lua code, argument to the primitive |\directlua| and the environment \tkzNameEnv{tikzpicture}. In the first part, you place your Lua code, while in the second, you use tkz-euclide commands.
\vspace*{4.1 cm}%
\end{minipage}\hspace*{\fill}
@@ -33,14 +32,14 @@ The code is divided into two parts, represented by two environments \tkzNameEnv
\usepackage{tkz-elements}
begin{document}
-\begin{tkzelements}
+\directlua{
scale = 1
% definition of some points
z.A = point : new ( , )
z.B = point : new ( , )
...code...
-\end{tkzelements}
+}
\begin{tikzpicture}
% point transfer to Nodes
@@ -77,7 +76,7 @@ After obtaining all the necessary points for the drawing, they must be transform
\subsubsection{The figure}
-\begin{tkzelements}
+\directlua{
scale = 1.2
z.A = point: new (0 , 0)
z.B = point: new (10 , 0)
@@ -102,7 +101,7 @@ After obtaining all the necessary points for the drawing, they must be transform
z.P_1 = intersection (C.PC,C.AC)
_,z.P_2 = intersection (C.QA,C.CB)
z.O_3 = triangle: new ( z.P_0, z.P_1, z.P_2).circumcenter
-\end{tkzelements}
+}
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
@@ -128,29 +127,29 @@ After obtaining all the necessary points for the drawing, they must be transform
\usepackage{tkz-elements}
\begin{document}
-\begin{tkzelements}
+\directlua{
z.A = point: new (0 , 0)
-z.B = point: new (10 , 0) -- creation of two fixed points $A$ and $B$
+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.O_1 = line: new ( z.A, z.C).mid -- objects are not stored and cannot be reused.
+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 % “north” 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)
-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”
-\end{tkzelements}
+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”
+}
\end{Verbatim}
\begin{Verbatim}
@@ -179,24 +178,25 @@ Here's another example with comments
\documentclass{standalone}
\usepackage{tkz-euclide,tkz-elements}
\begin{document}
-\begin{tkzelements}
- z.A = point: new (2 , 4) -- we create environment tkzelements
- z.B = point: new (0 , 0) -- three fixed points are used
+\directlua{
+ z.A = point: new (2 , 4)
+ z.B = point: new (0 , 0) % three fixed points are used
z.C = point: new (8 , 0)
- T.ABC = triangle: new (z.A,z.B,z.C) -- we create a new triangle object
- 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
- 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
- L.AO = line: new (z.A,z.O) -- we create an object "line"
- L.BC = T.ABC.bc -- we get the line (BC)
- z.I_A = intersection (L.AO,L.BC) -- we search the intersection of the last lines
-\end{tkzelements}
+ T.ABC = triangle: new (z.A,z.B,z.C) % we create a new triangle object
+ 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
+ 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
+ L.AO = line: new (z.A,z.O) % we create an object "line"
+ L.BC = T.ABC.bc % we get the line (BC)
+ z.I_A = intersection (L.AO,L.BC) % we search the intersection of the last lines
+}
\end{Verbatim}
-\begin{tkzelements}
+\directlua{
+ init_elements ()
scale = 1.2
z.A = point: new (2 , 4)
z.B = point: new (0 , 0)
@@ -205,14 +205,13 @@ Here's another example with comments
C.ins = T.ABC: in_circle ()
z.I = C.ins.center
z.T = C.ins.through
--- z.I,z.T = get_points (C.ins)
C.cir = T.ABC : circum_circle ()
z.W = C.cir.center
z.O = C.cir.south
L.AO = line: new (z.A,z.O)
L.BC = T.ABC.bc
z.I_A = intersection (L.AO,L.BC)
-\end{tkzelements}
+}
\hspace*{\fill}
\begin{tikzpicture}
@@ -229,7 +228,7 @@ Here's another example with comments
\tkzLabelPoints[above](A)
\end{tikzpicture}
\hspace*{\fill}
-
+%
Here's the tikzpicture environment to obtain the drawing:
\begin{Verbatim}
\begin{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-structure.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-structure.tex
index d1958d4763..510b43df37 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-structure.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-structure.tex
@@ -1,12 +1,10 @@
\section{Structure} % (fold)
\label{sec:structure}
-\tkzNamePack{tkz-elements} loads the \tkzNamePack{luacode} package to create the \tkzNameEnv{tkzelements} environment, which is based on the \tkzNameEnv{luacode} environment.
-
-Within the \tkzNameEnv{tkzelements} environment, the scale is initialized to 1, and then all values in various tables are cleared.
+After loading the package, the scale is initialized to 1, and then all values in various tables are cleared.
The package defines two macros |\tkzGetNodes| and |\tkzUseLua|.
-Additionally, the package loads the file |tkz_elements_main.lua|. This file initializes all the tables that will be used by the modules in which the classes are defined.
+Additionally, the package loads the file |tkz_elements_main.lua|. This file initializes all the tables that will be used by the modules in which the classes are defined. In this file, a function is defined to reset all tables and the scale. This is the function \Igfct{tkz-elements}{init\_elements}.
\begin{tikzpicture}[scale=.75]
\begin{scope}
@@ -22,9 +20,7 @@ Additionally, the package loads the file |tkz_elements_main.lua|. This file ini
L2/.style={level distance=65mm,minimum size=2cm}]
node[concept,circular drop shadow] {|tkz-elements.sty|} [clockwise from=10]
- child[concept color=MidnightBlue!40,minimum size=16mm] {
- node[concept,circular drop shadow] {|luacode|}
-}
+
child[concept color= MidnightBlue!80,minimum size=4cm,text width=38mm,
clockwise from=27] {
node[concept,circular drop shadow] {|tkz\_elements\_main|}
@@ -45,13 +41,11 @@ clockwise from=27] {
\end{scope}
\end{tikzpicture}
-The current classes are (some are still inactive):
-\begin{itemize}
- \item active : \Iclass{point} (z) ; \Iclass{line} (L) ; \Iclass{circle} (C) ; \Iclass{triangle} (T) ; \Iclass{ellipse} (E) ; \Iclass{quadrilateral} (Q) ; \Iclass{square} (S) ; \Iclass{rectangle} (R) ; \Iclass{parallelogram} (P) ; \Iclass{regular\_polygon} (RP); \Iclass{vector} (V).
+The current classes are :
+
+ \Iclass{point} (z) ; \Iclass{line} (L) ; \Iclass{circle} (C) ; \Iclass{triangle} (T) ; \Iclass{ellipse} (E) ; \Iclass{quadrilateral} (Q) ; \Iclass{square} (S) ; \Iclass{rectangle} (R) ; \Iclass{parallelogram} (P) ; \Iclass{regular\_polygon} (RP); \Iclass{vector} (V) and \Iclass{matrix} (M).
- \item inactive : matrix (M) ; vector (V).
-\end{itemize}
If |name| is name of a class, you can find its definition in the file |tkz_elements_name.lua|.
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-transfers.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-transfers.tex
index 264097e9b8..1b65e4dabe 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-transfers.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-transfers.tex
@@ -5,11 +5,11 @@
\subsection{From Lua to tkz-euclide or TikZ} % (fold)
\label{sub:fom_lua_to_tkz_euclide_or_tikz}
-In this section, we'll explore how to transfer points, Booleans, and numerical values.
+In this section, we'll explore how to transfer points, booleans, and numerical values.
\subsubsection{Points transfer} % (fold)
\label{ssub:points_transfer}
-We utilize an environment \tkzname{tkzelements} outside an \tkzname{tikzpicture} environment which allows us to perform all the necessary calculations. Then, we execute the macro \Imacro{tkzGetNodes} which transforms the affixes of the table |z| into \tkzname{Nodes}. Finally, we proceed with the drawing.
+The necessary definitions and calculations are performed with the primitive \tkzcname{directlua} or inside the environment \tkzNameEnv{tkzelements}. Then, we execute the macro \Imacro{tkzGetNodes} which transforms the affixes of the table |z| into \tkzname{Nodes}. Finally, we proceed with the drawing.
At present, the drawing program is either \TIKZ\ or \pkg{tkz-euclide}. However, you have the option to use another package for plotting. To do so, you'll need to create a macro similar to \tkzcname{tkzGetNodes}. Of course, this package must be capable of storing points like \TIKZ\ or \pkg{tkz-euclide}.
@@ -34,18 +34,20 @@ end}
\end{mybox}
See the section In-depth Study \ref{sec:in_depth_study} for an explanation of the previous code.
-The environment \tkzNameEnv{tkzelements} allows to use the underscore |_| and the macro \tkzcname{tkzGetNodes} allows to obtain names of nodes containing \tkzname{prime} or \tkzname{double prime}. (Refer to the next example)
+Point names can contain the underscore |_| and the macro \tkzcname{tkzGetNodes} allows to obtain names of nodes containing \tkzname{prime} or \tkzname{double prime}. (Refer to the next example)
+\vspace{6pt}
\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
- scale = 1.2
+\directlua{
+ init_elements ()
+ scale = 1.5
z.o = point: new (0,0)
z.a_1 = point: new (2,1)
z.a_2 = point: new (1,2)
z.ap = z.a_1 + z.a_2
z.app = z.a_1 - z.a_2
-\end{tkzelements}
+}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSegments(o,a_1 o,a_2 o,a' o,a'')
@@ -57,14 +59,15 @@ The environment \tkzNameEnv{tkzelements} allows to use the underscore |_| and th
\end{Verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
-\begin{tkzelements}
- scale = 1.2
+\directlua{
+ init_elements ()
+ scale = 1.5
z.o = point: new (0,0)
z.a_1 = point: new (2,1)
z.a_2 = point: new (1,2)
z.ap = z.a_1 + z.a_2
z.app = z.a_1 - z.a_2
-\end{tkzelements}
+}
\hspace{\fill}
\begin{tikzpicture}
\tkzGetNodes
@@ -78,15 +81,42 @@ The environment \tkzNameEnv{tkzelements} allows to use the underscore |_| and th
\end{minipage}%
\newpage
+% subsubsection points_transfer (end)
% subsection fom_lua_to_tkz_euclide_or_tikz (end)
+
\subsubsection{Other transfers} % (fold)
\label{ssub:other_transfers}
Sometimes it's useful to transfer angle, length measurements or boolean. For this purpose, I have created the macro (refer to \ref{sub:transfer_from_lua_to_tex})
\IEmacro{tkzUseLua(value)}
+\begin{mybox}
+ \begin{Verbatim}
+ \def\tkzUseLua#1{\directlua{tex.print(tostring(#1))}}
+\end{Verbatim}
+\end{mybox}
+\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)
+}
+
+The intersection of the two lines lies at
+a point whose affix is: \tkzUseLua{x}
+
+\begin{minipage}{0.5\textwidth}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{
+ init_elements ()
z.b = point: new (1,1)
z.a = point: new (4,2)
z.c = point: new (2,2)
@@ -98,14 +128,12 @@ Sometimes it's useful to transfer angle, length measurements or boolean. For thi
else bool = false
end
x = intersection (L.ab,L.cd)
-\end{tkzelements}
-
+}
The intersection of the two lines lies at
a point whose affix is:\tkzUseLua{x}
-
\begin{tikzpicture}
\tkzGetNodes
- \tkzInit[xmin =-1,ymin=-1,xmax=6,ymax=3]
+ \tkzInit[xmin =0,ymin=0,xmax=5,ymax=3]
\tkzGrid\tkzAxeX\tkzAxeY
\tkzDrawPoints(a,...,d)
\ifthenelse{\equal{\tkzUseLua{bool}}{true}}{
@@ -114,29 +142,12 @@ The intersection of the two lines lies at
\tkzLabelPoints(a,...,d)
\end{tikzpicture}
\end{Verbatim}
-
-\begin{tkzelements}
-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)
-\end{tkzelements}
-
-The intersection of the two lines lies at
-a point whose affix is: \tkzUseLua{x}
-
-\vspace{1em}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
\hspace{\fill}
\begin{tikzpicture}
\tkzGetNodes
- \tkzInit[xmin =-1,ymin=-1,xmax=6,ymax=3]
+ \tkzInit[xmin =0,ymin=0,xmax=5,ymax=3]
\tkzGrid\tkzAxeX\tkzAxeY
\tkzDrawPoints(a,...,d)
\ifthenelse{\equal{\tkzUseLua{bool}}{true}}{
@@ -144,9 +155,306 @@ a point whose affix is: \tkzUseLua{x}
\tkzDrawSegments[blue](a,b c,d)}
\tkzLabelPoints(a,...,d)
\end{tikzpicture}
- \hspace{\fill}
+ \hspace{\fill}
+ \end{minipage}
+
% subsubsection other_transfers (end)
-% subsubsection points_transfer (end)
+\subsubsection{Example 1} % (fold)
+\label{ssub:example_1}
+
+In this example, it's necessary to transfer the function to the Lua part, then retrieve the curve point coordinates from \TeX.
+
+The main tools used are a table and its methods (\Imeth{table}{insert},\Imeth{table}{concat}) and the \Igfct{lua}{load} function.
+
+\begin{Verbatim}
+\makeatletter\let\percentchar\@percentchar\makeatother
+\directlua{
+ function list (f,min,max,nb)
+ local tbl = {}
+ for x = min, max, (max - min) / nb do
+ table.insert (tbl, ('(\percentchar f,\percentchar f)'):format (x, f (x)))
+ end
+ return table.concat (tbl)
+ end
+}
+\def\plotcoords#1#2#3#4{%
+\directlua{%
+ f = load (([[
+ return function (x)
+ return (\percentchar s)
+ end
+ ]]):format ([[#1]]), nil, 't', math) ()
+tex.print(list(f,#2,#3,#4))}
+}
+\begin{tikzpicture}
+\tkzInit[xmin=1,xmax=3,ymin=0,ymax=2]
+\tkzGrid
+\tkzDrawX[right=3pt,label={$x$}]
+\tkzDrawY[above=3pt,label={$f(x) = \dfrac{1-\mathrm{e}^{-x^2}}{1+\mathrm{e}^{-x^2}}$}]
+\draw[cyan,thick] plot coordinates {\plotcoords{(1-exp(-x^2))/(exp(-x^2)+1)}{-3}{3}{100}};
+\end{tikzpicture}
+\end{Verbatim}
+
+
+\makeatletter\let\percentchar\@percentchar\makeatother
+\directlua{
+ function list (f,min,max,nb)
+ local tbl = {}
+ for x = min, max, (max - min) / nb do
+ table.insert (tbl, ('(\percentchar f,\percentchar f)'):format (x, f (x)))
+ end
+ return table.concat (tbl)
+ end
+}
+
+\def\plotcoords#1#2#3#4{%
+\directlua{%
+ f = load (([[
+ return function (x)
+ return (\percentchar s)
+ end
+ ]]):format ([[#1]]), nil, 't', math) ()
+tex.print(list(f,#2,#3,#4))}
+}
+
+\begin{tikzpicture}
+\tkzInit[xmin=1,xmax=3,ymin=0,ymax=2]
+\tkzGrid
+\tkzDrawX[right=3pt,label={$x$}]
+\tkzDrawY[above=3pt,label={$f(x) = \dfrac{1-\mathrm{e}^{-x^2}}{1+\mathrm{e}^{-x^2}}$}]
+\draw[cyan,thick] plot coordinates {\plotcoords{(1-exp(-x^2))/(exp(-x^2)+1)}{-3}{3}{100}};
+
+\end{tikzpicture}
+
+% subsubsection example_1 (end)
+
+\subsubsection{Example 2} % (fold)
+\label{ssub:example_2}
+
+This consists in passing a number (the number of sides) from \TeX\ to \code{Lua}. This is made easier by using the \Iprimitive{directlua} primitive. This example is based on a answer from egreg [\href{https://tex.stackexchange.com/questions/729009/how-can-these-regular-polygons-be-arranged-within-a-page/731503#731503}{egreg--tex.stackexchange.com}]
+
+\begin{Verbatim}
+\directlua{
+ z.I = point: new (0,0)
+ z.A = point: new (2,0)
+}
+\def\drawPolygon#1{
+\directlua{
+ RP.six = regular_polygon : new (z.I,z.A,#1)
+ RP.six : name ("P_")
+ }
+\begin{tikzpicture}[scale=.5]
+ \def\nb{\tkzUseLua{RP.six.nb}}
+ \tkzGetNodes
+ \tkzDrawCircles(I,A)
+ \tkzDrawPolygon(P_1,P_...,P_\nb)
+ \tkzDrawPoints[red](P_1,P_...,P_\nb)
+\end{tikzpicture}
+}
+\foreach [count=\i] \n in {3, 4, ..., 10} {
+ \makebox[0.2\textwidth]{%
+ \begin{tabular}[t]{@{}c@{}}
+ $n=\n$ \\[1ex]
+ \drawPolygon{\n}
+ \end{tabular}%
+ }\ifnum\i=4 \\[2ex]\fi
+}
+\end{Verbatim}
+
+\directlua{
+ z.I = point: new (0,0)
+ z.A = point: new (2,0)
+}
+\def\drawPolygon#1{
+\directlua{
+ RP.six = regular_polygon : new (z.I,z.A,#1)
+ RP.six : name ("P_")
+ }
+\begin{tikzpicture}[scale=.5]
+ \def\nb{\tkzUseLua{RP.six.nb}}
+ \tkzGetNodes
+ \tkzDrawCircles(I,A)
+ \tkzDrawPolygon(P_1,P_...,P_\nb)
+ \tkzDrawPoints[red](P_1,P_...,P_\nb)
+\end{tikzpicture}
+}
+\foreach [count=\i] \n in {3, 4, ..., 10} {
+ \makebox[0.2\textwidth]{%
+ \begin{tabular}[t]{@{}c@{}}
+ $n=\n$ \\[1ex]
+ \drawPolygon{\n}
+ \end{tabular}%
+ }\ifnum\i=4 \\[2ex]\fi
+}
+
+% subsubsection example_2 (end)
+
+\subsubsection{Example 3} % (fold)
+\label{ssub:example_3}
+
+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{
+ z.a = point: new (1,0)
+ z.b = point: new (3,2)
+ z.c = point: new (0,2)
+ A,B,C = parabola (z.a,z.b,z.c)
+
+ function f(t0, t1, n)
+ local out=assert(io.open("tmp.table","w"))
+ local y
+ for t = t0,t1,(t1-t0)/n do
+ y = A*t^2+B*t +C
+ out:write(t, " ", y, " i\string\n")
+ end
+ out:close()
+ end
+ }
+
+\begin{minipage}{0.5\textwidth}
+\begin{Verbatim}
+\directlua{
+ z.a = point: new (1,0)
+ z.b = point: new (3,2)
+ z.c = point: new (0,2)
+ A,B,C = parabola (z.a,z.b,z.c)
+
+ function f(t0, t1, n)
+ local out=assert(io.open("tmp.table","w"))
+ local y
+ for t = t0,t1,(t1-t0)/n do
+ y = A*t^2+B*t +C
+ out:write(t, " ", y, " i\string\n")
+ end
+ out:close()
+ end
+ }
+\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}
+\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}
+\end{minipage}
+% subsubsection example_3 (end)
+
+\subsubsection{Example 4} % (fold)
+\label{ssub:example_4}
+
+The result is identical to the previous one.
+\begin{Verbatim}
+\directlua{
+ z.a = point: new (1,0)
+ z.b = point: new (3,2)
+ z.c = point: new (0,2)
+ A,B,C = parabola (z.a,z.b,z.c)
+
+ function f(t0, t1, n)
+ local tbl = {}
+ for t = t0,t1,(t1-t0)/n do
+ y = A*t^2+B*t +C
+ table.insert (tbl, "("..t..","..y..")")
+ end
+ return table.concat (tbl)
+end
+}
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawX\tkzDrawY
+ \tkzDrawPoints[red,size=2pt](a,b,c)
+ \draw[domain=-2:3,smooth] plot coordinates {\directlua{tex.print(f(-2,3,100))}};
+\end{tikzpicture}
+\end{Verbatim}
+% subsubsection example_4 (end)
+
+\subsubsection{Example 5} % (fold)
+\label{ssub:example_5}
+
+\begin{Verbatim}
+\makeatletter\let\percentchar\@percentchar\makeatother
+\directlua{
+function cellx (start,step,n)
+return start+step*(n-1)
+end
+}
+\def\calcval#1#2{%
+\directlua{
+ f = load (([[
+ return function (x)
+ return (\percentchar s)
+ end
+ ]]):format ([[#1]]), nil, 't', math) ()
+x = #2
+tex.print(string.format("\percentchar.2f",f(x)))}
+}
+\def\fvalues(#1,#2,#3,#4) {%
+\def\firstline{$x$}
+ \foreach \i in {1,2,...,#4}{%
+ \xdef\firstline{\firstline & \tkzUseLua{cellx(#2,#3,\i)}}}
+\def\secondline{$f(x)=#1$}
+ \foreach \i in {1,2,...,#4}{%
+ \xdef\secondline{\secondline &
+ \calcval{#1}{\tkzUseLua{cellx(#2,#3,\i)}}}}
+\begin{tabular}{l*{#4}c}
+ \toprule
+ \firstline \\
+ \secondline \\
+ \bottomrule
+ \end{tabular}
+}
+\fvalues(x^2-3*x+1,-2,.25,8)
+\vspace{12pt}
+
+\end{Verbatim}
+
+\makeatletter\let\percentchar\@percentchar\makeatother
+\directlua{
+function cellx (start,step,n)
+return start+step*(n-1)
+end
+}
+\def\calcval#1#2{%
+\directlua{
+ f = load (([[
+ return function (x)
+ return (\percentchar s)
+ end
+ ]]):format ([[#1]]), nil, 't', math) ()
+x = #2
+tex.print(string.format("\percentchar.2f",f(x)))}
+}
+\def\fvalues(#1,#2,#3,#4) {%
+\def\firstline{$x$}
+ \foreach \i in {1,2,...,#4}{%
+ \xdef\firstline{\firstline & \tkzUseLua{cellx(#2,#3,\i)}}}
+\def\secondline{$f(x)=#1$}
+ \foreach \i in {1,2,...,#4}{%
+ \xdef\secondline{\secondline &
+ \calcval{#1}{\tkzUseLua{cellx(#2,#3,\i)}}}}
+\begin{tabular}{l*{#4}c}
+ \toprule
+ \firstline \\
+ \secondline \\
+ \bottomrule
+ \end{tabular}
+}
+\fvalues(x^2-3*x+1,-2,.25,8)
+\vspace{12pt}
+
+% subsubsection example_5 (end)
% section transfers (end)
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-why.tex b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-why.tex
index 6ab030ee2f..4b28826391 100644
--- a/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-why.tex
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/TKZdoc-elements-why.tex
@@ -76,7 +76,7 @@ This version utilizes the simplest construction method made possible by Lua.
\begin{mybox}
\begin{Verbatim}
-\begin{tkzelements}
+\directlua{
scale = .4
z.A = point: new (0,0)
z.B = point: new (6,0)
@@ -95,7 +95,7 @@ This version utilizes the simplest construction method made possible by Lua.
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}
+}
\end{Verbatim}
\end{mybox}
@@ -160,7 +160,7 @@ The subsequent section exclusively deals with drawings, and is managed by \pkg{t
\end{Verbatim}
\vspace{1em}
-\begin{tkzelements}
+\directlua{
scale = .4
z.A = point: new (0,0)
z.B = point: new (6,0)
@@ -179,7 +179,7 @@ The subsequent section exclusively deals with drawings, and is managed by \pkg{t
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}
+}
\begin{minipage}{\textwidth}
\hspace*{\fill}
\begin{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-elements/doc/latex/tmp.table b/macros/latex/contrib/tkz/tkz-elements/doc/latex/tmp.table
new file mode 100644
index 0000000000..2d2b1e66d4
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/doc/latex/tmp.table
@@ -0,0 +1,100 @@
+-1 6 i
+-0.96 5.8016 i
+-0.92 5.6064 i
+-0.88 5.4144 i
+-0.84 5.2256 i
+-0.8 5.04 i
+-0.76 4.8576 i
+-0.72 4.6784 i
+-0.68 4.5024 i
+-0.64 4.3296 i
+-0.6 4.16 i
+-0.56 3.9936 i
+-0.52 3.8304 i
+-0.48 3.6704 i
+-0.44 3.5136 i
+-0.4 3.36 i
+-0.36 3.2096 i
+-0.32 3.0624 i
+-0.28 2.9184 i
+-0.24 2.7776 i
+-0.2 2.64 i
+-0.16 2.5056 i
+-0.12 2.3744 i
+-0.08 2.2464 i
+-0.04 2.1216 i
+3.4694469519536e-16 2 i
+0.04 1.8816 i
+0.08 1.7664 i
+0.12 1.6544 i
+0.16 1.5456 i
+0.2 1.44 i
+0.24 1.3376 i
+0.28 1.2384 i
+0.32 1.1424 i
+0.36 1.0496 i
+0.4 0.96 i
+0.44 0.8736 i
+0.48 0.7904 i
+0.52 0.7104 i
+0.56 0.6336 i
+0.6 0.56 i
+0.64 0.4896 i
+0.68 0.4224 i
+0.72 0.3584 i
+0.76 0.2976 i
+0.8 0.24 i
+0.84 0.1856 i
+0.88 0.1344 i
+0.92 0.086399999999999 i
+0.96 0.041599999999999 i
+1 -4.4408920985006e-16 i
+1.04 -0.0384 i
+1.08 -0.0736 i
+1.12 -0.1056 i
+1.16 -0.1344 i
+1.2 -0.16 i
+1.24 -0.1824 i
+1.28 -0.2016 i
+1.32 -0.2176 i
+1.36 -0.2304 i
+1.4 -0.24 i
+1.44 -0.2464 i
+1.48 -0.2496 i
+1.52 -0.2496 i
+1.56 -0.2464 i
+1.6 -0.24 i
+1.64 -0.2304 i
+1.68 -0.2176 i
+1.72 -0.2016 i
+1.76 -0.1824 i
+1.8 -0.16 i
+1.84 -0.1344 i
+1.88 -0.1056 i
+1.92 -0.073599999999999 i
+1.96 -0.038399999999998 i
+2 1.7763568394003e-15 i
+2.04 0.041600000000001 i
+2.08 0.086400000000002 i
+2.12 0.1344 i
+2.16 0.1856 i
+2.2 0.24 i
+2.24 0.2976 i
+2.28 0.3584 i
+2.32 0.4224 i
+2.36 0.4896 i
+2.4 0.56 i
+2.44 0.6336 i
+2.48 0.7104 i
+2.52 0.7904 i
+2.56 0.8736 i
+2.6 0.96 i
+2.64 1.0496 i
+2.68 1.1424 i
+2.72 1.2384 i
+2.76 1.3376 i
+2.8 1.44 i
+2.84 1.5456 i
+2.88 1.6544 i
+2.92 1.7664 i
+2.96 1.8816 i
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 edb5864f4f..f7ba1922c0 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz-elements.sty b/macros/latex/contrib/tkz/tkz-elements/latex/tkz-elements.sty
index 597a050850..821fe56225 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz-elements.sty
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz-elements.sty
@@ -1,5 +1,5 @@
% encoding : utf8
-% tkz-elements.sty v2.30c
+% tkz-elements.sty v3.0c
% 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
@@ -11,29 +11,33 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\ProvidesPackage{tkz-elements}[2024/07/16 version 2.30c Graphic Object Library]
-\RequirePackage{luacode}
-\directlua{require "tkz_elements_main"}
+\ProvidesPackage{tkz-elements}[2024/07/16 version 3.00 Graphic Object Library]
+%\RequirePackage{luacode}
+ \directlua{
+ require "tkz_elements_main"
+ tkz_epsilon=1e-8
+ tkz_dc=2
+ indirect = true
+ init_elements()}%
+
\newenvironment{tkzelements}
{ \directlua{scale=1}
- \directlua{tkz_epsilon=1e-8}
- \directlua{tkz_dc=2}
- \directlua{indirect = true}
- \directlua{z={}
- C={}
- E={}
- L={}
- M={}
- P={}
- Q={}
- R={}
- RP={}
- S={}
- T={}
- V={}}
+ \directlua{z = {}
+ C = {}
+ E = {}
+ L = {}
+ M = {}
+ P = {}
+ Q = {}
+ R = {}
+ RP= {}
+ S = {}
+ T = {}
+ V = {}}
\luacode}
- {\endluacode}
+ {\endluacode}%
+
% new version of the next macro proposed by Sanskar Singh
\def\tkzGetNodes{\directlua{%
for K,V in pairs(z) do
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circle.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circle.lua
index e17ccb2ebb..6bb0c7c4f0 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circle.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circle.lua
@@ -1,6 +1,6 @@
-- tkz_elements-circles.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_class.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_class.lua
index 3ded691d53..6d5fae53ec 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_class.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_class.lua
@@ -1,6 +1,6 @@
-- tkz_elements_class.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- from class.lua (Simple Lua Classes from Lua-users wiki)
-- Compatible with Lua 5.1 (not 5.0).
-- http://lua-users.org/wiki/SimpleLuaClasses DavidManura
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_ellipse.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_ellipse.lua
index 7581c19d7a..cbc3a3969c 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_ellipse.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_ellipse.lua
@@ -1,6 +1,6 @@
-- tkz_elements-ellipses.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_circles.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_circles.lua
index 88f9040b7f..3208f7a5d3 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_circles.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_circles.lua
@@ -1,6 +1,6 @@
-- tkz_elements_functions_circles.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_intersections.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_intersections.lua
index fe253e9aa2..750bafe078 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_intersections.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_intersections.lua
@@ -1,6 +1,6 @@
-- tkz_elements_intersections.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_lines.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_lines.lua
index a5504593c0..31c735df6f 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_lines.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_lines.lua
@@ -1,6 +1,6 @@
-- tkz_elements_functions_lines.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_maths.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_maths.lua
index c3f7e54ffd..d3efe9b290 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_maths.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_maths.lua
@@ -1,6 +1,6 @@
-- tkz_elements_functions_maths.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_matrices.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_matrices.lua
index c80420090f..3ced42be40 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_matrices.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_matrices.lua
@@ -1,6 +1,6 @@
-- tkz_elements_functions_matrices.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_points.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_points.lua
index e2366e25e3..59454e78f0 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_points.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_points.lua
@@ -1,6 +1,6 @@
-- tkz_elements_functions_points.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_regular.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_regular.lua
index 0f74d28fe9..0dfed425ae 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_regular.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_regular.lua
@@ -1,6 +1,6 @@
-- tkz_elements_functions_regular.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_triangles.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_triangles.lua
index 02d3058a16..5a81a993e1 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_triangles.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_functions_triangles.lua
@@ -1,6 +1,6 @@
-- tkz_elements_functions_triangles.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_line.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_line.lua
index 797365f33f..4d24d9d229 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_line.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_line.lua
@@ -1,6 +1,6 @@
-- tkz_elements_lines.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
@@ -437,6 +437,14 @@ function line: sas (a,phi)
pt = rotation_ (self.pa,phi,x)
return triangle : new (self.pa,self.pb,pt)
end
+
+function line: asa (alpha,beta)
+ local pta,ptb,pt
+ pta = rotation_ (self.pa,alpha,self.pb)
+ ptb = rotation_ (self.pb,-beta,self.pa)
+ pt = intersection_ll_ (self.pa,pta,self.pb,ptb)
+ return triangle : new (self.pa,self.pb,pt)
+end
---- sacred triangles ----
function line: gold (swap)
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_main.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_main.lua
index 142f00c8ed..e4f5c7623e 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_main.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_main.lua
@@ -1,6 +1,6 @@
-- tkz_elements-main.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
@@ -12,20 +12,7 @@
-- This work has the LPPL maintenance status “maintained”.
-- The Current Maintainer of this work is Alain Matthes.
- z = {}
- C = {}
- E = {}
- L = {}
- P = {}
- M = {}
- Q = {}
- R = {}
- RP = {}
- S = {}
- T = {}
- V = {}
-
- -- loads module
+-- loads module
require "tkz_elements_point.lua"
require "tkz_elements_line.lua"
require "tkz_elements_circle.lua"
@@ -48,4 +35,20 @@ require "tkz_elements_functions_circles.lua"
require "tkz_elements_functions_triangles.lua"
require "tkz_elements_functions_regular.lua"
require "tkz_elements_functions_matrices.lua"
-require "tkz_elements_matrices.lua" \ No newline at end of file
+require "tkz_elements_matrices.lua"
+
+function init_elements ()
+ scale=1
+ z={}
+ C={}
+ E={}
+ L={}
+ M={}
+ P={}
+ Q={}
+ R={}
+ RP={}
+ S={}
+ T={}
+ V={}
+end \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_matrices.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_matrices.lua
index 035e8a0a33..f0bd69b95e 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_matrices.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_matrices.lua
@@ -1,6 +1,6 @@
-- tkz_elements_matrices.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_misc.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_misc.lua
index daa3e21872..7fcac90d86 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_misc.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_misc.lua
@@ -1,6 +1,6 @@
-- tkz_elements_functions_maths.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_parallelogram.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_parallelogram.lua
index d471976d06..a6dc3360f9 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_parallelogram.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_parallelogram.lua
@@ -1,6 +1,6 @@
-- tkz_elements_parallelogram.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_point.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_point.lua
index e29779ef79..3ec0262051 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_point.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_point.lua
@@ -1,6 +1,6 @@
-- tkz_elements_point.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_quadrilateral.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_quadrilateral.lua
index 6625b9d789..fc3e95b28f 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_quadrilateral.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_quadrilateral.lua
@@ -1,6 +1,6 @@
-- tkz_elements_quadrilateral.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_rectangle.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_rectangle.lua
index fdc3084501..a531722020 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_rectangle.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_rectangle.lua
@@ -1,6 +1,6 @@
-- tkz_elements-rectangle.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_regular.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_regular.lua
index a4527c779b..bf49fca814 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_regular.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_regular.lua
@@ -1,6 +1,6 @@
-- tkz_elements_regular.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
@@ -15,7 +15,7 @@
regular_polygon = {}
function regular_polygon: new (za, zb ,nb)
local type = 'regular_polygon'
- local table = regular_ (za , zb , nb)
+ local table = regular_ (za , zb , nb)
local center = za
local through = zb
local angle = 2 * math.pi/nb
@@ -52,7 +52,7 @@ end
-----------------------
function regular_polygon : incircle ()
local next,first
- next = self.table[2]
+ next = self.table[2]
first = self.table[1]
return circle : new ( self.center , projection_ (first,next,self.center) )
end
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_square.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_square.lua
index 93860b825c..68bfa8dec0 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_square.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_square.lua
@@ -1,6 +1,6 @@
-- tkz_elements-square.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangle.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangle.lua
index 84b10273da..6318a7d8d1 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangle.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangle.lua
@@ -1,6 +1,6 @@
-- tkz_elements_triangles.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vector.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vector.lua
index 0dcbbfde61..fcd63c783a 100644
--- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vector.lua
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vector.lua
@@ -1,6 +1,6 @@
-- tkz_elements_vectors.lua
-- date 2024/07/16
--- version 2.30c
+-- version 3.00
-- 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