% encoding : utf8 % 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 % 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 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{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