From 86350e092bc3d5102158f1108a9877dfdd758376 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Mon, 2 Mar 2009 17:12:31 +0000
Subject: new tikz package tkz-tab

git-svn-id: svn://tug.org/texlive/trunk@12287 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/tkz-tab/tkz-tab.sty | 780 ++++++++++++++++++++++++
 1 file changed, 780 insertions(+)
 create mode 100644 Master/texmf-dist/tex/latex/tkz-tab/tkz-tab.sty

(limited to 'Master/texmf-dist/tex/latex/tkz-tab/tkz-tab.sty')

diff --git a/Master/texmf-dist/tex/latex/tkz-tab/tkz-tab.sty b/Master/texmf-dist/tex/latex/tkz-tab/tkz-tab.sty
new file mode 100644
index 00000000000..76522585e38
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tkz-tab/tkz-tab.sty
@@ -0,0 +1,780 @@
+% $Id: tkz-tab.sty  2009-02-22 12h22 alain matthes $
+% Copyright (C) 2009 Alain Matthes  
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License , either version 1.3
+% of this license or (at your option) any later version and/or
+% 2. under the GNU Public License.
+%
+% See the file doc/generic/pgf/licenses/LICENSE for more details.%
+% See http://www.latex-project.org/lppl.txt for details.
+%
+%
+% ``tkz-tab'' package for create tables of signs and variations.
+%
+%
+    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+    %                                                               %
+    %        tkz-tab.sty    encodage : utf8                         %
+    %                                                               %
+    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+    %                                                               %
+    %           Créé par Alain Matthes le 04-01-2007.               %
+    %            CTAN version                                       %
+    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Objet :  Création de tableaux (signes et variations)
+%<----------------------------------------------------------------------------->
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tkz-tab}[2009/02/21 v1.0c  variations  (ctan  version)  ]
+% 12h
+%<----------------------------------------------------------------------------->
+\RequirePackage{etex}
+\RequirePackage{ifthen}
+\RequirePackage{xkeyval}[2005/11/25]
+\RequirePackage{tikz}[2008/01/15]
+\usetikzlibrary{arrows,patterns}
+%<------------------------------ Initialisation ----------------------------->
+
+%<------------------------------   Styles       ----------------------------->
+\tikzset{node style/.style    = {inner sep   =  2pt,
+                                 outer sep   =  2pt,
+                                 fill        =  \cmdTAB@tbs@colorT}} 
+\tikzset{low left/.style      = {above left  =  2pt}}
+\tikzset{low right/.style     = {above right =  2pt}}
+\tikzset{high right/.style    = {below right =  2pt}}
+\tikzset{high left/.style     = {below left  =  2pt}}
+\tikzset{low/.style           = {above       =  2pt}}
+\tikzset{high/.style          = {below       =  2pt}}
+\tikzset{on double/.style     = {fill        =  \cmdTAB@tbs@colorT}}
+\tikzset{tan style/.style     = {>           = latex',->,
+                                 color       = \cmdTAB@TG@color}}
+\tikzset{arrow style/.style   = {\cmdTAB@VA@color,
+                                 ->,
+                                 >           = latex',
+                                 shorten >   =  2pt,
+                                 shorten <   =  2pt}}
+\tikzset{from style/.style     = {shorten >   = 2pt,
+                                 shorten <   = 2pt,
+                                 line width  = 0.4pt,
+                                 >           = latex',
+                                 ->,
+                                 dotted}}
+%\tikzset{ant style/.style = {pattern=north east lines,opacity=0.4}}%
+%\tikzset{ima style/.style = {pattern=north east lines,opacity=0.4}}%
+\tikzset{h style/.style = {fill=gray,opacity=0.4}}
+\tikzset{double style/.style = {double}}
+\tikzset{t style/.style = {style  = dotted}}
+%<------------------------------ End of  Styles  ---------------------------->
+\newdimen\tkz@XF  
+\newdimen\tkz@YF
+\newcounter{tkz@cnt@line}
+\newcounter{tkz@cnt@lg}
+\newcounter{tkz@cnt@cl}
+\newcounter{tkz@cnt@pred} 
+\newcounter{tkz@cnt@temp} 
+\newcounter{tkz@cnt@arrow}
+\newcounter{tkz@cnt@zone} 
+\newcounter{tkz@cnt@lgnext}
+\newcounter{tkz@cnt@clnext}
+\newcounter{tkz@cnt@pair}
+\newcounter{tkz@cnt@impair}
+\newcounter{tkz@cnt@aw}
+%<--------------------- tracé du cadre extérieur  --------------------------->
+\define@boolkey [TAB] {tbs} {help}[true]{}
+\define@boolkey [TAB] {tbs} {color}[true]{}
+\define@boolkey [TAB] {tbs} {nocadre}[true]{}
+\define@cmdkey  [TAB] {tbs} {lw}{}
+\define@cmdkey  [TAB] {tbs} {textw}{}
+\define@cmdkey  [TAB] {tbs} {colorC}{}
+\define@cmdkey  [TAB] {tbs} {colorL}{}
+\define@cmdkey  [TAB] {tbs} {colorT}{}
+\define@cmdkey  [TAB] {tbs} {colorV}{}
+\define@cmdkey  [TAB] {tbs} {lgt}{}
+\define@cmdkey  [TAB] {tbs} {espcl}{}
+\define@cmdkey  [TAB] {tbs} {deltacl}{}
+\presetkeys     [TAB] {tbs} {help     = false,
+                             espcl    = 3,
+                             lgt      = 2,
+                             textw    = \cmdTAB@tbs@lgt,
+                             lw       = 0.4pt,
+                             colorC   = white, 
+                             colorL   = white,
+                             colorT   = white,
+                             colorV   = white,
+                             color    = false,
+                             nocadre  = false,
+                             deltacl  = 0.5}{}
+%<--------------------------------------------------------------------------->
+%<-------------- Macro principale : détermine les dim ----------------------->
+%<--------------------------------------------------------------------------->
+\newcommand*{\tkzTabInit}[3][]{%
+  \setkeys[TAB]{tbs}{#1}
+  \setcounter{tkz@cnt@line}{1}
+  \setcounter{tkz@cnt@lgnext}{0}
+  \setcounter{tkz@cnt@clnext}{0}
+  \setcounter{tkz@cnt@aw}{0}
+  \setcounter{tkz@cnt@lg}{0}
+  \setcounter{tkz@cnt@cl}{0}
+  \setcounter{tkz@cnt@pred}{0}
+  \setcounter{tkz@cnt@temp}{0}
+  \setcounter{tkz@cnt@arrow}{0}
+  \setcounter{tkz@cnt@zone}{0}
+  \gdef\tkz@deltaY{0}
+%<----------------------- Première colonne ---------------------------------->
+\foreach \ligne/\ecart in {#2}{%
+   \stepcounter{tkz@cnt@lg}%
+}%
+\stepcounter{tkz@cnt@lg}%
+\foreach \colonne in {#3}{%
+   \stepcounter{tkz@cnt@cl}%
+}%
+\addtocounter{tkz@cnt@cl}{-1}%
+\let\tkz@nbinterv\thetkz@cnt@cl
+\addtocounter{tkz@cnt@lg}{-1}%
+\xdef\maxtkz@cnt@lg{\thetkz@cnt@lg}%
+\xdef\tkz@maxcl{\thetkz@cnt@cl}%
+\pgfmathparse{\cmdTAB@tbs@lgt+2*\cmdTAB@tbs@deltacl+\cmdTAB@tbs@espcl*\tkz@nbinterv}%
+\global\let\tkz@lgttab\pgfmathresult
+\global\let\tkz@lgttab\tkz@lgttab
+\coordinate(T00) at (0,0);
+\coordinate(T10) at (\cmdTAB@tbs@lgt,0);
+\coordinate(T20) at (\tkz@lgttab,0);
+\setcounter{tkz@cnt@lg}{0}%
+\foreach \ligne/\tkz@deltaH in {#2}{%
+   \setcounter{tkz@cnt@cl}{0}%
+   \foreach \x in {#3}{%
+       \pgfmathmultiply{\cmdTAB@tbs@espcl}{\value{tkz@cnt@cl}}%
+       \global\let\ecartcl\pgfmathresult
+       \pgfmathparse{\cmdTAB@tbs@lgt+\cmdTAB@tbs@deltacl+\ecartcl}%
+       \global\let\tkz@ddx\pgfmathresult
+       \stepcounter{tkz@cnt@cl}%
+       \coordinate(N\thetkz@cnt@cl 0) at (\tkz@ddx,-\tkz@deltaY);}}%
+\foreach \m in {1,...,\tkz@maxcl}{%
+    \setcounter{tkz@cnt@clnext}{\m}%
+    \stepcounter{tkz@cnt@clnext}%
+    \path (N\m 0)--(N\thetkz@cnt@clnext 0) coordinate[midway](M\m 0);}%
+\setcounter{tkz@cnt@cl}{0}%
+\setcounter{tkz@cnt@lg}{0}%
+\foreach \ligne/\tkz@deltaH in {#2}{%
+    \stepcounter{tkz@cnt@lg}%
+    \pgfmathadd{\tkz@deltaY}{\tkz@deltaH}%
+    \global\let\tkz@deltaY\pgfmathresult
+    \coordinate(T0\thetkz@cnt@lg) at (0,-\tkz@deltaY);
+    \coordinate(T1\thetkz@cnt@lg) at (\cmdTAB@tbs@lgt,-\tkz@deltaY);
+    \coordinate(T2\thetkz@cnt@lg) at (\tkz@lgttab,-\tkz@deltaY);
+    \setcounter{tkz@cnt@cl}{0}%
+    \foreach \x in {#3}{%
+        \pgfmathparse{\cmdTAB@tbs@lgt+\cmdTAB@tbs@deltacl+%
+        \cmdTAB@tbs@espcl*\thetkz@cnt@cl}%
+        \global\let\tkz@ddx\pgfmathresult
+        \stepcounter{tkz@cnt@cl}%
+        \coordinate(N\number\value{tkz@cnt@cl}%
+                     \number\value{tkz@cnt@lg})%
+                       at (\tkz@ddx,-\tkz@deltaY);
+        }%
+    \foreach \m in {1,...,\tkz@maxcl}{%
+        \setcounter{tkz@cnt@clnext}{\m}%
+        \stepcounter{tkz@cnt@clnext}%
+        \path (N\m\number\value{tkz@cnt@lg})--%
+              (N\thetkz@cnt@clnext\number\value{tkz@cnt@lg})%
+              coordinate[midway](M\m\number\value{tkz@cnt@lg});
+        \ifTAB@tbs@help%
+        \draw[fill=green!30!black] (M\m\number\value{tkz@cnt@lg}) circle(2pt)%
+         node[below right,green!30!black] {%
+         \footnotesize M\m\number\value{tkz@cnt@lg}}; 
+        \fi
+        }%
+    \pgfmathdivide{\cmdTAB@tbs@lgt}{2}%
+    \global\let\tkz@dx\pgfmathresult
+    \pgfmathdivide{\tkz@deltaH}{2}%
+    \global\let\tkz@halfdeltaH\pgfmathresult
+    \pgfmathsubtract{\tkz@halfdeltaH}{\tkz@deltaY}%
+    \global\let\tkz@dy\pgfmathresult
+    \setcounter{tkz@cnt@temp}{\thetkz@cnt@lg}%
+    \addtocounter{tkz@cnt@temp}{-1}%
+    \path (\tkz@dx,\tkz@dy) coordinate(F\thetkz@cnt@temp);}%
+% 
+% %<----------------------- Colorisation du fond ------------------------------>
+\tikzset{fondC/.style={fill = \cmdTAB@tbs@colorC}}
+\tikzset{fondL/.style={fill = \cmdTAB@tbs@colorL}}
+\tikzset{fondT/.style={fill = \cmdTAB@tbs@colorT}}
+\tikzset{fondV/.style={fill = \cmdTAB@tbs@colorV}}
+%\clip (T00) rectangle (T2\maxtkz@cnt@lg);
+\ifTAB@tbs@color 
+  \draw[fondC] (T01) rectangle (T1\maxtkz@cnt@lg);
+  \draw[fondL] (T11) rectangle (T20);
+  \draw[fondT] (T11) rectangle (T2\maxtkz@cnt@lg);
+  \draw[fondV] (T00) rectangle (T11);
+\fi
+% %<-------------------Fin  Colorisation du fond ------------------------------>
+% 
+% %<--------------- Écriture des formules en colonne 1  ----------------------->
+\setcounter{tkz@cnt@lg}{-1}%
+\pgfmathsubtract{\cmdTAB@tbs@textw}{0.4}%
+\xdef\cmdTAB@tbs@textw{\pgfmathresult}%
+\foreach \ligne/\tkz@deltaH in {#2}{%
+\stepcounter{tkz@cnt@lg}% 
+\ifTAB@tbs@help%
+\node[draw,fill=green!50,inner sep=1pt] at (F\number\value{tkz@cnt@lg}) {\footnotesize  F\thetkz@cnt@lg};
+\else
+\node[text width = \cmdTAB@tbs@textw cm,text centered,inner sep=0pt] at (F\thetkz@cnt@lg) {\ligne};
+\fi}%
+%<------------------Cadre = true on trace tout sinon condition---------------->
+\ifTAB@tbs@nocadre%
+\foreach \x in {1}{\draw[line width = \cmdTAB@tbs@lw] (T\x 0) --(T\x \maxtkz@cnt@lg);}%
+\setcounter{tkz@cnt@temp}{\maxtkz@cnt@lg}%
+\addtocounter {tkz@cnt@temp}{-1}%
+\xdef\maxtkz@cnt@lg{\thetkz@cnt@temp}%
+\foreach \y in {1,...,\maxtkz@cnt@lg}{\draw[line width = \cmdTAB@tbs@lw] (T0\y) --(T2\y);}%
+\else
+\foreach \y in {0,...,\maxtkz@cnt@lg}{\draw[line width = \cmdTAB@tbs@lw] (T0\y) --(T2\y);}%
+\foreach \x in {0,1,2}{\draw[line width = \cmdTAB@tbs@lw] (T\x 0) --(T\x \maxtkz@cnt@lg);}%
+\fi
+%<------------ Première ligne et Nodes variations  ---------------------------->
+\setcounter{tkz@cnt@cl}{0}%
+\pgfextractx{\tkz@XF}{\pgfpointanchor{F0}{center}}%
+\pgfextracty{\tkz@YF}{\pgfpointanchor{F0}{center}}%
+\foreach \x in {#3}{%
+\pgfmathparse{\cmdTAB@tbs@deltacl+\cmdTAB@tbs@lgt/2+%
+              \cmdTAB@tbs@espcl*\thetkz@cnt@cl}%
+    \global\let\tkz@dx\pgfmathresult
+    \stepcounter{tkz@cnt@cl}% 
+    \ifTAB@tbs@help%  
+    \node[draw,fill=blue!50,inner sep=1pt] (L\number\value{tkz@cnt@cl})%
+        at (\tkz@XF + \tkz@dx cm,\tkz@YF) {\footnotesize L\number\value{tkz@cnt@cl}};%
+    \else
+    \node (L\thetkz@cnt@cl) at (\tkz@XF + \tkz@dx cm,\tkz@YF) {\x};%
+    \fi}%
+%<-----------------------           help       -------------------------------->
+\ifTAB@tbs@help%
+\foreach \colonne in {0,1,2}{%
+\foreach \ligne in {0,...,\maxtkz@cnt@lg}{\draw (T\colonne\ligne)%
+  node[draw,fill=red!50,inner sep=1pt] {\textbf{\footnotesize T\colonne\ligne}};}}%
+\setcounter{tkz@cnt@temp}{\tkz@maxcl}
+\stepcounter{tkz@cnt@temp}
+\xdef\tkz@maxcl{\thetkz@cnt@temp}%
+\foreach \ligne in {0,...,\maxtkz@cnt@lg}
+{\foreach \colonne in {1,...,\tkz@maxcl}{%
+       \draw[fill=red] (N\colonne\ligne) circle(2pt)%
+       node[above right,red,inner sep=1pt] {\footnotesize N\colonne\ligne};}}%
+\fi
+}% fin de tkzTabInit
+%<----------------------------------------------------------------------------->
+%<----------------------- Ligne de Signes ------------------------------------->
+%<-----------------------  tkzTabLine     ------------------------------------->
+\newcommand*\stripspaces[1]{%
+  \strip@spaces{#1}}
+\newcommand\strip@spaces{\renewcommand\strip@spaces[1]}%
+\expandafter\strip@spaces{%
+    \@firstofone{\expandafter\strip@lastspace\@firstofone #1\@nil}
+\@nil\@@nil}
+\@ifdefinable\strip@lastspace{%
+  \def\strip@lastspace#1 \@nil#2\@@nil{\strip@nil#1\@nil\@@nil}}
+\@ifdefinable\strip@nil{%
+  \def\strip@nil#1\@nil#2\@@nil{#1}}
+
+
+%<----------------------------------------------------------------------------->
+\define@boolkey[TAB]{TL}{help}[true]{}
+\presetkeys[TAB]{TL}{help=false}{}
+%<----------------------------------------------------------------------------->
+\newcommand*{\tkzTabLine}[2][]{%
+\setkeys[TAB]{TL}{#1}%   
+ \setcounter{tkz@cnt@lg}{\thetkz@cnt@line}%
+ \stepcounter{tkz@cnt@line}%
+ \setcounter{tkz@cnt@lgnext}{\thetkz@cnt@line}%
+ \setcounter{tkz@cnt@cl}{1}%
+ \setcounter{tkz@cnt@pair}{1}%
+ \setcounter{tkz@cnt@impair}{1}%
+   \ifTAB@TL@help% 
+ \foreach \x in {#2}
+   {%
+   \ifthenelse{\isodd{\value{tkz@cnt@cl}}}{%    
+   \path (N\thetkz@cnt@impair\thetkz@cnt@lg) --%
+           node[draw,inner sep =1pt,midway,fill=yellow] {%
+            \footnotesize Z\thetkz@cnt@impair\thetkz@cnt@lg}%
+         (N\thetkz@cnt@impair\thetkz@cnt@lgnext);
+         \stepcounter{tkz@cnt@impair}}{%   
+   \path (M\thetkz@cnt@pair\thetkz@cnt@lg)--%
+         node[draw,inner sep =1pt,midway,fill=yellow] {%
+           \footnotesize S\thetkz@cnt@pair\thetkz@cnt@lg}%
+         (M\thetkz@cnt@pair\thetkz@cnt@lgnext); 
+   \stepcounter{tkz@cnt@pair}}%
+   \stepcounter{tkz@cnt@cl}%
+   }%  
+ \else
+ \ifTAB@tbs@color%
+  \draw(T1\thetkz@cnt@lg) rectangle (T2\thetkz@cnt@line);%
+ \fi
+  \foreach \x in {#2}
+   {%
+   \ifthenelse{\isodd{\value{tkz@cnt@cl}}}{%
+     \path (N\thetkz@cnt@impair\thetkz@cnt@lg) --%
+             coordinate[midway](Z\thetkz@cnt@impair\thetkz@cnt@lg)%
+           (N\thetkz@cnt@impair\thetkz@cnt@lgnext);   
+       \ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{z}}{%
+         \draw[line width = \cmdTAB@tbs@lw,t style]%
+              (N\thetkz@cnt@impair\thetkz@cnt@lg) -- %
+              (N\thetkz@cnt@impair\thetkz@cnt@lgnext);
+              \node at (Z\thetkz@cnt@impair\thetkz@cnt@lg){$0$}; 
+              }{%
+     \ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{}}{%
+          % \path (N\thetkz@cnt@impair\thetkz@cnt@lg)--node[midway]{}%
+          %      (N\thetkz@cnt@impair\thetkz@cnt@lgnext);  
+               }{% 
+      \ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{t}}{%
+         \draw[line width = \cmdTAB@tbs@lw,t style]
+              (N\thetkz@cnt@impair\thetkz@cnt@lg) -- %
+              (N\thetkz@cnt@impair\thetkz@cnt@lgnext);
+              }{%
+      \ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{d}}{%
+        \draw[line width =\cmdTAB@tbs@lw,double style]%
+             (N\thetkz@cnt@impair\thetkz@cnt@lg)--%
+             (N\thetkz@cnt@impair\thetkz@cnt@lgnext);
+             }{%
+      \path (N\thetkz@cnt@impair\thetkz@cnt@lg)--%
+            (N\thetkz@cnt@impair\thetkz@cnt@lgnext); 
+            \node at (Z\thetkz@cnt@impair\thetkz@cnt@lg){$\x$};
+            }%
+       }}}\stepcounter{tkz@cnt@impair}%
+     }{%
+       \path (M\thetkz@cnt@pair\thetkz@cnt@lg)--%
+             coordinate[midway](S\thetkz@cnt@pair\thetkz@cnt@lg)%
+            (M\thetkz@cnt@pair\thetkz@cnt@lgnext);% 
+       \ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{h}}{%
+          \setcounter{tkz@cnt@clnext}{\thetkz@cnt@pair}%
+          \stepcounter{tkz@cnt@clnext}%
+          \draw[h style](N\thetkz@cnt@pair\thetkz@cnt@lg) +(0.4pt,0)
+                          rectangle%
+                       (N\thetkz@cnt@clnext\thetkz@cnt@lgnext);}{%
+          \node at (S\thetkz@cnt@pair\thetkz@cnt@lg) {$\x$}; 
+          }%
+         \stepcounter{tkz@cnt@pair}%
+        }%
+   \stepcounter{tkz@cnt@cl}%
+   }% end foreach  
+   \fi
+}%
+%<----------------------------------------------------------------------------->
+%<----------------------------  Variations    --------------------------------->
+%<----------------------------------------------------------------------------->
+%<----------------------- Macro pour tracer une flèche ------------------------>
+%<----------------------------------------------------------------------------->
+\newcommand*{\tkzDrawArrow}{%
+\ifthenelse{\equal{\thetkz@cnt@zone}{0}}{%
+  \setcounter{tkz@cnt@pred}{\thetkz@cnt@cl}
+  \addtocounter{tkz@cnt@pred}{-1}
+  \ifthenelse{\thetkz@cnt@temp>0}{%
+    \addtocounter{tkz@cnt@pred}{-\thetkz@cnt@temp}%
+    \setcounter{tkz@cnt@temp}{0}}{}%
+    \ifTAB@VA@help%
+   \draw[fill=orange] (FR\thetkz@cnt@pred\thetkz@cnt@lg) circle(2pt)%
+        node[right,orange] {\footnotesize  FR\thetkz@cnt@pred\thetkz@cnt@lg};
+      \draw[fill=orange]  (FL\thetkz@cnt@cl\thetkz@cnt@lg)circle(2pt)% 
+       node[left,orange] {\footnotesize  FL\thetkz@cnt@cl\thetkz@cnt@lg}; 
+      \else 
+   \draw[arrow style] (FR\thetkz@cnt@pred\thetkz@cnt@lg) to%
+                     (FL\thetkz@cnt@cl\thetkz@cnt@lg);%
+  \fi
+  }{%
+  \setcounter{tkz@cnt@zone}{0}%
+  }%
+}%
+%<----------------------------------------------------------------------------->
+\define@boolkey[TAB]{VA}{help}[true]{}
+\define@cmdkey[TAB]{VA}{color}{}
+\presetkeys[TAB]{VA}{color=black,help=false}{}
+%<----------------------------------------------------------------------------->
+\newcommand*{\tkzTabVar}[2][]{%
+\setkeys[TAB]{VA}{#1}%
+\setcounter{tkz@cnt@lg}{\thetkz@cnt@line}%
+\stepcounter{tkz@cnt@line}%
+\setcounter{tkz@cnt@lgnext}{\thetkz@cnt@line}%
+\begin{scope}
+\tikzset{every node/.style={inner sep =3pt}}%
+\setcounter{tkz@cnt@cl}{0}%
+\setcounter{tkz@cnt@aw}{0}%
+\setcounter{tkz@cnt@temp}{0}%
+\setcounter{tkz@cnt@arrow}{0}%
+\ifTAB@tbs@color%
+  \draw (T1\thetkz@cnt@lg) rectangle (T2\thetkz@cnt@line);%
+\fi%
+%<----------------- Lecture des données et création des nodes --------------->
+\foreach \x/\tl/\tr in {#2}
+{\stepcounter{tkz@cnt@aw}\stepcounter{tkz@cnt@cl}%
+%<------------------------------------------------------------------- D- ---->
+\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{D-}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,low right] (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tr\fi};%
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}%
+%<------------------------------------------------------------------- D+ ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{D+}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,high right] (FR\thetkz@cnt@cl\thetkz@cnt@lg)%
+                          at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tr\fi};%
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}
+%<------------------------------------------------------------------- +D ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{+D}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,high left] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};%
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}%
+%<------------------------------------------------------------------- +C ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{+C}}%
+{\draw[double style]%
+	(N\thetkz@cnt@cl\thetkz@cnt@lg)--(N\thetkz@cnt@cl\thetkz@cnt@lgnext);%
+\node[node style,high,on double] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};%
+\node[node style,high,on double] (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};%
+\ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}
+%<------------------------------------------------------------------ -D ----->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-D}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,low left] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};%
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}%
+%<------------------------------------------------------------------ -C ----->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-C}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,low,on double] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at   (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};%
+ \node[node style,low,on double] (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};%
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}%
+%<------------------------------------------------------------------- + ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{+}}%
+{\node[node style,high]  (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,high]  (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}
+%<----------------------------------------------------------------   +V+ ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{+V+}}%
+{\node[node style,high left] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,high right] (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}%
+%<---------------------------------------------------------------    -V- ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-V-}}%
+{\node[node style,low left] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,low right] (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}%
+%<--------------------------------------------------------------     -V+ ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-V+}}%
+{\node[node style,low left] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,high right] (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}
+%<----------------------------------------------------------------   +V- ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{+V-}}%
+{\node[node style,high left] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,low right] (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}
+%<------------------------------------------------------------------- - ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-}}%
+{\node[node style,low]  (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,low]  (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}%
+%<------------------------------------------------------------------ -D+ ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-D+}}%
+{\draw[line width =0.4pt,double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,low left] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,high right] (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}
+%<------------------------------------------------------------------ +D- ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{+D-}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) --  (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,high left] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};%
+ \node[node style,low right] (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}
+%<----------------------------------------------------------------- -CD+ ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-CD+}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) --  (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,low,on double]  (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,high right,on double] (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}
+%<----------------------------------------------------------------- -CD- ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-CD-}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) --  (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,low,on double]  (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,low right,on double] (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}
+%<----------------------------------------------------------------- +CD- ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{+CD-}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,high,on double]  (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,low right,on double] (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}
+%<----------------------------------------------------------------- -DC+ ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-DC+}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,low left,on double]     (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,high,on double]   (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}%
+%<----------------------------------------------------------------- +DC- ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{+DC-}}%
+{\draw[line width =0.4pt,double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,high left,on double]  (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,low,on double]   (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}%
+%<----------------------------------------------------------------- -DC- ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-DC-}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,low left,on double] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,low,on double]  (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}%
+%<----------------------------------------------------------------- +DC+ ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{+DC+}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) --(N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,high left,on double] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,high,on double]  (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}%
+%<------------------------------------------------------------------ +D+ ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{+D+}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,high left,on double]   (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,high right,on double]   (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}%
+%<------------------------------------------------------------------ -D- ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-D-}}%
+{\draw[line width =0.4pt,double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,low left] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};
+ \node[node style,low right] (FR\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tr\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}%
+}%
+%<------------------------------------------------------------------ R ------>
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{R}}%
+{\stepcounter{tkz@cnt@temp}%
+}%
+%<------------------------------------------------------------------ +DH ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{+DH}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,high left] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};
+ \setcounter{tkz@cnt@clnext}{\thetkz@cnt@cl}\stepcounter{tkz@cnt@clnext}
+ \draw[h style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) rectangle (N\thetkz@cnt@clnext\thetkz@cnt@lgnext);
+\ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}\stepcounter{tkz@cnt@zone}%
+}%
+%<------------------------------------------------------------------ -DH ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-DH}}%
+{\draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,low left] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@cl\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};
+ \setcounter{tkz@cnt@clnext}{\thetkz@cnt@cl}\stepcounter{tkz@cnt@clnext}%
+ \draw[h style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) rectangle (N\thetkz@cnt@clnext\thetkz@cnt@lgnext);
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}\stepcounter{tkz@cnt@zone}%
+}%
+%<------------------------------------------------------------------ +CH ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{+CH}}%
+{\setcounter{tkz@cnt@clnext}{\thetkz@cnt@cl}\stepcounter{tkz@cnt@clnext}
+ \draw[h style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) rectangle (N\thetkz@cnt@clnext\thetkz@cnt@lgnext);
+ \draw[double style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,high,on double] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};
+\ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}\stepcounter{tkz@cnt@zone}%
+}%
+%<------------------------------------------------------------------ -CH ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-CH}}%
+{\setcounter{tkz@cnt@clnext}{\thetkz@cnt@cl}\stepcounter{tkz@cnt@clnext}%
+ \draw[h style]%
+      (N\thetkz@cnt@cl\thetkz@cnt@lg) rectangle (N\thetkz@cnt@clnext\thetkz@cnt@lgnext);
+ \draw[line width =0.4pt,double style]%
+      (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,low,on double](FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};
+ \ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}\stepcounter{tkz@cnt@zone}%
+}%
+%<------------------------------------------------------------------ +H ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{+H}}%
+{\setcounter{tkz@cnt@clnext}{\thetkz@cnt@cl}\stepcounter{tkz@cnt@clnext}
+ \draw[h style]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) rectangle (N\thetkz@cnt@clnext\thetkz@cnt@lgnext);
+ \draw[]%
+ (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,high,on double] (FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lg){\ifTAB@VA@help\else\tl\fi};%
+\ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}\stepcounter{tkz@cnt@zone}%
+}%
+%<------------------------------------------------------------------ -H ---->
+{\ifthenelse{\equal{\expandafter\stripspaces\expandafter{\x}}{-H}}%
+{\setcounter{tkz@cnt@clnext}{\thetkz@cnt@cl}\stepcounter{tkz@cnt@clnext}
+ \draw[h style]%
+      (N\thetkz@cnt@cl\thetkz@cnt@lg) rectangle (N\thetkz@cnt@clnext\thetkz@cnt@lgnext);
+ \draw[]%
+      (N\thetkz@cnt@cl\thetkz@cnt@lg) -- (N\thetkz@cnt@cl\thetkz@cnt@lgnext);
+ \node[node style,low,on double](FL\thetkz@cnt@cl\thetkz@cnt@lg) at (N\thetkz@cnt@aw\thetkz@cnt@lgnext){\ifTAB@VA@help\else\tl\fi};
+\ifthenelse{\equal{\thetkz@cnt@arrow}{0}}{}{\tkzDrawArrow}\stepcounter{tkz@cnt@zone}%
+}{}% non prévu
+}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%
+\stepcounter{tkz@cnt@arrow}}% end de la boucle
+%<-------------------------------------------------- Tracé des flèches ------>
+\end{scope}%
+}% fin de la macro variation
+%<----------------------------------------------------------------------------->
+%<------------------------ Valeur Intermédiaire ---------------------------->
+%<----------------------------------------------------------------------------->
+\define@boolkey[TAB] {VI} {draw}[true]{}
+\define@cmdkey [TAB] {VI} {remember}{}
+\presetkeys    [TAB] {VI} {draw    = false,
+                           remember= lastval}{}
+%<----------------------------------------------------------------------------->
+\newcommand*{\tkzTabVal}[6][]{%
+\setkeys[TAB]{VI}{#1}%
+\setcounter{tkz@cnt@lg}{\thetkz@cnt@line}%
+\addtocounter{tkz@cnt@lg}{-1}%
+\pgfextractx{\tkz@XF}{\pgfpointanchor{L#2}{center}} 
+\pgfextracty{\tkz@YF}{\pgfpointanchor{L#2}{center}}
+\pgfmathparse{\cmdTAB@tbs@espcl * (#4)*(#3-#2)}%
+\global\let\tkz@dx\pgfmathresult
+\node[inner sep = 0pt,fondL] (ANT) at (\tkz@XF + \tkz@dx cm,\tkz@YF) {#5};
+\path coordinate (ANTa) at ([xshift=\tkz@dx cm]N#21);
+\path coordinate (ANTb) at ([xshift=\tkz@dx cm]N#2\thetkz@cnt@line);
+\path (intersection cs:%
+                       first line= {(FR#2\thetkz@cnt@lg)--(FL#3\thetkz@cnt@lg)},%
+                       second line={(ANTa)--(ANTb)}) node[node style,fondT](VAL){#6};
+\path coordinate (\cmdTAB@VI@remember) at (VAL);
+\ifTAB@VI@draw%
+  \draw[from style] (ANTa.center) to (VAL);
+\fi
+}%
+
+%----------------------------------------------------------------------------->
+%<----------------------------------------------------------------------------->
+%<----------------------------------------------------------------------------->
+\define@boolkey[TAB] {IM} {draw}[true]{}
+\define@cmdkey [TAB] {IM} {remember}{}
+\presetkeys    [TAB] {IM} {draw    = false,
+                           remember= lastval}{}
+\newcommand*{\tkzTabIma}[5][]{%
+\setkeys[TAB]{IM}{#1}%
+\setcounter{tkz@cnt@lg}{\thetkz@cnt@line}%
+\addtocounter{tkz@cnt@lg}{-1}%
+\setcounter{tkz@cnt@lgnext}{\thetkz@cnt@line}%
+\path (intersection cs:
+     first line  = {(FR#2\thetkz@cnt@lg)--(FL#3\thetkz@cnt@lg)},%
+     second line = {(N#4\thetkz@cnt@lg) --(N#4\thetkz@cnt@lgnext)}) node[node style,fondT](IMA){#5};
+           \path coordinate (\cmdTAB@IM@remember) at (IMA);
+\ifTAB@IM@draw%
+    \draw[from style] (N#41) to (IMA);
+\fi
+}%
+%<----------------------------------------------------------------------------->
+%<----------------------------------------------------------------------------->
+%<----------------------------------------------------------------------------->
+\newcommand*{\tkzTabImaFrom}[5][]{%
+\setkeys[TAB]{IM}{#1}%
+\setcounter{tkz@cnt@lg}{\thetkz@cnt@line}%
+\addtocounter{tkz@cnt@lg}{-1}%
+\path (intersection cs:%
+      first line = {(FR#2\thetkz@cnt@lg)--(FL#3\thetkz@cnt@lg)},%
+      second line={(#4)--([yshift=-0.5 cm]#4)}) node[node style,fondT](IMA){#5};
+      \path coordinate (\cmdTAB@IM@remember) at (IMA);
+\ifTAB@IM@draw 
+    \draw[from style] (#4) to (IMA);%
+\fi
+}%
+%<----------------------------------------------------------------------------->
+%<----------------------------------------------------------------------------->
+%<------------------------   tangente horizontale ----------------------------->
+% args 1--> options ;
+%      2--> tkz@cnt@cl debut fl  ;
+%      3--> tkz@cnt@clnext fin de fl ;%
+%      4---> n°de val  ;
+%      5----> image
+\define@cmdkey [TAB] {TA} {pos}[below]{}
+\define@cmdkey [TAB] {TA} {color}{}
+\define@boolkey [TAB] {TA} {draw}[true]{}
+\define@cmdkey [TAB] {TA} {remember}{}
+\presetkeys    [TAB] {TA} {draw     = false,
+                           color    = black,
+                           pos      = above,
+                           remember = lastval}{}
+%<----------------------------------------------------------------------------->
+\newcommand*{\tkzTabTan}[5][]{%
+\setkeys[TAB]{TA}{#1}%
+\setcounter{tkz@cnt@lg}{\thetkz@cnt@line}%
+\addtocounter{tkz@cnt@lg}{-1}%
+\setcounter{tkz@cnt@lgnext}{\thetkz@cnt@line}%
+\path (intersection cs:
+  first line  = {(FR#2\thetkz@cnt@lg)--(FL#3\thetkz@cnt@lg)},%
+  second line = {(N#4\thetkz@cnt@lg) --(N#4\thetkz@cnt@lgnext)}) coordinate(tgt);
+\draw[fill,color=\cmdTAB@TA@color] (tgt) circle (1pt);
+\node[\cmdTAB@TA@pos =1pt] at (tgt) {#5};
+\path coordinate (\cmdTAB@TA@remember) at (tgt);
+\draw[arrow style] (tgt) -- ++(.75,0);
+\draw[arrow style] (tgt) -- ++(-.75,0);
+\ifTAB@TA@draw%
+   \draw[from style] (N#41) to (tgt);
+\fi
+}%
+%<----------------------------------------------------------------------------->
+%<----------------------------------------------------------------------------->
+%<----------------------------------------------------------------------------->
+\newcommand*{\tkzTabTanFrom}[5][]{%
+\setkeys[TAB]{TA}{#1}%
+   \setcounter{tkz@cnt@lg}{\thetkz@cnt@line}%
+   \addtocounter{tkz@cnt@lg}{-1}%
+   \setcounter{tkz@cnt@lgnext}{\thetkz@cnt@line}%
+   \path (intersection cs:
+      first line  = {(FR#2\thetkz@cnt@lg)--(FR#3\thetkz@cnt@lg)},%
+      second line = {(#4) --([yshift=-0.5 cm]#4)}) coordinate(tgt);
+    \draw[fill,color=\cmdTAB@TA@color] (tgt) circle (1pt);
+    \node[\cmdTAB@TA@pos = 1pt] at (tgt) {#5};
+    \path coordinate (\cmdTAB@TA@remember) at (tgt);
+    \draw[arrow style] (tgt) -- ++(.75,0);
+    \draw[arrow style] (tgt) -- ++(-.75,0);
+    \ifTAB@TA@draw%
+          \draw[from style] (#4) -- (tgt);%
+      \fi
+}%
+%<----------------------------------------------------------------------------->
+%<----------------------------------------------------------------------------->
+%<------------------------ dérivée droite gauche ------------------------------>
+\newcommand*{\tkzTabSlope}[1]{%
+\foreach \x/\y/\z in {#1}{%
+  \node[left  = 3pt] at (Z\x 1) {\scriptsize $\y$};
+  \node[right = 3pt] at (Z\x 1) {\scriptsize $\z$};
+  }%
+}
+%<----------------------------------------------------------------------------->
+%<-----------------------------------------------------------------------------> 
+%<----------------------------------------------------------------------------->
+\newcommand*{\tkzTab}[5][]{%
+  \tkzTabInit[#1]{#2}{#3}%
+  \tkzTabLine{#4}%
+  \tkzTabVar{#5}%
+}
+%<---------------------------------The End ------------------------------------>
+\endinput
-- 
cgit v1.2.3

