From 8cb04a7f78c0d421128ccd51e20ff82dcd8a819a Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Fri, 13 Jan 2006 00:08:32 +0000
Subject: tableaux

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

(limited to 'Master/texmf-dist/tex/latex/tableaux/tableau.sty')

diff --git a/Master/texmf-dist/tex/latex/tableaux/tableau.sty b/Master/texmf-dist/tex/latex/tableaux/tableau.sty
new file mode 100644
index 00000000000..214ba505082
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tableaux/tableau.sty
@@ -0,0 +1,155 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%% 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{\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,.8cm)   % 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,.8cm)(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,.8cm)(-\TabTitreL,.8cm)(-\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}}
-- 
cgit v1.2.3

