summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tkz-elements/tkz-elements.sty
blob: 597a0508506ecb65c67489e655f58213cd06f319 (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
66
67
68
% encoding : utf8 
% tkz-elements.sty v2.30c
% 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/07/16 version 2.30c Graphic Object Library]
\RequirePackage{luacode}
\directlua{require "tkz_elements_main"}

\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={}}
      \luacode}
  {\endluacode}
 % new version of the next macro proposed by Sanskar Singh
\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.sprint("\string\\coordinate ("..K..") at ("..V.re..","..V.im..") ; \string\r")
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