summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tkz/tkz-elements/latex/tkz-elements.sty
blob: d3618f8e3158542e935f9b559f9ac84f6672476e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
% encoding : utf8 
% tkz-elements.sty v2.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
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.

\ProvidesPackage{tkz-elements}[2024/02/04 v2.00c Graphic Object Library]
\RequirePackage{luacode}
\directlua{require "tkz_elements_main"}

\newenvironment{tkzelements}
  {   \directlua{scale=1}
      \directlua{tkz_epsilon=1e-8}
      \directlua{indirect = true}
      \directlua{for k,v in pairs(z) do z[k] = nil end}
      \directlua{for k,v in pairs(C) do C[k] = nil end}
      \directlua{for k,v in pairs(E) do E[k] = nil end}
      \directlua{for k,v in pairs(L) do L[k] = nil end}
      \directlua{for k,v in pairs(P) do C[k] = nil end}
      \directlua{for k,v in pairs(S) do E[k] = nil end}
      \directlua{for k,v in pairs(R) do C[k] = nil end}
      \directlua{for k,v in pairs(Q) do T[k] = nil end}
      \directlua{for k,v in pairs(T) do T[k] = nil end}
      \luacode}
  {\endluacode}
 
\def\tkzGetNodes{\directlua{%
   for K,V in pairs(z) do
      local n,sd,ft
      n = string.len(K)
      if n >1 then
      _,_,ft, sd = string.find( K , "(.+)(.)" )  
     if sd == "p" then   K=ft.."'" end 
     _,_,xft, xsd = string.find( ft , "(.+)(.)" ) 
     if xsd == "p" then  K=xft.."'".."'" end 
       end    
  tex.print("\\coordinate ("..K..") at ("..V.re..","..V.im..") ;\\\\")
end}
}

\def\tkzUseLua#1{\directlua{tex.print(tostring(#1))}} 
\makeatletter
\def\tkzDrawLuaEllipse{\pgfutil@ifnextchar[{\tkz@DrawLuaEllipse}{\tkz@DrawLuaEllipse[]}}
\def\tkz@DrawLuaEllipse[#1](#2,#3,#4){% 
\begingroup 
\draw[#1](#2) ellipse [x radius=\tkzUseLua{length(z.#3,z.#2)}, y radius = \tkzUseLua{length(z.#4,z.#2)},rotate=\tkzUseLua{math.deg(slope_ (z.#3,z.#2))}]; 
\endgroup
}
\def\tkzDN{\pgfutil@ifnextchar[{\tkz@DN}{\tkz@DN[2]}}
\def\tkz@DN[#1]#2{%
\begingroup
\pgfkeys{/pgf/number format/.cd,std,precision=#1}
\pgfmathprintnumber{#2}
\endgroup
 }

\makeatother
\endinput