====== Différences ====== Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
mc:ptab [2008/12/18 19:28] maxime |
mc:ptab [2010/06/29 06:15] (Version actuelle) newacct |
||
---|---|---|---|
Ligne 18: | Ligne 18: | ||
ptab monfichier.tex | ptab monfichier.tex | ||
</code> | </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). | ||
+ | |||
+ | |||
+ | ===== Exemple ===== | ||
+ | |||
+ | On a le fichier de valeurs ''dat.dat'' suivant : | ||
+ | <code> | ||
+ | 1.001 2 3.7 4.34 5.0 6 7 8 9 10 | ||
+ | 11 12 13 14 15 16 17 18 19 20 | ||
+ | 21 22 23 24 25 26 27 28 29 30 | ||
+ | </code> | ||
+ | |||
+ | et le fichier ''test.tex'' suivant : | ||
+ | |||
+ | <code latex> | ||
+ | \documentclass[a4paper]{article} | ||
+ | \usepackage[latin1]{inputenc} | ||
+ | \usepackage[frenchb]{babel} | ||
+ | \usepackage{amsmath} | ||
+ | |||
+ | \begin{document} | ||
+ | Du text qui se répète... Du text qui se répète... Du text qui se | ||
+ | répète... Du text qui se répète... Du text qui se répète... Du text | ||
+ | qui se répète... Du text qui se répète... Du text qui se répète... Du | ||
+ | text qui se répète... | ||
+ | |||
+ | |||
+ | \section{Une section} | ||
+ | .pt formatage 2 | ||
+ | |||
+ | .t /fichiers/programation/perl/dat.dat | ||
+ | |||
+ | \end{document} | ||
+ | </code> | ||
+ | |||
+ | On execute ptab : | ||
+ | |||
+ | <code> | ||
+ | $> ptab test.tex | ||
+ | </code> | ||
+ | |||
+ | Alors le fichier ''dat.tex'' est créé au //niveau// de ''test.tex'' : | ||
+ | |||
+ | <code latex> | ||
+ | \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|} | ||
+ | \hline | ||
+ | 1.00&2.00&3.70&4.34&5.00&6.00&7.00&8.00&9.00&10.00\\\hline | ||
+ | 11.00&12.00&13.00&14.00&15.00&16.00&17.00&18.00&19.00&20.00\\\hline | ||
+ | 21.00&22.00&23.00&24.00&25.00&26.00&27.00&28.00&29.00&30.00\\\hline | ||
+ | \end{tabular} | ||
+ | </code> | ||
+ | |||
+ | et le fichier ''test.tex'' est devenu : | ||
+ | |||
+ | <code latex> | ||
+ | \documentclass[a4paper]{article} | ||
+ | \usepackage[latin1]{inputenc} | ||
+ | \usepackage[frenchb]{babel} | ||
+ | \usepackage{amsmath} | ||
+ | |||
+ | \begin{document} | ||
+ | Du text qui se répète... Du text qui se répète... Du text qui se | ||
+ | répète... Du text qui se répète... Du text qui se répète... Du text | ||
+ | qui se répète... Du text qui se répète... Du text qui se répète... Du | ||
+ | text qui se répète... | ||
+ | |||
+ | \section{Une section} | ||
+ | %@patb .pt formatage 2 | ||
+ | |||
+ | %@ptab .t /fichiers/programation/perl/dat.dat | ||
+ | |||
+ | \include{dat} | ||
+ | |||
+ | \end{document} | ||
+ | </code> | ||
+ | |||
+ | Il reste alors à faire une compilation LaTeX ! | ||
===== Options ===== | ===== Options ===== | ||
Ligne 24: | Ligne 105: | ||
<code> | <code> | ||
.pt <les paramètres> | .pt <les paramètres> | ||
+ | </code> | ||
+ | |||
+ | La définition des paramètres n'est pas valable pour le document entier, elle n'est valable que //jusqu'à// une prochaine définition de paramètres. Par exemple, on peut très bien faire : | ||
+ | |||
+ | <code> | ||
+ | //code latex// | ||
+ | .pt math ( ) | ||
+ | .t /mon/chemin/dat1.dat | ||
+ | |||
+ | //code latex// | ||
+ | .pt tableau | ||
+ | .t /mon/chemin/dat2.dat | ||
+ | |||
+ | //code latex// | ||
</code> | </code> | ||
Ligne 30: | Ligne 125: | ||
Il existe deux modes, tableau classique avec l'environnement ''tabular'', et tableau //mathématiques// avec l'environnement ''array''. | 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... | + | Le mode classique est le mode par défaut, il n'y a pas d'option particulière... |
+ | |||
+ | **Remarque** Pour revenir en mode tableau, on utilise la commande : | ||
+ | <code> | ||
+ | .pt tableau | ||
+ | </code> | ||
=== Mode math === | === Mode math === | ||
- | Pour ce mettre en mode math : | + | Pour se mettre en mode math : |
<code> | <code> | ||
Ligne 44: | Ligne 144: | ||
//code latex// | //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, on obtiendra donc une matrice avec parenthèse. | ||
+ | |||
+ | ==== 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; # 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 ' ', <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; | ||
+ | $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> | </code> | ||