summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tkz-tab/tkz-tab.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-03-02 17:12:31 +0000
committerKarl Berry <karl@freefriends.org>2009-03-02 17:12:31 +0000
commit86350e092bc3d5102158f1108a9877dfdd758376 (patch)
tree26c851f694a2fce482c1bb44a9322fe7739ff2b9 /Master/texmf-dist/tex/latex/tkz-tab/tkz-tab.sty
parent19fea6b94da44b2a4ba7a3f301c8c9bf453cfe39 (diff)
new tikz package tkz-tab
git-svn-id: svn://tug.org/texlive/trunk@12287 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tkz-tab/tkz-tab.sty')
-rw-r--r--Master/texmf-dist/tex/latex/tkz-tab/tkz-tab.sty780
1 files changed, 780 insertions, 0 deletions
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