Source de tableau.sty
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%% Nouvelles marcros et environnement %%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\newcounter{TabNodeX}                          % Compte les colonnes
\renewcommand{\theTabNodeX}{\Alph{TabNodeX}}   % Compte en A B C ...

\newcounter{TabNoLigne}[TabNodeX]              % Compte les lignes dans une colonne
\newcounter{TabVieux}                          % Ancienne ligne

\newcounter{TabShowLabel}
\newcommand{\TabShowLabelOn}{
    \setcounter{TabShowLabel}{1}
    \psgrid[gridcolor=blue,subgridcolor=blue,subgriddiv=10,%
                gridwidth=.5pt,subgridwidth=.1pt,%
                gridlabels=0pt](-1cm,-1)(1,\NbLignesH)}
\newcommand{\TabShowLabelOff}{\setcounter{TabShowLabel}{0}}

\newlength{\TabLargeur}             % Largeur du tableau en cm
\newlength{\TabColX}                % Abscisse de la colonnne
\newlength{\TabNodeX}               % Abscisse du node

\newlength{\TabTitreL}              % Largeur de la colonne de gauche
\setlength{\TabTitreL}{1.5cm}       % de 1.5cm par défaut

\newlength{\TabHautLigne}           % Hauteur d'une ligne en cm
\newlength{\TabHautPLigne}          % Hauteur de la première
\setlength{\TabHautPLigne}{.8cm}

\newlength{\TabNodeY}               % Ordonnée du node

\newcommand{\TabNewCol}[1]{%
    \setcounter{TabVieux}{-1}
	\stepcounter{TabNodeX}              % Incrémente le numéro de colonne
    \setlength{\TabColX}{#1\TabLargeur} % place la colonne horizontalement
    }
    
\newcommand{\rTabPut}[5][0]{%           % #1 type de ligne qui traverse
                                        %    la case. 0 rien (défaut),
                                        %    1 pointillé, 2 filet, 3 dbl barre
                                        % #2 point de référence
                                        % #3 Correction horizontale
                                        % #4 Correction verticale 
                                        % #5 ce qu'il faut afficher
    
    % Calcule l'ordonnée du node avec la correction verticale
    
    \setlength{\TabNodeY}{#4\TabHautLigne}
    \addtolength{\TabNodeY}{-\theTabNoLigne\TabHautLigne}
    
    
    % Calcule l'abscisse du node avec la correction horizoncale
    
    \setlength{\TabNodeX}{#3cm}
    \addtolength{\TabNodeX}{\TabColX}
        
        % Affiche le nom des nodes à la place de ce qu'il faudrait
        % Plus une grille pour les positionner

        \ifthenelse%           ligne en pointillé dans la case
		{\equal{#1}{1}}%
		{\psline[style=TabLigneP]%
			(\TabNodeX,\theTabVieux)%
			(\TabNodeX,\theTabNoLigne)}%
		{}%

		\ifthenelse%           ligne en continue dans la case
		{\equal{#1}{2}}%
		{\psline[style=TabLigne]%
			(\TabNodeX,\theTabVieux)%
			(\TabNodeX,\theTabNoLigne)}%
		{}%

		\ifthenelse%           ligne double dans la case
		{\equal{#1}{3}}%
		{\psline[style=TabDblBarre]%
			(\TabNodeX,\theTabVieux)%
			(\TabNodeX,\theTabNoLigne)}%
		{}%
        \ifthenelse%
        {\equal{\theTabShowLabel}{0}}%
        {    % Pour que les nodes se déplacent dynamiquement avec le changement
             % de hauteur de ligne sauf sur la ligne au dessus du tableau. 

            \ifthenelse%
            {\equal{\theTabNoLigne}{0}}%
            {\rput[#2](\TabNodeX,#4cm)%
                {\rnode{\theTabNodeX\theTabNoLigne}{#5}}}%
            {\rput[#2](\TabNodeX,\TabNodeY)%
                {\rnode{\theTabNodeX\theTabNoLigne}{#5}}}%

		\stepcounter{TabVieux}
        \stepcounter{TabNoLigne}            % numéro de ligne suivante
		
        }%
        {    % Pour que les nodes se déplacent dynamiquement avec le changement
             % de hauteur de ligne sauf sur la ligne au dessus du tableau. 
            \ifthenelse%
            {\equal{\theTabNoLigne}{0}}%
            {\uput{.2}[90](\TabNodeX,#4cm){\bf\footnotesize\theTabNodeX\theTabNoLigne}
			 \rput[#2](\TabNodeX,#4cm)%
                {\rnode{\theTabNodeX\theTabNoLigne}{\small$\bullet$}}}%
            {\uput{.2}[90](\TabNodeX,\TabNodeY){\bf\footnotesize\theTabNodeX\theTabNoLigne}
			 \rput[#2](\TabNodeX,\TabNodeY)%
                {\rnode{\theTabNodeX\theTabNoLigne}{\small$\bullet$}}}%
        
        \stepcounter{TabNoLigne}            % numéro de ligne suivante
        
        }%

    
    }

\newenvironment{MonTableau}[3]{%      % #1 est le nombre de lignes
                                        % #2 est la largeur du tableau
                                        % #3 est la hauteur d'une ligne
    		
    \setcounter{TabNodeX}{0}            % On repart de 0
	
	\setlength{\TabLargeur}{#2cm}       % Largeur du tableau
    \setlength{\TabHautLigne}{#3cm}     % Hauteur des lignes
    \psset{xunit=#2,yunit=-#3}          % Unités pour que chaque case du tableau
                                        % ait les dimension 1x1
                                        
    \begin{pspicture}(-\TabTitreL,#1)(1,\TabHautPLigne)   % Début de PSpicture
    
	
    \def\NbLignesH{#1}
	
	\psline(-\TabTitreL,0)(1,0)                % Dessin des lignes horizontales
    \multido{\i=1+1}{\NbLignesH}{%
        \psline[linewidth=.3pt](0,\i)(1,\i)}
	}%
    {
	% Dessin des lignes verticales et de la dernière ligne
    \psline(0,\TabHautPLigne)(0,\NbLignesH)(1,\NbLignesH)(1,0)

	\end{pspicture}                    % Fin de PSpicture
    }

\newcommand{\TabFleche}[2]{%            % Flèche entre deux nodes
    \ncline[nodesep=3pt,linewidth=.5pt]{->}{#1}{#2}}

\newcommand{\TabTitre}[2]{%             % Titre de ligne var. ou sgn. de f
	$\stackrel{\rule[-5pt]{0pt}{5pt}\text{\normalsize\bf#1}}{#2}$}

\newcommand{\TabFerme}{%      % ferme le tableau pour ceux qui on froid
	\psline(1,\NbLignesH)(1,\TabHautPLigne)(-\TabTitreL,\TabHautPLigne)%
	(-\TabTitreL,\NbLignesH)(1,\NbLignesH)}

\newcommand{\TabTitreFerme}{%      % lignes horizontales dans la col. de gauche
    \multido{\i=1+1}{\NbLignesH}{%
        \psline[linewidth=.3pt](-\TabTitreL,\i)(0,\i)}}

\newpsstyle{TabDblBarre}{linewidth=.4pt,doubleline=true,doublesep=.6pt}
\newpsstyle{TabLigne}{linewidth=.4pt}
\newpsstyle{TabLigneP}{linewidth=.4pt,linestyle=dashed,dash=3pt 2pt}

\newcommand{\TabZ}[1][$0$]{\pscirclebox*{#1}}

\newcommand{\TabEfface}[1]{\psline[linecolor=white,linewidth=1.5pt]%
	(-\TabTitreL,#1)(1,#1)}

 

Validation CSS Validation XHTMLSyracuse — Dernière modification : 25 novembre 2005 (0.08s - 3209304 - 6 juillet 2008) vers le haut