Perl

Introduction de Wikipedia

Perl est un langage de programmation créé par Larry Wall en 1987 pour traiter facilement de l'information de type textuel. Ce langage, interprété, s'inspire des structures de contrôle et d'impression du langage C, mais aussi de langages de scripts sed, awk et shell (sh).

Il prend en charge les expressions régulières dans sa syntaxe même, permettant ainsi directement des actions sur l'aspect général de séquences de texte.

PTab

La saisie de tableau en LATEX n'est pas chose facile ni agréable. Il arrive souvent qu'on dispose d'un fichier de données que l'on souhaite représenter sous forme de tableau.

Pour faciliter cela, j'ai réalisé un petit script perl qui permet de lire un fichier LATEX contenant une certaine syntaxe indiquant la fichier à représenter.

Il y a quelques options pour personnaliser à la fois la lecture et l'écriture sous forme de tableau. Vous pouvez découvrir cela en faisant dérouler la documentation sommaire.

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 insère la ligne suivante :

.t /mon/chemin/val.txt

On execute alors ptab :

ptab monfichier.tex

Téléchargement

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 :

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
      

et le fichier test.tex suivant :


\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}

On execute ptab :

$> ptab test.tex

Alors le fichier dat.tex est créé au niveau de test.tex :


\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}

et le fichier test.tex est devenu :


\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}

Il reste alors à faire une compilation LATEX !

Options

De manière générale, pour définir des paramètres on utilise la ligne suivante dans le document LATEX :

.pt <les paramètres>

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 latex//
.pt math ( )
.t /mon/chemin/dat1.dat

//code latex//
.pt tableau
.t /mon/chemin/dat2.dat

//code latex//

Modes

Il existe deux modes, tableau classique avec l'environnement tabular, et tableau mathématiques avec l'environnement array.

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 :

.pt tableau

Mode math

Pour se mettre en mode math :

//code latex//
.pt math ( )

.t /mon/chemin/val.txt

//code latex//
Parenthèses -- Crochets

On règle, en plus de passer 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 latex//
.pt formatage 3
.pt math [ ]
.t /mon/chemin/val.txt
//code latex//

permet d'afficher les nombres avec trois chiffres après la virgule.

Régression à l'aide de Perl et MetaPost

J'ai écrit (avec l'aide de Jean-Michel Sarlat) un script Perl permettant la création d'un fichier MetaPost où figure le tracé des points des données et le tracé de la régression. Le fichier MetaPost utilise graph.

La régression

L'avantage (pour moi) de ce script, est qu'il peut réaliser beaucoup de régressions. En effet, on précise l'ordre de régression (voir Syntax), c'est-à-dire le degré du polynôme qui est issu de la régression.

Par exemple l'ordre 3 donne une fonction du type : \(a+bx+cx^2+dx^3\).

Il est bien entendu possible de réaliser une régression exponentielle (voir Syntaxe)

Utilisation

On doit disposer d'un fichier monfichier.dat avec les données dont on souhaite réaliser une régression. Le script crée un fichier MetaPost MetaRgmonfichier.mp “décoré”.

J'entends par “décoré” qu'il figure des légendes et l'équation de la régression. Après, rien n'empêche de modifier le fichier MetaPost.

Syntaxe

Dans le cas général :

moindre.pl  monfichier.dat [-d affichage des  décimales] [légende  ordonnées] [légende  abscisses] [degrés de régression]

Le -d indique que c'est une option (non obligatoire).

Exemple

Voici un exemple présenté très joliement par Jean-Michel Sarlat :

http://melusine.eu.org/syracuse/journal/2008/07/21/perl/

Téléchargement

Légendes

On rentre les légendes comme chaîne de caractères, i.e. entre guillemets :

moindre.pl monfichier.dat "Ordonnées" "Abscisses" 1

Ici, entre les guillemets, on utilise du code LATEX, on peut donc utiliser des formules mathématiques !!!

Degrés de régression

Le degré de régression est, comme indiqué plus haut, le degré du polynôme “fonction régression”.

Régression exponentielle

Pour réaliser une régression exponentielle, on tape exp à la place du nombre.

Option "nombre de décimale"

L'affichage de l'équation de la régression est par défaut à 3 décimales, si l'on veut changer cela on indique -d puis le nombre de décimale souhaité, ceci, juste après l'appel moindre.pl.

Exemple :

moindre.pl -d 6 monfichier.dat 2

Fichier coeff.dat

Un fichier coeff.dat est créé dans lequel sont inscrits les coefficients du polynôme.

Table des matières