This commit is contained in:
Jeff Lance 2018-08-19 19:58:59 +02:00
parent f3ba1e5721
commit d3f329b902
3 changed files with 591 additions and 5 deletions

View File

@ -83,6 +83,7 @@
% texte
\RequirePackage[dash,phantomtext]{dashundergaps}
\RequirePackage{comment}
%-----------------
\makeatletter
@ -90,6 +91,14 @@
%-- SETTINGS
\newboolean{display}
\ifthenelse{\boolean{display}}{\includecomment{solution}}{\excludecomment{solution}}
%-----------
% -- NEW COMMANDS
%%% TABLEAU %%%
@ -122,6 +131,16 @@
%%% TEXTE %%%
% \NewDocumentCommand \solution { s O{solution} g } {
% \IfBooleanTF {#1}
% {
% \setboolean{display}{true}
% }
% {}
% \begin{#2}
% \end{#2}
% }
%% \underdash[color]{text}
%\newcommand\underdash[1][black]{% <- règle la couleur du texte
% \bgroup
@ -193,7 +212,7 @@
\newfontfamily\PokemonHollow[Ligatures=TeX]{Pokemon Hollow}
\newfontfamily\PokemonSolid[Ligatures=TeX]{Pokemon Solid}
\newfontfamily\ScratchedLetters[Ligatures=TeX]{Scratched Letters}
\newfontfamily\TrebuchetMS[Ligatures=TeX]{Trebuchet MS}
% \newfontfamily\TrebuchetMS[Ligatures=TeX]{Trebuchet MS}
% tentative pour une commande généraliste
% \NewDocumentCommand \setFont { O{\familydefault} O{\encodingdefault} }{%
% \fontencoding{#2}%

View File

@ -105,9 +105,9 @@
%%% ENUMERATE %%%
\setbeamerfont{enumerate item}{family=\rmfamily}
\setbeamercolor*{enumerate item}{fg=black}
\setbeamertemplate{enumerate item}{\textbf{\insertenumlabel.}}
\setbeamerfont{enumerate items}{family=\rmfamily}
\setbeamercolor*{enumerate items}{fg=black}
\setbeamertemplate{enumerate items}{\textbf{\insertenumlabel}.}
%%%%%%%%%%%%%%%%%

567
pdftabvar/pdftabvar.tex Normal file
View File

@ -0,0 +1,567 @@
%-- d'après Macros tabvar créées par Denis Léger
%-- modification par Pascal Brachet
\unitlength=1pt
\newdimen\tempdimx
\newdimen\tempdimy
\definecolor{gristabvar}{rgb}{0.7669,0.7669,0.7669}
\newdimen\tabdim
\newdimen\tabblanc
\catcode`\@=11
\newdimen\tv@mydimen
\newdimen\tv@mydimendeux
\newdimen\tv@dimYHaut
\newdimen\tv@dimYMilieu
\newdimen\tv@dimYBas
\newdimen\tv@dimX
\newdimen\tv@Xdim
\newdimen\tv@YTotal
\newcount\tv@countLigne
\newdimen\tv@DX
\tabdim=0.8cm
\tabblanc=2pt
\def\vertline#1#2#3#4{%
\FPset{\xa}{#1}
\FPset{\ya}{#2}
\FPset{\xb}{#3}
\FPset{\yb}{#4}
\FPsub{\vecx}{\xb}{\xa}
\FPsub{\vecy}{\yb}{\ya}
\FPmul{\quada}{\vecx}{\vecx}
\FPmul{\quadb}{\vecy}{\vecy}
\FPadd{\sumquad}{\quada}{\quadb}
\FProot{\length}{\sumquad}{2}
\FPmul{\dx}{\vecx}{10}
\FPround{\dxe}{\dx} 0
\FPmul{\dy}{\vecy}{10}
\FPround{\dye}{\dy} 0
\FPifeq{\dye}{0} \dye=1 \else
\put(\xa,\ya){\line(0,\dye){\length}}
\fi
}
\def\doublevertline#1#2#3#4{%
\FPset{\xa}{#1}
\FPset{\ya}{#2}
\FPset{\xb}{#3}
\FPset{\yb}{#4}
\FPsub{\vecx}{\xb}{\xa}
\FPsub{\vecy}{\yb}{\ya}
\FPmul{\quada}{\vecx}{\vecx}
\FPmul{\quadb}{\vecy}{\vecy}
\FPadd{\sumquad}{\quada}{\quadb}
\FProot{\length}{\sumquad}{2}
\FPmul{\dx}{\vecx}{10}
\FPround{\dxe}{\dx} 0
\FPmul{\dy}{\vecy}{10}
\FPround{\dye}{\dy} 0
\FPifeq{\dye}{0} \dye=1 \else
\FPsub{\fx}{\xa}{1}
\FPadd{\sx}{\xa}{1}
\put(\fx,\ya){\line(0,\dye){\length}}
\put(\sx,\ya){\line(0,\dye){\length}}
\fi
}
\def\myarrowup#1#2#3#4{%
\FPset{\xa}{#1}
\FPset{\ya}{#2}
\FPset{\xb}{#3}
\FPset{\yb}{#4}
\FPsub{\vecx}{\xb}{\xa}%
\FPsub{\vecy}{\yb}{\ya}%
\FPmul{\quada}{\vecx}{\vecx}%
\FPmul{\quadb}{\vecy}{\vecy}%
\FPadd{\sumquad}{\quada}{\quadb}%
\FProot{\length}{\sumquad}{2}%
\FPmul{\dx}{\vecx}{10}
\FPround{\dxe}{\dx} 0
\FPmul{\dy}{\vecy}{10}
\FPround{\dye}{\dy} 0
\FPifeq{\dye}{0} \dye=1 \else
\put(\xa,\ya){\vector(\dxe,\dye){\vecx}}
\fi
}
\def\myarrowdown#1#2#3#4{%
\FPset{\xa}{#1}
\FPset{\ya}{#2}
\FPset{\xb}{#3}
\FPset{\yb}{#4}
\FPsub{\vecx}{\xb}{\xa}%
\FPsub{\vecy}{\yb}{\ya}%
\FPmul{\quada}{\vecx}{\vecx}%
\FPmul{\quadb}{\vecy}{\vecy}%
\FPadd{\sumquad}{\quada}{\quadb}%
\FProot{\length}{\sumquad}{2}%
\FPmul{\dx}{\vecx}{10}
\FPround{\dxe}{\dx} 0
\FPmul{\dy}{\vecy}{10}
\FPround{\dye}{\dy} 0
\FPifeq{\dye}{0} \dye=1 \else
\put(\xa,\ya){\vector(\dxe,\dye){\vecx}}
\fi
}
\def\hzarrow#1#2#3#4{%
\FPset{\xa}{#1}
\FPset{\ya}{#2}
\FPset{\xb}{#3}
\FPset{\yb}{#4}
\FPsub{\vecx}{\xb}{\xa}
\FPsub{\vecy}{\yb}{\ya}
\FPmul{\quada}{\vecx}{\vecx}
\FPmul{\quadb}{\vecy}{\vecy}
\FPadd{\sumquad}{\quada}{\quadb}
\FProot{\length}{\sumquad}{2}
\FPmul{\dx}{\vecx}{10}
\FPround{\dxe}{\dx} 0
\FPmul{\dy}{\vecy}{10}
\FPround{\dye}{\dy} 0
\FPifeq{\dxe}{0} \dxe=1 \else
\put(\xa,\ya){\vector(\dxe,0){\length}}
\fi
}
\newif\iftv@calcul
\let\dsp=\displaystyle
\let\spt=\scriptstyle
\def\initY#1{%
\setbox100=\hbox{#1}%
\global\tv@mydimen=\ht100\global\advance\tv@mydimen by\dp100}
\def\initX#1{\setbox100=\hbox{#1}%
\ifdim\wd100>\tabdim
\global\tv@mydimen=\wd100
\else
\global\tv@mydimen=\tabdim
\fi}
\def\initx#1{\setbox100=\hbox{#1}\global\tv@mydimen=\wd100}
\def\calculeYTotal{%
\global\tv@YTotal=\tv@dimYHaut\global\advance\tv@YTotal by\tv@dimYMilieu\global\advance\tv@YTotal by\tv@dimYBas}
\def\setY#1#2#3{\global\tv@dimYHaut=#1\global\tv@dimYMilieu=#2\global\tv@dimYBas=#3\relax}
\def\max#1#2{\ifdim#2>#1\global#1=#2\fi}
\def\GererX#1{%
\initX{#1}\tv@mydimen=1.1\tv@mydimen%
\max{\tv@Xdim}{\tv@mydimen}}
\def\GererXDimension#1{%
\tv@mydimen=#1%
\tv@mydimen=1.1\tv@mydimen%
\max{\tv@Xdim}{\tv@mydimen}%
\max{\tv@Xdim}{\tabdim}%
}
\def\GererDXSimple#1{%
\initX{#1}\tv@mydimen=1.1\tv@mydimen
\tv@mydimen=0.5\tv@mydimen
\max{\tv@DX}{\tv@mydimen}%
}
\def\GererDXDimension#1{%
\tv@mydimen=#1%
\max{\tv@DX}{\tv@mydimen}%
\max{\tv@DX}{0.5\tabdim}%
}
\def\tabvarputhaut#1{%
\iftv@calcul
\initY{#1}%
\max{\tv@dimYHaut}{\tv@mydimen}%
\fi
\put(\dimexpr \tv@DX,\dimexpr -0.5\tv@dimYHaut){\makebox(0,0){#1}}
%\rput(\tv@DX,-0.5\tv@dimYHaut){#1}
}
\def\tabvarputmilieu#1{%
\iftv@calcul
\initY{#1}%
\max{\tv@dimYMilieu}{\tv@mydimen}%
\fi%
\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by 0.5\tv@dimYMilieu
\put(\dimexpr \tv@DX,\dimexpr -1\tv@mydimen){\makebox(0,0){#1}}
%\rput(\tv@DX,-\tv@mydimen){#1}
}
\def\tabvarputbas#1{%
\iftv@calcul
\initY{#1}%
\max{\tv@dimYBas}{\tv@mydimen}%
\fi%
\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by \tv@dimYMilieu\advance\tv@mydimen by 0.5\tv@dimYBas
\put(\tv@DX,-\tv@mydimen){\makebox(0,0){#1}}
%\rput(\tv@DX,-\tv@mydimen){#1}
}
\def\traithaut{%
\vertline{\strip@pt \tv@DX}{0}{\strip@pt \tv@DX}{- \strip@pt \tv@dimYHaut}
%\psline(\tv@DX,0)(\tv@DX,-\tv@dimYHaut)
}
\def\traitmilieu{\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by\tv@dimYMilieu%
%\psline(\tv@DX,-\tv@dimYHaut)(\tv@DX,-\tv@mydimen)
\vertline{\strip@pt \tv@DX}{- \strip@pt \tv@dimYHaut}{\strip@pt \tv@DX}{-\strip@pt \tv@mydimen}
}
\def\traitbas{\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by\tv@dimYMilieu
\dimen100=\tv@mydimen\advance\tv@mydimen by\tv@dimYBas
%\psline(\tv@DX,-\dimen100)(\tv@DX,-\tv@mydimen)
\vertline{\strip@pt \tv@DX}{- \strip@pt \dimen100}{\strip@pt \tv@DX}{- \strip@pt \tv@mydimen}
}
\def\doubletraithaut{
%\psline[doubleline=true,doublesep=1pt](\tv@DX,0)(\tv@DX,-\tv@dimYHaut)
\doublevertline{\strip@pt \tv@DX}{0}{\strip@pt \tv@DX}{- \strip@pt \tv@dimYHaut}
}
\def\doubletraitmilieu{\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by\tv@dimYMilieu
%\psline[doubleline=true,doublesep=1pt](\tv@DX,-\tv@dimYHaut)(\tv@DX,-\tv@mydimen)
\doublevertline{\strip@pt \tv@DX}{- \strip@pt \tv@dimYHaut}{\strip@pt \tv@DX}{-\strip@pt \tv@mydimen}
}
\def\doubletraitbas{\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by\tv@dimYMilieu
\dimen100=\tv@mydimen\advance\tv@mydimen by\tv@dimYBas
%\psline[doubleline=true,doublesep=1pt](\tv@DX,-\dimen100)(\tv@DX,-\tv@mydimen)
\doublevertline{\strip@pt \tv@DX}{- \strip@pt \dimen100}{\strip@pt \tv@DX}{- \strip@pt \tv@mydimen}
}
\def\trait{\traithaut\traitmilieu\traitbas}
\def\dbt{\doubletraithaut\doubletraitmilieu\doubletraitbas}
\def\fm{%
\iftv@calcul
\GererXDimension{\tabdim}%
\GererDXDimension{0.5\tabdim}%
\fi
\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by\tv@dimYMilieu
\tv@dimX=\tv@Xdim\advance\tv@dimX by -\tv@DX %
\tempdimx=0.9\tv@DX
%\hbox to\tv@Xdim{\rput(\tv@DX,0){\psline{->}(-0.9\tv@DX,-\tv@mydimen)(0.9\tv@dimX,-\tv@dimYHaut)}\hfil}
\hbox to\tv@Xdim{\put(\dimexpr \tv@DX,0){\myarrowup{- \strip@pt \tempdimx}{- \strip@pt \tv@mydimen}{ \strip@pt \tempdimx}{- \strip@pt \tv@dimYHaut}}\hfil}
}
\def\fd{%
\iftv@calcul
\GererXDimension{\tabdim}%
\GererDXDimension{0.5\tabdim}%
\fi
\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by\tv@dimYMilieu
\tv@dimX=\tv@Xdim\advance\tv@dimX by -\tv@DX %
\tempdimx=0.9\tv@DX
%\hbox to\tv@Xdim{\rput(\tv@DX,0){\psline{->}(-0.9\tv@DX,-\tv@dimYHaut)(0.9\tv@dimX,-\tv@mydimen)}\hfil}
\hbox to\tv@Xdim{\put(\dimexpr \tv@DX,0){\myarrowdown{- \strip@pt \tempdimx}{- \strip@pt \tv@dimYHaut}{ \strip@pt \tempdimx}{- \strip@pt \tv@mydimen}}\hfil}
}
\def\fhh{%
\iftv@calcul
\GererXDimension{\tabdim}%
\GererDXDimension{0.5\tabdim}%
\fi
\tv@dimX=\tv@Xdim\advance\tv@dimX by -\tv@DX %
\tempdimx=0.9\tv@DX
\tempdimy=0.5\tv@dimYHaut
%\hbox to\tv@Xdim{\rput(\tv@DX,0){\psline{->}(-0.9\tv@DX,-0.5\tv@dimYHaut)(0.9\tv@dimX,-0.5\tv@dimYHaut)}\hfil}
\hbox to\tv@Xdim{\put(\dimexpr \tv@DX,0){\hzarrow{- \strip@pt \tempdimx}{- \strip@pt \tempdimy}{ \strip@pt \tempdimx}{- \strip@pt \tempdimy}}\hfil}
}
\def\fhm{%
\iftv@calcul
\GererXDimension{\tabdim}%
\GererDXDimension{0.5\tabdim}%
\fi
\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by 0.5\tv@dimYMilieu
\tv@dimX=\tv@Xdim\advance\tv@dimX by -\tv@DX
\tempdimx=0.9\tv@DX
%\hbox to\tv@Xdim{\rput(\tv@DX,0){\psline{->}(-0.9\tv@DX,-\tv@mydimen)(0.9\tv@dimX,-\tv@mydimen)}\hfil}
\hbox to\tv@Xdim{\put(\dimexpr \tv@DX,0){\hzarrow{- \strip@pt \tempdimx}{- \strip@pt \tv@mydimen}{ \strip@pt \tempdimx}{- \strip@pt \tv@mydimen}}\hfil}
}
\def\fhb{%
\iftv@calcul
\GererXDimension{\tabdim}%
\GererDXDimension{0.5\tabdim}%
\fi
\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by\tv@dimYMilieu\advance\tv@mydimen by0.5\tv@dimYBas
\tv@dimX=\tv@Xdim\advance\tv@dimX by -\tv@DX %
\tempdimx=0.9\tv@DX
%\hbox to\tv@Xdim{\rput(\tv@DX,0){\psline{->}(-0.9\tv@DX,-\tv@mydimen)(0.9\tv@dimX,-\tv@mydimen)}\hfil}
\hbox to\tv@Xdim{\put(\dimexpr \tv@DX,0){\hzarrow{- \strip@pt \tempdimx}{- \strip@pt \tv@mydimen}{ \strip@pt \tempdimx}{- \strip@pt \tv@mydimen}}\hfil}
}
\def\fmb{%
\iftv@calcul
\GererXDimension{\tabdim}%
\GererDXDimension{0.5\tabdim}%
\fi
\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by\tv@dimYMilieu\advance\tv@mydimen by 0.5\tv@dimYBas
\tv@mydimendeux=\tv@dimYHaut\advance\tv@mydimendeux by 0.5\tv@dimYMilieu
\tv@dimX=\tv@Xdim\advance\tv@dimX by -\tv@DX %
\tempdimx=0.9\tv@DX
%\hbox to\tv@Xdim{\rput(\tv@DX,0){\psline{->}(-0.9\tv@DX,-\tv@mydimen)(0.9\tv@dimX,-\tv@mydimendeux)}\hfil}
\hbox to\tv@Xdim{\put(\dimexpr \tv@DX,0){\myarrowup{- \strip@pt \tempdimx}{- \strip@pt \tv@mydimen}{ \strip@pt \tempdimx}{- \strip@pt \tv@mydimendeux}}\hfil}
}
\def\fdb{%
\iftv@calcul
\GererXDimension{\tabdim}%
\GererDXDimension{0.5\tabdim}%
\fi
\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by\tv@dimYMilieu\advance\tv@mydimen by 0.5\tv@dimYBas
\tv@mydimendeux=\tv@dimYHaut\advance\tv@mydimendeux by 0.5\tv@dimYMilieu
\tv@dimX=\tv@Xdim\advance\tv@dimX by -\tv@DX %
\tempdimx=0.9\tv@DX
%\hbox to\tv@Xdim{\rput(\tv@DX,0){\psline{->}(-0.9\tv@DX,-\tv@mydimendeux)(0.9\tv@dimX,-\tv@mydimen)}\hfil}
\hbox to\tv@Xdim{\put(\dimexpr \tv@DX,0){\myarrowup{- \strip@pt \tempdimx}{- \strip@pt \tv@mydimendeux}{ \strip@pt \tempdimx}{- \strip@pt \tv@mydimen}}\hfil}
}
\def\fmh{%
\iftv@calcul
\GererXDimension{\tabdim}%
\GererDXDimension{0.5\tabdim}%
\fi
\tv@mydimen=0.5\tv@dimYHaut\tv@mydimendeux=\tv@dimYHaut\advance\tv@mydimendeux by 0.5\tv@dimYMilieu
\tv@dimX=\tv@Xdim\advance\tv@dimX by -\tv@DX %
\tempdimx=0.9\tv@DX
%\hbox to\tv@Xdim{\rput(\tv@DX,0){\psline{->}(-0.9\tv@DX,-\tv@mydimendeux)(0.9\tv@dimX,-\tv@mydimen)}\hfil}
\hbox to\tv@Xdim{\put(\dimexpr \tv@DX,0){\myarrowup{- \strip@pt \tempdimx}{- \strip@pt \tv@mydimendeux}{ \strip@pt \tempdimx}{- \strip@pt \tv@mydimen}}\hfil}
}
\def\fdh{%
\iftv@calcul
\GererXDimension{\tabdim}%
\GererDXDimension{0.5\tabdim}%
\fi
\tv@mydimen=0.5\tv@dimYHaut\tv@mydimendeux=\tv@dimYHaut\advance\tv@mydimendeux by 0.5\tv@dimYMilieu
\tv@dimX=\tv@Xdim\advance\tv@dimX by -\tv@DX %
\tempdimx=0.9\tv@DX
%\hbox to\tv@Xdim{\rput(\tv@DX,0){\psline{->}(-0.9\tv@DX,-\tv@mydimen)(0.9\tv@dimX,-\tv@mydimendeux)}\hfil}
\hbox to\tv@Xdim{\put(\dimexpr \tv@DX,0){\myarrowup{- \strip@pt \tempdimx}{- \strip@pt \tv@mydimen}{ \strip@pt \tempdimx}{- \strip@pt \tv@mydimendeux}}\hfil}
}
\def\tx#1{%
\iftv@calcul
\GererX{$\dsp#1$}%
\GererDXSimple{$\dsp#1$}%
\fi
\hbox to \tv@Xdim{\tabvarputmilieu{$\dsp #1$}\hfil}%
}
\def\txh#1{%
\iftv@calcul
\GererX{$\dsp#1$}%
\GererDXSimple{$\dsp#1$}%
\fi
\hbox to\tv@Xdim{\tabvarputhaut{$\dsp #1$}\hfil}%
}
\def\txb#1{%
\iftv@calcul
\GererX{$\dsp#1$}%
\GererDXSimple{$\dsp#1$}%
\fi
\hbox to\tv@Xdim{\tabvarputbas{$\dsp#1$}\hfil}%
}
\def\txt#1{%
\iftv@calcul
\GererX{$\dsp#1$}%
\GererDXSimple{$\dsp#1$}%
\fi
\hbox to\tv@Xdim{\traithaut\tabvarputmilieu{$\dsp #1$}\traitbas\hfil}%
}
\def\txht#1{%
\iftv@calcul
\GererX{$\dsp#1$}%
\GererDXSimple{$\dsp#1$}%
\fi
\hbox to\tv@Xdim{\tabvarputhaut{$\dsp #1$}\traitmilieu\traitbas\hfil}%
}
\def\txbt#1{%
\iftv@calcul
\GererX{$\dsp#1$}%
\GererDXSimple{$\dsp#1$}%
\fi
\hbox to\tv@Xdim{\traithaut\traitmilieu\tabvarputbas{$\dsp #1$}\hfil}%
}
\def\xt#1{%
\iftv@calcul
\GererX{$\dsp#1$}%
\GererDXSimple{$\dsp#1$}%
\fi
\hbox to\tv@Xdim{\tabvarputmilieu{$\dsp#1$}\traitbas\hfil}%
}
\def\xdbt#1{%
\iftv@calcul
\GererX{$\dsp#1$}%
\GererDXSimple{$\dsp#1$}%
\fi
\hbox to\tv@Xdim{\tabvarputmilieu{$\dsp#1$}\doubletraitbas\hfil}%
}
\def\txdbthb#1#2{%
\iftv@calcul
\initY{$\dsp #1$}\max{\tv@dimYHaut}{\tv@mydimen}%
\initY{$\dsp #2$}\max{\tv@dimYBas}{\tv@mydimen}%
\initx{$\dsp#1$}\advance\tv@mydimen by 3 pt\relax
\GererDXDimension{\tv@mydimen}%
\initx{$\dsp#1$}\max{\tv@mydimen}{\tv@DX}%
\global\advance\tv@mydimen by 3pt\global\tv@dimX=\tv@mydimen
\initx{$\dsp#2$}\global\advance\tv@mydimen by\tv@dimX
\GererXDimension{\tv@mydimen}%
\fi%
\tempdimy=-0.5\tv@dimYHaut
\hbox to\tv@Xdim{%
\put(\tv@DX,0){\put(-3pt,\dimexpr \tempdimy){\makebox[0pt][r]{$\dsp#1$}}}
%\rput[r](\tv@DX,0){\rput[r](-3pt,-0.5\tv@dimYHaut){$\dsp#1$}}%
%
\dbt
%
\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by \tv@dimYMilieu\advance\tv@mydimen by 0.5\tv@dimYBas
\put(\tv@DX,0){\put(3pt,-\tv@mydimen){\makebox[0pt][l]{$\dsp#1$}}}
%\rput[l](\tv@DX,0){\rput[l](3pt,-\tv@mydimen){$\dsp #2$}}%
\hfil}%
}
\def\txdbthh#1#2{%
\iftv@calcul
\initY{$\dsp #1$}\max{\tv@dimYHaut}{\tv@mydimen}%
\initY{$\dsp #2$}\max{\tv@dimYHaut}{\tv@mydimen}%
\initx{$\dsp#1$}\advance\tv@mydimen by 3 pt\relax
\GererDXDimension{\tv@mydimen}%
\initx{$\dsp#1$}\max{\tv@mydimen}{\tv@DX}%
\global\advance\tv@mydimen by 3pt\global\tv@dimX=\tv@mydimen
\initx{$\dsp#2$}\global\advance\tv@mydimen by\tv@dimX
\GererXDimension{\tv@mydimen}%
\fi%
\tempdimy=-0.5\tv@dimYHaut
\hbox to\tv@Xdim{%
\put(\tv@DX,0){\put(-3pt,\tempdimy){\makebox[0pt][r]{$\dsp#1$}}}
%\rput[r](\tv@DX,0){\rput[r](-3pt,-0.5\tv@dimYHaut){$\dsp#1$}}%
%
\dbt
%
\put(\tv@DX,0){\put(3pt,\tempdimy){\makebox[0pt][l]{$\dsp#1$}}}
%\rput[l](\tv@DX,0){\rput[l](3pt,-0.5\tv@dimYHaut){$\dsp #2$}}
\hfil}%
}%
\def\txdbtbh#1#2{%
\iftv@calcul
\initY{$\dsp #1$}\max\tv@dimYBas\tv@mydimen%
\initY{$\dsp #2$}\max\tv@dimYHaut\tv@mydimen%
\initx{$\dsp#1$}\advance\tv@mydimen by 3 pt\relax
\GererDXDimension{\tv@mydimen}%
\initx{$\dsp#1$}\max{\tv@mydimen}{\tv@DX}%
\global\advance\tv@mydimen by 3pt\global\tv@dimX=\tv@mydimen
\initx{$\dsp#2$}\global\advance\tv@mydimen by\tv@dimX
\GererXDimension{\tv@mydimen}%
\fi%
\tempdimy=-0.5\tv@dimYHaut
\hbox to\tv@Xdim{%
\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by \tv@dimYMilieu\advance\tv@mydimen by 0.5\tv@dimYBas
\put(\tv@DX,0){\put(-3pt,-\tv@mydimen){\makebox[0pt][r]{$\dsp#1$}}}
%\rput[r](\tv@DX,0){\rput[r](-3pt,-\tv@mydimen){$\dsp#1$}}%
%
\dbt
%
\put(\tv@DX,0){\put(3pt,\tempdimy){\makebox[0pt][l]{$\dsp#1$}}}
%\rput[l](\tv@DX,0){\rput[l](3pt,-0.5\tv@dimYHaut){$\dsp #2$}}
\hfil}%
}%
\def\txdbtbb#1#2{%
\iftv@calcul%
\initY{$\dsp #1$}\max{\tv@dimYBas}{\tv@mydimen}%
\initY{$\dsp #2$}\max{\tv@dimYBas}{\tv@mydimen}%
\initx{$\dsp#1$}\advance\tv@mydimen by 3 pt%
\GererDXDimension{\tv@mydimen}%
\initx{$\dsp#1$}\max{\tv@mydimen}{0.90909\tv@DX}%
\global\advance\tv@mydimen by 3pt\global\tv@dimX=\tv@mydimen%
\initx{$\dsp#2$}\global\advance\tv@mydimen by\tv@dimX%
\GererXDimension{\tv@mydimen}%
\fi%
\hbox to\tv@Xdim{%
\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by\tv@dimYMilieu\advance\tv@mydimen by 0.5\tv@dimYBas\relax%
\put(\tv@DX,0){\put(-3pt,-\tv@mydimen){\makebox[0pt][r]{$\dsp#1$}}}
%\rput[r](\tv@DX,0){\rput[r](-3pt,-\tv@mydimen){$\dsp#1$}}%
%
\dbt
%
\tv@mydimen=\tv@dimYHaut\advance\tv@mydimen by\tv@dimYMilieu\advance\tv@mydimen by 0.5\tv@dimYBas\relax
\put(\tv@DX, 0){\put(3pt,-\tv@mydimen){\makebox[0pt][l]{$\dsp#1$}}}
%\rput[l](\tv@DX,0){\rput[l](3pt,-\tv@mydimen){$\dsp #2$}}%
\hfil}%
}%
\def\grise{%
\iftv@calcul
\GererXDimension{\tabdim}%
\GererDXDimension{0.5\tabdim}%
\fi%
\hbox to\tv@Xdim{\put(0,\dimexpr -\tv@YTotal){\colorbox{gristabvar}{\makebox(\tv@Xdim,\tv@YTotal){}}}\hfil}
%\hbox to\tv@Xdim{\psframe[linecolor=gristabvar,fillstyle=solid,fillcolor=gristabvar](0,0)(\tv@Xdim,-\tv@YTotal)\hfil}
}
\toksdef\ta=0 \toksdef\tb=2
\long\def\rightappenditem#1\to#2{\ta={\\{#1}}\tb=\expandafter{#2}%
\xdef#2{\the\tb\the\ta}}
\long\def\leftappenditem#1\to#2{\ta={\\{#1}}\tb=\expandafter{#2}%
\xdef#2{\the\ta\the\tb}}
\def\lop#1\to#2{\expandafter\lopoff#1\lopoff#1#2}
\long\def\lopoff\\#1#2\lopoff#3#4{\gdef#4{#1}\gdef#3{#2}}
\def\clearListes{\gdef\listeY{}\gdef\listeX{}\gdef\listeDX{}}
\def\savedimsY{%
\expandafter\rightappenditem\the\tv@dimYHaut\to\listeY
\expandafter\rightappenditem\the\tv@dimYMilieu\to\listeY
\expandafter\rightappenditem\the\tv@dimYBas\to\listeY}
\def\litY{%
\lop\listeY\to\a \tv@dimYHaut=\a
\lop\listeY\to\a \tv@dimYMilieu=\a
\lop\listeY\to\a \tv@dimYBas=\a
\global\advance\tv@dimYHaut by 2\tabblanc
\global\advance\tv@dimYMilieu by 2\tabblanc
\global\advance\tv@dimYBas by 2\tabblanc
\calculeYTotal}
\def\ajouteX#1{%
\expandafter\rightappenditem\the #1\to\listeX}
\def\ajouteXAGauche#1{%
\expandafter\leftappenditem\the #1\to\listeX}
\def\extraitX{\lop\listeX\to\a\tv@Xdim=\a}
\def\ajouteDX#1{%
\expandafter\rightappenditem\the #1\to\listeDX}
\def\ajouteDXAGauche#1{%
\expandafter\leftappenditem\the #1\to\listeDX}
\def\extraitDX{\lop\listeDX\to\a\tv@DX=\a}
\def\initListeXListeDX#1{%
\global\tv@countLigne=0
\setbox150=\vbox{\halign{%
\global\advance\tv@countLigne by 1
\ifnum\tv@countLigne=1
\tv@mydimen=0pt
\ajouteXAGauche{\tv@mydimen}%
\ajouteDXAGauche{\tv@mydimen}%
\fi
##\hfil\vrule&&%
\hfil
\ifnum\tv@countLigne=1
\tv@mydimen=0pt
\ajouteXAGauche{\tv@mydimen}%
\ajouteDXAGauche{\tv@mydimen}%
\fi
##\hfil\cr%
#1}}}
\def\TABVAR#1{%
\vbox{\vglue\smallskipamount\nobreak%
{\offinterlineskip\everycr{\noalign{\hrule}}%
\iftv@calcul
\else
\litY
\fi%
\hbox{\vrule\vbox{\halign{%
\iftv@calcul
\savedimsY
\setY{0pt}{0pt}{0pt}%
\else
\litY%
\fi
\vrule height 0pt depth \tv@YTotal width 0pt\extraitX\extraitDX##\ajouteX{\tv@Xdim}\ajouteDX{\tv@DX}%
\vrule&&%
\extraitX\extraitDX##\ajouteX{\tv@Xdim}\ajouteDX{\tv@DX}\cr%
#1}}\vrule}}
\iftv@calcul
\savedimsY%
\fi
\medbreak%
}}
\def\tabvar#1{{\clearListes\initListeXListeDX{#1}\tv@calcultrue%
\setbox150=\hbox{\TABVAR{#1}}\tv@calculfalse\TABVAR{#1}}}
\catcode`\@=12
%-- Fin Macros tabvar