diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tkz-base/tkz-tools-base.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/tkz-base/tkz-tools-base.tex | 719 |
1 files changed, 51 insertions, 668 deletions
diff --git a/Master/texmf-dist/tex/latex/tkz-base/tkz-tools-base.tex b/Master/texmf-dist/tex/latex/tkz-base/tkz-tools-base.tex index ee7c879bd87..926ed2347e4 100644 --- a/Master/texmf-dist/tex/latex/tkz-base/tkz-tools-base.tex +++ b/Master/texmf-dist/tex/latex/tkz-base/tkz-tools-base.tex @@ -3,698 +3,81 @@ % This file may be distributed and/or modified % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. - - % utf8 encoding - -\def\fileversion{1.16 d} -\def\filedate{2018/09/19} - +\def\fileversion{3.01c} +\def\filedate{2020/01/23} +\typeout{2020/01/23 3.01c tkz-tools-base.tex} +\makeatletter %<--------------------------------------------------------------------------–> -\global\let\@xa\tkz@init@xmin -\global\let\@xb\tkz@init@xmax -\global\let\@ya\tkz@init@ymin -\global\let\@yb\tkz@init@ymax +\global\let\tkz@tmp@xa\tkz@init@xmin% modif 2016 +\global\let\tkz@tmp@xb\tkz@init@xmax% modif 2016 +\global\let\tkz@tmp@ya\tkz@init@ymin% modif 2016 +\global\let\tkz@tmp@yb\tkz@init@ymax% modif 2016 %<--------------------------------------------------------------------------–> -\gdef\xgrad{1} -\gdef\ygrad{1} -\gdef\tkz@xa{0} -\gdef\tkz@xb{10} -\gdef\tkz@ya{0} -\gdef\tkz@yb{10} -\newif\iftkz@init@NO \pgfkeys{ - /tkzInit/.cd, - xmin/.code = {\def\tkz@init@xmin{#1}}, - xmax/.code = {\def\tkz@init@xmax{#1}}, - xstep/.code = {\def\tkz@init@xstep{#1}}, - ymin/.code = {\def\tkz@init@ymin{#1}}, - ymax/.code = {\def\tkz@init@ymax{#1}}, - ystep/.code = {\def\tkz@init@ystep{#1}}, - NO/.is if = tkz@init@NO, - NO/.default = true } + /@tkzInit/.cd, + xmin/.store in = \tkz@init@xmin, + xmax/.store in = \tkz@init@xmax, + xstep/.store in = \tkz@init@xstep, + ymin/.store in = \tkz@init@ymin, + ymax/.store in = \tkz@init@ymax, + ystep/.store in = \tkz@init@ystep, + NO/.is if = tkz@init@NO, + NO/.default = true, + xmin = 0, + xmax = 10, + xstep = 1, + ymin = 0, + ymax = 10, + ystep = 1, + NO = false + } \def\tkzInit{\pgfutil@ifnextchar[{\tkz@Init}{\tkz@Init[]}} \def\tkz@Init[#1]{% -\pgfkeys{/tkzInit/.cd, - xmin = 0, - xmax = 10, - xstep = 1, - ymin = 0, - ymax = 10, - ystep = 1, - NO = false -} - \pgfqkeys{/tkzInit}{#1} + \pgfqkeys{/@tkzInit}{#1} \ifx\tkzfctloaded\undefined \else - \tkz@tkzf@fct=0 % only if tkz-fct loaded + \tkz@tkzf@fct=0 % only if tkz-fct loaded \fi \xdef\tkz@init@xorigine{0} \xdef\tkz@init@yorigine{0} - \FPsgn\@xsgmin{\tkz@init@xmin} - \FPsgn\@xsgmax{\tkz@init@xmax} - \FPsgn\@ysgmin{\tkz@init@ymin} - \FPsgn\@ysgmax{\tkz@init@ymax} - \global\let\@xa\tkz@init@xmin - \global\let\@xb\tkz@init@xmax - \global\let\@ya\tkz@init@ymin - \global\let\@yb\tkz@init@ymax - \tkz@init@NOfalse + \edef\@xsgmin{\fpeval{sign(\tkz@init@xmin)}} + \edef\@xsgmax{\fpeval{sign(\tkz@init@xmax)}} + \edef\@ysgmin{\fpeval{sign(\tkz@init@ymin)}} + \edef\@ysgmax{\fpeval{sign(\tkz@init@ymax)}} + \let\tkz@tmp@xa\tkz@init@xmin %modif 2016 + \let\tkz@tmp@xb\tkz@init@xmax %modif 2016 + \let\tkz@tmp@ya\tkz@init@ymin %modif 2016 + \let\tkz@tmp@yb\tkz@init@ymax %modif 2016 + \tkz@init@NOfalse \ifx\@xsgmin\@xsgmax \tkz@init@NOtrue \fi - \ifx\@ysgmin\@ysgmax \tkz@init@NOtrue \fi + \ifx\@ysgmin\@ysgmax \tkz@init@NOtrue \fi \iftkz@init@NO% \ifx\@xsgmin\@xsgmax - \FPadd{\tkz@init@xmax}{\tkz@init@xmax}{-\tkz@init@xmin}% - \edef\tkz@init@xorigine{\tkz@init@xmin} - \edef\tkz@init@xmin{0} + \edef\tkz@init@xmax{\fpeval{\tkz@init@xmax-\tkz@init@xmin}} + \edef\tkz@init@xorigine{\tkz@init@xmin} + \edef\tkz@init@xmin{0} \fi - \ifx\@ysgmin\@ysgmax - \FPadd{\tkz@init@ymax}{\tkz@init@ymax}{-\tkz@init@ymin}% - \edef\tkz@init@yorigine{\tkz@init@ymin} - \edef\tkz@init@ymin{0} + \edef\tkz@init@ymax{\fpeval{\tkz@init@ymax-\tkz@init@ymin}} + \edef\tkz@init@yorigine{\tkz@init@ymin} + \edef\tkz@init@ymin{0} \fi \fi - \FPdiv{\tkz@xa}{\tkz@init@xmin}{\tkz@init@xstep} - \FPdiv{\tkz@xb}{\tkz@init@xmax}{\tkz@init@xstep} - \FPdiv{\tkz@ya}{\tkz@init@ymin}{\tkz@init@ystep} - \FPdiv{\tkz@yb}{\tkz@init@ymax}{\tkz@init@ystep} + \edef\tkz@xa{\fpeval{\tkz@init@xmin/\tkz@init@xstep}} + \edef\tkz@xb{\fpeval{\tkz@init@xmax/\tkz@init@xstep}} + \edef\tkz@ya{\fpeval{\tkz@init@ymin/\tkz@init@ystep}} + \edef\tkz@yb{\fpeval{\tkz@init@ymax/\tkz@init@ystep}} \tkz@getdecimal{\tkz@init@xstep} % amélioration nb dec et integer - \global\edef\tkz@init@xdec{\number\c@pgfmath@countb} + \xdef\tkz@init@xdec{\number\c@pgfmath@countb} \tkz@getdecimal{\tkz@init@ystep} - \global\edef\tkz@init@ydec{\number\c@pgfmath@countb} + \xdef\tkz@init@ydec{\number\c@pgfmath@countb} }% -%<--------------------------------------------------------------------------–> -\pgfkeys{Clip/.cd, space/.code = {\def\tkz@CLI@space{#1}}} - -\def\tkzClip{\pgfutil@ifnextchar[{\tkz@Clip}{\tkz@Clip[]}} -\def\tkz@Clip[#1]{% -\pgfkeys{Clip/.cd,space = {}} -\pgfqkeys{/Clip}{#1} -\ifx\tkzutil@empty\tkz@CLI@space - \clip (\tkz@xa,\tkz@ya) rectangle (\tkz@xb,\tkz@yb); - \else - \FPadd{\tkz@xxa}{\tkz@xa}{-\tkz@CLI@space} - \FPadd{\tkz@yya}{\tkz@ya}{-\tkz@CLI@space} - \FPadd{\tkz@xxb}{\tkz@xb}{\tkz@CLI@space} - \FPadd{\tkz@yyb}{\tkz@yb}{\tkz@CLI@space} - \clip (\tkz@xxa,\tkz@yya) rectangle (\tkz@xxb,\tkz@yyb); -\fi -} -%todo add options -%<--------------------------------------------------------------------------–> -%<--------------------------------------------------------------------------–> -\def\tkz@showgrad#1{% -\FPifint{#1}\FPtrunc\tkz@result{#1}{0}\else\FPset\tkz@result{#1}\fi}% - -\def\tkz@Xresult{% -\tkz@showgrad{\xgrad}% - $\numprint{\tkz@result}$% -}% -%<--------------------------------------------------------------------------–> -\def\tkz@Yresult{% -\tkz@showgrad{\ygrad}% -$\numprint{\tkz@result}$ -}% -%<--------------------------------------------------------------------------–> -%<--------------------------------------------------------------------------–> -\def\tkz@Xshowgradresult{% -\iftkz@X@orig -\tkz@Xresult% -\else % orig - \iftkz@init@NO% - \unless\ifx\tkz@pos\tkz@posmin - \tkz@Xresult\fi - \else % NO - \unless\ifx\tkz@pos\x@tkzero% - \tkz@Xresult - \fi%end of x@tkzero - \fi%end of NO -\fi%end of orig -}% -%<--------------------------------------------------------------------------–> -\def\tkz@Yshowgradresult{% -\iftkz@Y@orig -\tkz@Yresult% -\else % orig - \iftkz@init@NO% - \unless\ifx\tkz@pos\tkz@posmin - \tkz@Yresult\fi - \else % NO - \unless\ifx\tkz@pos\y@tkzero% - \tkz@Yresult - \fi%end of x@tkzero - \fi%end of NO -\fi%end of orig -}% -%<--------------------------------------------------------------------------–> -%<--------------------------------------------------------------------------–> -\def\tkz@Xshowgrad{% -\iftkz@X@orig -\tkzprintfrac% -\else % orig - \iftkz@init@NO% - \unless\ifx\tz@pos\tkz@posmin - \tkzprintfrac\fi - \else % NO - \unless\ifx\tz@pos\x@tkzero% - \tkzprintfrac - \fi%end of x@tkzero - \fi%end of NO -\fi%end of orig -}% -%<--------------------------------------------------------------------------–> -\def\tkz@Yshowgrad{% -\iftkz@Y@orig -\tkzprintfrac% -\else % orig - \iftkz@init@NO% - \unless\ifx\tz@pos\tkz@posmin - \tkzprintfrac\fi - \else % NO - \unless\ifx\tz@pos\y@tkzero% - \tkzprintfrac - \fi%end of x@tkzero - \fi%end of NO -\fi%end of orig -}% - -%<--------------------------------------------------------------------------–> -% Setup axe -%<--------------------------------------------------------------------------–> -\pgfkeys{tkzaxis/.cd, -line width/.code = {\global\edef\tkz@sua@lw{#1}}, -color/.code = {\global\edef\tkz@sua@color{#1}}, -tickwd/.code = {\global\edef\tkz@sua@tickwd{#1}}, -ticka/.code = {\global\edef\tkz@sua@ticka{#1}}, -tickb/.code = {\global\edef\tkz@sua@tickb{#1}} -} - -\def\tkzSetUpAxis{\pgfutil@ifnextchar[{\tkz@SetUpAxis}{\tkz@SetUpAxis[]}} -\def\tkz@SetUpAxis[#1]{% -\begingroup - \pgfkeys{/tkzaxis/.cd, - line width = \tkz@init@lw, - color = \tkz@init@color, - tickwd = \tkz@init@tickwd, - ticka = \tkz@init@ticka, - tickb = \tkz@init@tickb - } -\pgfqkeys{/tkzaxis}{#1} -\global\let\tkz@init@lw\tkz@sua@lw -\global\let\tkz@init@gradsize\tkz@sua@gradsize -\global\let\tkz@init@color\tkz@sua@color -\global\let\tkz@init@tickwd\tkz@sua@tickwd -\global\let\tkz@init@ticka\tkz@sua@ticka -\global\let\tkz@init@tickb\tkz@sua@tickb -\endgroup} -%<--------------------------------------------------------------------------–> -% tkzDrawX todo améliorer les unités -%<--------------------------------------------------------------------------–> -\pgfkeys{% prob avec space -tkzdrawX/.cd, -color/.code = {\global\def\tkz@X@color{#1}}, -label/.code = {\global\def\tkz@X@label{#1}}, -right space/.code = {\global\def\tkz@axe@rxspace{#1}}, -left space/.code = {\global\def\tkz@axe@lxspace{#1}}, -noticks/.is if = tkz@X@noticks, -noticks/.default = true, -trig/.code = {\global\def\tkz@X@trig{#1}}, -step/.code = {\FPeval\tkz@posnext{#1}}, -tickwd/.code = {\global\def\tkz@X@tickwd{#1}}, -tickup/.code = {\global\def\tkz@X@tickup{#1}}, -tickdn/.code = {\global\def\tkz@X@tickdn{#1}}, -/tkzdrawX/.unknown/.code = {\let\searchname=\pgfkeyscurrentname - \pgfkeysalso{\searchname/.try=#1, - /tikz/\searchname/.retry=#1}}} - -\def\tkzDrawX{\pgfutil@ifnextchar[{\tkz@DrawX}{\tkz@DrawX[]}} -\def\tkz@DrawX[#1]{ -\begingroup% -\pgfkeys{/tkzdrawX/.cd, -color = \tkz@init@color, -label = \tkz@init@xlabel, -trig = 0, -step = \tkz@init@xstep, -right space = \tkz@init@rightspace, -left space = \tkz@init@leftspace, -noticks = false, -tickwd = \tkz@init@tickwd, -tickup = \tkz@init@ticka, -tickdn = \tkz@init@tickb} -\pgfqkeys{/tkzdrawX}{#1} -\FPtrunc\tkz@posmax{\tkz@xb}{\tkz@init@xdec} -\FPtrunc\tkz@posmin{\tkz@xa}{\tkz@init@xdec} -\FPadd\tkz@xbsup{\tkz@xb}{\tkz@axe@rxspace} -\FPadd\tkz@xainf{\tkz@xa}{-\tkz@axe@lxspace} -\path (\tkz@xainf,0)--(\tkz@xbsup,0) node(tkz@xline){}; -\draw[xaxe style, - color = \tkz@X@color, - /tkzdrawX/.cd, #1] (\tkz@xainf,0)--(\tkz@xbsup,0) - node[xlabel style, /tkzdrawX/.cd, #1]{\tkz@X@label}; - \iftkz@X@noticks - \else - \ifnum\tkz@X@trig=0 - \FPtrunc\tkz@posmax{\tkz@posmax}{\tkz@init@xdec}% - \FPdiv\tkz@posnext{\tkz@posnext}{\tkz@init@xstep} - \FPadd\tz@posnext{\tkz@posmin}{\tkz@posnext} - \foreach \tz@pos in {\tkz@posmin,\tz@posnext,...,\tkz@posmax}{% - \draw[color = \tkz@X@color, - line width = \tkz@X@tickwd, - shift = {(\tz@pos,0)}]% - (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn);} - \else - \FPadd{\tkz@posmin}{\tkz@posmin}{.5}% - \FPdiv\tkz@posmax{\tkz@posmax}{\FPpi}% - \FPmul\tkz@posmax{\tkz@posmax}{\tkz@X@trig}% - \FPdiv\tkz@posmin{\tkz@posmin}{\FPpi}% - \FPmul\tkz@posmin{\tkz@posmin}{\tkz@X@trig}% - \FPround\tkz@posmin{\tkz@posmin}{0}% - \foreach \tz@pos in {\tkz@posmin,...,\tkz@posmax}{% - \FPmul\tz@pospi{\tz@pos}{\FPpi} - \FPdiv\tz@pospi{\tz@pospi}{\tkz@X@trig}% - \draw[color = \tkz@X@color, - line width = \tkz@X@tickwd,% - shift = {(\tz@pospi,0)}]% - (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn); - }% end foreach - \fi - \fi -\endgroup} -%<--------------------------------------------------------------------------–> -\pgfkeys{% prob avec space -tkzAxeX/.cd, -color/.code = {\def\tkz@X@color{#1}}, -label/.code = {\global\def\tkz@X@label{#1}}, -frac/.code = {\def\tkzX@frac{#1}}, -trig/.code = {\def\tkzX@trig{#1}}, -/tkzAxeX/.unknown/.code = {\let\searchname=\pgfkeyscurrentname - \pgfkeysalso{\searchname/.try=#1, - /tikz/\searchname/.retry=#1}}} - -\def\tkzAxeX{\pgfutil@ifnextchar[{\tkz@AxeX}{\tkz@AxeX[]}} -\def\tkz@AxeX[#1]{% -\begingroup -\tkzLabelX[#1] \tkzDrawX[#1] -\endgroup -} - - -%<--------------------------------------------------------------------------–> -% tkzDrawY todo améliorer les unités -%<--------------------------------------------------------------------------–> -\pgfkeys{% prob avec space -tkzdrawY/.cd, -color/.code = {\def\tkz@Y@color{#1}}, -label/.code = {\def\tkz@Y@label{#1}}, -up space/.code = {\global\def\tkz@axe@uyspace{#1}}, -down space/.code = {\global\def\tkz@axe@dyspace{#1}}, -noticks/.is if = tkz@Y@noticks, -noticks/.default = true, -trig/.code = {\global\def\tkz@Y@trig{#1}}, -step/.code = {\FPeval\tkz@posnext{#1}}, -tickwd/.code = {\global\def\tkz@Y@tickwd{#1}}, -ticklt/.code = {\global\def\tkz@Y@ticklt{#1}}, -tickrt/.code = {\global\def\tkz@Y@tickrt{#1}}, -/tkzdrawY/.unknown/.code = {\let\searchname=\pgfkeyscurrentname - \pgfkeysalso{\searchname/.try=#1, - /tikz/\searchname/.retry=#1}}} - -\def\tkzDrawY{\pgfutil@ifnextchar[{\tkz@DrawY}{\tkz@DrawY[]}} -\def\tkz@DrawY[#1]{% -\begingroup -\pgfkeys{/tkzdrawY/.cd, -color = \tkz@init@color, -label = \tkz@init@ylabel, -trig = 0, -step = \tkz@init@ystep, -up space = \tkz@init@upspace, -down space = \tkz@init@downspace, -noticks = false, -tickwd = \tkz@init@tickwd, -ticklt = \tkz@init@tickb, -tickrt = \tkz@init@ticka} -\pgfqkeys{/tkzdrawY}{#1} -\FPtrunc\tkz@posmax{\tkz@yb}{\tkz@init@ydec} -\FPtrunc\tkz@posmin{\tkz@ya}{\tkz@init@ydec} -\FPadd\tkz@ybsup{\tkz@yb}{\tkz@axe@uyspace} -\FPadd\tkz@yainf{\tkz@ya}{-\tkz@axe@dyspace} -\path (0,\tkz@yainf)--(0,\tkz@ybsup) node(tkz@yline){}; -\draw[color = \tkz@Y@color, - yaxe style,/tkzdrawY/.cd,#1] (0,\tkz@yainf)--(0,\tkz@ybsup) - node[ylabel style,/tkzdrawY/.cd,#1]{\tkz@Y@label}; - \iftkz@Y@noticks - \else - \ifnum\tkz@Y@trig=0 - \FPtrunc\tkz@posmax{\tkz@posmax}{\tkz@init@ydec}% - \FPdiv\tkz@posnext{\tkz@posnext}{\tkz@init@ystep} - \FPadd\tz@posnext{\tkz@posmin}{\tkz@posnext} - \foreach \tz@pos in {\tkz@posmin,\tz@posnext,...,\tkz@posmax}{% - \draw[color = \tkz@Y@color, - line width = \tkz@Y@tickwd, - shift = {(0,\tz@pos)}]% - (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt);} - \else - \FPadd{\tkz@posmin}{\tkz@posmin}{.5}% - \FPdiv\tkz@posmax{\tkz@posmax}{\FPpi}% - \FPmul\tkz@posmax{\tkz@posmax}{\tkz@Y@trig}% - \FPdiv\tkz@posmin{\tkz@posmin}{\FPpi}% - \FPmul\tkz@posmin{\tkz@posmin}{\tkz@Y@trig}% - \FPround\tkz@posmin{\tkz@posmin}{0}% - \foreach \tz@pos in {\tkz@posmin,...,\tkz@posmax}{% - \FPmul\tz@pospi{\tz@pos}{\FPpi} - \FPdiv\tz@pospi{\tz@pospi}{\tkz@Y@trig}% - \draw[color = \tkz@Y@color, - line width = \tkz@Y@tickwd,% - shift = {(0,\tz@pospi)}]% - (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt); - }% end foreach - \fi - \fi -\endgroup} -%<---------------------------------------------------------------------------> -\newif\iftkz@np -\pgfkeys{% prob avec space -tkzlabelX/.cd, -frac/.code = {\def\tkz@X@frac{#1}}, -trig/.code = {\def\tkz@X@trig{#1}}, -step/.code = {\def\tkz@posnext{#1}}, -label options/.code = {\def\cmd@X@option{#1}}, -np off/.is if = tkz@np, -np off/.default = true, -orig/.is if = tkz@X@orig, -orig/.default = false, -tickwd/.code = {\global\def\tkz@X@tickwd{#1}}, -tickup/.code = {\global\def\tkz@X@tickup{#1}}, -tickdn/.code = {\global\def\tkz@X@tickdn{#1}}, -/tkzlabelX/.unknown/.code = {\let\searchname=\pgfkeyscurrentname - \pgfkeysalso{\searchname/.try=#1, - /tikz/\searchname/.retry=#1}}} - \def\tkzLabelX{\pgfutil@ifnextchar[{\tkz@LabelX}{\tkz@LabelX[]}} -\def\tkz@LabelX[#1]{% -\begingroup -\pgfkeys{/tkzlabelX/.cd, -frac = 0, -trig = 0, -step = \tkz@init@xstep, -np off = false, -orig = true, -label options = {}, -tickwd = \tkz@init@tickwd, -tickup = \tkz@init@ticka, -tickdn = \tkz@init@tickb} -\pgfqkeys{/tkzlabelX}{#1} -\iftkz@np\let\numprint@saved\numprint % -\let\numprint\relax\fi % - -\FPtrunc\tkz@posmin{\tkz@xa}{\tkz@init@xdec}% -\FPtrunc\tkz@posmax{\tkz@xb}{\tkz@init@xdec}% -\FPtrunc\x@tkzero{0.0000000}{\tkz@init@xdec}% - -\ifnum\tkz@X@frac=0 % - \ifnum\tkz@X@trig=0 % affichage normal - \FPdiv\tz@posnext{\tkz@posnext}{\tkz@init@xstep} - \FPadd\tz@posnext{\tkz@posmin}{\tz@posnext} - \foreach \tz@pos in {\tkz@posmin,\tz@posnext,...,\tkz@posmax}{% - \FPtrunc\tkz@pos{\tz@pos}{\tkz@init@xdec}% - \FPmul{\xgrad}{\tz@pos}{\tkz@init@xstep}% - \FPadd{\xgrad}{\xgrad}{\tkz@init@xorigine}% - \FPtrunc\xgrad{\xgrad}{\tkz@init@xdec}% - \protected@edef\tkz@temp{% - \noexpand\path[shift = {(\tz@pos,0)}] - (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn)% - node[xlabel style,% - fill = \tkz@fillcolor, - \cmd@X@option]}\tkz@temp{\tkz@Xshowgradresult}; -}% - \else% trig > 0 - \FPadd{\tkz@posmin}{\tkz@posmin}{.5}% - \FPdiv\tkz@posmax{\tkz@posmax}{\FPpi}% - \FPmul\tkz@posmax{\tkz@posmax}{\tkz@X@trig}% - \FPdiv\tkz@posmin{\tkz@posmin}{\FPpi}% - \FPmul\tkz@posmin{\tkz@posmin}{\tkz@X@trig}% - \FPround\tkz@posmin{\tkz@posmin}{0}% - \foreach \tz@pos in {\tkz@posmin,...,\tkz@posmax}{% - \tkzPrintFracWithPi{\tz@pos}{\tkz@X@trig} - \FPmul\tz@pospi{\tz@pos}{\FPpi} - \FPdiv\tz@pospi{\tz@pospi}{\tkz@X@trig}% - \protected@edef\tkz@temp{% - \noexpand\path[shift = {(\tz@pospi,0)}]% - (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn)% - node[xlabel style, - text height = 8pt, - fill = \tkz@fillcolor, - \cmd@X@option]}\tkz@temp{\tkz@Xshowgrad};% - }% end foreach - \fi -\else% frac > 0 -\FPround\tkz@posmin{\tkz@posmin}{0}% - \foreach \tz@pos in {\tkz@posmin,...,\tkz@posmax}{% - \tkzPrintFrac{\tz@pos}{\tkz@X@frac}% - \protected@edef\tkz@temp{% - \noexpand\path[shift = {(\tz@pos,0)}]% - (0pt,\tkz@X@tickup)--(0pt,-\tkz@X@tickdn)% - node[xlabel style, - text height = 8pt, - fill = \tkz@fillcolor, - \cmd@X@option]}\tkz@temp{\tkz@Xshowgrad}% - ;% - }% end foreach -\fi - \iftkz@np\let\numprint\numprint@saved \fi% -\endgroup -} - -%<---------------------------------------------------------------------------> -\pgfkeys{% prob avec space -tkzticksY/.cd, -frac/.code = {\def\tkz@Y@frac{#1}}, -trig/.code = {\def\tkz@Y@trig{#1}}, -step/.code = {\def\tkz@posnext{#1}}, -label options/.code = {\def\cmd@Y@option{#1}}, -np off/.is if = tkz@np, -np off/.default = true, -orig/.is if = tkz@Y@orig, -orig/.default = false, -tickwd/.code = {\global\def\tkz@Y@tickwd{#1}}, -ticklt/.code = {\global\def\tkz@Y@ticklt{#1}}, -tickrt/.code = {\global\def\tkz@Y@tickrt{#1}}, -/tkzticksY/.unknown/.code = {\let\searchname=\pgfkeyscurrentname - \pgfkeysalso{\searchname/.try=#1, - /tikz/\searchname/.retry=#1}}} - \def\tkzLabelY{\pgfutil@ifnextchar[{\tkz@LabelY}{\tkz@LabelY[]}} -\def\tkz@LabelY[#1]{% -\begingroup -\pgfkeys{/tkzticksY/.cd, -frac = 0, -trig = 0, -step = \tkz@init@ystep, -np off = false, -orig = true, -label options = {}, -tickwd = \tkz@init@tickwd, -ticklt = \tkz@init@tickb, -tickrt = \tkz@init@ticka} -\pgfqkeys{/tkzticksY}{#1} -\iftkz@np\let\numprint@saved\numprint % -\let\numprint\relax\fi % - -\FPtrunc\tkz@posmin{\tkz@ya}{\tkz@init@ydec}% -\FPtrunc\tkz@posmax{\tkz@yb}{\tkz@init@ydec}% -\FPtrunc\y@tkzero{0.0000000}{\tkz@init@ydec}% - -\ifnum\tkz@Y@frac=0 - \ifnum\tkz@Y@trig=0 % affichage normal - \FPdiv\tz@posnext{\tkz@posnext}{\tkz@init@ystep} - \FPadd\tz@posnext{\tkz@posmin}{\tz@posnext} - \foreach \tz@pos in {\tkz@posmin,\tz@posnext,...,\tkz@posmax}{% - \FPtrunc\tkz@pos{\tz@pos}{\tkz@init@ydec}% - \FPmul{\ygrad}{\tz@pos}{\tkz@init@ystep}% - \FPadd{\ygrad}{\ygrad}{\tkz@init@yorigine}% - \FPtrunc\ygrad{\ygrad}{\tkz@init@ydec}% - \protected@edef\tkz@temp{% - \noexpand\path[shift = {(0,\tz@pos)}]% - (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt)% - node[ylabel style, - fill = \tkz@fillcolor, - \cmd@Y@option]}\tkz@temp{\tkz@Yshowgradresult}; -} - \else% trig > 0 - \FPadd{\tkz@posmin}{\tkz@posmin}{.5}% - \FPdiv\tkz@posmax{\tkz@posmax}{\FPpi}% - \FPmul\tkz@posmax{\tkz@posmax}{\tkz@Y@trig}% - \FPdiv\tkz@posmin{\tkz@posmin}{\FPpi}% - \FPmul\tkz@posmin{\tkz@posmin}{\tkz@Y@trig}% - \FPround\tkz@posmin{\tkz@posmin}{0}% - \foreach \tz@pos in {\tkz@posmin,...,\tkz@posmax}{% - \tkzPrintFracWithPi{\tz@pos}{\tkz@Y@trig} - \FPmul\tz@pospi{\tz@pos}{\FPpi} - \FPdiv\tz@pospi{\tz@pospi}{\tkz@Y@trig}% - \protected@edef\tkz@temp{% - \noexpand\path[shift = {(0,\tz@pospi)}]% - (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt)% - node[ylabel style, - text height = 8pt, - fill = \tkz@fillcolor, - \cmd@Y@option]}\tkz@temp{\tkz@Yshowgrad};% - }% end foreach - \fi -\else% frac > 0 -\FPround\tkz@posmin{\tkz@posmin}{0}% - \foreach \tz@pos in {\tkz@posmin,...,\tkz@posmax}{% - \tkzPrintFrac{\tz@pos}{\tkz@Y@frac}% - \protected@edef\tkz@temp{% - \noexpand\path[shift = {(0,\tz@pos)}]% - (\tkz@Y@tickrt,0pt)--(-\tkz@Y@ticklt,0pt)% - node[ylabel style, - text height = 8pt, - fill = \tkz@fillcolor, - \cmd@Y@option]}\tkz@temp{\tkz@Yshowgrad}% - ;% - }% end foreach -\fi - \iftkz@np\let\numprint\numprint@saved \fi% -\endgroup} -%<--------------------------------------------------------------------------–> -\def\tkzAxeY{\pgfutil@ifnextchar[{\tkz@AxeY}{\tkz@AxeY[]}} -\def\tkz@AxeY[#1]{% -\begingroup - \tkzDrawY[#1] \tkzLabelY[#1] -\endgroup} -%<--------------------------------------------------------------------------> -\newif\if@tkz@swap -\pgfkeys{% prob avec space - tkzAxeXY/.cd, - swap/.is if = @tkz@swap, - swap/.default = true, - /tkzAxeXY/.unknown/.code = {\let\searchname=\pgfkeyscurrentname - \pgfkeysalso{\searchname/.try=#1, - /tikz/\searchname/.retry=#1}}} - -\def\tkzAxeXY{\pgfutil@ifnextchar[{\tkzAxe@XY}{\tkzAxe@XY[]}} -\def\tkzAxe@XY[#1]{% -\pgfkeys{ - /tkzAxeXY/.cd, - swap = false} -\pgfqkeys{/tkzAxeXY}{#1} -\if@tkz@swap -\tkzLabelX[#1]\tkzLabelY[#1]\tkzDrawX[#1]\tkzDrawY[#1] -\else -\tkzDrawX[#1]\tkzDrawY[#1]\tkzLabelX[#1]\tkzLabelY[#1] -\fi} -\def\tkzDrawXY{\pgfutil@ifnextchar[{\tkzDraw@XY}{\tkzDraw@XY[]}} -\def\tkzDraw@XY[#1]{\tkzDrawX[#1]\tkzDrawY[#1]} -\def\tkzLabelXY{\pgfutil@ifnextchar[{\tkzLabel@XY}{\tkzLabel@XY[]}} -\def\tkzLabel@XY[#1]{\tkzLabelX[#1]\tkzLabelY[#1]} -%<--------------------------------------------------------------------------–> -% grid -%<--------------------------------------------------------------------------–> -\newif\if@tkz@gd@sub -\def\tkzRatioLineGrid{0.75} -\def\tkz@gd@sublw{0.4 pt} - - -\pgfkeys{ - /tkzGrid/.cd, - color/.code = {\def\tkz@gd@color{#1}% - \edef\tkz@gd@subcolor{% - \tkz@gd@color!\tkzCoeffSubColor}}, - subxstep/.code = {\def\tkz@gd@subxstep{#1}}, - subystep/.code = {\def\tkz@gd@subystep{#1}}, - ratio/.code = {\def\tkz@gd@ratio{#1}}, - line width/.code = {\edef\tkz@gd@lw{#1} - \edef\tkz@gd@sublw{\tkz@gd@ratio\tkz@gd@lw}}, - sub/.is if = @tkz@gd@sub, - sub/.default = true , - /tkzGrid/.unknown/.code = {\let\searchname=\pgfkeyscurrentname - \pgfkeysalso{\searchname/.try=#1, - /tikz/\searchname/.retry=#1}}} - -\def\tkzGrid{\pgfutil@ifnextchar[{\tkz@Grid}{\tkz@Grid[]}} -\def\tkz@Grid[#1]{\@ifnextchar({\tkz@@Grid[#1]}% - {\tkz@@Grid[#1](\@xa,\@ya)(\@xb,\@yb)}} -\def\tkz@@Grid[#1](#2,#3)(#4,#5){% -\pgfkeys{ - /tkzGrid/.cd, - sub = false, - color = \tkz@grid@color, - ratio = 0.75, - subxstep = \tkz@grid@xstep, - subystep = \tkz@grid@ystep, - line width = \tkz@grid@lw} - \pgfqkeys{/tkzGrid}{#1} - \begingroup - \FPadd{\tkz@gxa}{#2}{-\tkz@init@xorigine} - \FPadd{\tkz@gxb}{#4}{-\tkz@init@xorigine} - \FPadd{\tkz@gya}{#3}{-\tkz@init@yorigine} - \FPadd{\tkz@gyb}{#5}{-\tkz@init@yorigine} - \FPdiv{\tkz@gxa}{\tkz@gxa}{\tkz@init@xstep} - \FPdiv{\tkz@gya}{\tkz@gya}{\tkz@init@ystep} - \FPdiv{\tkz@gxb}{\tkz@gxb}{\tkz@init@xstep} - \FPdiv{\tkz@gyb}{\tkz@gyb}{\tkz@init@ystep} - \if@tkz@gd@sub% - \FPeval\@subxstep{\tkz@gd@subxstep/\tkz@init@xstep}% - \FPeval\@subystep{\tkz@gd@subystep/\tkz@init@ystep}% - \draw [xstep = \@subxstep cm,% - ystep = \@subystep cm,% - color = \tkz@gd@subcolor,% - line width = \tkzRatioLineGrid]% - (\tkz@gxa,\tkz@gya) grid (\tkz@gxb,\tkz@gyb);% - \fi - \draw [color = \tkz@gd@color,% - line width = \tkz@gd@lw]% - (\tkz@gxa,\tkz@gya) grid (\tkz@gxb,\tkz@gyb);% - \endgroup -}% -%<--------------------------------------------------------------------------–> -% repère -%<--------------------------------------------------------------------------–> - -\newif\iftkz@Rep@orig -\pgfkeys{ - /tkzRep/.cd, - line width/.code = {\def\tkz@Rep@lw{#1}}, - xlabel/.code = {\def\tkz@Rep@xlabel{#1}}, - ylabel/.code = {\def\tkz@Rep@ylabel{#1}}, - posxlabel/.code = {\def\tkz@Rep@posxlabel{#1}}, - posylabel/.code = {\def\tkz@Rep@posylabel{#1}}, - xnorm/.code = {\def\tkz@Rep@xnorm{#1}}, - ynorm/.code = {\def\tkz@Rep@ynorm{#1}}, - color/.code = {\def\tkz@Rep@color{#1}}, - colorlabel/.code = {\def\tkz@Rep@colorlabel{#1}}} - % /tkzRep/.unknown/.code = {\let\searchname=\pgfkeyscurrentname - % \pgfkeysalso{\searchname/.try=#1, - % /tikz/\searchname/.retry=#1}}} -%<--------------------------------------------------------------------------–> -\def\tkzRep{\pgfutil@ifnextchar[{\tkz@Rep}{% - \tkz@Rep[]}} -\def\tkz@Rep[#1]{% -\pgfkeys{ - /tkzRep/.cd, -line width = \tkz@sur@lw, -xlabel = $\vec{\imath}$, -ylabel = $\vec{\jmath}$, -posxlabel = {\tkz@sur@posxlabel}, -posylabel = {\tkz@sur@posylabel}, -xnorm = 1, -ynorm = 1, -color = \tkz@sur@color,% remove ? -colorlabel = \tkz@sur@colorlabel}% remove ? -\pgfqkeys{/tkzRep}{#1} -\begingroup - \protected@edef\tkz@temp{% - \noexpand\draw [line width=\tkz@Rep@lw,color=\tkz@Rep@color,rep style]% - (0,0) to node[\tkz@Rep@posylabel,color = \tkz@Rep@colorlabel]}\tkz@temp% - {\tkz@Rep@ylabel}(0,\tkz@Rep@ynorm); - \protected@edef\tkz@temp{% - \noexpand \draw [line width=\tkz@Rep@lw,color=\tkz@Rep@color,rep style]% - (0,0) to node[\tkz@Rep@posxlabel,color = \tkz@Rep@colorlabel]}\tkz@temp% - {\tkz@Rep@xlabel}(\tkz@Rep@xnorm,0); -\endgroup -} \def\tkzAddName{\pgfutil@ifnextchar[{\tkz@AddName}{\tkz@AddName[]}} \def\tkz@AddName[#1]#2{% \node[above left,#1] at (\pgf@path@lastx,\pgf@path@lasty){#2}; }% +%<--------------------------------------------------------------------------–> +\makeatother \endinput
\ No newline at end of file |