diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-13 00:08:32 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-13 00:08:32 +0000 |
commit | 8cb04a7f78c0d421128ccd51e20ff82dcd8a819a (patch) | |
tree | 098ab7f4df108b20eb1586e79170a87af4ab5c0b | |
parent | 9c2380f55c4f48aeafffc091b5aee38295a12da4 (diff) |
tableaux
git-svn-id: svn://tug.org/texlive/trunk@1369 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/tex/latex/tableaux/minimum.sty | 63 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/tableaux/tableau.sty | 155 |
2 files changed, 218 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tableaux/minimum.sty b/Master/texmf-dist/tex/latex/tableaux/minimum.sty new file mode 100644 index 00000000000..d00e73878d6 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tableaux/minimum.sty @@ -0,0 +1,63 @@ +% ******************************************* +% ******************************************* +% %%% Mise en Page A4 +% ******************************************* +% ******************************************* + +% Met les marges à zéro +\setlength{\evensidemargin}{0cm} +\setlength{\oddsidemargin}{0cm} +\setlength{\marginparwidth}{0cm} + +% 2 cm de chaque côté et 17 cm pour le texte +\addtolength{\hoffset}{-1in} +\addtolength{\hoffset}{2cm} +\setlength{\textwidth}{17cm} + +% Environ 2 cm en haut et en bas et 25,5 cm hauteur de texte +\addtolength{\voffset}{-1in} +\addtolength{\voffset}{2cm} +\addtolength{\voffset}{-54pt} +\setlength{\textheight}{25.5cm} + +%Par défaut pas d'indentation des retours à la ligne +\setlength{\parindent}{0pt} + + +% ******************************************* +% ******************************************* +% %%% Francisation +% ******************************************* +% ******************************************* + +% Permet de rester compatible avec les macounets +% qui utilisent appelmac à la place de latin1 +% comme option de package inputenc +\DeclareOption{applemac}{\def\THE@@encoding{applemac}} +\DeclareOption{latin1}{\def\THE@@encoding{latin1}} +\ExecuteOptions{latin1} +\ProcessOptions +\PassOptionsToPackage{\THE@@encoding}{inputenc} +\RequirePackage{inputenc} % les bons codes pour les bonnes lettres + +\RequirePackage[T1]{fontenc} % une police avec des caractères accentués +\RequirePackage[francais]{babel} % un package de francisation (date, césure ...) + +% ******************************************* +% ******************************************* +% %%% Divers packages +% ******************************************* +% ******************************************* + +\RequirePackage{amsmath} % Police de maths +\RequirePackage{amssymb} % Police de maths + +\RequirePackage{array} +\RequirePackage{hhline} + +\RequirePackage[dvips,final]{graphicx} % Gestion de l'inclusion des dessin + +\RequirePackage{pstcol} % Package PS-trikcs pour dessiner en couleurs +\RequirePackage{pst-fill} % Package PS-trikcs pour le remplissage +\RequirePackage{pst-plot} % Package PS-trikcs pour tracer les courbes +\RequirePackage{pst-tree} % Package PS-trikcs pour dessiner les arbres 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}} |