diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-11 23:58:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-11 23:58:14 +0000 |
commit | 090f8ec82714dc1647bdbca6daa9a10a7717d587 (patch) | |
tree | 0c5e6a195debfbca3495373a968482af69ef296f /Master/texmf-dist/source/latex/tabvar | |
parent | 685b12b130cc2244d8688e1fa5f458e7ae85dc92 (diff) |
trunk/Master/texmf-dist/source/latex/tabvar
git-svn-id: svn://tug.org/texlive/trunk@541 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/tabvar')
-rw-r--r-- | Master/texmf-dist/source/latex/tabvar/tabvar.dtx | 627 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/tabvar/tabvar.ins | 66 |
2 files changed, 693 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/tabvar/tabvar.dtx b/Master/texmf-dist/source/latex/tabvar/tabvar.dtx new file mode 100644 index 00000000000..3946e03aef0 --- /dev/null +++ b/Master/texmf-dist/source/latex/tabvar/tabvar.dtx @@ -0,0 +1,627 @@ +% \CheckSum{427} +% +% \iffalse +% Files `tabvar.dtx', `tabvar.ins' and `tabvar.mp' +% +% All the files included in the `tabvar' distribution, including +% the font, may be distributed and/or modified under the conditions +% of the LaTeX Project Public License, either version 1.3 of this +% license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/12/01 or later. +% +% This file has the LPPL maintenance status "maintained". +% +% NO PERMISSION is granted to produce or to distribute a +% modified version of this file under its original name. +% +%<dtx>\ProvidesFile{tabvar.dtx} +%<*sty> +%% +%% Copyright (C) Daniel Flipo 2003-2005 <daniel.flipo@univ-lille1.fr>. +%% +\NeedsTeXFormat{LaTeX2e}[1997/06/01] +\ProvidesFile{tabvar.sty} + [2005/02/05 v0.9 (Daniel Flipo)] +%</sty> +%<*filedriver> +\documentclass{ltxdoc} +\usepackage{url} +\usepackage[latin1]{inputenc} +\usepackage[T1]{fontenc} +\IfFileExists{lmodern.sty}{\usepackage{lmodern}}{} +\usepackage[frenchb]{babel} +\newcommand*\file[1]{\textsf{#1}} +\begin{document} +\parindent=0pt +\begin{center} + \textbf{\Large Tableaux de variations : `tabvar'}\\[3mm]^^A\] + Daniel \textsc{Flipo}\\ + \texttt{Daniel.Flipo@univ-lille1.fr} +\end{center} + \DocInput{tabvar.dtx} +\end{document} +%</filedriver> +% \fi +% \GetFileInfo{tabvar.dtx} +% +% \section{Documentation} +% +% L'extension \file{tabvar.dtx}\footnote{La version pr\'esent\'ee +% ici porte le num\'ero \fileversion, derni\`ere modification le +% \filedate.}, a pour but de faciliter la saisie des tableaux de +% variations. +% +% Elle s'appuie sur les extensions \file{array}, \file{colortbl}, +% et \file{varwidth}. Les fl\`eches sont prises dans une fonte +% (type\,1) sp\'ecialement cr\'e\'ee par Michel~\bsc{Bovani}. +% Un grand merci \`a Michel pour cette contribution et pour +% ses remarques qui m'ont \'et\'e tr\`es utiles pour +% am\'eliorer les versions pr\'eliminaires. +% +% Une autre possibilit\'e est de faire appel, pour les fl\`eches, +% \`a MetaPost : le fichier \file{tabvar.mp} permet de cr\'eer les +% trois fl\`eches \file{tabvar.1}, \file{tabvar.2}, \file{tabvar.3}. +% Ceci est une solution de repli pour ceux qui auraient du mal +% \`a installer la fonte \file{tabvar.pfb}. +% +% \subsection{Installation} +% +% Assurez-vous que l'extension \file{varwidth.sty} est pr\'esente +% sur votre syst\`eme, sinon r\'ecup\'erez-les sur CTAN : +% cherchez par exemple la cha\^{\i}ne |varwidth| +% sur \url{http://www.tex.ac.uk/CTANfind.html} +% +% Les fichiers \file{tabvar.1}, \dots{} , \file{tabvar.3} +% ainsi que \file{tabvar.sty} et \file{tabvar.cfg} doivent +% \^etre plac\'es dans un r\'epertoire vu par \LaTeX. +% +% Les fl\`eches sont prises dans la fonte type\,1 \file{tabvar.pfb} +% \`a condition que celle-ci soit correctement install\'ee : +% il est n\'ecessaire de placer le fichier \file{tabvar.pfb} dans +% un r\'epertoire o\`u il sera pris en compte, par exemple, pour +% respecter l'architecture TDS : |texmf/fonts/type1/public/tabvar|. +% De m\^eme, son fichier de m\'etriques \file{tabvar.tfm} devra +% \^etre mis par exemple dans |texmf/fonts/tfm/public/tabvar|. +% +% Un ligne donnant acc\`es \`a cette fonte doit \^etre ajout\'ee +% (voir \file{tabvar.map}) dans les fichiers |.map| utilis\'es +% par le pilote PostScript (\file{psfonts.map}) et par pdf\TeX{} +% (\file{pdftex.map}). +% Ne pas oublier de mettre \`a jour les bases de donn\'ees ls-R +% pour terminer (commande |mktexlsr| sous te\TeX{} ou \TeX{}Live). +% +% \subsection{Utilisation} +% +% L'environnement |tabvar| est une variante de l'environnement +% |array|, adapt\'ee \`a la saisie de tableaux de variations. +% +% Trois nouveaux types de colonnes, |C|, |L| et |R| sont +% utilis\'es \`a la place des types classiques (|c|, |l| et |r|) ; +% ils permettent de disposer du mat\'eriel sur plusieurs niveaux +% dans un m\^eme ligne du tableau (ce sont des colonnes de type +% |\parbox|). +% +% Un quatri\`eme type de colonne, not\'e |N| sert pour les plages +% o\`u la fonction est non d\'efinie. La colonne est enti\`erement +% gris\'ee par d\'efaut, mais il est possible de choisir une autre +% couleur (voir le fichier de configuration \file{tabvar.cfg}). +% +% La saisie des lignes contenant les valeurs de la variable et les +% signes des d\'eriv\'ees se fait exactement comme celles d'un +% tableau |array|. Seules les lignes contenant les variations de +% la ou des fonctions font appel \`a six commandes +% particuli\`eres : |\croit|, |\decroit|, |\constante|, +% |\niveau|, |\dbarre| et |\discont|. +% +% \begin{itemize} +% +% \item Les commandes |\croit|, |\decroit| et |\constante| ne +% prennent pas d'argument, elles tracent les fl\`eches +% montantes, descendantes ou horizontales. +% +% \item |\niveau{|\emph{d\'epart}|}{|\emph{total}|}| prend +% deux arguments : le niveau (hauteur) o\`u doit \^etre +% positionn\'ee la premi\`ere valeur de la fonction et le +% nombre total de niveaux qui seront utilis\'es dans la ligne. +% +% \item |\dbarre| trace un double trait vertical dont la hauteur +% est celle de la ligne du tableau ; elle indique les +% discontinuit\'es de la fonction. +% +% \item |\discont[|\emph{num}|]{|\emph{valeur\_gauche}|}{<| +% ou |>}{|\emph{valeur\_droite}|}| peut +% s'utiliser lorsque la fonction pr\'esente une +% discontinuit\'e \`a la place de la double barre +% traditionnelle ; elle prend trois arguments obligatoires : +% les valeurs \`a gauche~$f_-$ et \`a droite~$f_+$ de la +% fonction, s\'epar\'ees par un signe |<| ou |>| selon que +% $f_-<f_+$ ou $f_->f_+$. +% Enfin, l'argument optionnel, qui vaut~0 par d\'efaut, +% permet d'intercaler \emph{num} niveaux suppl\'ementaires +% entre les valeurs de~$f_-$ et~$f_+$ si n\'ecessaire. +% +% \end{itemize} +% +% Le fichier \file{demo.pdf} (joint) propose plusieurs exemples, +% accompagn\'es de leur code source, illustrant les utilisations +% possibles de l'environnement |tabvar|. +% +% \StopEventually{} +% +% \iffalse +% \begin{macrocode} +%<*sty> +% \end{macrocode} +% \fi +% +% \section{Le code} +% +% \subsection{Options} +% +% \changes{tabvar-0.9}{2004/12/29}{Par d\'efaut, les fl\`eches +% sont prises maintenant dans la fonte type 1 de Michel Bovani.} +% +% \changes{tabvar-0.9}{2005/02/05}{Ajout de deux options pour +% le choix du type de fl\`eches (suggestion de Frank Stengel).} +% +% Depuis la version~0.9, les fl\`eches utilis\'ees par d\'efaut +% sont prises dans la fonte type\,1 de Michel Bovani. +% +% Si cette fonte sp\'ecifique n'a pas pu \^etre correctement +% install\'ee, on pourra d\'eclarer |\FlechesMPtrue| dans le +% fichier \file{tabvar.cfg} ou dans le pr\'eambule, ou encore +% utiliser l'option |FlechesMP| pour que les fl\`eches +% MetaPost utilis\'ees \`a la place. +% +% \begin{macrocode} +\newif\ifFlechesMP \FlechesMPfalse +\DeclareOption{FlechesMP}{\FlechesMPtrue} +\DeclareOption{FlechesPS}{\FlechesMPfalse} +\ProcessOptions +% \end{macrocode} +% +% \subsection{Identification, extensions requises} +% +% Chargement des extensions utiles : +% +% \begin{macrocode} +\RequirePackage{array} +\RequirePackage{colortbl} +\RequirePackage{varwidth} +\RequirePackage{ifthen} +% \end{macrocode} +% +% \subsection{Dessin des fl\`eches en MetaPost} +% +% Le fichier \file{tabvar.mp} (joint) contient le dessin des +% trois fl\`eches. +% +% La commande |mpost -tex=latex tabvar| produit trois fichiers +% \file{tabvar.1}\dots{} \file{tabvar.3} qui contiennent les +% dessins des fl\`eches ; en PDF, il faut indiquer qu'il s'agit +% de fichiers MetaPost. +% +% \begin{macrocode} +\RequirePackage{graphicx} +\RequirePackage{ifpdf} +\ifpdf + \input{supp-pdf} + \DeclareGraphicsRule{*}{mps}{*}{} +\fi +% \end{macrocode} +% +% Les commandes |\FlecheCm|, |\FlecheDm| et |\FlecheHm| tracent +% les trois types de fl\`eches MetaPost. +% +% \begin{macrocode} +\newsavebox{\arup} +\newsavebox{\ardown} +\newsavebox{\arhor} +% \end{macrocode} +% +% \changes{tabvar-0.9}{2004/12/29}{\cs{@ptsize} n'est malheureusement +% pas définie par toutes les classes, d'où le \cs{providecommand}.} +% +% Certaines classes (beamer par exemple) ne d\'efinissent pas +% |\@ptsize|, dans ce cas on renonce \`a la mise \`a l'\'echelle +% des fl\`eches MetaPost. +% \begin{macrocode} +\providecommand{\@ptsize}{0} +\sbox{\arup} {\includegraphics[scale=1.\@ptsize]{tabvar.1}} +\sbox{\ardown}{\includegraphics[scale=1.\@ptsize]{tabvar.2}} +\sbox{\arhor} {\includegraphics[scale=1.\@ptsize]{tabvar.3}} +\newcommand{\FlecheCm}{\raisebox{.5ex}{\usebox{\arup}}} +\newcommand{\FlecheDm}{\raisebox{.5ex}{\usebox{\ardown}}} +\newcommand{\FlecheHm}{\raisebox{.5ex}{\usebox{\arhor}}} +% \end{macrocode} +% +% \subsection{Fl\`eches comme caract\`eres d'une fonte type\,1} +% +% Les fl\`eches utilis\'ees par d\'efaut sont prises dans +% la fonte type\,1 \og tvsymbols \fg{} de Michel Bovani. +% +% \begin{macro}{\FlecheC} +% \begin{macro}{\FlecheD} +% \begin{macro}{\FlecheH} +% Le trac\'e des trois types de fl\`eches est fait par les +% commandes |\FlecheC|, |\FlecheD| et |\FlecheH|. +% Il pourrait sembler plus naturel de d\'efinir des commandes +% |\FlecheCp|, |\FlecheDp| et |\FlecheHp| faisant appel \`a la +% fonte \og tvsymbols \fg{} et de choisir au |\begin{document}| +% entre la variante MetaPost et la variante type\,1 ; mais cette +% solution consommerait syst\'ematiquement une fonte math\'ematique +% parmi les 16 disponibles. Ici, la fonte \og tvsymbols \fg{} n'est +% pas d\'eclar\'ee si on travaille avec les variantes MetaPost. +% +% \begin{macrocode} +\AtBeginDocument{% + \ifFlechesMP + \newcommand{\FlecheC}{\FlecheCm}% + \newcommand{\FlecheD}{\FlecheDm}% + \newcommand{\FlecheH}{\FlecheHm}% + \else + \DeclareFontFamily{U}{tv}{}% + \DeclareFontShape{U}{tv}{m}{n}{<->tabvar}{}% + \DeclareSymbolFont{tvsymbols}{U}{tv}{m}{n}% + \DeclareMathSymbol{\enearrow}{\mathrel}{tvsymbols}{"25}% + \DeclareMathSymbol{\esearrow}{\mathrel}{tvsymbols}{"26}% + \DeclareMathSymbol{\eastarrow}{\mathrel}{tvsymbols}{"21}% + \newcommand{\FlecheC}{\ensuremath{\enearrow}}% + \newcommand{\FlecheD}{\ensuremath{\esearrow}}% + \newcommand{\FlecheH}{\ensuremath{\eastarrow}}% + \fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Positionnement vertical de \'el\'ements} +% +% La variable |\TVextraheight|, dont la valeur par d\'efaut vaut +% |.7\baselineskip| permet d'\'ecarter l\'eg\`erement les valeurs +% maximales de la fonction, du filet horizontal sup\'erieur. +% +% \begin{macrocode} +\newdimen\TVextraheight +\setlength{\TVextraheight}{.7\baselineskip} +% \end{macrocode} +% +% \begin{macro}{\niveau} +% La commande |\niveau|, utilis\'ee uniquement dans les lignes +% relatives aux valeurs des fonctions, permet d'initialiser les +% valeurs des compteurs |\@niveaux| (nombre total de niveaux +% utilis\'es dans la ligne) et |\@pos| (indicateur du niveau +% courant). Elle active \'egalement le drapeau |\if@socle| +% utilis\'e par la commande |\@socle|. Celle-ci place un filet +% invisible de hauteur |\TVextraheight| et ajoute |\@pos - 1| +% sauts de lignes (les colonnes sont align\'ees par le bas), ce +% qui assure le positionnement vertical de l'\'el\'ement (valeur +% de la fonction ou fl\`eche). +% Le drapeau |\if@socle| devra \^etre mis localement \`a `faux' +% dans certaines colonnes (cf. |\dbarre| et |discont|). +% \begin{macrocode} +\newcount\@niveaux +\newcount\@pos +\newif\if@socle +\newcommand{\niveau}[2]{\global\@pos=#1 \global\@niveaux=#2 + \global\@socletrue} +\newcommand{\@socle}{% + \ifnum\@pos=1 \@soclefalse \fi + \if@socle + \rule{\z@}{\TVextraheight}% + \@tempcnta=\@pos + \advance\@tempcnta by -1 + \whiledo{\@tempcnta>0}{\TVnl \null \advance\@tempcnta by -1}% + \fi} +% \end{macrocode} +% \end{macro} +% +% \subsection{Nouveaux types de colonnes} +% +% Ces d\'efinitions n\'ecessitent les extensions |array| et +% |varwidth|. L'environnement |varwidth|, comme |minipage|, +% red\'efinit la commande |\\|. On la renomme \`a l'int\'erieur +% des environnements |varwidth|, de fa\c{c}on \`a \'eviter la +% confusion entre passage \`a la ligne \`a l'int\'erieur d'une +% colonne et passage \`a la ligne suivante du tableau : +% |\TVnl| (commande interne) provoque un changement de ligne \`a +% l'int\'erieur d'une colonne, l'utilisateur peut continuer \`a +% utiliser |\\| pour terminer une ligne du tableau. +% La commande |\TVtabularnewline|, d\'efinie dans l'environnement +% |tabvar|, provoque un changement de ligne dans le tableau +% (|\tabularnewline|) et affecte la valeur `vrai' au drapeau +% |\ifreset@niveaux|, ce qui commande la r\'einitialisation des +% compteurs |\@pos| et |\@niveaux| \`a la valeur~1. +% Cette r\'einitialisation aura lieu \emph{apr\`es} que la +% commande |\@socle| ait plac\'e les valeurs de la fonction et +% les fl\`eches \`a la bonne hauteur. +% +% \begin{macrocode} +\newif\ifreset@niveaux +\newcommand{\reset@niveaux}{% + \ifreset@niveaux + \global\@niveaux=1 \global\@pos=1 \global\@soclefalse + \fi} +% \end{macrocode} +% +% On d\'efinit des variantes |C|, |L| et |R|, des colonnes |c|, +% |l| et |r| : ce sont des \emph{minipage} align\'ees par le bas, +% dont la largeur est celle de la ligne la plus longue, avec un +% maximum de |5em|, (voir la documentation de l'extension +% \file{varwidth.sty}). +% +% \begin{macrocode} +\newcolumntype{C}{% + >{\begin{varwidth}[b]{5em}\let\TVnl=\\ \let\\=\TVtabularnewline $}% + c% + <{\@socle \reset@niveaux + $\@finalstrut\@arstrutbox\end{varwidth}}} +\newcolumntype{L}{% + >{\begin{varwidth}[b]{5em}\let\TVnl=\\ \let\\=\TVtabularnewline $}% + l% + <{\@socle \reset@niveaux + $\@finalstrut\@arstrutbox\end{varwidth}}} +\newcolumntype{R}{% + >{\begin{varwidth}[b]{5em}\let\TVnl=\\ \let\\=\TVtabularnewline $}% + r% + <{\@socle \reset@niveaux + $\@finalstrut\@arstrutbox\end{varwidth}}} +% \end{macrocode} +% +% On d\'efinit \'egalement un type |N| pour les domaines o\`u la +% fonction n'est pas d\'efinie : la colonne est colori\'ee en +% faisant appel \`a l'extension \file{colortbl}. La couleur +% peut \^etre choisie par l'utilisateur, par exemple :\\ +% |\definecolor{TVcolor}{rgb}{0.66, 0.8, 0}| \\ +% donne un vert, voir \file{color.sty} pour la fa\c{c}on de +% d\'efinir des couleurs. +% \begin{macrocode} +\definecolor{TVcolor}{gray}{0.7} +\newdimen\TVarraycolsep +\newdimen\TVcolorLeftSep +\newdimen\TVcolorRightSep +\setlength{\TVcolorLeftSep}{\TVarraycolsep} +\setlength{\TVcolorRightSep}{\TVarraycolsep} +\newcolumntype{N}{% + >{\columncolor{TVcolor}[\TVcolorLeftSep][\TVcolorRightSep]} + c} +% \end{macrocode} +% +% \subsection{Commandes de saisie} +% +% Les valeurs \`a afficher dans chaque ligne peuvent \^etre +% saisies directement (|1.4|, |+|, |-|, etc.) comme dans un +% tableau normal. Les lignes correspondant aux valeurs des +% fonctions comportent plusieurs \'etages, nous disposons +% deux compteurs, |\@niveaux| qui contient le nombre total +% de niveaux (ou \'etages) utilis\'es dans la ligne, |\@pos| +% qui indique le niveau courant. +% +% \begin{macro}{\croit} +% \begin{macro}{\decroit} +% \begin{macro}{\constante} +% Les commandes |\croit|,|\decroit| et |\constante| tracent les +% fl\`eches \`a la hauteur ad\'equate et mettent \`a jour le +% compteur |\@pos|. Un message d'erreur est affich\'e lorsque +% l'une de ces commandes fait sortir de la plage de niveaux +% d\'eclar\'es par la commande |\niveau|. +% +% \begin{macrocode} +\newcommand{\decroit}{\FlecheD + \global\advance\@pos by -1 + \ifnum\@pos<1 + \PackageError{tabvar.sty}% + {Les arguments la commande + \protect\niveau\space sont incorrects}% + \fi} +\newcommand{\croit} {\raisebox{-\baselineskip}{\FlecheC}% + \global\advance\@pos by 1 + \ifnum\@pos>\@niveaux + \PackageError{tabvar.sty}% + {Les arguments la commande + \protect\niveau\space sont incorrects}% + \fi} +\newcommand{\constante}{\FlecheH} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\dbarre} +% La commande |\dbarre| sert \`a tracer les doubles barres +% La commande |\vline| ne peut pas \^etre utilis\'ee \`a cette fin +% dans les environnements de type |\parbox|, car sa port\'ee +% est limit\'ee \`a un interligne. +% +% On calcule la hauteur exacte de la rang\'ee, dans les deux cas +% |\@niveaux=1| et |\@niveaux>1|, et on fait appel \`a |\rule| +% pour le trac\'e. +% \begin{macrocode} +\newcommand{\dbarre}{\ifnum\@niveaux=1 + \@tempdimc=\TVarraystretch\baselineskip + \else + \@tempcnta=\@niveaux + \advance\@tempcnta by -1 + \@tempdimc=\@tempcnta\baselineskip + \@tempdimb=\TVextraheight + \ifdim\@tempdimb<.7\baselineskip + \@tempdimb=.7\baselineskip + \fi + \advance\@tempdimc by \@tempdimb + \advance\@tempdimc by \dp\@arstrutbox + \fi + \rule[-\dp\@arstrutbox]{.5\p@}{\@tempdimc}% + \kern 2\p@ + \rule[-\dp\@arstrutbox]{.5\p@}{\@tempdimc}% + \@soclefalse} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\discont} +% La commande |\discont| s'utilise lorsque la fonction pr\'esente +% une discontinuit\'e, elle r\'eclame 3 arguments obligatoires : +% le premier est la limite \`a gauche~$f_-$, le deuxi\`eme le signe +% '<' ou '>', le troisi\`eme est la limite \`a droite~$f_+$. +% \LaTeX{} ne peut pas toujours comparer facilement les valeurs +% de $f_-$ et $f_+$ (penser \`a $f_-=\sqrt{e}$, $f_+=\pi/2$), le +% deuxi\`eme argument pr\'ecise si $f_- < f_+$ ou si $f_- > f_+$. +% +% En plus de ces 3 arguments obligatoires, un argument optionnel +% (entier positif) permet d'\'ecarter verticalement les valeurs +% $f_-$ et~$f_+$ ; la valeur de cet entier donne le nombre de +% niveaux suppl\'ementaires \`a intercaler (0 par d\'efaut). +% +% On commence par mesurer la largeur des deux arguments |#2| et +% |#4| pour pouvoir les centrer ensuite dans une bo\^{\i}te de +% largeur \'egale au maximum des deux largeurs. +% Si cette disposition ne convient pas, on pourra toujours +% ajouter un |\hfill| \`a droite o\`u \`a gauche de la valeur +% \`a d\'eplacer. +% +% \begin{macrocode} +\newcommand{\discont}[4][0]{% + \settowidth{\@tempdimc}{\ensuremath{#2}}% + \settowidth{\@tempdimb}{\ensuremath{#4}}% + \ifdim\@tempdimc<\@tempdimb \@tempdimc=\@tempdimb\fi + \rule{\z@}{\TVextraheight}% + \@soclefalse + \ifthenelse{\equal{#3}{<}}% +% \end{macrocode} +% Cas o\`u $f_- < f_+$ : on pose la valeur de~$f_+$ (|#4|), puis +% on saute autant de lignes suppl\'ementaires qu'indiqu\'e dans +% l'argument optionnel, ensuite on passe \`a la ligne et on pose +% la valeur de~$f_-$ (|#2|), enfin on ajoute en dessous +% |\@pos - 1| sauts de lignes pour positionner le tout en hauteur. +% Il reste \`a ajuster le compteur~|\@pos| pour que la fl\`eche +% suivante soit plac\'ee \`a la bonne hauteur. +% \begin{macrocode} + {\makebox[\@tempdimc]{\ensuremath{#4}}% + \@tempcnta=#1 + \whiledo{\@tempcnta>0}{\TVnl \null \advance\@tempcnta by -1}% + \TVnl + \makebox[\@tempdimc]{\ensuremath{#2}}% + \@tempcnta=\@pos + \advance\@tempcnta by -1 + \whiledo{\@tempcnta>0}{\TVnl \null \advance\@tempcnta by -1}% + \global\advance\@pos by 1 + \global\advance\@pos by #1 + }% + {\ifthenelse{\equal{#3}{>}}% +% \end{macrocode} +% Cas o\`u $f_- > f_+$ : \textit{idem} en permutant $f_-$ et~$f_+$. +% \begin{macrocode} + {\makebox[\@tempdimc]{\ensuremath{#2}}% + \@tempcnta=#1 + \whiledo{\@tempcnta>0}{\TVnl \null \advance\@tempcnta by -1}% + \TVnl + \makebox[\@tempdimc]{\ensuremath{#4}}% + \@tempcnta=\@pos + \advance\@tempcnta by -2 + \advance\@tempcnta by -#1 + \whiledo{\@tempcnta>0}{\TVnl \null \advance\@tempcnta by -1}% + \global\advance\@pos by -1 + \global\advance\@pos by -#1 + }% +% \end{macrocode} +% Cas o\`u le deuxi\`eme argument n'est ni |<| ni |>| : erreur +% \begin{macrocode} + {\PackageError{tabvar.sty}% + {Le second argument de \protect\discont\space doit \^etre + \MessageBreak soit '<' soit '>'}}% + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Environnement `tabvar'} +% +% L'environnement |tabvar| est un |array| o\`u sont red\'efinis +% |\TVarraystretch|, |\TVarraycolsep| et |\tabularnewline|. +% +% \begin{environment}{tabvar} +% \begin{macrocode} +\newcommand{\TVarraystretch}{1.5} +\setlength{\TVarraycolsep}{1pt} +\newenvironment{tabvar}[1] + {\renewcommand{\arraystretch}{\TVarraystretch}% + \setlength{\arraycolsep}{\TVarraycolsep}% + \global\@niveaux=1 \global\@pos=1 \global\@soclefalse + \def\TVtabularnewline{\reset@niveauxtrue\tabularnewline}% + \begin{array}{#1}} + {\end{array}} +% \end{macrocode} +% \end{environment} +% +% Chargement du fichier de pr\'ef\'erences, si il en existe un. +% \begin{macrocode} +\InputIfFileExists{tabvar.cfg} + {\typeout{loading tabvar.cfg}} + {\typeout{tabvar.cfg not found, using default values}} +% \end{macrocode} +% \iffalse +% \begin{macrocode} +%</sty> +% \end{macrocode} +% \fi +% +% \section{Fichier de configuration} +% +% \iffalse +% \begin{macrocode} +%<*cfg> +% \end{macrocode} +% \fi +% \begin{macrocode} +%% Fichier de configuration de l'extension `tabvar.sty'. +%% +%% D\'ecommenter la ligne suivante pour que les variantes MetaPost +%% des fl\`eches soient utilis\'ees \`a la place de la fonte tabvar.pfb. +%% +%%\FlechesMPtrue +%% +%% Ce param\`etre permet d'ajuster la hauteur des lignes +%% de `tabvar' correspondant aux variations d'une fonction ; +%% sa valeur par d\'efaut est : +%% +%%\setlength{\TVextraheight}{0.7\baselineskip} +%% +%% Valeur de \arraycolsep utilis\'ee dans `tabvar'. +%% +%%\setlength{\TVarraycolsep}{1pt} +%% +%% Valeur de \arraystretch utilis\'ee dans `tabvar'. +%% +%%\renewcommand{\TVarraystretch}{1.5} +%% +%% Exemples de d\'efinitions de couleurs pour les colonnes `N' +%% o\`u la fonction est non d\'efinie. +%% +%%\definecolor{TVcolor}{gray}{0.5} +%%\definecolor{TVcolor}{rgb}{0.33, 0.12, 0} +%%\definecolor{TVcolor}{cmyk}{0.91,0,0.88,0.12} +%% +%% Les valeurs suivantes assurent que les colonnes `N' sont +%% colori\'ees sur toute leur largeur. +%% +%%\setlength{\TVcolorLeftSep}{\TVarraycolsep} +%%\setlength{\TVcolorRightSep}{\TVarraycolsep} +% \end{macrocode} +% \iffalse +% \begin{macrocode} +%</cfg> +% \end{macrocode} +% \fi +% +% \Finale +% +\endinput + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% fill-column: 70 +%%% coding: latin-1 +%%% End: diff --git a/Master/texmf-dist/source/latex/tabvar/tabvar.ins b/Master/texmf-dist/source/latex/tabvar/tabvar.ins new file mode 100644 index 00000000000..f48f48cb1df --- /dev/null +++ b/Master/texmf-dist/source/latex/tabvar/tabvar.ins @@ -0,0 +1,66 @@ +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% LaTeX or TeX. +%% +%% Copyright (C) Daniel Flipo 2003-2005 <daniel.flipo@univ-lille1.fr>. +%% +%% It may be distributed and/or modified under the conditions +%% of the LaTeX Project Public License, either version 1.3 of +%% this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2003/12/01 or later. +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\filedate{2004/12/30} +\def\batchfile{tabvar.ins} +\input docstrip.tex + +{\ifx\generate\undefined +\Msg{**********************************************} +\Msg{*} +\Msg{* This installation requires docstrip} +\Msg{* version 2.3c or later.} +\Msg{*} +\Msg{* An older version of docstrip has been input} +\Msg{*} +\Msg{**********************************************} +\errhelp{Move or rename old docstrip.tex.} +\errmessage{Old docstrip in input path} +\batchmode +\csname @@end\endcsname +\fi} + +\keepsilent + +\usedir{tex/latex/tabvar} + +\generate{\file{tabvar.sty}{\from{tabvar.dtx}{sty}} + } + +\nopreamble +\generate{\file{tabvar.cfg}{\from{tabvar.dtx}{cfg}} + } + +\ifToplevel{ +\Msg{***********************************************************} +\Msg{*} +\Msg{* Now, run 'mpost -tex=latex tabvar' to produce files} +\Msg{* tabvar.1 tabvar.2 tabvar.3 from tabvar.mp} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by TeX:} +\Msg{*} +\Msg{* \space tabvar.sty tabvar.cfg tabvar.1 tabvar.2 tabvar.3} +\Msg{*} +\Msg{* To produce the documentation} +\Msg{* run tabvar.dtx through LaTeX or pdfLaTeX.} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} +} + +\endinput |