Outils d'utilisateurs

Outils du Site


Sidebar

====== Navigation dans le wiki ====== * [[accueil|Accueil]] * [[http://melusine.eu.org/syracuse/contrib/|Syracuse]] //(contributions)// ===== Espaces dédiés ===== * [[pstricks:index|PSTricks]] * [[Pgf/Tikz:index|Pgf/Tikz]] * [[gnuplot:index|Gnuplot]] * [[octave::index|Octave]] ===== Contributeurs ===== * [[mc:index|Maxime Chupin]] * [[cp:index|Christophe Poulain]] * [[jms:index|Jean-Michel Sarlat]] * [[sylcha:index|Sylvain Chambon]] * [[rouxn:index|Nicolas Roux]] * [[tj:index|Thierry Joffredo]] * [[tg:index|Thierry Gauvin]]

mc:ptab

**Ceci est une ancienne révision du document !** ----

A PCRE internal error occured. This might be caused by a faulty plugin

====== PTab ====== Ce petit script perl permet de générer le code LaTeX d'un tableau de valeurs d'un fichier dat, txt... ===== Utilisation ===== Supposons qu'on veuille créer un tableau avec les valeurs d'un fichier externe ''val.txt''. Alors dans notre document LaTeX ''monfichier.tex'', on insert la ligne suivante : <code> .t /mon/chemin/val.txt </code> On execute alors ''ptab'' : <code> ptab monfichier.tex </code> ===== Fonctionnement ===== Lors de l'utilisation de ptab, il se crée un fichier val.tex contenant le code tex du tableau uniquement, puis dans le fichier //maître// tex, les lignes de //commandes// sont commentées et une ligne d'inclusion ''\include{val}'' est rajoutée. La notation //acceptée// des nombres est celle qu'accepte perl (la notation avec E pour les puissances de 10 est correctement traitée). ===== Options ===== De manière générale, pour définir des //paramètres// on utilise la ligne suivante dans le document LaTeX : <code> .pt <les paramètres> </code> ==== Modes ==== Il existe deux modes, tableau classique avec l'environnement ''tabular'', et tableau //mathématiques// avec l'environnement ''array''. La mode classique est le mode par défaut, il n'y a pas d'option particulière... === Mode math === Pour ce mettre en mode math : <code> //code latex// .pt math ( ) .t /mon/chemin/val.txt //code latex// </code> == Parenthèses -- Crochets == On règle, en plus de passé en mode math, les délimiteurs. Ceci se fait après l'indication ''math'' en rentrant le délimiteur gauche et le droit séparés par **un espace**. Ci-dessus, on a choisi les parenthèses. ==== Formatage ==== Cette option permet de formater l'affichage des décimales des valeurs dans le tableau. Par exemple : <code> //code latex// .pt formatage 3 .pt math [ ] .t /mon/chemin/val.txt //code latex// </code> permet d'afficher les nombres avec trois chiffres après la virgule. ===== code ===== Téléchargement : {{:mc:ptab.zip|}} <code perl> #!/usr/bin/perl # ----------------------------------------------------------------------------- # PTAB 05/11/08 # Maxime Chupin # ----------------------------------------------------------------------------- # version 1.0 use Cwd; # récupération du chemin d'exécution ------------------------------------------ my $chemin = cwd(); #------------------------------------------------------------------------------ # nom du fichier de travail --------------------------------------------------- ($nomw =$ARGV[0]) =~ s/.tex/.w/; #------------------------------------------------------------------------------ # paramètres par défaut ------------------------------------------------------- $type="tabular"; $deliml=""; $delimr=""; $inter="|"; $separvert="\\hline"; $formatdec = 2; #------------------------------------------------------------------------------ # lecture du fichier de travail .w -------------------------------------------- open(WORK,,"$chemin/$ARGV[0]") or die "Impossible d'ouvrir $ARGV[0]"; #on ouvre le fichier tex original contenant les commandes ptab open(WTEX, ">$chemin/$nomw"); # ouverture en ecriture d'un fichier .w (de travail) while (<WORK>){ #pour chaque ligne du document original @ligne = split /\s+/; # on séparer chaque mots de chaque ligne if($ligne[0] eq ".pt"){ # on lit le paramétrage if($ligne[1] eq "math"){ # si math $type="array"; $deliml="\\[\\left$ligne[2]"; $delimr="\\right$ligne[3]\\]"; $inter=""; $separvert=""; } if($ligne[1] eq "tableau"){ # si tableau $type="tabular"; $deliml=""; $delimr=""; $inter="|"; $separvert="\\hline"; } if($ligne[1] eq "formatage"){ $formatdec = $ligne[2]; } print(WTEX "%\@patb $_"); # on laisse une trace de la commande de paramerage dans le document final } elsif($ligne[0] eq ".t"){ # la command ptab .t $toutligne = $_; @chemindat = split('/', $ligne[1]); $fichierdat = $chemindat[-1]; #on recupere le nom complet du fichier dat, txt... @tabpref = split('\.', $chemindat[-1]); $prefixe = $tabpref[0]; #on recupere le prefixe open(DAT, "$ligne[1]") or die "Impossible d'ouvrir $ligne[1]"; #on ouvre ce fichier open(DATTEX, ">$chemin/$prefixe\.tex"); # on cree un fichier $prefixe.tex dans lequel il y aura le tableau en latex $taille = split/\s+/, <DAT>; #on recupere le nombre de colonne close(DAT); open(DAT, "$ligne[1]"); for($i=1;$i<=$taille;$i++){$c.="c$inter";} #on concatene des c autant que de colonne print(DATTEX "$deliml\\begin\{$type\}\{$inter$c\}\n$separvert\n"); # on commence notre tableau (ca depend des options) while(<DAT>){ @lignedat= split/\s+/; $tail= @lignedat; for($i=0;$i<$tail;$i++){ $format = sprintf("%.${formatdec}f",$lignedat[$i]); # on format les nombres apres la virgule print(DATTEX "$format"); if($i!=($tail-1)){ print(DATTEX '&'); } } print(DATTEX "\\\\$separvert\n"); } print(DATTEX "\\end\{$type\}$delimr\n"); #on ferme le tableau close(DAT); print(WTEX "%\@ptab $toutligne \n"); # on commente la ligne ou se trouve l'instruction .t print(WTEX "\\include{$prefixe}\n"); # et on inclut le fichier creer tex } else{ print(WTEX $_); # sinon on recopie normalement le fichier dans lui meme... } } close(WTEX); close(WORK); rename($nomw, "$ARGV[0]"); </code>

mc/ptab.1229630944.txt.gz · Dernière modification: 2008/12/18 21:09 par maxime